优化方法
什么是最小二乘?
通过最小化误差的平方和,找到最优解,使得预测值与观测值之间的差异最小
minF(x)=12∣∣fx∣∣22 minF(x) = \frac{1}{2} ||fx||^2_2 minF(x)=21∣∣fx∣∣22
-
f简单时,线性最小二乘,令导数为0,求解最优值
-
f 复杂的时候,用迭代法求解
。给定初值x_0
- 对于第k次迭代,寻找增量 Δxk\Delta x_kΔxk 使得 ∣∣f(xk+Δxk)∣∣|| f(x_k + \Delta x_k)||∣∣f(xk+Δxk)∣∣ 最小
- 足够小,就停止
- 否则,xk+1=xk+Δxkx_k+1= x_k+ \Delta x_kxk+1=xk+Δxk
问题是,怎么找增量?
一阶梯度法 : 最速下降法/梯度下降法
二阶梯度法:牛顿法,高斯牛顿法
最小二乘的数学形式
(1) 线性最小二乘
给定一个线性方程组:
y=Ax+ϵ
y=Ax+ϵ
y=Ax+ϵ
其中:
- y∈Rm 是观测数据(测量值),
- A∈Rm×n是设计矩阵(已知),
- x∈Rn 是待求参数,
- ϵ∈Rm是噪声或误差。
解析解(当 ATAA^T AATA 可逆时):
x∗=(ATA)−1ATy
x^*= (A^TA)^{-1}A^Ty
x∗=(ATA)−1ATy
(2) 非线性最小二乘
如果模型是非线性的(如 y=f(x,θ)),则通过 迭代优化(如高斯-牛顿法、Levenberg-Marquardt)求解
最小二乘的解法
(1) 直接法(解析解)
- 适用于小规模问题,计算 (ATA)−1ATy(A^TA)^{-1}A^Ty(ATA)−1ATy
- 缺点:当 ATAA^TAATA 病态时,数值不稳定。
(2) QR 分解
将 A分解为正交矩阵 Q 和上三角矩阵 R:
A=QR⇒x=R−1QTy
A=QR⇒x = R^{-1}Q^Ty
A=QR⇒x=R−1QTy
优点:数值稳定性更高。
(3) 奇异值分解(SVD)
对 A 进行 SVD:
A=UΣVT⇒x=VΣ−1UTy
A=UΣVT⇒x=VΣ^{-1}U^Ty
A=UΣVT⇒x=VΣ−1UTy
优点:适用于病态矩阵(如秩亏情况)。
(4) 迭代优化(非线性问题)
- 高斯-牛顿法:局部线性化迭代。
- Levenberg-Marquardt:结合梯度下降和高斯-牛顿,鲁棒性更强。
非线性优化方法:
(1) 梯度下降法
是一种基于一阶导数的优化算法,当前位置的负梯度方向为搜索方向,下降的最快,梯度下降得到解的有可能是局部最优解
为什么负梯度方向下降的最快?
因为根据泰勒展开,f(x k+1) - f(xk) 小于0的时候,就在变小,绝对值最大的时候,就达到最小,所以说负梯度方向是下降最快的
为什么说梯度下降得到解的有可能是局部最优解
凸函数可以达到全局最优,但是非凸函数的局部最优性,每一步只考虑当前点的梯度方向,而**无法感知全局结构,比如先平稳再突然上升再平稳的数据
最小二乘法和梯度下降法的区别
- 最小二乘得到解的是全局最优解;而梯度下降得到解的有可能是局部最优解
最小二乘通过对自变量和因变量进行数学变换求导,直接到达最低点,不需要透代(不给参数θ的值,直接求出最优θ)
- 梯度下降是先估计一组参数,然后按照梯度的反方向修正参数,反复迭代获取最低点(给参数θ的值,逐步得到最优θ
(2) 牛顿法
利用二阶导数,求解非线性方程或者优化问题,收敛速度快
求增量的解:
J+HΔx=0=>HΔx=−J
J + H\Delta x = 0 =>H\Delta x=-J
J+HΔx=0=>HΔx=−J
缺点:需要计算复杂的H矩阵,而且H不一定是正定矩阵,只有是正定矩阵,牛顿法的方向才是下降方向
(3)高斯牛顿
用一阶泰勒展开近似非线性函数,将非线性最小二乘问题转化为一系列线性最小二乘问题,逐步迭代优化参数。
J(x)JT(x)Δx=−J(x)f(x)=>HΔxk=g
J(x)J^T(x)\Delta x = -J(x)f(x) => H\Delta x_k = g
J(x)JT(x)Δx=−J(x)f(x)=>HΔxk=g
用 JTJJ^TJJTJ 作为牛顿法 H 矩阵的近似,它是半正定的
步骤:
1.给定初值 x0
2.对于第k次迭代,求出当前的雅克比矩阵J(xk)J(x_k)J(xk) 和 误差 f(xk)f(x_k)f(xk)
3.求解增量方程 HΔxk=gH\Delta x_k = gHΔxk=g ----> Δxk=H−1g\Delta x_k = H^{-1}gΔxk=H−1g
4.Δxk\Delta x_kΔxk 足够小,就停止,否则,xk+1=xk+Δxkx_k+1= x_k+ \Delta x_kxk+1=xk+Δxk
缺点,无法保证H 可逆,依赖初始值
(4)列文伯格-马夸尔特方法
结合了梯度下降法和高斯-牛顿法的优点,动态调整阻尼因子
和高斯牛顿的区别?
-
高斯牛顿属于线搜索:先找到方向,再确定长度
-
L-M 属于信赖区域方法,认为近似只在区域内可靠
ρ=f(x+Δx)−f(x)J(x)Δx \rho = \frac{f(x+\Delta x) - f(x)}{J(x)\Delta x} ρ=J(x)Δxf(x+Δx)−f(x)
分子 : 实际改变量 ,因为 f(x+Δx)=f(x)+J(x)Δxf(x+\Delta x) =f(x) + J(x) \Delta xf(x+Δx)=f(x)+J(x)Δx
分母 : 近似改变量
ρ\rhoρ 判断泰勒近似是好还是不好
在H对角线上加上单位矩阵,解决H原来不满秩,或者非正定
(H+λI)Δxk=g
(H + \lambda I)\Delta x_k = g
(H+λI)Δxk=g
当 λ\lambdaλ 小,H占主要地位 ,说明二次近似模型在该范围是比较好的,接近于高斯牛顿
当 λ\lambdaλ 小,λI\lambda IλI 占主要地位 ,说明二次近似不好,接近于一阶梯度下降法