- 博客(226)
- 收藏
- 关注
原创 【优化方法】为什么梯度是最陡峭的方向?
梯度下降法中,梯度反方向为最陡峭下降方向,源于方向导数的数学性质:方向导数等于梯度与方向向量的点积,当方向与梯度反向时,点积最小(即下降最快)。因此,沿负梯度方向更新参数,可实现损失函数的快速收敛。
2026-09-13 22:29:26
356
原创 【优化方法】最小二乘:从误差平方到线性与非线性拟合
二乘:把误差的二次方作为代价;最小:寻找让这些二次误差之和最小的参数。一般地,给定观测值yiy_iyi、模型预测值yifxi;θ和参数θ\thetaθ,定义残差riθyi−fxi;θ最小二乘问题写作θargminθ∑i1nriθ2θargθmini1∑nri。
2026-09-13 16:48:14
182
原创 Levenberg–Marquardt 优化算法(下):接受判据、数值实例与工程实现
Levenberg-Marquardt优化算法的下篇,重点讲解接受/拒绝判据(增益比ρ和信赖域)、数值实例和工程实现。
2026-09-03 01:40:52
331
原创 Levenberg–Marquardt 优化算法(上):从最小二乘到阻尼方程
LM算法用于非线性最小二乘优化。它融合高斯—牛顿与梯度下降,利用残差和Jacobian构造增量,通过阻尼信赖域控制步长,兼顾收敛速度与稳定性
2026-09-03 01:31:59
355
原创 【HistGBM 系列⑤】调参实战与生产部署
HistGBM系列⑤:调参实战与生产部署指南 本文是HistGBM系列第5篇,专注于梯度提升树模型的实战调参方法和生产部署经验。文章从核心参数原理出发,提供了系统性调参策略,并对比了HistGBM与其他主流GBDT实现的差异。 核心参数深度解析 学习率与迭代次数:揭示了步长与步数的博弈关系,推荐采用小步长(0.02)+大迭代次数(2000)+早停的组合 最大叶节点数:作为模型复杂度的主控参数,详细说明了不同取值对应的特征交互能力
2026-06-15 01:31:23
277
原创 【HistGBM 系列④】HistGradientBoostingRegressor 深度解析
HistGBM 系列④:HistGradientBoostingRegressor 深度解析 本文深入解析了 sklearn 的 HistGradientBoostingRegressor 实现,重点包括: 架构设计:全新实现的类继承结构和关键源码路径,包括分箱、树生长、损失计算等核心模块 缺失值处理:采用专用 bin 和分裂时优化缺失方向的方式,无需预处理即可自动学习缺失模式 类别特征支持:基于梯度均值排序的最优二分分割定理,避免 One-Hot 编码的问题 早停机制:通过验证集监控实现自动停止,防止过拟
2026-06-15 01:29:19
436
原创 【HistGBM 系列③】直方图加速——HistGBM 的核心创新
本文介绍了直方图加速在梯度提升决策树(GBDT)中的核心创新,重点分析了直方图分箱如何优化大规模数据下的训练效率。主要内容包括: 问题分析:传统GBDT的分裂搜索复杂度与样本量n成正比,导致大规模数据训练缓慢。 直方图分箱:通过等频分箱将连续特征离散化为有限个bin(默认255个),将候选分裂点从n个降至B个,极大降低了排序和搜索成本。 技术细节: 等频分箱保证每个bin的统计信息均衡 max_bins参数平衡速度与精度 特征存储从浮点数压缩为1字节整数 性能影响:直方图优化使训练复杂度从O(n log n
2026-06-15 01:27:20
372
原创 【HistGBM 系列②】梯度提升的数学框架与二阶优化
本文介绍了梯度提升的数学框架与二阶优化方法。主要内容包括: 监督学习的函数估计视角,将模型表示为加性组合的弱学习器(决策树)。 Friedman梯度提升框架的核心思想:将Boosting视为函数空间中的梯度下降,通过负梯度指导模型更新,适用于各种损失函数(MSE、MAE等)。 XGBoost引入的二阶泰勒展开优化,利用一阶梯度(g_i)和二阶梯度(h_i)统计量更精确地确定更新方向和步长。 详细推导了不同损失函数下的伪残差计算,并解释了梯度提升算法的通用性。 这些统计量(g_i,h_i)是后续HistGBM
2026-06-15 01:22:24
761
原创 【HistGBM 系列①】从决策树到梯度提升 —— GBDT 原理精讲
摘要 本文是"HistGBM"系列的第一篇,深入讲解梯度提升决策树(GBDT)的核心原理。文章从决策树的基本概念出发,详细介绍了CART回归树的构建过程,包括分裂准则、增益计算和最优预测值推导。重点分析了决策树的局限性以及如何通过集成学习(梯度提升)来解决这些问题。文章为后续讲解直方图加速和scikit-learn中的HistGradientBoosting实现奠定了理论基础,适合希望深入理解GBDT内部机制的中级机器学习从业者阅读。
2026-06-15 01:17:04
486
原创 SPXY 算法详解 —— 同时考虑 X 和 Y 空间的样本划分方法
SPXY算法是一种改进的样本划分方法,在KS算法基础上同时考虑X(光谱数据)和Y(目标值)空间的距离。其核心是将X距离和Y距离归一化后相加,形成综合距离度量,再采用与KS相同的Max-Min准则选择样本。实验表明,SPXY在柴油NIR分析中表现优异,特别是对T90%参数的预测误差显著降低(4.0 vs 4.4-4.7),且计算复杂度与KS相当。该方法在几乎不增加计算成本的情况下,实现了更合理的样本空间覆盖,尤其适用于目标值分布不均匀的监督建模任务。
2026-05-21 01:12:15
414
原创 Kennard-Stone (KS) 算法详解 —— 从实验设计到样本划分的经典方法
Kennard-Stone (KS) 算法是一种经典的实验设计方法,用于从候选样本中选择分布均匀的子集。该算法基于Max-Min距离准则,优先选择边界点以覆盖因子空间,再逐步填充内部。核心步骤包括:1)标准化和正交化预处理数据;2)选择距离最远的两个点作为初始点;3)迭代选择离已选点最远的候选点。KS算法特别适用于因子空间不规则或模型未知的情况,能有效保证样本的代表性。该算法在化学计量学、光谱分析等领域有广泛应用。
2026-05-21 01:11:04
442
原创 偏最小二乘法(PLS)原理详解
偏最小二乘法(PLS)是一种解决多重共线性问题的回归方法,特别适用于高维数据(n<<p)。与主成分回归(PCR)不同,PLS在降维时同时考虑自变量X和因变量y的信息,寻找能最大化两者协方差的潜变量方向。其核心算法NIPALS通过迭代计算X得分、载荷和权重,逐步提取正交成分,最终构建回归模型。PLS的优势在于既克服了OLS在奇异矩阵下的失效问题,又避免了PCR可能忽略预测相关成分的缺陷,广泛应用于光谱分析等高维数据建模领域。
2026-05-21 01:09:10
440
原创 穆勒矩阵(Mueller Matrix)完全指南——从数学推导到工程应用
本文系统介绍了穆勒矩阵的理论与应用。首先从斯托克斯矢量入手,详细解释了描述偏振态的四个参数及其物理意义。随后重点阐述了穆勒矩阵的数学形式和作用原理,通过4×4实数矩阵完整表征光学元件对偏振态的变换。文章推导了常见偏振元件(线偏振片、波片、旋转器等)的穆勒矩阵,并讨论了矩阵级联顺序的重要性。最后介绍了极分解方法和约化参数提取技术,以及穆勒矩阵在偏振测量、材料表征等工程领域的应用。全文通过数学推导与物理概念相结合的方式,构建了对穆勒矩阵的完整认知框架。
2026-05-15 01:30:11
1056
2
原创 MAD(Median Absolute Deviation)详解:最稳健的尺度估计方法
MAD(Median Absolute Deviation)是一种稳健的尺度估计方法,用于衡量数据离散程度。相比标准差对异常值敏感的问题,MAD通过计算数据点与中位数绝对偏差的中位数,有效抵抗极端值影响。其计算步骤简单:先求数据中位数,再计算各点与中位数的绝对偏差,最后取这些偏差的中位数。为使MAD近似标准差,需乘以1.4826的系数(源自正态分布性质)。MAD广泛应用于鲁棒统计、异常检测和信号处理等领域,是存在异常值时的理想选择。Python实现仅需几行numpy代码即可完成计算。
2026-04-15 23:49:15
1075
原创 IRLS(迭代加权最小二乘)详解:基于 Huber Loss 的鲁棒回归
本文介绍了基于Huber Loss的迭代加权最小二乘(IRLS)方法在鲁棒回归中的应用。针对最小二乘法对异常值敏感的问题,Huber Loss结合了L2和L1损失函数的优点:对小误差使用平方损失保证精度,对大误差采用线性增长降低异常点影响。IRLS通过迭代更新权重和求解加权最小二乘问题,逐步降低异常值的权重,最终获得稳定的回归结果。文章详细推导了权重更新公式,给出了完整的算法流程和Python实现代码,并指出该方法在鲁棒回归、Logistic回归等多个领域具有广泛应用。
2026-04-15 23:44:57
965
原创 Gaussion Process Regression 机器学习中的高斯过程回归详解
高斯过程回归原理简介 高斯过程(Gaussian Processes)是一种强大的概率机器学习方法,特别适用于回归问题。它通过结合先验知识对数据做出预测,不仅能给出预测函数的均值,还能提供预测的置信区间。 多元高斯分布是高斯过程的基础,由均值向量μ和协方差矩阵Σ定义。高斯过程利用边缘化和条件化这两个关键操作:边缘化用于从联合分布中提取部分信息,条件化则实现贝叶斯推理,在观察到训练数据后更新预测分布。 高斯过程回归的核心是构建测试点和训练点的联合高斯分布,通过条件概率计算预测分布。预测结果包括均值(最可能函数
2026-03-08 03:09:20
534
原创 【Yolo系列】 评价指标
本文系统介绍了YOLOv3目标检测模型的评价指标体系。重点阐述了IoU(交并比)作为基础指标的计算方法和作用,详细说明了TP/FP/FN的判定规则。深入讲解了Precision(查准率)和Recall(查全率)的定义及其权衡关系,以及PR曲线的构建方法。特别强调了AP(平均精度)和mAP(平均精度均值)这两个核心指标的计算方式及其不同变体(mAP@0.5和mAP@0.5:0.95)。此外还介绍了F1-score和推理速度指标(FPS/latency)。最后指出了常见的评估误区,如只看Precision、混淆
2026-02-23 22:39:51
914
原创 【Yolo系列】Yolov3 目标检测算法原理详解
YOLOv3目标检测算法通过改进网络架构提升了准确性和泛化能力。其核心结构包括Backbone(Darknet-53)、Neck(特征金字塔FPN)和Prediction head。FPN实现多尺度检测,在不同层级特征图上预测不同尺寸目标。检测头输出边界框坐标、目标置信度和类别概率,采用锚框机制简化学习难度。训练时样本分为正例、忽略样例和负例,正例参与全部损失计算,负例仅计算置信度损失。总体损失函数包含位置损失、置信度损失和分类损失三部分,通过多尺度预测和优化样本分配策略,YOLOv3实现了高效的目标检测。
2026-02-23 21:39:19
953
原创 【Yolo系列】Yolov2 目标检测算法原理详解
YOLOv2通过多项改进提升了目标检测性能,主要包括:引入BN层加速训练;采用高分辨率分类器(Hi-res classifier)和多尺度训练;使用全卷积网络和Anchor Boxes优化边界框预测;设计Darknet-19作为骨干网络;通过K-means聚类确定先验框尺寸(Dimension priors);利用sigmoid约束位置预测;采用Passthrough结构增强小目标检测。这些改进使YOLOv2在保持速度优势的同时显著提高了检测精度和召回率。
2026-02-04 22:58:09
773
原创 【YOLO系列】 YOLOv1 目标检测算法原理详解
YOLOv1是首个将目标检测作为回归问题的单阶段模型,通过7x7网格预测物体位置和类别。其输出包含边界框坐标、置信度和类别概率,采用NMS筛选最优预测框。损失函数结合坐标、置信度和分类损失,并对小目标进行加权处理。训练分预训练和微调两阶段,速度快但小目标检测效果较差。YOLOv1结构简单,但存在定位与分类耦合等问题,为后续版本改进奠定基础。
2026-01-31 22:48:17
758
原创 PyTorch 张量维度处理详解
本文总结了PyTorch中张量维度处理的14个核心操作函数及其应用场景。主要内容包括:torch.cat和torch.stack的拼接与堆叠区别,求和/求平均/最大值等归约操作,维度调整函数(unsqueeze/squeeze),转置和展平操作,以及拆分函数(split/chunk)等。文章特别强调了dim参数的重要性,指出最后一维通常是特征维度,并总结了维度处理的7个核心规律,包括不同神经网络架构对输入维度的要求。这些操作是深度学习模型开发中处理多模态数据、序列建模和特征提取的基础技能。
2026-01-19 23:15:45
659
原创 【PyTorch】 nn.TransformerEncoderLayer 详解
本文详细解析了PyTorch中的Transformer编码器层(TransformerEncoderLayer)实现。该层包含三个核心模块:多头自注意力机制、前馈神经网络和残差连接+层归一化+Dropout。文章从源码层面分析了初始化参数、多头自注意力机制的计算过程、前馈网络的结构以及LayerNorm和Dropout的作用。特别解释了多头机制的优势和不同规范化策略(norm_first参数)的实现差异。最后介绍了前向传播过程中的输入参数处理、掩码规范化和执行顺序,包括自注意力块和前馈块的详细计算流程。
2026-01-19 21:58:34
1489
原创 打通 Python 与 C++ 的参数传递机制
本文对比了Python与C++的参数传递机制。Python通过*args收集位置参数为元组,**kwargs收集关键字参数为字典,实现灵活的函数参数处理;而C++通过main(int argc, char* argv[])接收命令行参数,其中argc记录参数个数,argv存储字符串数组。两者在参数处理上各有特点:Python更灵活,适合函数内部使用;C++更底层,适合程序启动时接收配置。Python的sys.argv与C++的argv类似,但都需手动解析字符串参数。
2026-01-13 21:11:03
1146
原创 深入理解编程中的抽象类:从概念到 Python 与 C++ 的实战
摘要: 抽象类是面向对象编程中的特殊类,不能被实例化,主要用于为子类提供通用模板。核心特征包括包含抽象方法、不可实例化和强制性约束。Python通过abc模块实现抽象类,使用@abstractmethod装饰器标记抽象方法;C++则通过纯虚函数(=0)实现,编译器会强制子类完成实现。抽象类有助于代码复用、解耦和强制一致性,适用于框架开发、跨平台支持和业务建模等场景。理解抽象类能提升系统架构的稳健性和扩展性。
2026-01-13 18:42:15
1129
原创 【高级机器学习】 13. 因果推断
本文系统介绍了因果推断的基本概念与方法。首先区分了统计依赖与因果关系的本质差异,通过巧克力与诺贝尔奖、咖啡与死亡率等案例说明相关性≠因果性,并分析了辛普森悖论和选择偏差等现象。其次阐述了三种依赖机制(共同原因、因果关系和对撞偏差)及其在DAG中的表示。重点讲解了马尔可夫条件和d-分离准则,说明如何从图结构推导变量间的独立性。最后介绍了因果贝叶斯网络的三种推理层次(预测、干预和反事实),以及如何通过后门准则从观察数据中识别因果效应。全文强调理解因果结构对于科学决策的重要性,为从观察数据中得出可靠因果结论提供了
2025-11-15 23:28:29
981
原创 【高级机器学习】 12. 强化学习,Q-learning, DQN
本文介绍了强化学习的基础概念和方法,重点比较了监督学习与强化学习的区别。监督学习依赖带标签的数据训练模型,而强化学习通过试错与环境交互,最大化长期累计奖励。文章详细阐述了强化学习的基本符号、交互过程、目标函数,并通过具体示例比较了不同策略的优劣。核心内容包括Q-value的定义、Bellman方程、TD更新规则,以及Q-table的学习流程。特别对比了Q-learning(off-policy)和Sarsa(on-policy)两种算法的差异。最后指出在处理连续或高维状态空间时,传统Q-table方法受限,
2025-11-14 21:56:26
960
原创 【高级机器学习】 9. 代理损失函数的鲁棒性
本文探讨了不同代理损失函数在噪声数据下的鲁棒性。常见的损失函数如最小二乘损失、绝对值损失、柯西损失和相关熵损失,分别对应高斯、拉普拉斯和柯西等噪声分布假设。研究表明,噪声分布尾部越厚(如柯西分布),对应的损失函数对异常值越不敏感,鲁棒性越强。通过分析各损失函数的梯度权重发现,鲁棒性强的损失函数在大误差时分配的权重更小。这一特性可应用于非负矩阵分解等算法,通过替换传统平方损失为鲁棒损失函数来提升模型抗干扰能力。
2025-11-14 08:30:47
1045
原创 【高级机器学习】 8. 偏差与方差(Bias and Variance)
摘要 偏差与方差是机器学习模型的两种基本误差来源。欠拟合(高偏差)指模型过于简单,无法有效学习数据规律;过拟合(高方差)则因模型过于复杂而过度拟合训练数据噪声。两者存在权衡关系:增加模型复杂度会降低偏差但增加方差,反之亦然。通过正则化(约束参数)或增加训练样本量可缓解过拟合问题。经验风险最小化加入正则化项能平衡模型复杂度和泛化能力,其中λ参数控制正则化强度。理想模型应在偏差和方差之间取得平衡,以在训练集和测试集上均表现良好。
2025-11-14 07:45:40
954
原创 【高级机器学习】 7. 带噪声数据的学习:从 MLE 到 MAP
解释:MLE 找到让数据最“可能”发生的参数值,即在 10 次实验中出现 7 次正面,最合理的概率估计是。“在天阴的情况下下雨的概率 = 天阴在下雨时出现的可能 × 原本的下雨概率 ÷ 天阴的总体概率。结合证据之后的判断。既要数据解释得好(拟合好),又要参数别太奇怪(符合先验)。这就是一个“高斯先验”——参数越远离 0,越不可能。我于是更新我的信念:可能 70% 要下雨(后验)。我先“猜”今天下雨的概率是 30%(先验)。这就是 MLE:找到让数据最可能出现的参数。“在看见新数据后,更新你原来的信念。
2025-11-14 07:22:01
1145
原创 【高级机器学习】5. Dictionary learning and Non-negative matrix factorisation
字典学习是一种寻找通用基向量(字典)来表示数据的机器学习方法,通过线性组合字典中的基向量来近似样本数据。其数学形式可表示为最小化重构误差的优化问题,通过交替最小化策略求解。字典学习框架统一了SVD、PCA和K-means等多种经典方法。 非负矩阵分解(NMF)是字典学习的特例,要求字典和系数矩阵均为非负。这种约束使NMF产生可解释的"部件式"表示,适用于图像处理和主题分析等任务。NMF采用乘法更新规则进行优化,能保证目标函数单调不降,但存在分解不唯一和基冗余等局限性。
2025-11-13 12:59:15
481
原创 【高级机器学习】0. Machine Learning 介绍
本文概述了机器学习的基本框架与核心概念。机器学习旨在从数据中构建统计模型,使其不仅拟合现有数据,还能捕捉数据生成机制。关键组成部分包括:训练数据S、假设类H、优化方法和输出假设h_S。最优分类器通过最小化0-1损失函数定义,但面临数据分布未知、目标函数不光滑等挑战。解决方案是采用经验风险最小化(ERM),用样本均值近似期望,并引入凸替代损失函数(如hinge loss)优化。最终目标是在假设空间H中找到使训练损失最小的h*,同时保证泛化能力。文章对比了人类经验学习与机器学习的过程,指出机器通过数据训练提升决
2025-11-01 08:57:13
992
原创 【数据工程】20. 从数据到特征:Feature Store 如何重塑机器学习的数据服务体系
Feature Store(特征存储)是机器学习工程中的关键基础设施,旨在解决特征管理、复用及训练-推理一致性问题。其核心包括特征注册、计算、存储、服务与监控五大模块,通过离线/在线双层存储架构支持批量、流式和按需三种特征转换方式,确保数据的高效使用。Feature Store还通过注册中心实现元数据统一管理,减少重复开发并提升团队协作效率,显著优化机器学习流程的稳定性和可扩展性。作为替代传统ETL或数据仓库的方案,它已成为企业MLOps实践的重要工具,推动数据与模型工程的无缝融合。
2025-10-29 10:08:47
694
原创 【数据工程】19. 从 DataOps 到可扩展机器学习:让数据与模型协同进化
DataOps与机器学习结合的关键在于实现数据与模型的协同进化。DataOps借鉴DevOps理念,通过CI/CD实现数据工程与机器学习流程的自动化、质量管理和可扩展性,解决传统数据孤岛、质量验证等痛点。文章剖析了从DataOps生命周期到数据库内机器学习(如MADlib框架)的实践路径,通过将计算推向数据而非数据拉向模型,实现更高效的并行计算与扩展能力,最终支撑现代AI生态系统的持续迭代与优化。
2025-10-29 10:04:09
662
原创 【数据工程】18. 数据架构
本文介绍了企业数据工程生命周期中的核心内容,重点阐述数据架构设计原则、DataOps理念、机器学习规模化及特征数据服务。分析了数据仓库与数据湖架构的演进,现代数据栈的云原生模块化特点,以及Lambda和Kappa两种数据流架构模型在批处理与实时场景中的应用,强调优秀数据架构应具备自动化、安全与可扩展等特性。
2025-10-29 09:23:30
649
原创 【数据工程】17. Scalable Data Engineering(可扩展数据工程)
本文介绍了可扩展数据工程的关键概念与技术,重点包括社交媒体实时分析、数据扩展架构(如横向扩展与无共享架构)、存储优化策略(如列式存储)、分布式数据管理技术(如分区与复制),以及数据复制的同步与异步机制对比。文章系统阐述了构建高可用、高性能大数据系统所需的设计原则与实现方法,为数据工程师提供了实用的架构指导。
2025-10-29 07:53:03
1053
原创 【数据工程】16. Notions of Time in Stream Processing
流处理中的时间概念与关键技术 摘要:流处理系统区分三种时间概念:事件时间(数据实际发生时间)、摄取时间(数据进入系统时间)和处理时间(系统处理数据时间)。通过水位线(Watermark)机制解决乱序事件问题,水位线标记已完整接收的事件时间范围。流处理支持多种连接方式,包括流表连接(Enrichment)和流流窗口连接。Apache Flink和Spark Streaming是主流流处理引擎,Flink采用真流式处理,而Spark通过微批次实现准实时处理。示例展示了Spark Streaming实现实时词频统
2025-10-28 22:33:50
719
原创 【数据工程】15. Stream Query Processing
流式数据查询面临的核心挑战是处理无限变化的数据流。与传统静态数据查询不同,流查询需要解决两个关键问题:如何定义无限流的查询语义,以及是否需要持续执行查询。流处理操作分为无状态(如筛选、投影)和有状态(如窗口聚合、连接)两类,前者独立处理每条记录,后者需要维护跨事件的中间状态。窗口化技术是流处理的核心,通过将无限流划分为有限片段(如基于时间或数量的滑动/翻转窗口),使实时计算成为可能。有状态应用虽功能强大,但面临扩展性、容错性和开发复杂度等挑战,需权衡功能需求与系统成本。
2025-10-28 22:20:55
708
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅