一 问题描述
在求解最优化问题时,往往引入正则化的概念,用来防止在数据样本不够时产生过拟合问题。
二 正则化模型
2.1 普通最小二乘问题
本文以最小二乘问题为例,阐述如何求解。普通最小二乘问题如下:
A∗x=bx=argmin(∣∣b−A∗x∣∣2)
A*x=b \\
x = arg \quad min(||b-A*x||^2)
A∗x=bx=argmin(∣∣b−A∗x∣∣2)
2.2 正则化最小二乘问题
因为出现过拟合时,多项时系数的平方和比较大,所以对求解结果x的模本身增加约束。
A∗x=bx=argmin(∣∣b−A∗x∣∣2+σi2∗Σxi2)
A*x=b\\
x = arg \quad min(||b-A*x||^2 + \sigma_i^2 *\Sigma x_i^2)
A∗x=bx=argmin(∣∣b−A∗x∣∣2+σi2∗Σxi2)
三 正则化模型求解
3.1 普通最小二乘解
x=(ATA)−1ATb x= (A^TA)^{-1}A^Tb x=(ATA)−1ATb
3.2 梯度下降法
正则化增加了残差项,可以使用梯度下降法。
∂f∂x=2∗(ATA∗x−ATb+σi2∗Σxi)
\frac{\partial f}{\partial x} = 2*(A^TA*x -A^Tb+\sigma_i^2*\Sigma x_i)
∂x∂f=2∗(ATA∗x−ATb+σi2∗Σxi)
3.3 增加约束方程
同时增加残差项也相当于增加约束方程。数学问题等同如下。
A∗x=bσi∗xi=0
A*x=b \\
\sigma_i*x_i = 0
A∗x=bσi∗xi=0
进一步化简为
Areg∗x=breg
A_{reg}*x=b_{reg} \\
Areg∗x=breg
其中各表达式如下
Σ=diag([σ1,σ2,...,σn])Areg=[AΣ]breg=[b0]
\Sigma = diag([\sigma_1, \sigma_2, ... , \sigma_n]) \\
A_{reg} = \begin{bmatrix}
A\\
\Sigma
\end{bmatrix} \\
b_{reg} = \begin{bmatrix}
b\\
0
\end{bmatrix} \\
Σ=diag([σ1,σ2,...,σn])Areg=[AΣ]breg=[b0]
最小二乘法求解
x=(AregT∗Areg)−1∗AregT∗breg
x = (A_{reg}^T*A_{reg})^{-1}*A_{reg}^T*b_{reg}
x=(AregT∗Areg)−1∗AregT∗breg
四 举一反三
4.1 非线性问题类推
正则化过程的本质是如3.3 所述引入了约束方程,防止多项式系数过大产生过拟合现象。非线性优化问题同样可以引入方程进行同样的正则化。只是求误差解雅克比矩阵也分成两部分,观测量部分也分成两部分。
f(x)=bσi∗xi=0
f(x)=b \\
\sigma_i*x_i = 0
f(x)=bσi∗xi=0
误差函数也分为两部分
f1=f(x)−bf2=xi−0=xi
f_1 = f(x)-b\\
f_2 = x_i - 0 =x_i
f1=f(x)−bf2=xi−0=xi
求出误差函数的雅克比
J1=∂f1∂x=∂f∂xJ2=∂f2∂x=diag([σ1,σ2,...,σn])J=[J1J2]
J1 = \frac{\partial f_1}{\partial x} = \frac{\partial f}{\partial x} \\
\\
J2 = \frac{\partial f_2}{\partial x} =diag([\sigma_1, \sigma_2, ... , \sigma_n]) \\
J = \begin{bmatrix}
J1\\
J2
\end{bmatrix} \\
J1=∂x∂f1=∂x∂fJ2=∂x∂f2=diag([σ1,σ2,...,σn])J=[J1J2]
初始化状态量x为X0,求出误差量。
deltaY=[f(X⃗0)−bX⃗0]
deltaY = \begin{bmatrix}
f(\vec X_0) - b\\
\vec X_0
\end{bmatrix} \\
deltaY=[f(X0)−bX0]
高斯牛顿法求解
deltaX=(JT∗J)−1∗JT∗deltaYX=X0−deltaX
deltaX = (J^T*J)^{-1}*J^T*deltaY\\
X = X_0-deltaX
deltaX=(JT∗J)−1∗JT∗deltaYX=X0−deltaX
4.2 其它增加误差项的问题类型
非线性优化问题,经常增加各种各样的误差约束项,来求出最优解,导致求解雅克比变得复杂。由4.1 可知,通过增加约束方程,可以分解为各个误差量单独求雅克比,再把雅克比矩阵拼起来,运用高斯牛顿法求解。
第一步 确定所有约束方程,以及各方程权重。
第二步 构造误差向量,确定每一维误差向量表达式。(往往一类误差一个表达式)
第三步 对每一维误差求出雅克比。
第四步 把雅克比拼接起来,得到总雅克比。
第五步 运用高斯牛顿法迭代求解。
文章探讨了正则化在解决最小二乘问题中的作用,特别是在防止过拟合方面。通过引入约束方程,文章介绍了如何使用梯度下降法求解正则化最小二乘问题,以及如何将这种方法推广到非线性优化问题中,运用高斯牛顿法求解复杂雅可比矩阵。
2308

被折叠的 条评论
为什么被折叠?



