作业推导:

E[d2]=E[(S(k)Se(k))2]=E[(S(k)i=1NaiS(ki))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]ai=0i=1,2,,N\frac{\partial E\left[d^{2}\right]}{\partial a_{i}}=0 \quad i=1,2, \ldots, N

有:

E[2(S(k)miNamS(km))S(ki)]=E[2(S(k)S(ki)miNamS(km)S(ki))]=0E\left[2\left(S(k)-\sum_{m\neq{i}}^{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\neq{i}}^{N}a_{m} S(k-m)S\left(k-i\right)\right)\right]=0

那么可以得到:

E[S(k)S(ki)]=E[(miNamS(km))S(ki)]=miNE[S(km)S(ki))]E\left[S(k\right)S\left(k-i)\right]=E\left[\left(\sum_{m\neq{i}}^{N}a_{m} S(k-m)\right)S\left(k-i\right)\right]=\sum_{m\neq{i}}^{N}E\left[S(k-m)S(k-i))\right]

利用自相关函数的定义R(i)=E[S(k)S(ki)],i=0,1,2,,N1\boldsymbol{R}(\boldsymbol{i})=\boldsymbol{E}[\boldsymbol{S}(\boldsymbol{k}) \boldsymbol{S}(\boldsymbol{k}-\boldsymbol{i})],i=0,1,2, \ldots, N-1,可以将上式展开为:

R(1)=a1R(0)+a2R(1)++aNR(N1)R(1) = a_1R(0)+a_2R(1)+\cdots+a_NR(N-1)

R(2)=a1R(1)+a2R(0)++aNR(N2)R(2) = a_1R(1)+a_2R(0)+\cdots+a_NR(N-2)

\vdots

R(N)=a1R(N1)+a2R(N2)++aNR(0)R(N) = a_1R(N-1)+a_2R(N-2)+\cdots+a_NR(0)

写成矩阵形式即为:

[R(1)R(2)R(N)]=[R(0)R(1)R(N1)R(1)R(0)R(N2)R(N1)R(N2)R(0)][a1a2aN]\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]

最小二乘法

假设需要描述一个解不存在的巨型方程组Ax=bA\boldsymbol{x}=\boldsymbol{b}(比如线性回归问题),通常做法是寻找一个x\boldsymbol{x},使得AxA\boldsymbol{x}尽量接近b\boldsymbol{b}。这里通常使用距离来描述近似,即找出使得bAx\|\mathbf{b}-A \mathbf{x}\|尽量小的x\boldsymbol{x}

定义

If AA is m×nm \times n and b\mathbf{b} is in Rm\mathbb{R}^{m}, a least-squares solution of Ax=bA \mathbf{x}=\mathbf{b} is an x^\hat{\mathbf{x}} in Rn\mathbb{R}^{n} such that

bAx^bAx\|\mathbf{b}-A \hat{\mathbf{x}}\| \leq\|\mathbf{b}-A \mathbf{x}\|
for all x\mathbf{x} in Rn\mathbb{R}^{n}

定义损失函数L(x)=i=1mAixbi2L(\boldsymbol{x})=\sum^m_{i=1}\|\boldsymbol{A}_i\boldsymbol{x}-b_i\|^2,其中Ai\boldsymbol{A}_i是A中的第i行。

可以对L(x)L(\boldsymbol{x})进行化简:

L(x)=(xTATbT)(Axb)L(\boldsymbol{x})=(\boldsymbol{x}^TA^T-\boldsymbol{b}^T)(A\boldsymbol{x}-\boldsymbol{b})

展开可得

L(x)=(Ax)TAx2(Ax)Tb+bTbL(\boldsymbol{x})=(A\boldsymbol{x})^TA\boldsymbol{x}-2(A\boldsymbol{x})^T\boldsymbol{b}+\boldsymbol{b}^T\boldsymbol{b}

那么现在的任务就是找到x\boldsymbol{x}满足x=arg(min(L(x)))\boldsymbol{x}=arg(min(L(\boldsymbol{x})))

L(x)x=2ATAx2ATb=0\frac{\partial L(\boldsymbol{x})}{\boldsymbol{x}}=2A^TA\boldsymbol{x}-2A^T\boldsymbol{b}=0

ATAx=ATbA^TA\boldsymbol{x}=A^T\boldsymbol{b}

ATAA^TA可逆的时候,可以解得

x=(ATA)1ATb\boldsymbol{x}=(A^TA)^{-1}A^T\boldsymbol{b}

计算时间复杂度为O(n2m)O(n^2m).

当矩阵具有某些特殊结构的时候,可以使用算法快速求解最小二乘问题。

有时样本数目不够多或者样本的维度过大,那么就有可能造成过拟合。这时候可以采用正则化的方法,在损失函数中增加一些多余的项,如:

L(x)=(xTATbT)(Axb)+ρxTxL(\boldsymbol{x})=(\boldsymbol{x}^TA^T-\boldsymbol{b}^T)(A\boldsymbol{x}-\boldsymbol{b})+\rho \boldsymbol{x}^T\boldsymbol{x}

算法

梯度下降

使用负梯度作为搜算个方向。即令Δx=f(x)\Delta{x}=-\nabla f(x)

步骤

给定 初始点xdomfx\in \boldsymbol{dom} f

重复进行

  • Δx:=f(x)\Delta{x}:=-\nabla f(x)
    • 检验是否满足停止准则,如果满足则停止。不满足则进行后续步骤。
    • 直线搜索。通过精确或回溯直线搜索方法确定步长t。
    • 修改x:=x+tΔxx:=x+t\Delta x

停止准则通常取为f(x)η\|\nabla f(x)\|\le \eta

梯度下降法考虑的是局部性质。对于许多问题,下降速度非常反满。当函数的等值曲线接近一个圆(球)时,最速下降法较快;当其为一个椭球时,最开始几步下降较快,后来就出现锯齿现象,下降缓慢。

牛顿法

牛顿法的思想是利用f(x)f(x)的泰勒级数前面几项来寻找方程f(x)=0f(x)=0的根。

Newton步径

对于xdomfx\in \boldsymbol{dom} f,称向量Δxnt=2f(x)1f(x)\Delta x_{\mathrm{nt}}=-\nabla^{2} f(x)^{-1} \nabla f(x)为f在x处的Newton步径。除非f(x)=0\nabla f(x)=0,否则都会有:

f(x)TΔxnt=f(x)T2f(x)1f(x)<0\nabla f(x)^{T} \Delta x_{\mathrm{nt}}=-\nabla f(x)^{T} \nabla^{2} f(x)^{-1} \nabla f(x)<0

所以Newton步径是下降方向,除非x为最有点。

函数f在x处的二阶泰勒展开为f^\hat{f}为:

f^(x+v)=f(x)+f(x)Tv+12vT2f(x)v\widehat{f}(x+v)=f(x)+\nabla f(x)^{T} v+\frac{1}{2} v^{T} \nabla^{2} f(x) v

这是v的二次凸函数,在v=Δxntv=\Delta x_{nt}处达到最小值。因此x加上Newton步径能够极小化f在x处的二阶近似。

最小二乘法,梯度下降,牛顿法以及高斯牛顿法

Newton减量

λ(x)=(f(x)T2f(x)1f(x))1/2\lambda(x)=\left(\nabla f(x)^{T} \nabla^{2} f(x)^{-1} \nabla f(x)\right)^{1 / 2}

称为x处的Newton减量

Newton减量也可以表示为λ(x)=(ΔxntT2f(x)Δxnt)1/2\lambda(x)=\left(\Delta x_{\mathrm{nt}}^{T} \nabla^{2} f(x) \Delta x_{\mathrm{nt}}\right)^{1 / 2}。在回溯直线搜索中可以呗解释为f在x处沿Newton步径方向的方向导数,即:

λ(x)2=f(x)TΔxnt=ddtf(x+Δxntt)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}

Newton减量也是仿射不变的。

算法步骤

给定 初始点xdomfx \in \boldsymbol{dom} f,误差阈值ϵ>0\epsilon>0

重复进行

  1. 计算Newton步径和Newton减量.

    Δxnt:=2f(x)1f(x);λ2:=f(x)T2f(x)1f(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)

  2. 停止准则:如果λ2/2ϵ\lambda^{2} / 2 \leqslant \epsilon,退出.

  3. 直线搜素:通过回溯直线确定搜索步长t.

  4. 改进:x:=x+tΔxntx:=x+t\Delta x_{nt}

高斯牛顿法

高斯牛顿法适用于非线性最小二乘问题,并且只能处理二次函数.

对于非线性最小二乘问题x=argminx12f(x)2x=\arg \min _{x} \frac{1}{2}\|f(x)\|^{2}

高斯牛顿法的思想是把f(x)f(x)泰勒展开,取一阶近似项.

f(x+Δx)=f(x)+f(x)Δx=f(x)+J(x)Δxf(x+\Delta x)=f(x)+f^{\prime}(x) \Delta x=f(x)+J(x) \Delta x

对上式求导,并令其为0.

J(x)TJ(x)Δx=J(x)Tf(x)J(x)^{T} J(x) \Delta x=-J(x)^{T} f(x)

其中J(x)=[fx1fx2]J(x)=\left[\begin{array}{c}\frac{\partial f}{\partial x_{1}} \\ \frac{\partial f}{\partial x_{2}}\end{array}\right].

H=JTJ,B=JTfH=J^{T} J, \quad B=-J^{T} f,则上式可化为HΔx=BH\Delta x = B,从而可以得到调整量Δx\Delta x.这就要求H可逆。

步骤

给定 初始点xdomfx \in \boldsymbol{dom} f

重复进行

  1. 计算J,H,BJ,H,B,从而得到Δx\Delta x
  2. 如果满足停止准则则退出
  3. 改进:x:=x+tΔxntx:=x+t\Delta x_{nt}

相关文章:

  • 2021-04-09
  • 2021-06-09
  • 2021-11-17
  • 2022-01-02
  • 2022-01-01
  • 2021-04-26
猜你喜欢
  • 2021-09-26
  • 2021-05-25
  • 2021-11-27
  • 2021-07-31
  • 2021-11-28
  • 2022-12-23
  • 2021-04-22
相关资源
相似解决方案