统计计算一|非线性方程的求解

系列文章目录

常见优化器对比:梯度下降法、带动量的梯度下降法、Adagrad、RMSProp、Adam


一、最大似然估计,频率派和贝叶斯学派

(一)似然函数

给定输出 X X X时,关于参数 Θ \Theta Θ的似然函数 L ( Θ ∣ X ) L(\Theta|X) L(Θ∣X)在数值上等于给定参数 Θ \Theta Θ后变量 X X X的概率。如果 X = { x 1 , . . . , x n } X=\{x_1,...,x_n\} X={x1,...,xn}是独立同分布(i.i.d)的,每个变量都服从密度函数 f ( x ∣ Θ ) f(x|\Theta) f(x∣Θ),该密度函数依赖于 p p p个未知参数组成的向量 Θ = { θ 1 , . . . , θ p } \Theta=\{\theta_1,...,\theta_p\} Θ={θ1,...,θp},那么联合似然函数就为:
L ( Θ ∣ X ) = ∏ i = 1 n f ( x i ∣ Θ ) L(\Theta|X)=\prod_{i=1}^nf(x_i|\Theta) L(Θ∣X)=i=1nf(xi∣Θ)
当数据不是独立同分布时,联合似然函数仍然表示关于 Θ \Theta Θ的联合密度: f ( x 1 , . . . , x n ∣ Θ ) f(x_1,...,x_n|\Theta) f(x1,...,xn∣Θ)

(二)频率学派

1、参数估计

对频率学派来说,参数是固定的,通常使用MLE的方法来估计参数,寻找以较高概率产生观察数据的参数值。似然函数在MLE Θ ^ \hat{\Theta} Θ^处达到最大值:
Θ ^ = a r g m a x Θ L ( Θ ∣ X ) = a r g m a x Θ l ( Θ ∣ X ) \hat{\Theta}=\mathop{\mathrm{argmax}}\limits_{\Theta}{L(\Theta|X)}=\mathop{\mathrm{argmax}}\limits_{\Theta}{l(\Theta|X)} Θ^=ΘargmaxL(Θ∣X)=Θargmaxl(Θ∣X)
其中 l ( Θ ∣ X ) l(\Theta|X) l(Θ∣X)是对数似然函数。在相当普遍的条件下,当 n → ∞ n\rightarrow ∞ n时, Θ ^ \hat{\Theta} Θ^是渐进无偏的。

2、得分函数

求解MLE,即寻找 l ′ ( θ ∣ x ) = 0 l'(\theta|x)=0 l(θx)=0的根。其中偏导数 l ′ ( θ ∣ x ) l'(\theta|x) l(θx)就是得分函数

  • 得分函数关于 x x x θ \theta θ固定下的条件期望为0:
    E [ ∂ ∂ θ l o g f ( x ; θ ) ∣ θ ] = ∫ R   ∂ ∂ θ f ( x ; θ ) f ( x ; θ ) f ( x ; θ ) d x = ∂ ∂ θ ∫ R f ( x ; θ ) d x = 0 E[\frac{\partial}{\partial \theta}log f(x;\theta)|\theta]=\int_ {R} \,\frac{\frac{\partial}{\partial \theta}f(x;\theta)}{f(x;\theta)}f(x;\theta){\rm d}x=\frac{\partial}{\partial \theta}\int_ {R} f(x;\theta){\rm d}x=0 E[θlogf(x;θ)θ]=Rf(x;θ)θf(x;θ)f(x;θ)dx=θRf(x;θ)dx=0

其中, ∫ R f ( x ; θ ) d x = 1 \int_ {R} f(x;\theta){\rm d}x=1 Rf(x;θ)dx=1

  • 得分函数的方差等于Fisher信息:
    V a r ( U ( θ ) ) = I ( θ ) = E [ ( ∂ l ( θ ) ∂ θ ) 2 ] Var(U(\theta))=I(\theta)=E[(\frac{\partial l(\theta)}{\partial \theta})^2] Var(U(θ))=I(θ)=E[(θl(θ))2]

3、Fisher信息

Fisher 信息是统计学和信息理论中的一个重要概念,用于量化一个参数估计问题中数据对参数信息的敏感程度。具体来说,Fisher 信息度量了参数变化对似然函数变化的影响,被定义为得分函数关于 x x x 的方差:

I ( θ ) = E [ ( ∂ ∂ θ l o g f ( x ; θ ) ) 2 ∣ θ ] = ∫ R   ( ∂ ∂ θ l o g f ( x ; θ ) ) 2 f ( x ; θ ) d x I(\theta)=E[(\frac{\partial}{\partial \theta}log f(x;\theta))^2|\theta]=\int_ {R} \,(\frac{\partial}{\partial \theta}{logf(x;\theta)})^2f(x;\theta){\rm d}x I(θ)=E[(θlogf(x;θ))2θ]=R(θlogf(x;θ))2f(x;θ)dx
如果 l o g f ( x ; θ ) logf(x;\theta) logf(x;θ)对于 θ \theta θ具有两次可微性,并且在一定的正则条件下,Fisher信息也可以写成:
I ( θ ) = − E [ ∂ 2 ∂ θ 2 l o g f ( x ; θ ) ∣ θ ] I(\theta)=-E[\frac{\partial^2}{\partial \theta^2}log f(x;\theta)|\theta] I(θ)=E[θ22logf(x;θ)θ]

证明过程:
在这里插入图片描述

4、多元Fisher信息

多元情形下的 Fisher 信息度量多个参数对似然函数的敏感性,并且涉及 Fisher 信息矩阵:
I ( θ ) : = E { l ′ ( θ ) l ′ ( θ ) T } = − E { l ′ ′ ( θ ) } = − E { Δ 2 l ( θ ) } I(\theta):=E\{l'(\theta)l'(\theta)^T\}=-E\{l''(\theta)\}=-E\{\Delta^2l(\theta)\} I(θ):=E{l(θ)l(θ)T}=E{l′′(θ)}=E{Δ2l(θ)}
其中, l ′ ′ ( θ ) l''(\theta) l′′(θ)表示一个 p × p p\times p p×p的矩阵,矩阵的第 ( i , j ) (i,j) (i,j)个元素为 ∂ 2 l ( θ ) / ( ∂ θ i ∂ θ j ) \partial^2l(\theta)/(\partial\theta_i\partial\theta_j) 2l(θ)/(θiθj)

  • 期望Fisher信息: I ( θ ) I(\theta) I(θ)
  • 观测Fisher信息: − l ′ ′ ( θ ) -l''(\theta) l′′(θ)

在正则条件下,MLE θ ^ \hat{\theta} θ^的渐进方差-协方差矩阵是 I ( θ ∗ ) − 1 I(\theta^*)^{-1} I(θ)1,其中 θ ∗ \theta^* θ表示 θ \theta θ的真实值。当 n → ∞ n\rightarrow ∞ n时, θ ^ \hat{\theta} θ^的极限分布是:
N p ( θ ∗ , I ( θ ∗ ) − 1 ) N_p(\theta^*,I(\theta^*)^{-1}) Np(θ,I(θ)1)

5、正态分布未知参数的MLE估计

在这里插入图片描述

有些似然函数太复杂,无法通过分析求解(如涉及多元正态分布的情况),寻找最大似然估计(MLE)→ 优化问题 → 解非线性方程。

(三)贝叶斯学派

贝叶斯统计是统计学的一个分支,强调通过结合数据和先验信息来更新对参数的认知。贝叶斯学派基于贝叶斯定理,该定理为在观察数据后更新信念提供了一种正式的方法。贝叶斯学派假设参数是随机的。

  • 先验分布 π ( Θ ) \pi(\Theta) π(Θ):关于参数的一些先验信息(例如先前的知识、专家建议)
  • 似然函数 L ( Θ ∣ X ) L(\Theta|X) L(Θ∣X):与频率统计中的定义相同
  • 后验分布 f ( Θ ∣ X ) f(\Theta|X) f(Θ∣X):在观察数据后更新对参数的信息

f ( Θ ∣ X ) = f ( Θ , X ) f ( x ) = π ( Θ ) f ( X ∣ Θ ) ∫ f ( τ , X ) d τ ∝ π ( Θ ) f ( X ∣ Θ ) f(\Theta|X)=\frac{f(\Theta,X)}{f(x)}=\frac{\pi(\Theta)f(X|\Theta)}{\int f(\tau,X)d\tau}∝ \pi(\Theta)f(X|\Theta) f(Θ∣X)=f(x)f(Θ,X)=f(τ,X)dτπ(Θ)f(X∣Θ)π(Θ)f(X∣Θ)

在贝叶斯统计中,如果后验分布 f ( Θ ∣ X ) f(Θ | X) f(Θ∣X) 与先验分布 π ( Θ ) π(Θ) π(Θ) 属于同类,则先验分布与后验分布被称为共轭分布,而先验分布被称为似然函数的共轭先验。共轭先验的使用简化了贝叶斯更新的计算过程,因为它确保了后验分布与先验分布具有相同的分布形式。

贝叶斯学派下求参数有多种方法,如通过 MCMC 采样出后验分布下的参数样本,另外也可以用最大化后验分布的形式,求得参数的点估计,即后验分布的 mode。

二、非线性方程的求解

(一)二分法(Bisection Method)

如果 g ′ g' g [ a 0 , b 0 ] [a_0,b_0] [a0,b0]上连续且满足 g ′ ( a 0 ) g ′ ) b 0 ) ≤ 0 g'(a_0)g')b_0)\leq 0 g(a0)g)b0)0,那么中值定理表明在 [ a 0 , b 0 ] [a_0,b_0] [a0,b0]上至少存在一个 x ∗ ∈ [ a 0 , b 0 ] x^*\in[a_0,b_0] x[a0,b0],使得 g ′ ( x ) = 0 g'(x)=0 g(x)=0,因此 x ∗ x^* x g g g的一个局部极值点。

二分法(Bisection Method)是一种简单而有效的数值方法,用于求解连续函数在给定区间内的根。该方法利用连续函数的性质,通过逐步缩小包含根的区间,逐步逼近根的值。令 x ( 0 ) = ( a 0 + b 0 ) / 2 x^{(0)}=(a_0+b_0)/2 x(0)=(a0+b0)/2为初始值,则更新公式为:
[ a t + 1 , b t + 1 ] = { [ a t , x ( t ) ] , if  g ′ ( a t ) g ′ ( x ( t ) ≤ 0 [ x ( t ) , b t ] , if  g ′ ( a t ) g ′ ( x ( t ) > 0 [a_{t+1},b_{t+1}] = \begin{cases} [a_t,x^{(t)}], & \text{if $g'(a_t)g'(x^{(t)}\leq 0$} \\ [x^{(t)},b_t], & \text{if $g'(a_t)g'(x^{(t)}> 0$} \end{cases} [at+1,bt+1]={[at,x(t)],[x(t),bt],if g(at)g(x(t)0if g(at)g(x(t)>0

x ( t + 1 ) = 1 2 ( a t + 1 + b t + 1 ) x^{(t+1)}=\frac{1}{2}(a_{t+1}+b_{t+1}) x(t+1)=21(at+1+bt+1)

  • 二分法是一种相对较慢的方法:它需要较多的迭代次数才能达到所需的精度。
  • 如果 g ′ g′ g [ a 0 , b 0 ] [a_0, b_0] [a0,b0] 上连续,无论 g ′′ g′′ g′′ 是否存在、求导的难易性如何,都可以找到一个根。

(二)不动点迭代法(Fixed-Point Iteration)

1、不动点

一个函数 f ( x ) f(x) f(x) 的不动点是指满足 f ( x ) = x f(x)=x f(x)=x x x x 值。换句话说,如果将 x x x 代入函数 f ( x ) f(x) f(x) 后,结果等于 x x x,那么 x x x 就是函数 f ( x ) f(x) f(x) 的不动点。在数学中,不动点通常表示函数的稳定状态或者函数在某种意义下的平衡状态。以 f ( x ) = c o s ( x ) f(x)=cos(x) f(x)=cos(x)为例。 f ( x ) f(x) f(x) 的不动点就是满足 c o s ( x ) = x cos(x)=x cos(x)=x x x x 值。用图示来看,不动点就是函数 f ( x ) f(x) f(x) 的图像与直线 y = x y=x y=x 的交点。

2、不动点迭代法

不动点迭代法也称为函数迭代法(Functional Iteration),是一种用于求解非线性方程的数值方法。当函数形式较复杂时,求解器不容易直接求得。利用不动点的性质,可以将函数的求解问题转化为不动点方程,从而使用有限次迭代求得方程的解。

基本的不动点迭代算法步骤:

  • 选择一个初始猜测值 x 0 x_0 x0,作为迭代的起点
  • 迭代更新:使用一个迭代函数 g ( x ) g(x) g(x),通过不断迭代 x n + 1 = g ( x n ) x_{n+1}=g(x_n) xn+1=g(xn)来逼近不动点
  • 收敛判断:当迭代值 x n x_n xn足够接近不动点 x ∗ x^* x时停止迭代。

寻找根的不动点策略是确定一个函数 G G G,满足当且仅当 g ′ ( x ) = 0 g'(x)=0 g(x)=0 G ( x ) = x G(x)=x G(x)=x。最简单方法是使用更新方程 x ( t + 1 ) = G ( x ( t ) ) x^{(t+1)}=G(x^{(t)}) x(t+1)=G(x(t))

G G G的选择不是固定的,但最明显的选择是 G ( x ) = g ′ ( x ) + x G(x)=g'(x)+x G(x)=g(x)+x
x ( t + 1 ) = x ( t ) + g ′ ( x ( t ) ) x^{(t+1)}=x^{(t)}+g'(x^{(t)}) x(t+1)=x(t)+g(x(t))

例如:求解 g ′ ( x ) = c o s x − x g'(x)=cosx-x g(x)=cosxx的根,设置 G ( x ) = c o s x , x 0 = 0 G(x)=cosx,x_0=0 G(x)=cosx,x0=0
在这里插入图片描述

3、不动点迭代法的收敛性

该算法的收敛性取决于函数 G G G [ a , b ] [a,b] [a,b]上是否是收缩的:

  • ∀ x ∈ [ a , b ] ∀x ∈ [a, b] x[a,b],有 G ( x ) ∈ [ a , b ] G(x)\in[a,b] G(x)[a,b]
  • ∃ λ ∈ [ 0 , 1 ) ∃λ ∈ [0, 1) λ[0,1),使得对任意 x 1 , x 2 ∈ [ a , b ] x_1,x_2\in[a,b] x1,x2[a,b],有:(Lipschitz条件)
    ∣ G ( x 1 ) − G ( x 2 ) ∣ ≤ λ ∣ x 1 − x 2 ∣ |G(x_1)-G(x_2)|\leq \lambda |x_1-x_2| G(x1)G(x2)λx1x2

此时就有:

  • G ( x ) G(x) G(x)有一个唯一的固定点 x ∞ ∈ [ a , b ] x_∞\in [a,b] x[a,b]
  • x n = G ( x n − 1 ) → x ∞ , ∀ x 0 ∈ [ a , b ] x_n=G(x_{n-1})\rightarrow x_∞,∀x_0 ∈ [a, b] xn=G(xn1)x,x0[a,b]
  • ∣ x n − x ∞ ∣ ≤ λ n 1 − λ ∣ x 1 − x 0 ∣ |x_n-x_∞|\leq \frac{\lambda^n}{1-\lambda}|x_1-x_0| xnx1λλnx1x0

证明:(在一个柯西序列中,随着序列的项越来越靠后,序列的项彼此之间的距离会变得越来越小。)
在这里插入图片描述

如果对于 [ a , b ] [a, b] [a,b] 中的所有 x x x,都满足 ∣ G ′ ( x ) ∣ ≤ λ < 1 |G′(x)| ≤ λ < 1 G(x)λ<1,则满足了Lipschitz 条件。
在这里插入图片描述

Lipschitz 连续函数限制了函数变化的速度。具体而言,满足 Lipschitz 条件的函数的斜率必须受到一个实数的限制,该实数被称为 Lipschitz 常数。

4、更新公式的调整

假设函数 G ( x ) = g ′ ( x ) + x G(x)=g'(x)+x G(x)=g(x)+x在区间 [ a , b ] [a,b] [a,b]上不满足收敛条件,即 ∣ g ′ ′ ( x ) + 1 ∣ < 1 |g''(x)+1|<1 g′′(x)+1∣<1不成立,可以选择 G ( x ) = α g ′ ( x ) + x G(x)=\alpha g'(x)+x G(x)=αg(x)+x ∣ α g ′ ′ ( x ) + 1 ∣ < 1 |\alpha g''(x)+1|<1 αg′′(x)+1∣<1来重新缩放非收敛问题,通过引入缩放因子 α \alpha α来调整更新公式,使其满足收敛条件。
x n + 1 = x n + α g ′ ( x n ) x_{n+1}=x_n+\alpha g'(x_n) xn+1=xn+αg(xn)
不动点迭代的效果高度依赖于所选择的 G G G的形式。如找到 g ′ ( x ) = l o g x + x g'(x)=log x+x g(x)=logx+x的根时,不同 G G G的收敛速度为:
( x + e − x ) / 2 > x − x > − l o g x (x+e^{-x})/2>x^{-x}>-log x (x+ex)/2>xx>logx

(三)牛顿法(Newton’s method)

1、牛顿法算法

牛顿法,也称为牛顿-拉夫森法(Newton-Raphson method),是一种用于求解非线性方程 f ( x ) = 0 f(x)=0 f(x)=0 的迭代方法。它基于函数的泰勒级数展开,通过反复迭代逼近方程的根。

牛顿法算法步骤:

  • 选择一个初始猜测值 x 0 x_0 x0,作为迭代的起点
  • 迭代更新:对于 n = 0 , 1 , 2 , . . . n=0,1,2,... n=0,1,2,...,利用以下迭代公式更新 x n x_n xn
    x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)} xn+1=xnf(xn)f(xn)

2、牛顿法在寻找函数导数 g ′ ( x ) g ′ (x) g(x) 的根的迭代过程

假设我们要找到函数 g ′ ( x ) g ′ (x) g(x) 的根,即满足 g ′ ( x ) = 0 g'(x)=0 g(x)=0 x x x。假设 g ′ g' g是连续可微的,并且 g ′ ′ ( x ) ≠ 0 g''(x)\neq 0 g′′(x)=0。我们可以使用牛顿法来逼近这个根。

在第 t t t次迭代中:

  • 泰勒级数展开:在点 x ( t ) x^{(t)} x(t)处对 g ′ ( x ) g'(x) g(x)进行一次泰勒级数展开:
    g ′ ( x ) ≈ g ′ ( x ( t ) ) + ( x − x ( t ) ) g ′ ′ ( x ( t ) ) g'(x)\approx g'(x^{(t)})+(x-x^{(t)})g''(x^{(t)}) g(x)g(x(t))+(xx(t))g′′(x(t))
  • 线性近似:设 g ′ ( x ) = 0 g'(x)=0 g(x)=0求根:
    0 ≈ g ′ ( x ( t ) ) + ( x − x ( t ) ) g ′ ′ ( x ( t ) ) 0\approx g'(x^{(t)})+(x-x^{(t)})g''(x^{(t)}) 0g(x(t))+(xx(t))g′′(x(t))
  • 解方程:解上式得到 x ∗ x^* x的近似值:
    0 = g ′ ( x ( t ) ) + ( x − x ( t ) ) g ′ ′ ( x ( t ) ) ⇒ x − x ( t ) = − g ′ ( x ( t ) ) g ′ ′ ( x ( t ) ) 0 = g'(x^{(t)})+(x-x^{(t)})g''(x^{(t)}) \Rightarrow x-x^{(t)}=-\frac{g'(x^{(t)})}{g''(x^{(t)})} 0=g(x(t))+(xx(t))g′′(x(t))xx(t)=g′′(x(t))g(x(t))
  • 进而得到更新公式:
    x ∗ = x ( t ) − g ′ ( x ( t ) ) g ′ ′ ( x ( t ) ) = x ( t ) + h ( t ) x^*=x^{(t)}-\frac{g'(x^{(t)})}{g''(x^{(t)})}=x^{(t)}+h^{(t)} x=x(t)g′′(x(t))g(x(t))=x(t)+h(t)
    这个方程描述了一个依赖于当前猜测 x ( t ) x^{(t)} x(t) 和修正项 h ( t ) h^{(t)} h(t) x ∗ x^∗ x 的近似值。迭代这个策略给出了牛顿法的更新方程:
    x ( t + 1 ) = x ( t ) + h ( t ) x^{(t+1)}=x^{(t)}+h^{(t)} x(t+1)=x(t)+h(t)

3、牛顿法的收敛性

牛顿法的收敛性取决于函数 g 的形状和初始值的选择。

  • 根附近的收敛性定理:如果 g ′ ′ ′ g''' g′′′连续且 g ′ ( x ∗ ) = 0 , g ′ ′ ( x ∗ ) ≠ 0 g'(x^*)=0,g''(x^*)\neq 0 g(x)=0,g′′(x)=0,那么存在一个 x ∗ x^* x的邻域,在该邻域内从任意 x 0 ∈ ( x ∗ − δ , x ∗ + δ ) x_0\in(x^*-\delta,x^*+\delta) x0(xδ,x+δ)开始的牛顿法迭代:
    x n = G ( x n − 1 ) = x n − 1 − g ′ ( x n − 1 ) g ′ ′ ( x n − 1 ) x_n=G(x_{n-1})=x_{n-1}-\frac{g'(x_{n-1})}{g''(x_{n-1})} xn=G(xn1)=xn1g′′(xn1)g(xn1)
    会收敛到 x ∗ x^* x

证明:
在这里插入图片描述

  • 全局收敛性:当 g ′ g′ g 具有二阶连续可导性、是凸函数并且根存在的时候,牛顿法可以从任意起始点收敛到该根。

凸函数的定义:
如果一个实值函数的图像上任意两点间的线段位于这两点之间的图像上方,则该函数被称为凸函数。对如果对任意的 x , y ∈ S x,y\in S x,yS 0 ≤ θ ≤ 1 0\leq \theta \leq 1 0θ1,有:
f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta)y)\leq\theta f(x)+(1-\theta)f(y) f(θx+(1θ)y)θf(x)+(1θ)f(y)
则称 f f f S S S上的凸函数。
一个单变量的二次可微函数是凸函数,当且仅当它的二阶导数在整个定义域上非负。

  • 区间上的收敛性:当从区间 [ a , b ] [a, b] [a,b] 中的某个点开始时,满足以下条件则牛顿法将从区间内的任意 x 0 x_0 x0收敛
    • g ′ ′ ( x ) ≠ 0 g''(x)\neq 0 g′′(x)=0 [ a , b ] [a,b] [a,b]
    • g ′ ′ ′ ( x ) g'''(x) g′′′(x) [ a , b ] [a,b] [a,b]不变符号
    • g ′ ( a ) g ′ ( b ) < 0 g'(a)g'(b)<0 g(a)g(b)<0并且
    • ∣ g ′ ( a ) / g ′ ′ ( a ) ∣ < b − a |g'(a)/g''(a)|<b-a g(a)/g′′(a)<ba并且 ∣ g ′ ( b ) / g ′ ′ ( b ) ∣ < b − a |g'(b)/g''(b)|<b-a g(b)/g′′(b)<ba

4、牛顿法的收敛速度

求根方法的速度通常通过其收敛阶数来衡量。如果一个方法具有收敛阶数 β \beta β,则当 n n n趋向无穷时,满足 lim ⁡ n → ∞ ∣ x n − x ∗ ∣ = 0 \lim_{n\rightarrow ∞} |x_n-x^*|=0 limnxnx=0以及
lim ⁡ n → ∞ ∣ x n − x ∗ ∣ ∣ x n − 1 − x ∗ ∣ β = c \lim_{n\rightarrow ∞}\frac{|x_n-x^*|}{|x_{n-1}-x^*|^\beta}=c nlimxn1xβxnx=c

  • 二分法是线性收敛的,即 β = 1 \beta=1 β=1
  • 牛顿法具有二次收敛,即 β = 2 \beta=2 β=2
    在这里插入图片描述

5、多维变量的情况

在变量多维时,对于牛顿法,再次使用一阶泰勒级数展开来近似 g ′ ( X ∗ ) g'(X^*) g(X)
g ′ ( X ∗ ) ≈ g ′ ( X ( t ) ) + ( X ∗ − X ( t ) ) T g ′ ′ ( X ( t ) ) g'(X^*)\approx g'(X^{(t)})+(X^*-X^{(t)})^Tg''(X^{(t)}) g(X)g(X(t))+(XX(t))Tg′′(X(t))
对应的更新公式为:
X ( t + 1 ) = X ( t ) + g ′ ′ ( X ( t ) ) − 1 g ′ ( X ( t ) ) X^{(t+1)}= X^{(t)}+g''(X^{(t)})^{-1}g'(X^{(t)}) X(t+1)=X(t)+g′′(X(t))1g(X(t))
在最大似然估计中,可以用 I ( Θ ( t ) ) I(\Theta(t)) I(Θ(t)),即在 Θ ( t ) \Theta(t) Θ(t)处的期望Fisher信息,来替代 Θ ( t ) \Theta(t) Θ(t)处的观测信息:
Θ ( t + 1 ) = Θ ( t ) + I ( θ ( t ) ) − 1 l ′ ( Θ t ) \Theta^{(t+1)}=\Theta^{(t)}+I(\theta^{(t)})^{-1}l'(\Theta^t) Θ(t+1)=Θ(t)+I(θ(t))1l(Θt)

(四)Fisher Scoring方法

Fisher Scoring 是一种用于优化模型参数的迭代方法,特别常用于统计学和机器学习中的最大似然估计。它与牛顿-拉夫森法类似,但用期望的(Fisher 信息矩阵)代替观测的海森矩阵。Fisher Scoring 主要应用于广义线性模型(GLM)和其他参数估计问题。

由于 I ( θ ) I(\theta) I(θ)可以近似为 − l ′ ′ ( θ ) -l''(\theta) l′′(θ),因此Fisher Scoring方法的更新公式即为:
θ ( t + 1 ) = θ ( t ) + l ′ ( θ ( t ) ) I ( θ ( t ) ) − 1 \theta^{(t+1)}=\theta^{(t)}+l'(\theta^{(t)})I(\theta^{(t)})^{-1} θ(t+1)=θ(t)+l(θ(t))I(θ(t))1

(五)割线法(Secant Method)

除牛顿法以外,单变量的求根问题也可以使用割线法。割线法是微积分中的一种数值逼近方法,用于求解函数的根(即方程的解)。它基于一个简单的思想:通过一条割线逼近函数的根。牛顿法基于切线逼近函数的根,割线法则是通过两个接近根的点的割线来逼近根。表现在更新方程上就是将 g ′ ′ ( x ) g''(x) g′′(x)替换为 [ g ′ ( x ( t ) ) − g ′ ( x ( t − 1 ) ) ] / ( x ( t ) − x ( t − 1 ) ) [g'(x^{(t)})-g'(x^{(t-1)})]/(x^{(t)}-x^{(t-1)}) [g(x(t))g(x(t1))]/(x(t)x(t1))
x ( t + 1 ) = x ( t ) − g ′ ( x ( t ) ) x ( t ) − x ( t − 1 ) g ′ ( x ( t ) ) − g ′ ( x ( t − 1 ) ) x^{(t+1)}=x^{(t)}-g'(x^{(t)})\frac{x^{(t)}-x^{(t-1)}}{g'(x^{(t)})-g'(x^{(t-1)})} x(t+1)=x(t)g(x(t))g(x(t))g(x(t1))x(t)x(t1)

(六)基于牛顿法思想的数值求根方法

牛顿法并不能确保每次迭代目标函数都是上升的,而且计算成本大。合理的选择更新形式,比如最速上升算法,有可能会得到更好的表现,以及更小的计算量。一些非常有效的方法都依赖于以下形式的更新方程:
X ( t + 1 ) = X ( t ) − ( M ( t ) ) − 1 ∇ g ( X ( t ) ) X^{(t+1)}=X^{(t)}-(M^{(t)})^{-1}\nabla g(X^{(t)}) X(t+1)=X(t)(M(t))1g(X(t))
其中 M ( t ) M^{(t)} M(t)是一个近似海森矩阵 ∇ 2 g ( X ( t ) ) \nabla^2g(X^{(t)}) 2g(X(t)) p × p p\times p p×p矩阵。=

  • Fisher Scoring方法: M ( t ) = − I ( Θ ( t ) ) M^{(t)}=-I(\Theta(t)) M(t)=I(Θ(t))
  • 最速上升算法: M ( t ) = − I M^{(t)}=-I M(t)=I
    X ( t + 1 ) = X ( t ) + ∇ g ( X ( t ) ) X^{(t+1)}=X^{(t)}+\nabla g(X^{(t)}) X(t+1)=X(t)+g(X(t))
  • 沿着最陡上升方向进行缩放步长:
    X ( t + 1 ) = X ( t ) + α ( t ) ∇ g ( X ( t ) ) X^{(t+1)}=X^{(t)}+\alpha^{(t)}\nabla g(X^{(t)}) X(t+1)=X(t)+α(t)g(X(t))

在做上述优化算法的时候,可迫使它的每一步,也就是每一次更新,目标函数都是上升的:

  • 对于任何固定的 x ( t ) x^{(t) } x(t)和负定 M ( t ) M(t) M(t),对于 α ( t ) → 0 α^{(t)} → 0 α(t)0 有:
    g ( x ( t + 1 ) ) − g ( x ( t ) ) = g ( x ( t ) + h ( t ) ) − g ( x ( t ) ) = − α ( t ) g ′ ( x ( t ) ) T ( M ( t ) ) − 1 g ′ ( x ( t ) ) + o ( α ( t ) ) g(x^{(t+1)}) − g(x^{(t)}) = g(x^{(t)} + h^{(t)}) − g(x^{(t)})= −α^{(t)}g′(x^{(t)})^T(M^{(t)})^{−1}g′(x^{(t)}) + o(α^{(t)}) g(x(t+1))g(x(t))=g(x(t)+h(t))g(x(t))=α(t)g(x(t))T(M(t))1g(x(t))+o(α(t))
    其中 h ( t ) = − α ( t ) [ M ( t ) ] − 1 ∇ g ( X ( t ) ) h^{(t)} = −α^{(t)}[M^{(t)}]^{−1}∇g(X^{(t)}) h(t)=α(t)[M(t)]1g(X(t)),第二个等式来自于 Taylor 展开 g ( x ( t ) + h ( t ) ) ) = g ( x ( t ) ) + g ′ ( x ( t ) ) T h ( t ) + o ( α ( t ) ) g(x^{(t)} + h^{(t)})) = g(x^{(t)}) + g′(x^{(t)})^T h^{(t)} + o(α^{(t)}) g(x(t)+h(t)))=g(x(t))+g(x(t))Th(t)+o(α(t))

因此,如果 − M ( t ) −M(t) M(t) 是正定的,通过选择足够小的 α ( t ) α(t) α(t)可以确保上升,从而得到 g ( x ( t + 1 ) ) − g ( x ( t ) ) > 0 g(x(t + 1)) − g(x(t)) > 0 g(x(t+1))g(x(t))>0

(七)深度学习中的优化算法

考虑最小化平均损失函数: g ( x ) = 1 n ∑ i = 1 n l i ( x ) g(x)=\frac{1}{n}\sum_{i=1}^nl_i(x) g(x)=n1i=1nli(x)

  • GD (Gradient Descent): x t = x t − 1 − α ∇ g ( x t − 1 ) x_t = x_{t−1} − α∇g(x_{t−1}) xt=xt1αg(xt1)

  • SGD (Stochastic Gradient Descent): x t = x t − 1 − α ∇ ℓ t i ( x t − 1 ) x_t = x_{t−1} − α∇ℓ_{t_i}(x_{t−1}) xt=xt1αti(xt1)

  • BGD (Batch Gradient Descent): x t = x t − 1 − α ∣ B ∣ ∑ i ∈ B t ∇ ℓ i ( x t − 1 ) x_t = x_{t−1} −\frac{α}{|B|}\sum_{i∈B_t}∇ℓ_i(x_{t−1}) xt=xt1BαiBti(xt1)

  • SGDM(Stochastic Gradient Descent with Momentum)是对随机梯度下降(SGD)的扩展,它引入动量来加速收敛并减小震荡。
    g t = ∑ i ∈ B t ∇ ℓ i ( x t − 1 ) g_t =\sum_{i∈B_t}∇ℓ_i(x_{t−1}) gt=iBti(xt1)
    v t = β v t − 1 + g t , x t = x t − 1 − α v t v_t = βv_{t−1} + g_t, x_t = x_{t−1} − αv_t vt=βvt1+gt,xt=xt1αvt
    梯度的指数加权移动平均:
    v t = g t + β g t − 1 + β 2 g t − 2 + β 3 g t − 3 + . . . v_t = g_t + βg_{t−1} + β^2g_{t−2} + β^3g_{t−3} + ... vt=gt+βgt1+β2gt2+β3gt3+...
    β β β 常用的值为: [0.5, 0.9, 0.95, 0.99].

  • AdaGrad 是一种自适应学习率优化算法,它根据历史梯度调整每个参数的学习率。类似标准化。(其中 · 表示逐元素相乘。)
    s t = s t − 1 + g t ⋅ g t ,   x t = x t − 1 − α s t + ϵ ⋅ ∇ g t s_t = s_{t−1} + g_t· g_t,\ x_t = x_{t−1} −\frac{α}{\sqrt{s_t} + ϵ}· ∇g_t st=st1+gtgt, xt=xt1st +ϵαgt

  • RMSProp 是一种自适应学习率优化算法,通过引入衰减因子来解决AdaGrad 的一些局限性。
    s t = γ s t − 1 + ( 1 − γ ) g t ⋅ g t ,   x t = x t − 1 − α s t + ϵ ⋅ g t s_t = γs_{t−1} + (1 − γ)g_t· g_t,\ x_t = x_{t−1} −\frac{α}{\sqrt{s_t} + ϵ}· g_t st=γst1+(1γ)gtgt, xt=xt1st +ϵαgt

  • Adam 是一种自适应学习率优化算法,结合了 Momentum 和 RMSProp的优点。
    v t = β 1 v t − 1 + ( 1 − β 1 ) g t ,   s t = β 2 s t − 1 + ( 1 − β 2 ) g t ⋅ g t v_t = β_1v_{t−1} + (1 − β_1)g_t,\ s_t = β_2s_{t−1} + (1 − β_2)g_t· g_t vt=β1vt1+(1β1)gt, st=β2st1+(1β2)gtgt
    常见的值是 β 1 = 0.9 , β 2 = 0.999 β_1 = 0.9,β_2 = 0.999 β1=0.9β2=0.999。由于当 t t t 受限时,指数加权和不等于 1,因此进行偏差修正:
    v ^ t = v t 1 − β t 1 ,   s ^ t = s t 1 − β t 2 \hat{v}_t =\frac{v_t}{1 − β_t^1},\ \hat{s}_t =\frac{s_t}{1 − β_t^2} v^t=1βt1vt, s^t=1βt2st
    最终更新公式为:
    x t = x t − 1 − α v ^ t s t ^ + ϵ x_t = x_{t−1} − α\frac{\hat{v}_t}{\sqrt{\hat{s_t} + ϵ}} xt=xt1αst^+ϵ v^t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值