第十九篇 正则化后求解优化问题

一 问题描述

在求解最优化问题时,往往引入正则化的概念,用来防止在数据样本不够时产生过拟合问题。

二 正则化模型

2.1 普通最小二乘问题

本文以最小二乘问题为例,阐述如何求解。普通最小二乘问题如下:
A ∗ x = b x = a r g m i n ( ∣ ∣ b − A ∗ x ∣ ∣ 2 ) A*x=b \\ x = arg \quad min(||b-A*x||^2) Ax=bx=argmin(∣∣bAx2)

2.2 正则化最小二乘问题

因为出现过拟合时,多项时系数的平方和比较大,所以对求解结果x的模本身增加约束。
A ∗ x = b x = a r g m i n ( ∣ ∣ b − A ∗ x ∣ ∣ 2 + σ i 2 ∗ Σ x i 2 ) A*x=b\\ x = arg \quad min(||b-A*x||^2 + \sigma_i^2 *\Sigma x_i^2) Ax=bx=argmin(∣∣bAx2+σi2Σxi2)

三 正则化模型求解

3.1 普通最小二乘解

x = ( A T A ) − 1 A T b x= (A^TA)^{-1}A^Tb x=(ATA)1ATb

3.2 梯度下降法

正则化增加了残差项,可以使用梯度下降法。
∂ f ∂ x = 2 ∗ ( A T A ∗ x − A T b + σ i 2 ∗ Σ x i ) \frac{\partial f}{\partial x} = 2*(A^TA*x -A^Tb+\sigma_i^2*\Sigma x_i) xf=2(ATAxATb+σi2Σxi)

3.3 增加约束方程

同时增加残差项也相当于增加约束方程。数学问题等同如下。
A ∗ x = b σ i ∗ x i = 0 A*x=b \\ \sigma_i*x_i = 0 Ax=bσixi=0
进一步化简为
A r e g ∗ x = b r e g A_{reg}*x=b_{reg} \\ Aregx=breg
其中各表达式如下
Σ = d i a g ( [ σ 1 , σ 2 , . . . , σ n ] ) A r e g = [ A Σ ] b r e g = [ b 0 ] \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 = ( A r e g T ∗ A r e g ) − 1 ∗ A r e g T ∗ b r e g x = (A_{reg}^T*A_{reg})^{-1}*A_{reg}^T*b_{reg} x=(AregTAreg)1AregTbreg

四 举一反三

4.1 非线性问题类推

正则化过程的本质是如3.3 所述引入了约束方程,防止多项式系数过大产生过拟合现象。非线性优化问题同样可以引入方程进行同样的正则化。只是求误差解雅克比矩阵也分成两部分,观测量部分也分成两部分。
f ( x ) = b σ i ∗ x i = 0 f(x)=b \\ \sigma_i*x_i = 0 f(x)=bσixi=0
误差函数也分为两部分
f 1 = f ( x ) − b f 2 = x i − 0 = x i f_1 = f(x)-b\\ f_2 = x_i - 0 =x_i f1=f(x)bf2=xi0=xi
求出误差函数的雅克比
J 1 = ∂ f 1 ∂ x = ∂ f ∂ x J 2 = ∂ f 2 ∂ x = d i a g ( [ σ 1 , σ 2 , . . . , σ n ] ) J = [ J 1 J 2 ] 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=xf1=xfJ2=xf2=diag([σ1,σ2,...,σn])J=[J1J2]
初始化状态量x为X0,求出误差量。
d e l t a Y = [ f ( X ⃗ 0 ) − b X ⃗ 0 ] deltaY = \begin{bmatrix} f(\vec X_0) - b\\ \vec X_0 \end{bmatrix} \\ deltaY=[f(X 0)bX 0]
高斯牛顿法求解
d e l t a X = ( J T ∗ J ) − 1 ∗ J T ∗ d e l t a Y X = X 0 − d e l t a X deltaX = (J^T*J)^{-1}*J^T*deltaY\\ X = X_0-deltaX deltaX=(JTJ)1JTdeltaYX=X0deltaX

4.2 其它增加误差项的问题类型

非线性优化问题,经常增加各种各样的误差约束项,来求出最优解,导致求解雅克比变得复杂。由4.1 可知,通过增加约束方程,可以分解为各个误差量单独求雅克比,再把雅克比矩阵拼起来,运用高斯牛顿法求解。

第一步 确定所有约束方程,以及各方程权重。
第二步 构造误差向量,确定每一维误差向量表达式。(往往一类误差一个表达式)
第三步 对每一维误差求出雅克比。
第四步 把雅克比拼接起来,得到总雅克比。
第五步 运用高斯牛顿法迭代求解。

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值