梯度下降与数值优化 - SpiralKernel/bioinfo-wiki-migrated GitHub Wiki

梯度下降与数值优化

更新:2026-10-13;状态:可用;验证范围:人工最小二乘梯度下降已运行,并与独立lstsq求解器核对。

优化算法减少明确目标函数,收敛条件、尺度和初值决定数值行为。

先写目标函数

最小二乘可最小化 $L(\beta)=|X\beta-y|^2/(2n)$,梯度为 $X^\mathsf T(X\beta-y)/n$。梯度下降更新 $\beta\leftarrow\beta-\eta\nabla L$,η是步长或学习率。

目标函数的1/2和除以n会改变梯度尺度;从另一教程照搬学习率之前,要核对这些约定。复杂似然、神经网络和带惩罚模型的目标又不同。

怎样检查优化

记录目标曲线、梯度、迭代数和停止阈值。步长太大可震荡或发散,太小可进展缓慢。特征尺度和高度相关列影响条件数,标准化、合适求解器和正则化各有作用。

凸且条件适当的问题有较强收敛保证,非凸模型不能仅因目标下降就声称找到全局最优。没有报错、梯度变小和统计模型合理,是三种不同检查。

已运行例子

基础算法可复现练习使用120个人工观测、截距加2个标准化特征,在二次目标下按谱范数确定步长。285次记录迭代后,系数与NumPy最小二乘解最大差 $4.90\times10^{-10}$。这是相同目标的数值核验,不是对真实生物学关系的证明。

生产线性回归常使用QR/SVD等直接方法;梯度下降只是教学入口。大规模随机梯度、牛顿和拟牛顿方法有不同成本与停止规则。本页没有实现这些扩展。

求解接口见NumPy lstsq及SciPy optimize指南。统计目标来源见似然最大似然与MAP估计。