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

文章探讨了正则化在解决最小二乘问题中的作用,特别是在防止过拟合方面。通过引入约束方程,文章介绍了如何使用梯度下降法求解正则化最小二乘问题,以及如何将这种方法推广到非线性优化问题中,运用高斯牛顿法求解复杂雅可比矩阵。

一 问题描述

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

二 正则化模型

2.1 普通最小二乘问题

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

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) Ax=bx=argmin(∣∣bAx2+σ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) xf=2(ATAxATb+σi2Σxi)

3.3 增加约束方程

同时增加残差项也相当于增加约束方程。数学问题等同如下。
A∗x=bσi∗xi=0 A*x=b \\ \sigma_i*x_i = 0 Ax=bσixi=0
进一步化简为
Areg∗x=breg A_{reg}*x=b_{reg} \\ Aregx=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=(AregTAreg)1AregTbreg

四 举一反三

4.1 非线性问题类推

正则化过程的本质是如3.3 所述引入了约束方程,防止多项式系数过大产生过拟合现象。非线性优化问题同样可以引入方程进行同样的正则化。只是求误差解雅克比矩阵也分成两部分,观测量部分也分成两部分。
f(x)=bσi∗xi=0 f(x)=b \\ \sigma_i*x_i = 0 f(x)=bσixi=0
误差函数也分为两部分
f1=f(x)−bf2=xi−0=xi f_1 = f(x)-b\\ f_2 = x_i - 0 =x_i f1=f(x)bf2=xi0=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=xf1=xfJ2=xf2=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=(JTJ)1JTdeltaYX=X0deltaX

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值