【学习记录】优化方法:梯度下降、牛顿法


前言

学习过程中的一些思考和记录,有错误的地方欢迎指正

神经网络的参数主要通过梯度下降来进行优化。


一、优化方法基础

求解无约束最优化问题的一种最常用的方法。

1.梯度下降

李航老师《统计学习方法》的附录A
例如我们要求解 m i n ( f ( x ) ) min(f(x)) min(f(x))的极小值点。
大致思路就是:先选一个合适的初值,然后去不断迭代,更新这个x,直到收敛。
那么怎样去迭代呢:
首先记 f ( x ) f(x) f(x)的梯度是 g k = g ( x k ) = ∇ f ( x k ) g_{k}=g(x^{k})=\nabla f(x^{k}) gk=g(xk)=f(xk),这里的 x k x_{k} xk就是第k次的迭代值, g k g_{k} gk f ( x ) f(x) f(x) x k x^{k} xk的梯度。
假设 x 0 x^{0} x0是一个比较合适的初始值,此时可以进行的一阶泰勒展开 f ( x ) = f ( x 0 ) + g 0 T ∗ ( x − x 0 ) f(x)=f(x^{0})+g_{0}^{T}*(x-x^{0}) f(x)=f(x0)+g0T(xx0)
第k+1次的迭代值 x k + 1 x^{k+1} xk+1 [重点是这个迭代式怎么来的]:
x k + 1 ← x k + λ k p k x^{k+1} \gets x^{k}+ \lambda_{k}p_{k} xk+1xk+λkpk
其中, p k = − ∇ f ( x k ) p_{k} =- \nabla f(x^{k}) pk=f(xk) λ k \lambda_{k} λk是步长,由一维搜索确定,即 λ k \lambda_{k} λk使得 f ( x k + λ k p k ) = min ⁡ λ ≥ 0 f ( x k + λ k p k ) f (x^{k}+ \lambda_{k}p_{k}) =\min\limits_{\lambda \geq 0} f (x^{k}+ \lambda_{k}p_{k}) f(xk+λkpk)=λ0minf(xk+λkpk)

怎么理解上面这个迭代式呢?假设从 x k x^{k} xk x k + 1 x^{k+1} xk+1 x k < x k + 1 x^{k} < x^{k+1} xk<xk+1 ,目标是求 f ( x ) f(x) f(x)的最小值,所以希望 f ( x k + 1 ) ≤ f ( x k ) f(x^{k+1}) \le f(x^{k}) f(xk+1)f(xk),于是: f ( x k + 1 ) − f ( x k ) = g k T ∗ ( x k + 1 − x k ) ≤ 0 f(x^{k+1}) - f(x^{k})=g_{k}^{T}*(x^{k+1}-x^{k}) \le 0 f(xk+1)f(xk)=gkT(xk+1xk)0 g k T ∗ ( x k + 1 − x k ) ≤ 0 g_{k}^{T}*(x^{k+1}-x^{k}) \le 0 gkT(xk+1xk)0,也就是说在 k k k 处的梯度方向和 x k + 1 − x k x^{k+1}-x^{k} xk+1xk 的方向夹角的cos值小于0, ∣ ∣ g k T ∣ ∣ × ∣ ∣ x k + 1 − x k ∣ ∣ × c o s ( g k T , ( x k + 1 − x k ) ) ≤ 0 ||g_{k}^{T}||\times||x^{k+1}-x^{k}||\times cos(g_{k}^{T},(x^{k+1}-x^{k}) )\le 0 gkT×xk+1xk×cos(gkT,(xk+1xk))0 c o s ( g k T , ( x k + 1 − x k ) ) = − 1 cos(g_{k}^{T},(x^{k+1}-x^{k}) )=-1 cos(gkT,(xk+1xk))=1式上面的值会达到最小值,也就是梯度和 x k + 1 − x k x^{k+1}-x^{k} xk+1xk的方向恰好相反,也就是 − λ g k T = x k + 1 − x k -\lambda g_{k}^{T}=x^{k+1}-x^{k} λgkT=xk+1xk ,这个 λ \lambda λ就是对两者模长的调整,这样就得到了上面的迭代式。

算法描述:
输入:目标函数 f ( x ) f(x) f(x),梯度 g ( x ) = ∇ f ( x ) g(x)=\nabla f(x) g(x)=f(x),精度要求 ϵ \epsilon ϵ
输出: f ( x ) f(x) f(x) 极小值点 x ∗ x^{*} x
(1)取初始点 x 0 x^{0} x0,置k=0
(2)计算 f ( x k ) f(x^{k}) f(xk)
(3)计算梯度 g k = g ( x k ) g_{k}=g(x^{k}) gk=g(xk),当 ∣ ∣ g k ∣ ∣ < ϵ ||g_{k}||< \epsilon gk<ϵ时,则停止计算,令 x ∗ = x k x^{*}=x^{k} x=xk,否则 p k = − g k p_{k}=-g_{k} pk=gk,求 λ k \lambda _{k} λk,使 f ( x k + λ k p k ) = min ⁡ λ ≥ 0 f ( x k + λ k p k ) f (x^{k}+ \lambda_{k}p_{k}) =\min\limits_{\lambda \geq 0} f (x^{k}+ \lambda_{k}p_{k}) f(xk+λkpk)=λ0minf(xk+λkpk)

(4)置 x k + 1 = x k + λ k p k x^{k+1}=x^{k}+\lambda _{k}p_{k} xk+1=xk+λkpk,计算 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})||< \epsilon f(xk+1)f(xk)<ϵ ∣ ∣ x k + 1 − x k ∣ ∣ < ϵ ||x_{k+1}-x_{k}||< \epsilon xk+1xk<ϵ 时,停止迭代,令 x ∗ = x k + 1 x^{*}=x^{k+1} x=xk+1
(5)否则,置 k = k + 1 k=k+1 k=k+1,转(3) 当目标函数是凸函数时,梯度下降法的解是全局最优解

“花书”上的解释直观易懂,copy在这里:

μ \mu μ(单位向量)方向的方向导数是函数f在u方向的斜率。换句话说,方向导数是函数 f ( x + α μ ) f(x+ \alpha \mu) f(x+αμ)关于 α \alpha α的导数(在 α = 0 \alpha=0 α=0时取得)。
使用链式法则,可以看到 α = 0 \alpha=0 α=0时, ∂ ∂ α f ( x + α μ ) = μ T ∇ x f ( x ) \frac{\partial}{\partial \alpha} f(x+\alpha \mu)=\mu^{T} \nabla _{x}f(x) αf(x+αμ)=μTxf(x)
为了最小化 f f f,我们希望找到使 f f f下降得最快得方向。计算方向导数:
min ⁡ μ , μ T μ = 1 μ T ∇ x f ( x ) = min ⁡ μ , μ T μ = 1 μ T ∣ ∣ μ ∣ ∣ 2 ∣ ∣ ∇ x f ( x ) ∣ ∣ 2 c o s θ \min \limits_{\mu ,\mu^{T}\mu=1} \mu^{T}\nabla_{x}f(x)=\min \limits_{\mu ,\mu^{T}\mu=1} \mu^{T}||\mu||_{2}||\nabla_{x}f(x)||_{2}cos\theta μ,μTμ=1minμTxf(x)=μ,μTμ=1minμTμ2xf(x)2cosθ其中, θ \theta θ μ \mu μ与梯度得夹角。 ∣ ∣ μ ∣ ∣ 2 = 0 ||\mu||_{2}=0 μ2=0代入,就能简化得到 min ⁡ μ cos ⁡ θ \min \limits_{\mu } \cos\theta μmincosθ,这在 m u mu mu与梯度方向相反时取得最小。换句话说,梯度向量指向上坡,负梯度向量指向下坡。

2.牛顿法

李航老师《统计学习方法》的附录B

方法细节

牛顿法也是一种迭代算法,每一步都需要求解目标函数的黑塞矩阵的逆矩阵。
和上面的梯度下降一样,我们要求解 m i n ( f ( x ) ) min(f(x)) min(f(x))的极小值点(这里一般是损失函数)。
那么黑塞矩阵(Hessian Matrix)又是什么呢
Hessian矩阵就是函数二阶导组成的一个方阵。 H ( x ) = [ ∂ 2 f ∂ x i ∂ x j ] H(x)=\begin{bmatrix} \frac{ \partial^{2} f}{\partial x_{i}\partial x_{j}} \end{bmatrix} H(x)=[xixj2f]
比如函数 f ( x ) = a x 0 2 + b ∗ x 1 3 + c x 2 4 f(x)=ax_{0}^{2}+b*x_{1} ^{3}+cx_{2}^{4} f(x)=ax02+bx13+cx24 ∂ f x 0 = 2 a x 0 , ∂ f x 1 = 3 b x 1 2 , ∂ f x 2 = 4 a x 2 3 \frac{ \partial f}{x_{0}}=2ax_{0},\frac{ \partial f}{x_{1}}=3bx_{1}^{2},\frac{ \partial f}{x_{2}}=4ax_{2}^{3} x0f=2ax0,x1f=3bx12,x2f=4ax23 ∂ 2 f x 0 2 = 2 a , ∂ 2 f x 1 2 = 6 b x 1 , ∂ 2 f x 2 2 = 12 a x 2 2 \frac{ \partial^{2} f}{x_{0}^{2}}=2a,\frac{ \partial^{2} f}{x_{1}^{2}}=6bx_{1},\frac{ \partial^{2} f}{x_{2}^{2}}=12ax_{2}^{2} x022f=2a,x122f=6bx1,x222f=12ax22 ∂ 2 f x 0 x 1 = 0 , ∂ 2 f x 0 x 2 = 0 , ∂ 2 f x 1 x 2 = 0 \frac{ \partial^{2} f}{x_{0}x_{1}}=0,\frac{ \partial^{2} f}{x_{0}x_{2}}=0,\frac{ \partial^{2} f}{x_{1}x_{2}}=0 x0x12f=0,x0x22f=0,x1x22f=0Hessian矩阵就是(一定是个方阵): H e s s i a n = [ ∂ 2 f x 0 2 ∂ 2 f x 0 x 1 ∂ 2 f x 0 x 2 ∂ 2 f x 0 x 1 ∂ 2 f x 1 2 ∂ 2 f x 1 x 2 ∂ 2 f x 0 x 2 ∂ 2 f x 1 x 2 ∂ 2 f x 2 2 ] = [ 2 a 0 0 0 6 b x 1 0 0 0 12 a x 2 2 ] Hessian=\begin{bmatrix} \frac{ \partial^{2} f}{x_{0}^{2}} & \frac{ \partial^{2} f}{x_{0}x_{1}} & \frac{ \partial^{2} f}{x_{0}x_{2}} \\ \frac{ \partial^{2} f}{x_{0}x_{1}} & \frac{ \partial^{2} f}{x_{1}^{2}} & \frac{ \partial^{2} f}{x_{1}x_{2}} \\ \frac{ \partial^{2} f}{x_{0}x_{2}} & \frac{ \partial^{2} f}{x_{1}x_{2}} & \frac{ \partial^{2} f}{x_{2}^{2}} \end{bmatrix}= \begin{bmatrix} 2a & 0 & 0 \\ 0 & 6bx_{1} & 0 \\ 0 & 0 & 12ax_{2}^{2} \end{bmatrix} Hessian=x022fx0x12fx0x22fx0x12fx122fx1x22fx0x22fx1x22fx222f=2a0006bx100012ax22
对目标函数 f ( x ) f(x) f(x)二阶泰勒展开:
f ( x ) = f ( x k ) + g 0 T ∗ ( x − x k ) + 1 2 ( x − x k ) T H ( x k ) ( x − x k ) f(x)=f(x^{k})+g_{0}^{T}*(x-x^{k})+\frac{1}{2}(x-x^{k})^{T}H(x_{k})(x-x^{k}) f(x)=f(xk)+g0T(xxk)+21(xxk)TH(xk)(xxk)
f ( x ) f(x) f(x)有极值的必要条件是在极值点处的一阶导数为0,即梯度向量为0.

假设从第k步开始求极小值点,就有 ∇ f ( x k + 1 ) = 0 \nabla f(x^{k+1})=0 f(xk+1)=0,由上面的二阶展开,可以知道 ∇ f ( x ) = g k + H k ( x − x k ) \nabla f(x)=g_{k}+H_{k}(x-x^{k}) f(x)=gk+Hk(xxk),那么 g k + H k ( x k + 1 − x k ) = 0 g_{k}+H_{k}(x^{k+1}-x^{k})=0 gk+Hk(xk+1xk)=0,解得 x k + 1 = x k − H k − 1 g k x^{k+1}=x^{k}-H_{k}^{-1}g_{k} xk+1=xkHk1gk若记 p k = − H k − 1 g k p_{k}=-H_{k}^{-1}g_{k} pk=Hk1gk,可以写成 x k + 1 = x k + p k x^{k+1}=x^{k}+p_{k} xk+1=xk+pk

详细算法描述:

输入:目标函数 f ( x ) f(x) f(x),梯度 g ( x ) = ∇ f ( x ) g(x)=\nabla f(x) g(x)=f(x),Hessian矩阵,精度要求 ϵ \epsilon ϵ
输出: f ( x ) f(x) f(x) 极小值点 x ∗ x^{*} x

(1)取初始点 x 0 x^{0} x0,置k=0
(2)计算 g k = g ( x k ) g_{k}=g(x^{k}) gk=g(xk)
(3)若 ∣ ∣ g k ∣ ∣ < ϵ ||g_{k}||< \epsilon gk<ϵ,则停止计算,得近似解 x ∗ = x k x^{*}=x^{k} x=xk
(4)计算 H k = H ( x k ) H_{k}=H(x^{k}) Hk=H(xk),并求 p k p_{k} pk p k = − H k − 1 g k , H k p k = − g k p_{k}=-H_{k}^{-1}g_{k},H_{k}p_{k}=-g_{k} pk=Hk1gkHkpk=gk(5)置 x k + 1 = x k + p k x^{k+1}=x^{k}+p_{k} xk+1=xk+pk (6)置 k = k + 1 k=k+1 k=k+1,转(2)

∣ ∣ g k ∣ ∣ < ϵ ||g_{k}||< \epsilon gk<ϵ 即在给定一个足够小的正数的情况下,整个过程可以认为已经收敛,如果还没有满足这个条件,说明模型的最小值还不够近似,需要继续迭代。

那么在这个算法中,我们是用来估计模型的参数,有一次做“用Newton-Raphson Method方法近似求解方程的根”,于是对它们做一些记录,在一些大厂的机考中有遇到过
和上面的思路相同,我们可以得到一个迭代式,不过现在不是高维数据,不用矩阵表示
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)
迭代上述式子即可,直到 x n + 1 − x n x_{n+1}-x_{n} xn+1xn的绝对值小于等于一个给定的足够小的正数。在这里和求解参数没有什么不同,方程的系数就相当于是样本,求解的根类似于上述的参数。(当前的理解是这样)

补充

既然都说到Hessian矩阵的,也来记录一下它的好兄弟Jacobian矩阵,Hessian矩阵对二阶导数感兴趣,那么Jacobian矩阵对一阶导数感兴趣。

二、神经网络参数学习中常见的优化算法

1.小批量梯度下降

参考邱锡鹏老师《神经网络与深度学习》

通常在训练深度神经网络是训练数据的规模都很大,这样很浪费计算资源,所以经常会使用小批量梯度下降。这样迭代式就可以写成 x k + 1 ← x k + λ k p k x^{k+1} \gets x^{k}+ \lambda_{k}p_{k} xk+1xk+λkpk,如果神经网络的参数是 θ \theta θ,那么就可以写成 θ k + 1 ← θ k + λ k p k \theta^{k+1} \gets \theta^{k}+ \lambda_{k}p_{k} θk+1θk+λkpk λ \lambda λ是学习率,更新的梯度为 p k ( θ ) = − 1 K ∑ ( x , y ) ∈ S t ∂ L ( y , f ( x ; θ ) ) ∂ θ p_{k}(\theta)=-\frac{1}{K} \sum_{(x,y)\in S_{t}}\frac{\partial L(y,f(x;\theta))}{\partial \theta} pk(θ)=K1(x,y)StθL(y,f(x;θ))L就相当于梯度下降中的 f ( x ) f(x) f(x),这里的K就是批量大小。

这种方法实际过程中优化过程
举例来说,有100张灰度图,每张图片是16*16的,把它们分成10个batch,每个batch是十张图片,用一层的MLP去拟合,这样的话就需要256个参数,我们接下来就是要学出这256个参数。用均方误差表示损失函数。
首先,对这256个参数随机初始化,记为 θ 1 0 , θ 2 0 . . . θ 256 0 \theta_{1}^{0},\theta_{2}^{0}...\theta_{256}^{0} θ10,θ20...θ2560 p r e = θ 1 ∗ p i x e l 1 + θ 2 ∗ p i x e l 1 + . . . + θ 256 ∗ p i x e l 256 pre=\theta _{1}*pixel_{1}+\theta_{2}*pixel_{1}+...+\theta_{256}*pixel_{256} pre=θ1pixel1+θ2pixel1+...+θ256pixel256第一个batch, θ i 1 = θ i 0 − 1 10 ∑ t = 1 10 ∂ ( p r e t 0 − l a b e l ) 2 ∂ θ t 0 \theta_{i}^{1}=\theta_{i}^{0}-\frac{1}{10}\sum_{t=1}^{10}\frac{\partial (pre^{0}_{t}-label)^{2}}{\partial \theta_{t}^{0}} θi1=θi0101t=110θt0(pret0label)2256个参数的更新公式都相同,后面的9次参数更新和第一个相同。

每一次小批量更新为一次迭代(也就是所有参数更新一次)为一次迭代,所有训练集的样本更新一遍为一个回合,两者的关系是 1 回 合 ( E p o c h ) = ( 训 练 样 本 的 数 量 N 批 量 大 小 K ) ∗ 迭 代 ( I t e r a t i o n ) 1回合(Epoch)=(\frac{训练样本的数量N}{批量大小K})*迭代(Iteration) 1(Epoch)=(KN)(Iteration)在上面的例子中,Iteration就是10,也就是所有参数在一个回合中更新了10次。

2.随机梯度下降SGD

算法

输入:目标函数 f ( x ) f(x) f(x),梯度 g ( x ) = ∇ f ( x ) g(x)=\nabla f(x) g(x)=f(x),精度要求 ϵ \epsilon ϵ,初始学习率 λ 0 \lambda_{0} λ0
输出: f ( x ) f(x) f(x) 极小值点 x ∗ x^{*} x
(1)取初始点 x 0 x^{0} x0,置k=0
(2)从训练集中采包含m个样本的小批量,计算 f ( x k ) f(x^{k}) f(xk)
(3)计算梯度 g k = g ( x k ) g_{k}=g(x^{k}) gk=g(xk),当 ∣ ∣ g k ∣ ∣ < ϵ ||g_{k}||< \epsilon gk<ϵ时,则停止计算,令 x ∗ = x k x^{*}=x^{k} x=xk,否则 p k = − g k p_{k}=-g_{k} pk=gk,使( τ \tau τ为迭代次数) g k ( θ ) = 1 K ∑ ( x , y ) ∈ S t ∂ L ( y , f ( x ; θ ) ) ∂ θ , λ k = ( 1 − α ) λ 0 + α λ τ g_{k}(\theta)=\frac{1}{K} \sum_{(x,y)\in S_{t}}\frac{\partial L(y,f(x;\theta))}{\partial \theta},\lambda_{k}=(1-\alpha)\lambda_{0}+\alpha \lambda_{\tau} gk(θ)=K1(x,y)StθL(y,f(x;θ)),λk=(1α)λ0+αλτ

(4)置 x k + 1 = x k + λ k p k x^{k+1}=x^{k}+\lambda _{k}p_{k} xk+1=xk+λkpk,计算 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})||< \epsilon f(xk+1)f(xk)<ϵ ∣ ∣ x k + 1 − x k ∣ ∣ < ϵ ||x_{k+1}-x_{k}||< \epsilon xk+1xk<ϵ 时,停止迭代,令 x ∗ = x k + 1 x^{*}=x^{k+1} x=xk+1
(5)否则,置 k = k + 1 k=k+1 k=k+1,转(3)

解释

《Deep Learning》'花书'
SGD算法中的一个关键参数是学习率,在训练模型的过程中,有必要随着时间的推移逐渐降低学习率,我们将第k步迭代的学习率记作 ϵ k \epsilon_{k} ϵk,这是因为SGD中梯度估计引入的噪声源(m个样本的随机采样)并不会在极小值点处消失。
相比之下,当我们使用批量梯度下降到达极小点时,整个损失函数的真实梯度会变得很小,之后为0(因为想找的点它的导数就是0嘛),因此批量梯度下降可以使用固定的学习率。
SGD收敛的充分条件: ∑ k ∞ λ k = ∞ , ∑ k ∞ λ k 2 < ∞ \sum_{k}^{\infty}\lambda_{k}=\infty,\sum_{k}^{\infty}\lambda_{k}^{2}<\infty kλk=,kλk2<
实践中,一般会线性衰减学习率到第 τ \tau τ次迭代(即常见的线性策略): λ k = ( 1 − α ) λ 0 + α λ τ \lambda_{k}=(1-\alpha)\lambda_{0}+\alpha \lambda_{\tau} λk=(1α)λ0+αλτ其中, α = k τ \alpha=\frac{k}{\tau} α=τk,在 τ \tau τ步迭代后,一般会使 λ \lambda λ保持常数。

再结合上面的例子,也就是说一个batch会有一个学习率,对模型的参数更新中的步长同时也进行更新。在不设置次数限制的情况下,上面的例子中,步长 λ \lambda λ也会更新10次。
通常,就总训练时间和最终代价值而言,最优初始学习率会高于大约迭代100次后达到最佳效果的学习率。因此,通常最好是检测最早的几轮迭代,选择一个比在效果上表现最佳的学习率更大的学习率,但又不能太大导致严重的震荡。

3.动量法

《Deep Learning》'花书'
一种在上述方法的基础上加速学习的优化方法,形式上来看,动量算法引入了变量v充当速度的角色,代表参数在参数空间移动的方向和速率。
引入v后,参数的更新规则有了一些变化,m为批量大小 v ← α v − λ ∇ θ ( 1 K ∑ ( x , y ) ∈ S t ∂ L ( y , f ( x ; θ ) ) ∂ θ ) v\gets \alpha v -\lambda \nabla_{\theta} (\frac{1}{K}\sum_{(x,y)\in S_{t}}\frac{\partial L(y,f(x;\theta))}{\partial \theta}) vαvλθ(K1(x,y)StθL(y,f(x;θ))) θ ← θ + v \theta \gets \theta+v θθ+v从公式中就可以看到,速度v累积了梯度元素, λ \lambda λ不变, α \alpha α越大,之前的梯度对现在方向的影响也越大。
之前,步长只是梯度范数乘以学习率,现在步长取决于梯度序列的大小和排列。当许多的梯度指向相同的方向时,步长最大。


对比与思考

1.梯度下降法 :一阶泰勒展开 步长需要调整
牛顿法: 二阶泰勒展开 没有需要调整的超参数
2.

方法迭代式
SGD p k ( θ ) = − 1 K ∑ ( x , y ) ∈ S t ∂ L ( y , f ( x ; θ ) ) ∂ θ p_{k}(\theta)=-\frac{1}{K} \sum_{(x,y)\in S_{t}}\frac{\partial L(y,f(x;\theta))}{\partial \theta} pk(θ)=K1(x,y)StθL(y,f(x;θ)) λ k = ( 1 − α ) λ 0 + α λ τ \lambda_{k}=(1-\alpha)\lambda_{0}+\alpha \lambda_{\tau} λk=(1α)λ0+αλτ θ k + 1 = θ k + λ k p k \theta^{k+1}=\theta^{k}+\lambda _{k}p_{k} θk+1=θk+λkpk
动量法 p k ( θ ) = − 1 K ∑ ( x , y ) ∈ S t ∂ L ( y , f ( x ; θ ) ) ∂ θ p_{k}(\theta)=-\frac{1}{K} \sum_{(x,y)\in S_{t}}\frac{\partial L(y,f(x;\theta))}{\partial \theta} pk(θ)=K1(x,y)StθL(y,f(x;θ)) v k + 1 ← α v k + λ k p k v^{k+1}\gets \alpha v^{k} +\lambda^{k}p_{k} vk+1αvk+λkpk θ k + 1 = θ k + v k + 1 \theta^{k+1}=\theta^{k}+v^{k+1} θk+1=θk+vk+1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值