作业推导:
E [ d 2 ] = E [ ( S ( k ) − S e ( k ) ) 2 ] = E [ ( S ( k ) − ∑ i = 1 N a i S ( k − i ) ) 2 ] E\left[d^{2}\right]=E\left[\left(S(k)-S_{e}(k)\right)^{2}\right]=E\left[\left(S(k)-\sum_{i=1}^{N} a_{i} S(k-i)\right)^{2}\right] E[d2]=E[(S(k)−Se(k))2]=E⎣⎡(S(k)−i=1∑NaiS(k−i))2⎦⎤
为了满足最佳预测需求,令:
∂ E [ d 2 ] ∂ a i = 0 i = 1 , 2 , … , N \frac{\partial E\left[d^{2}\right]}{\partial a_{i}}=0 \quad i=1,2, \ldots, N ∂ai∂E[d2]=0i=1,2,…,N
有:
E [ 2 ( S ( k ) − ∑ m = 1 N a m S ( k − m ) ) S ( k − i ) ] = E [ 2 ( S ( k ) S ( k − i ) − ∑ m = 1 N a m S ( k − m ) S ( k − i ) ) ] = 0 E\left[2\left(S(k)-\sum_{m=1}^{N}a_{m} S(k-m)\right)S\left(k-i\right)\right]=E\left[2\left(S(k)S\left(k-i\right)-\sum_{m=1}^{N}a_{m} S(k-m)S\left(k-i\right)\right)\right]=0 E[2(S(k)−m=1∑NamS(k−m))S(k−i)]=E[2(S(k)S(k−i)−m=1∑NamS(k−m)S(k−i))]=0
那么可以得到:
E [ S ( k ) S ( k − i ) ] = E [ ( ∑ m = 1 N a m S ( k − m ) ) S ( k − i ) ] = ∑ m = 1 N E [ S ( k − m ) S ( k − i ) ) ] E\left[S(k\right)S\left(k-i)\right]=E\left[\left(\sum_{m=1}^{N}a_{m} S(k-m)\right)S\left(k-i\right)\right]=\sum_{m=1}^{N}E\left[S(k-m)S(k-i))\right] E[S(k)S(k−i)]=E[(m=1∑NamS(k−m))S(k−i)]=m=1∑NE[S(k−m)S(k−i))]
利用自相关函数的定义 R ( i ) = E [ S ( k ) S ( k − i ) ] , i = 0 , 1 , 2 , … , N − 1 \boldsymbol{R}(\boldsymbol{i})=\boldsymbol{E}[\boldsymbol{S}(\boldsymbol{k}) \boldsymbol{S}(\boldsymbol{k}-\boldsymbol{i})],i=0,1,2, \ldots, N-1 R(i)=E[S(k)S(k−i)],i=0,1,2,…,N−1,可以将上式展开为:
R ( 1 ) = a 1 R ( 0 ) + a 2 R ( 1 ) + ⋯ + a N R ( N − 1 ) R(1) = a_1R(0)+a_2R(1)+\cdots+a_NR(N-1) R(1)=a1R(0)+a2R(1)+⋯+aNR(N−1)
R ( 2 ) = a 1 R ( 1 ) + a 2 R ( 0 ) + ⋯ + a N R ( N − 2 ) R(2) = a_1R(1)+a_2R(0)+\cdots+a_NR(N-2) R(2)=a1R(1)+a2R(0)+⋯+aNR(N−2)
⋮ \vdots ⋮
R ( N ) = a 1 R ( N − 1 ) + a 2 R ( N − 2 ) + ⋯ + a N R ( 0 ) R(N) = a_1R(N-1)+a_2R(N-2)+\cdots+a_NR(0) R(N)=a1R(N−1)+a2R(N−2)+⋯+aNR(0)
写成矩阵形式即为:
[ R ( 1 ) R ( 2 ) ⋮ R ( N ) ] = [ R ( 0 ) R ( 1 ) ⋯ R ( N − 1 ) R ( 1 ) R ( 0 ) ⋯ R ( N − 2 ) ⋮ ⋮ ⋮ R ( N − 1 ) R ( N − 2 ) … R ( 0 ) ] [ a 1 a 2 ⋮ a N ] \left[\begin{array}{l}R(1) \\ R(2) \\ \vdots \\ R(N)\end{array}\right]=\left[\begin{array}{llll}R(0) & R(1) & \cdots & R(N-1) \\ R(1) & R(0) & \cdots & R(N-2) \\ \vdots & \vdots & & \vdots\\ R(N-1) &R(N-2) & \dots & R(0)\end{array}\right]\left[\begin{array}{l}a_{1} \\ a_{2} \\ \vdots \\ a_{N}\end{array}\right] ⎣⎢⎢⎢⎡R(1)R(2)⋮R(N)⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡R(0)R(1)⋮R(N−1)R(1)R(0)⋮R(N−2)⋯⋯…R(N−1)R(N−2)⋮R(0)⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡a1a2⋮aN⎦⎥⎥⎥⎤
假设需要描述一个解不存在的巨型方程组 A x = b A\boldsymbol{x}=\boldsymbol{b} Ax=b(比如线性回归问题),通常做法是寻找一个 x \boldsymbol{x} x,使得 A x A\boldsymbol{x} Ax尽量接近 b \boldsymbol{b} b。这里通常使用距离来描述近似,即找出使得 ∥ b − A x ∥ \|\mathbf{b}-A \mathbf{x}\| ∥b−Ax∥尽量小的 x \boldsymbol{x} x。
定义
If A A A is m × n m \times n m×n and b \mathbf{b} b is in R m \mathbb{R}^{m} Rm, a least-squares solution of A x = b A \mathbf{x}=\mathbf{b} Ax=b is an x ^ \hat{\mathbf{x}} x^ in R n \mathbb{R}^{n} Rn such that
∥ b − A x ^ ∥ ≤ ∥ b − A x ∥ \|\mathbf{b}-A \hat{\mathbf{x}}\| \leq\|\mathbf{b}-A \mathbf{x}\| ∥b−Ax^∥≤∥b−Ax∥
for all x \mathbf{x} x in R n \mathbb{R}^{n} Rn
定义损失函数 L ( x ) = ∑ i = 1 m ∥ A i x − b i ∥ 2 L(\boldsymbol{x})=\sum^m_{i=1}\|\boldsymbol{A}_i\boldsymbol{x}-b_i\|^2 L(x)=∑i=1m∥Aix−bi∥2,其中 A i \boldsymbol{A}_i Ai是A中的第i行。
可以对 L ( x ) L(\boldsymbol{x}) L(x)进行化简:
L ( x ) = ( x T A T − b T ) ( A x − b ) L(\boldsymbol{x})=(\boldsymbol{x}^TA^T-\boldsymbol{b}^T)(A\boldsymbol{x}-\boldsymbol{b}) L(x)=(xTAT−bT)(Ax−b)
展开可得
L ( x ) = ( A x ) T A x − 2 ( A x ) T b + b T b L(\boldsymbol{x})=(A\boldsymbol{x})^TA\boldsymbol{x}-2(A\boldsymbol{x})^T\boldsymbol{b}+\boldsymbol{b}^T\boldsymbol{b} L(x)=(Ax)TAx−2(Ax)Tb+bTb
那么现在的任务就是找到 x \boldsymbol{x} x满足 x = a r g ( m i n ( L ( x ) ) ) \boldsymbol{x}=arg(min(L(\boldsymbol{x}))) x=arg(min(L(x)))
令 ∂ L ( x ) x = 2 A T A x − 2 A T b = 0 \frac{\partial L(\boldsymbol{x})}{\boldsymbol{x}}=2A^TA\boldsymbol{x}-2A^T\boldsymbol{b}=0 x∂L(x)=2ATAx−2ATb=0
即 A T A x = A T b A^TA\boldsymbol{x}=A^T\boldsymbol{b} ATAx=ATb
当 A T A A^TA ATA可逆的时候,可以解得
x = ( A T A ) − 1 A T b \boldsymbol{x}=(A^TA)^{-1}A^T\boldsymbol{b} x=(ATA)−1ATb
计算时间复杂度为 O ( n 2 m ) O(n^2m) O(n2m).
当矩阵具有某些特殊结构的时候,可以使用算法快速求解最小二乘问题。
有时样本数目不够多或者样本的维度过大,那么就有可能造成过拟合。这时候可以采用正则化的方法,在损失函数中增加一些多余的项,如:
L ( x ) = ( x T A T − b T ) ( A x − b ) + ρ x T x L(\boldsymbol{x})=(\boldsymbol{x}^TA^T-\boldsymbol{b}^T)(A\boldsymbol{x}-\boldsymbol{b})+\rho \boldsymbol{x}^T\boldsymbol{x} L(x)=(xTAT−bT)(Ax−b)+ρxTx
使用负梯度作为搜算个方向。即令 Δ x = − ∇ f ( x ) \Delta{x}=-\nabla f(x) Δx=−∇f(x) 。
给定 初始点 x ∈ d o m f x\in \boldsymbol{dom} f x∈domf
重复进行
停止准则通常取为 ∥ ∇ f ( x ) ∥ ≤ η \|\nabla f(x)\|\le \eta ∥∇f(x)∥≤η。
梯度下降法考虑的是局部性质。对于许多问题,下降速度非常反满。当函数的等值曲线接近一个圆(球)时,最速下降法较快;当其为一个椭球时,最开始几步下降较快,后来就出现锯齿现象,下降缓慢。
牛顿法的思想是利用 f ( x ) f(x) f(x)的泰勒级数前面几项来寻找方程 f ( x ) = 0 f(x)=0 f(x)=0的根。
对于 x ∈ d o m f x\in \boldsymbol{dom} f x∈domf,称向量 Δ x n t = − ∇ 2 f ( x ) − 1 ∇ f ( x ) \Delta x_{\mathrm{nt}}=-\nabla^{2} f(x)^{-1} \nabla f(x) Δxnt=−∇2f(x)−1∇f(x)为f在x处的Newton步径。除非 ∇ f ( x ) = 0 \nabla f(x)=0 ∇f(x)=0,否则都会有:
∇ f ( x ) T Δ x n t = − ∇ f ( x ) T ∇ 2 f ( x ) − 1 ∇ f ( x ) < 0 \nabla f(x)^{T} \Delta x_{\mathrm{nt}}=-\nabla f(x)^{T} \nabla^{2} f(x)^{-1} \nabla f(x)<0 ∇f(x)TΔxnt=−∇f(x)T∇2f(x)−1∇f(x)<0
所以Newton步径是下降方向,除非x为最有点。
函数f在x处的二阶泰勒展开为 f ^ \hat{f} f^为:
f ^ ( x + v ) = f ( x ) + ∇ f ( x ) T v + 1 2 v T ∇ 2 f ( x ) v \widehat{f}(x+v)=f(x)+\nabla f(x)^{T} v+\frac{1}{2} v^{T} \nabla^{2} f(x) v f (x+v)=f(x)+∇f(x)Tv+21vT∇2f(x)v
这是v的二次凸函数,在 v = Δ x n t v=\Delta x_{nt} v=Δxnt处达到最小值。因此x加上Newton步径能够极小化f在x处的二阶近似。
将
λ ( x ) = ( ∇ f ( x ) T ∇ 2 f ( x ) − 1 ∇ f ( x ) ) 1 / 2 \lambda(x)=\left(\nabla f(x)^{T} \nabla^{2} f(x)^{-1} \nabla f(x)\right)^{1 / 2} λ(x)=(∇f(x)T∇2f(x)−1∇f(x))1/2
称为x处的Newton减量。
Newton减量也可以表示为 λ ( x ) = ( Δ x n t T ∇ 2 f ( x ) Δ x n t ) 1 / 2 \lambda(x)=\left(\Delta x_{\mathrm{nt}}^{T} \nabla^{2} f(x) \Delta x_{\mathrm{nt}}\right)^{1 / 2} λ(x)=(ΔxntT∇2f(x)Δxnt)1/2。在回溯直线搜索中可以呗解释为f在x处沿Newton步径方向的方向导数,即:
− λ ( x ) 2 = ∇ f ( x ) T Δ x n t = d d t f ( x + Δ x n t t ) ∣ t = 0 -\lambda(x)^{2}=\nabla f(x)^{T} \Delta x_{\mathrm{nt}}=\left.\frac{d}{d t} f\left(x+\Delta x_{\mathrm{nt}} t\right)\right|_{t=0} −λ(x)2=∇f(x)TΔxnt=dtdf(x+Δxntt)∣∣∣∣t=0
Newton减量也是仿射不变的。
给定 初始点 x ∈ d o m f x \in \boldsymbol{dom} f x∈domf,误差阈值 ϵ > 0 \epsilon>0 ϵ>0
重复进行
计算Newton步径和Newton减量.
Δ x n t : = − ∇ 2 f ( x ) − 1 ∇ f ( x ) ; λ 2 : = ∇ f ( x ) T ∇ 2 f ( x ) − 1 ∇ f ( x ) \Delta x_{\mathrm{nt}}:=-\nabla^{2} f(x)^{-1} \nabla f(x) ; \quad \lambda^{2}:=\nabla f(x)^{T} \nabla^{2} f(x)^{-1} \nabla f(x) Δxnt:=−∇2f(x)−1∇f(x);λ2:=∇f(x)T∇2f(x)−1∇f(x)
停止准则:如果 λ 2 / 2 ⩽ ϵ \lambda^{2} / 2 \leqslant \epsilon λ2/2⩽ϵ,退出.
直线搜素:通过回溯直线确定搜索步长t.
改进: x : = x + t Δ x n t x:=x+t\Delta x_{nt} x:=x+tΔxnt
高斯牛顿法适用于非线性最小二乘问题,并且只能处理二次函数.
对于非线性最小二乘问题 x = arg min x 1 2 ∥ f ( x ) ∥ 2 x=\arg \min _{x} \frac{1}{2}\|f(x)\|^{2} x=argminx21∥f(x)∥2
高斯牛顿法的思想是把 f ( x ) f(x) f(x)泰勒展开,取一阶近似项.
f ( x + Δ x ) = f ( x ) + f ′ ( x ) Δ x = f ( x ) + J ( x ) Δ x f(x+\Delta x)=f(x)+f^{\prime}(x) \Delta x=f(x)+J(x) \Delta x f(x+Δx)=f(x)+f′(x)Δx=f(x)+J(x)Δx
对上式求导,并令其为0.
有 J ( x ) T J ( x ) Δ x = − J ( x ) T f ( x ) J(x)^{T} J(x) \Delta x=-J(x)^{T} f(x) J(x)TJ(x)Δx=−J(x)Tf(x)
其中 J ( x ) = [ ∂ f ∂ x 1 ∂ f ∂ x 2 ] J(x)=\left[\begin{array}{c}\frac{\partial f}{\partial x_{1}} \\ \frac{\partial f}{\partial x_{2}}\end{array}\right] J(x)=[∂x1∂f∂x2∂f].
令 H = J T J , B = − J T f H=J^{T} J, \quad B=-J^{T} f H=JTJ,B=−JTf,则上式可化为 H Δ x = B H\Delta x = B HΔx=B,从而可以得到调整量 Δ x \Delta x Δx.这就要求H可逆。
给定 初始点 x ∈ d o m f x \in \boldsymbol{dom} f x∈domf
重复进行