深度学习笔记之优化算法(一)铺垫:梯度下降法VS最速下降法

news2024/11/24 19:38:19

深度学习笔记之优化算法——铺垫:梯度下降法VS最速下降法

  • 引言
    • 回顾:
      • 条件数
      • 范数
    • 相关描述
      • 关于梯度下降法
      • 最速下降法
      • 单位范数的描述
    • 梯度下降法VS最速下降法
      • 梯度下降法等价于最速下降法的情况
      • 欧式范数约束产生的更新方向可能不是最优方向
      • 梯度下降法与最速下降法不等价的情况
    • 范数的选取与收敛速度的关系

引言

从本节开始,将介绍深度学习中常见的优化算法。在介绍随机梯度下降之前,将针对最速下降法与梯度下降法之间差异性做一些说明。

关于条件数的介绍优点喧宾夺主~本节主要目的不是描述梯度下降法的缺陷,而是描述最速下降法梯度下降法之间的差异性

回顾:

条件数

在梯度下降法在强凸函数的收敛性证明中介绍了梯度下降法 m m m-强凸函数上的收敛性定理

条件

  • 目标函数 f ( ⋅ ) f(\cdot) f()向下有界,在其定义域内可微;并且 f ( ⋅ ) f(\cdot) f() m m m-强凸函数
  • 关于 f ( ⋅ ) f(\cdot) f()梯度函数 ∇ f ( ⋅ ) \nabla f(\cdot) f()满足 L \mathcal L L-利普希兹连续
  • 梯度下降法在迭代过程中,其步长 α k \alpha_k αk存在明确的约束范围 α k ∈ ( 0 , 2 L + m ) \begin{aligned}\alpha_k \in \left(0, \frac{2}{\mathcal L + m}\right)\end{aligned} αk(0,L+m2)

结论
数值解序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^{\infty} {xk}k=0 Q \mathcal Q Q-线性收敛的收敛速度收敛于最优数值解 x ∗ x^* x

在证明过程中,实现了线性收敛的定义式的证明:
∥ x k + 1 − x ∗ ∥ ∥ x k − x ∗ ∥ = ∥ x k − α ⋅ ∇ f ( x k ) − x ∗ ∥ ∥ x k − x ∗ ∥ ≤ 1 − α ⋅ 2 L m L + m ∈ ( 0 , 1 ) \begin{aligned} \frac{\|x_{k+1} - x^*\|}{\|x_k - x^*\|} & = \frac{\|x_k - \alpha \cdot \nabla f(x_k) - x^*\|}{\|x_k - x^*\|} \\ & \leq \sqrt{1 - \alpha \cdot \frac{2 \mathcal L m}{\mathcal L + m}} \in (0,1) \end{aligned} xkxxk+1x=xkxxkαf(xk)x1αL+m2Lm (0,1)
如果目标函数 f ( ⋅ ) f(\cdot) f()满足二阶连续可微的条件下,并且其梯度函数 ∇ f ( ⋅ ) \nabla f(\cdot) f()满足 L \mathcal L L-利普希兹连续,那么 f ( ⋅ ) f(\cdot) f()对应的 Hessian Matrix ⇒ ∇ 2 f ( ⋅ ) \text{Hessian Matrix} \Rightarrow \nabla^2 f(\cdot) Hessian Matrix2f()必然存在并且有:

  • 下面的推导过程详见梯度下降法在强凸函数的收敛性分析。
  • 其中 I \mathcal I I表示单位矩阵
    m ⋅ I ≼ ∇ 2 f ( ⋅ ) ≼ L ⋅ I m \cdot \mathcal I \preccurlyeq \nabla^2 f(\cdot) \preccurlyeq \mathcal L \cdot \mathcal I mI2f()LI

正定矩阵 ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()进行分解,可得到 n n n正特征值 { λ i } i = 1 n \{\lambda_i\}_{i=1}^n {λi}i=1n
其中 Q \mathcal Q Q是正交矩阵。
∇ 2 f ( ⋅ ) = Q Λ Q − 1 = Q ( λ 1 λ 2 ⋱ λ n ) Q − 1 \nabla^2 f(\cdot) = \mathcal Q \Lambda \mathcal Q^{-1} = \mathcal Q \begin{pmatrix}\lambda_1 & \quad & \quad & \quad \\ \quad & \lambda_2 & \quad & \quad \\ \quad & \quad & \ddots & \quad \\ \quad & \quad & \quad & \lambda_n \end{pmatrix} \mathcal Q^{-1} 2f()=QΛQ1=Q λ1λ2λn Q1
这些特征值必然满足:
0 < m ≤ λ m i n ≤ λ m a x ≤ L { λ m i n = min ⁡ { λ i } i = 1 n λ m a x = max ⁡ { λ j } j = 1 n 0 < m \leq \lambda_{min} \leq \lambda_{max} \leq \mathcal L \quad \begin{cases} \lambda_{min} = \min \{\lambda_i\}_{i=1}^n \\ \lambda_{max} = \max \{\lambda_j\}_{j=1}^n \end{cases} 0<mλminλmaxL{λmin=min{λi}i=1nλmax=max{λj}j=1n
在上述条件下,取一种特殊情况
关于 α = 1 L = 2 L + L ∈ ( 0 , 2 L + m ) \begin{aligned}\alpha = \frac{1}{\mathcal L} = \frac{2}{\mathcal L + \mathcal L} \in \left(0,\frac{2}{\mathcal L + m} \right)\end{aligned} α=L1=L+L2(0,L+m2)恒成立,目的是将条件数收敛速度关联起来
λ m a x = L ; λ m i n = m ; α = 1 L \lambda_{max} = \mathcal L;\lambda_{min} = m;\alpha = \frac{1}{\mathcal L} λmax=L;λmin=m;α=L1
将上述情况代入原式,那么线性收敛定义式简化为:
∥ x k − α ⋅ ∇ f ( x k ) − x ∗ ∥ ∥ x k − x ∗ ∥ ≤ 1 − 1 L ⋅ 2 L m L + m = λ m a x − λ m i n λ m a x + λ m i n = 1 − 1 K [ ∇ 2 f ( ⋅ ) ] 1 + 1 K [ ∇ 2 f ( ⋅ ) ] \begin{aligned} \frac{\|x_k - \alpha \cdot \nabla f(x_k) - x^*\|}{\|x_k - x^*\|} & \leq \sqrt{1 - \frac{1}{\mathcal L} \cdot \frac{2 \mathcal L m}{\mathcal L + m}} \\ & = \sqrt{\frac{\lambda_{max} - \lambda_{min}}{\lambda_{max} + \lambda_{min}}}\\ & = \sqrt{\frac{1 - \frac{1}{\mathcal K[\nabla^2 f(\cdot)]}}{1 + \frac{1}{\mathcal K[\nabla^2 f(\cdot)]}}} \end{aligned} xkxxkαf(xk)x1L1L+m2Lm =λmax+λminλmaxλmin =1+K[2f()]11K[2f()]1
其中 K [ ∇ 2 f ( ⋅ ) ] = λ m a x λ m i n \begin{aligned}\mathcal K[\nabla^2 f(\cdot)] = \frac{\lambda_{max}}{\lambda_{min}}\end{aligned} K[2f()]=λminλmax被称作 Hessian Matrix ⇒ ∇ 2 f ( ⋅ ) \text{Hessian Matrix} \Rightarrow \nabla^2 f(\cdot) Hessian Matrix2f()条件数 ( Condition Number ) (\text{Condition Number}) (Condition Number),可以发现:

  • 条件数可看作是目标函数 f ( ⋅ ) f(\cdot) f()自身的性质,因为它仅与 ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()最大、最小特征值相关。
  • 条件数与收敛速度之间的关系: K [ ∇ 2 f ( ⋅ ) ] \mathcal K[\nabla^2 f(\cdot)] K[2f()]趋近于 ∞ \infty 时,有:
    lim ⁡ K [ ∇ 2 f ( ⋅ ) ] ⇒ ∞ ∥ x k − α ⋅ ∇ f ( x k ) − x ∗ ∥ ∥ x k − x ∗ ∥ ≤ lim ⁡ K [ ∇ 2 f ( ⋅ ) ] ⇒ ∞ 1 − 1 K [ ∇ 2 f ( ⋅ ) ] 1 + 1 K [ ∇ 2 f ( ⋅ ) ] = 1 − 0 1 + 0 = 1 \mathop{\lim}\limits_{\mathcal K[\nabla^2 f(\cdot)] \Rightarrow \infty} \frac{\|x_k - \alpha \cdot \nabla f(x_k) - x^*\|}{\|x_k - x^*\|} \leq \mathop{\lim}\limits_{\mathcal K[\nabla^2 f(\cdot)] \Rightarrow \infty} \sqrt{\frac{1 - \frac{1}{\mathcal K[\nabla^2 f(\cdot)]}}{1 + \frac{1}{\mathcal K[\nabla^2 f(\cdot)]}}} = \sqrt{\frac{1 - 0}{1 + 0}} = 1 K[2f()]limxkxxkαf(xk)xK[2f()]lim1+K[2f()]11K[2f()]1 =1+010 =1
    取等时,收敛速度将从线性收敛退化至次线性收敛

也就是说:

  • 使用梯度下降法时,在特定条件的情况下,其收敛速度与目标函数 f ( ⋅ ) f(\cdot) f()自身性质——条件数存在关联关系
  • 条件数越大,收敛速度越慢;该现象被称作病态问题

范数

范数通常被用来度量向量空间中,向量的长度或大小。我们通常使用特征空间中的点与特征空间原点之间的明可夫斯基距离来描述向量的范数
D m k ( x , O ) = [ ∑ k = 1 n ( x k ) m ] 1 m \mathcal D_{mk}(x,\mathcal O) = \left[\sum_{k=1}^{n}(x_k )^m \right]^{\frac{1}{m}} Dmk(x,O)=[k=1n(xk)m]m1
其中 m m m表示阶数,上式也称作 m m m-阶范数。例如 m = 2 m=2 m=2对应的二阶范数(也称欧式范数):
∥ x ∥ 2 = [ ∑ k = 1 n ( x k ) 2 ] 1 2 = x 1 2 + x 2 2 + ⋯ + x n 2 \begin{aligned} \|x\|_2 & = \left[\sum_{k=1}^n (x_k)^2\right]^{\frac{1}{2}} \\ & = \sqrt{x_1^2 + x_2^2 + \cdots + x_n^2} \end{aligned} x2=[k=1n(xk)2]21=x12+x22++xn2

范数不仅描述了向量的大小;反过来,如果固定范数的阶数和大小,它可以描述满足阶数与大小条件的集合。以二维特征空间为例,在范数大小为 1 1 1的前提下,不同阶数对应的集合形状表示如下:
基于相同大小不同阶数描述集合的表示效果
很明显,当阶数 p < 1 p < 1 p<1是,其对应集合是一个非凸集合;相反,对应集合是一个凸集合

相关描述

在笔记线搜索方法——方向角度的结尾提到:在当前迭代步骤中,负梯度方向作为下降方向,对应目标函数的下降效果最明显,因而被称作最速下降方向,从而称最速下降法为梯度下降法。但如果详细追究,它们之间依然存在一些区别。

关于梯度下降法

梯度下降法直观地认为:负梯度方向 − ∇ f ( ⋅ ) -\nabla f(\cdot) f()是目标函数 f ( ⋅ ) f(\cdot) f()的值下降最快的方向。对应迭代过程表示如下:
x k + 1 = x k + η ⋅ Δ x k Δ x k = − ∇ f ( x k ) x_{k+1} = x_k + \eta \cdot \Delta x_k \quad \Delta x_k = - \nabla f(x_k) xk+1=xk+ηΔxkΔxk=f(xk)

因而每次迭代过程中将决策变量 x k x_k xk沿着负梯度方向移动,从而使目标函数值逐渐收敛。思路虽然简单,但由于下降方向 ⇒ − ∇ f ( ⋅ ) \Rightarrow - \nabla f(\cdot) f()被确定,导致梯度下降法的收敛速度非常大的依赖于目标函数 f ( ⋅ ) f(\cdot) f()自身 Hessian Matrix \text{Hessian Matrix} Hessian Matrix的条件数
解释: Hessian Matrix \text{Hessian Matrix} Hessian Matrix并没有直接参与梯度下降法的迭代过程,只是下降方向被确定为 − ∇ f ( ⋅ ) - \nabla f(\cdot) f()时,作为 f ( ⋅ ) f(\cdot) f()自身性质的条件数就已经对梯度下降法的收敛速度进行约束了。

最速下降法

根据上面链接笔记中的描述:负梯度方向只是下降方向的一种,而下降方向 P k \mathcal P_k Pk的判定逻辑是:满足目标函数 f ( x k + 1 ) = f ( x k + α k P k ) f(x_{k+1}) = f(x_k + \alpha_k \mathcal P_k) f(xk+1)=f(xk+αkPk)的一阶泰勒展开式 f ( x k ) f(x_k) f(xk)之间存在严格的单调性
其中 O ( ∥ α k P k ∥ ) \mathcal O(\|\alpha_k \mathcal P_k\|) O(αkPk)表示关于 α k P k \alpha_k\mathcal P_k αkPk的二阶无穷小。
f ( x k + 1 ) = f ( x k + α k P k ) = f ( x k ) + 1 1 ! [ ∇ f ( x k ) ] T ⋅ α k P k + O ( ∥ α k P k ∥ ) ≈ f ( x k ) + [ ∇ f ( x k ) ] T ⋅ α k P k Monotonicity:  f ( x k + 1 ) − f ( x k ) ≈ [ ∇ f ( x k ) ] T ⋅ α k P k < 0 ⇒ [ ∇ f ( x k ) ] T ⋅ P k < 0 ( α k > 0 ) \begin{aligned} f(x_{k+1}) & = f(x_k + \alpha_k \mathcal P_k) \\ & = f(x_k) + \frac{1}{1!} [\nabla f(x_k)]^T \cdot \alpha_k \mathcal P_k + \mathcal O(\|\alpha_k \mathcal P_k\|) \\ & \approx f(x_k) + [\nabla f(x_k)]^T \cdot \alpha_k \mathcal P_k \\ \text{Monotonicity: } \quad \\ f(x_{k+1}) - f(x_k) &\approx [\nabla f(x_k)]^T \cdot \alpha_k \mathcal P_k < 0 \\ & \Rightarrow [\nabla f(x_k)]^T \cdot \mathcal P_k < 0 \quad (\alpha_k >0) \end{aligned} f(xk+1)Monotonicity: f(xk+1)f(xk)=f(xk+αkPk)=f(xk)+1!1[f(xk)]TαkPk+O(αkPk)f(xk)+[f(xk)]TαkPk[f(xk)]TαkPk<0[f(xk)]TPk<0(αk>0)
方向导数的角度考虑,可以将 k k k次迭代过程的更新方向记作变量 P \mathcal P P,从而将最速下降方向 P k \mathcal P_k Pk描述为:选择合适的更新方向 P \mathcal P P,使得 f ( x k + 1 ) f(x_{k+1}) f(xk+1)或者 f ( x k + 1 ) − f ( x k ) f(x_{k+1}) - f(x_k) f(xk+1)f(xk)关于 P \mathcal P P方向导数最小
由于 f ( x k ) f(x_k) f(xk)是已知项,因而其关于 P \mathcal P P的方向导数为 0 0 0。但 f ( x k + 1 ) f(x_{k+1}) f(xk+1) f ( x k + 1 ) − f ( x k ) f(x_{k+1}) - f(x_k) f(xk+1)f(xk)描述的意义不相同,这里使用 f ( x k + 1 ) − f ( x k ) f(x_{k+1}) - f(x_k) f(xk+1)f(xk)进行描述。
{ f ( x k + 1 ) − f ( x k ) = ϕ k ( P ) = [ ∇ f ( x k ) ] T ⋅ α k P P k = arg ⁡ min ⁡ P ∂ ϕ k ( P ) ∂ P \begin{cases} f(x_{k+1}) - f(x_k) = \phi_k(\mathcal P) = [\nabla f(x_k)]^T \cdot \alpha_k \mathcal P \\ \quad \\ \mathcal P_k = \begin{aligned} \mathop{\arg\min}\limits_{\mathcal P} \frac{\partial \phi_k(\mathcal P)}{\partial \mathcal P} \end{aligned} \end{cases} f(xk+1)f(xk)=ϕk(P)=[f(xk)]TαkPPk=PargminPϕk(P)

单位范数的描述

如果对上述最速下降方向进行标准化,即标准化最速下降方向 ( Normalized Steepest Descent ) (\text{Normalized Steepest Descent}) (Normalized Steepest Descent)在单位范数 ( Unit Norm ) (\text{Unit Norm}) (Unit Norm)步长内能够使目标函数下降最多的方向。记作:
需要注意的是,这里的单位范数步长描述的并不是 α k \alpha_k αk(因为它是标量),而是对 P \mathcal P P的约束。由于这里仅观察 P \mathcal P P的变化情况,从而令 α k = 1 \alpha_k=1 αk=1
P n s d = arg ⁡ min ⁡ V { [ ∇ f ( x k ) ] T P ∣ ∥ P ∥ ≤ 1 } \mathcal P_{nsd} = \mathop{\arg\min}\limits_{\mathcal V} \{[\nabla f(x_k)]^T \mathcal P \mid \|\mathcal P\| \leq 1\} Pnsd=Vargmin{[f(xk)]TPP1}
对应非标准化的最速下降方向 P s d \mathcal P_{sd} Psd可表示为:
其中 ∥ ⋅ ∥ ∗ \| \cdot \|_* 表示对偶范数;其对应展开式中 sup ⁡ \sup sup表示上确界。
P s d = ∥ ∇ f ( x k ) ∥ ∗ P n s d = sup ⁡ { [ ∇ f ( x k ) ] T P n s d ∣ ∥ P n s d ∥ ≤ 1 } \begin{aligned} \mathcal P_{sd} & = \|\nabla f(x_k)\|_* \mathcal P_{nsd} \\ & = \sup \left\{ [\nabla f(x_k)]^T \mathcal P_{nsd} \mid \|\mathcal P_{nsd} \|\leq 1\right\} \end{aligned} Psd=∥∇f(xk)Pnsd=sup{[f(xk)]TPnsdPnsd1}

可以看出:最速下降方向受到单位范数步长的限制。重点在于:不同类型的单位范数步长,其对应的限制范围也存在差异。例如 p = 1 , 2 , 4 p=1,2,4 p=1,2,4时对应小于单位范数的描述范围对比如下:
其中橙色线描述的单位圆也被称作欧式范数
不同范数类型对应的单位范数效果
再如:矩阵 2 2 2-范数 ∥ z ∥ Q \|z\|_{\mathcal Q} zQ:对应小于单位范数描述范围表示如下:
关于矩阵2范数 ∥ z ∥ Q = ( z T Q z ) 1 / 2 \|z\|_{\mathcal Q} = (z^T \mathcal Qz)^{1/2} zQ=(zTQz)1/2的描述范围与 Q \mathcal Q Q的性质相关。下图中的橙色线表示对角矩阵 Q = ( 1 0 0 2 ) \mathcal Q = \begin{pmatrix}1 \quad 0 \\ 0\quad 2\end{pmatrix} Q=(1002)的情况;蓝色线则表示正定矩阵 Q = ( 1 1 1 2 ) \mathcal Q = \begin{pmatrix} 1 \quad 1 \\ 1 \quad 2 \end{pmatrix} Q=(1112)的情况。
矩阵2范数示例

梯度下降法VS最速下降法

梯度下降法等价于最速下降法的情况

如果上述关于 P n s d = arg ⁡ min ⁡ V { [ ∇ f ( x k ) ] T P ∣ ∥ P ∥ ≤ 1 } \mathcal P_{nsd} = \mathop{\arg\min}\limits_{\mathcal V} \{[\nabla f(x_k)]^T \mathcal P \mid \|\mathcal P\| \leq 1\} Pnsd=Vargmin{[f(xk)]TPP1}的描述中,单位范数步长 ∣ ∣ P ∣ ∣ ||\mathcal P|| ∣∣P∣∣欧式范数,那么此时的最速下降法与梯度下降法等价。因为在欧式范数 ∥ P ∥ ≤ 1 \|\mathcal P\|\leq 1 P1的描述范围内,某位置 x k x_k xk标准最速下降方向 P n s d \mathcal P_{nsd} Pnsd与该位置对应的负梯度方向 − ∇ f ( x k ) -\nabla f(x_k) f(xk)相同。举一个例子:

  • 假设目标函数 f ( x ) = x T Q x ; x ∈ R 2 f(x) = x^T \mathcal Q x;x \in \mathbb R^2 f(x)=xTQx;xR2标准型,并且 Q = I \mathcal Q = \mathcal I Q=I(单位矩阵)。该函数的等值线以及欧式范数的描述范围表示如下:
    此时,无论是欧式范数描述范围还是等值线,都是标准圆的格式
    最速下降与梯度下降等价示例

  • 其中红色虚线表示 f ( x ) f(x) f(x)等值线蓝色圆以及内部的灰色阴影表示欧式范数描述范围。在迭代过程中某时刻黄色点 x k x_k xk,此时该点处的梯度方向 ∇ f ( x k ) \nabla f(x_k) f(xk)负梯度方向 − ∇ f ( x k ) -\nabla f(x_k) f(xk)见上图。

  • 最速下降法的角度观察,为了让 x k x_k xk达到更快地最优值点(特征空间原点处所在位置):

    • 需要在阴影范围内,从特征空间原点出发,找到一个方向,并且需要该方向是最优方向
    • 在该方向是最优方向的条件下,让该向量的大小(范数)在阴影范围的约束内最大
      \quad

    至此,找到一个红色点,坐标空间原点指向红色点的向量就是 P n s d \mathcal P_{nsd} Pnsd。从图像中可以看出:负梯度方向 − ∇ f ( x k ) -\nabla f(x_k) f(xk) P n s d \mathcal P_{nsd} Pnsd所指方向完全相同
    由于欧式范数的原因, P n s d \mathcal P_{nsd} Pnsd − ∇ f ( x k ) -\nabla f(x_k) f(xk)大小、方向均完全相同。

很明显,此时的这种目标函数格式,可以满足:全局范围内,梯度下降方向等价于最速下降方向

欧式范数约束产生的更新方向可能不是最优方向

那么在其他目标函数中,欧式范数会产生什么样的现象 ? ? ?
假设目标函数 f ( x ) = x T Q x ; x ∈ R 2 f(x) = x^T \mathcal Q x;x\in \mathbb R^2 f(x)=xTQx;xR2,其中 Q \mathcal Q Q正定矩阵且 Q = ( 1 1 1 2 ) \mathcal Q = \begin{pmatrix} 1 \quad 1 \\ 1 \quad 2 \end{pmatrix} Q=(1112)。假设这里依然使用欧式范数,对应等值线与欧式范数描述范围表示如下:
区别于上图,此时的等值线是椭圆,并且对应正交基与坐标轴不平行。
更新方向不是最优方向示例
与上面的配置相同,此时的最速下降法梯度下降法依然是等价的绿色箭头表示负梯度方向 − ∇ f ( x k ) -\nabla f(x_k) f(xk) P n s d \mathcal P_{nsd} Pnsd。这里发现一个新现象:更新方向 − ∇ f ( x ) -\nabla f(x) f(x) P n s d \mathcal P_{nsd} Pnsd并没有指向最优解,也就是说:这里的更新方向并不是最优方向;真正指向最优方向的是红色箭头

梯度下降法与最速下降法不等价的情况

换一种角度:假设这里没有使用欧式范数,而是使用 L 1 \mathcal L_1 L1范数,也可以得到一些其他效果:
最速下降法与梯度下降法不等价示例2
其中绿色箭头描述的是梯度下降法产生的更新方向;红色箭头则描述的是最速下降法的更新方向。很明显:红色箭头描述的位置相比于绿色箭头更接近最优解。此时两者不等价。

范数的选取与收敛速度的关系

范数的选取对于收敛速度产生较大的影响。当目标函数 f ( ⋅ ) f(\cdot) f()二阶连续可微的情况下,使用矩阵 2 2 2-范数,它的收敛速度会显著提高。在关于目标函数 f ( x ) f(x) f(x)优化问题的迭代过程中,在 x k x_k xk点处如果使用其对应 Hessian Matrix ⇒ ∇ 2 f ( x k ) \text{Hessian Matrix} \Rightarrow \nabla^2 f(x_k) Hessian Matrix2f(xk)定义的矩阵 2 2 2-范数,该位置对应的实际更新方向 P s d \mathcal P_{sd} Psd可表示为:
P s d = − [ ∇ 2 f ( x k ) ] − 1 ∇ f ( x k ) \mathcal P_{sd} = - [\nabla^2 f(x_k)]^{-1} \nabla f(x_k) Psd=[2f(xk)]1f(xk)

这就是经典牛顿法描述的更新方向。
这里不再展开,只是为了描述选取合适的关于更新方向的范数约束,可以提高迭代的收敛速度。

Reference \text{Reference} Reference
笔记 || 梯度法与最速下降法的本质区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RayViz 一款服务于SolidWorks用于光学和机械设计的有效工具

RayViz 作为 SolidWorks 的一个扩展插件&#xff0c;不仅可以在 SolidWorks 工作环境中直接定义和保存模型光学属性&#xff0c; 而且还可以在该 CAD 工作环境中直接进行光线追迹。通过 RayViz, 把 TracePro 和 Solidworks 链接了起来&#xff0c; 一个模型可以在 TracePro 中用…

14.抽象工厂模式

UML 代码 #include <iostream> #include <list> using namespace std;class AbstractProductA { public:virtual void showa() 0; }; class ProductA1:public AbstractProductA { public:virtual void showa(){cout << "我是A1" << endl;}…

OpenHarmony Meetup常州站招募令

OpenHarmony Meetup 常州站正火热招募中&#xff01; 诚邀充满激情的开发者参与线下盛会~ 探索OpenHarmony前沿科技&#xff0c;畅谈未来前景&#xff0c; 感受OpenHarmony生态构建之路的魅力&#xff01; 线下参与&#xff0c;名额有限&#xff0c;仅限20位幸运者&#xff01…

【c++_containers】string的模拟实现

前言 在学习数据结构时&#xff0c;如何证明自己彻底掌握了一个容器的各种特性&#xff1f;最直接的办法就是自己写一个。下面我们将围绕下图展开对与string的深度了解&#xff1a; 一.string的成员变量 string是表示字符序列的对象&#xff0c;同时增加了专门用于操作单字节字…

2023Node.js零基础教程(小白友好型),nodejs新手到高手,(一)NodeJS入门

写在开始前 在无尽的代码汪洪中&#xff0c;闪耀着一抹绚丽的光芒。它叫做Web前端开发&#xff01; HTML是我们的魔法笔&#xff0c;是创造力的源泉。它将我们的思绪化为标签&#xff0c;将我们的想象变为元素。 在无尽的标签组合中&#xff0c;我们创造出独特的网页&#xff…

分享:大模型定向培养学徒来啦

模型定向培养学徒招募对象&#xff1a; 1.在读研究生学硕专硕均可 2.大数据、人工智能、统计学计算机、软件、数学等相关研究方向 3.具备Python编程基础机器学习基础 4.有深度学习自然语言处理基础优先 大模型定向培养学徒目标&#xff1a; 1.培养大模型prompt能力&#…

位图(bitmap)原理以及实现

大家好&#xff0c;我是蓝胖子&#xff0c;我一直相信编程是一门实践性的技术&#xff0c;其中算法也不例外&#xff0c;初学者可能往往对它可望而不可及&#xff0c;觉得很难&#xff0c;学了又忘&#xff0c;忘其实是由于没有真正搞懂算法的应用场景&#xff0c;所以我准备出…

Linux搭建Apache(秒懂超详细)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

C++ Primer (第五版)第一章习题部分答案

在我自学C过程中&#xff0c;我选择了CPrimer这本书&#xff0c;并对部分代码习题进行了求解以及运行结果。接下来几个月我将为大家定时按章节更新习题答案与运行结果: 目录 1.9编写程序,使用while循环将50到100的整数相加 1.10 除了运算符将运算对象的值增加1之外,还有一个…

leetcode522. 最长特殊序列 II(java)

最长特殊序列 题目描述枚举法代码演示 题目描述 难度 - 中等 leetcode522. 最长特殊序列 II 给定字符串列表 strs &#xff0c;返回其中 最长的特殊序列 的长度。如果最长特殊序列不存在&#xff0c;返回 -1 。 特殊序列 定义如下&#xff1a;该序列为某字符串 独有的子序列&a…

【STM32】IWDG—独立看门狗

基于stm32f103 基于《零死角玩转STM32—F103指南者》 一个12bit的递减计数器 STM32 有两个看门狗&#xff0c;一个是独立看门狗另外一个是窗口看门狗&#xff0c;独立看门狗号称宠物狗&#xff0c;窗口看门狗号称警犬。 独立看门狗是一个 12 位的递减计数器&#xff0c;当计…

数字孪生:助力机载软件构型管理

飞机机载软件具有研发周期长、版本更新频繁、相关工程资料密集等特性。由于各个系统的软件分别由不同供应商开发&#xff0c;其设计保障等级、设计架构、实现方法等方面都各有不同&#xff0c;对机载软件进行高效、规范的构型管理显得尤为重要。 Q&#xff1a;什么是构型管理&…

【张兔兔送书第一期:考研必备书单】

考研书单必备 《数据结构与算法分析》《计算机网络&#xff1a;自顶向下方法》《现代操作系统》《深入理解计算机系统》《概率论基础教程&#xff08;原书第10版》《线性代数&#xff08;原书第10版&#xff09;》《线性代数及其应用》赠书活动 八九月的朋友圈刮起了一股晒通知…

Idea新建项目配置Java3D 环境配置

&#xff08;一&#xff09;JDK配置 安装包的下载&#xff1a;1.可以去官网&#xff1a;JDK下载&#xff0c;进入官网页面Java Downloads | Oracle&#xff0c;然后点击Download Java。2.搜博客&#xff0c;可能会内含安装包链接。 ​ 2.在这个界面可以选择我们要安装的版本…

IEEE802.2之LLC(逻辑链路控制)

一、概念 IEEE 802.2 是一种用于局域网&#xff08;LAN&#xff09;和都会区域网&#xff08;MAN&#xff09;的数据链路层逻辑链路控制&#xff08;LLC&#xff09;的标准。它是 IEEE 802 系列标准中的一个组成部分&#xff0c;专门用于定义如何在数据链路层内进行帧的多路复用…

按摩软件仿东郊到家系统开发,上门预约系统;

按摩软件仿东郊到家系统开发&#xff0c;上门预约系统&#xff1b; 用户端、技师端、商家端&#xff0c;以及管理后台。上门预约的操作 1、技师管理。 技师满意度进行统一跟踪评估&#xff0c;进行分级管理&#xff0c;分级评估&#xff1b; 2、订单管理。 按订单状态分类筛选&…

Vue3动态显示时间

使用的是moment.js插件 关键字 vue3的 onMounted 和 onBeforeUnmount 声明周期 一个用来创建 一个用来销毁 创建什么呢? setInterval 函数 销毁时使用时 clearInterval清除定时器 1上代码 function formatTime() {const date moment();const year date.year();const m…

【STM32】SDIO—SD 卡读写01

基于stm32f103 基于零死角玩转STM32—F103指南者 简介 1.SD 卡总共有 8 个寄存器&#xff0c;用于设定或表示 SD 卡信息。 2.SD卡的寄存器不能像STM32那样访问&#xff0c;而是利用命令访问&#xff0c;SDIO 定义了 64 个命令。SD 卡接收到命令后&#xff0c;根据命令要求对…

今天的消费情况

1、今天消费1710元 意外险 住院--集中参保 校---******----服 1220 rmB lunch 240Rmb

若依前端使用

初始化页面时&#xff0c;路由上加参数 多个菜单对应一个页面&#xff0c;默认查询的数据状态不一样 vue 页面上 通过 debugger; 查看所有的参数&#xff0c; 最后取到了