统计计算第二、三节课,一些优化的方法

这是我上的统计计算课讲的主要内容,写在这可以互相交流,有些地方我不是很理解的会标出来(用加粗斜体*标出),求大佬在留言处表达自己的看法,另外如果有啥问题也可以在留言处留言,如果我看到了会回复

这次的内容相比于上次更杂,也稍微有点难度,含有一些证明,因此这次的文章结构采用三个阶段的写法,第一个阶段介绍概念,了解方法的动机、主要结果、以及优缺点,第二个阶段是最基本方法的证明,第三个阶段扩展到其他方法的证明(不过我可能写不出来)

第一阶段

背景:求解最大似然估计
主要方法:拉格朗日乘子法解带约束的凸问题,梯度下降法及其一些扩展数值求解最优点

拉格朗日乘子法

自行百度的概念:凸集,凸函数(这里指下凸函数)
凸函数的重要例子:p范数(p>=1)
凸函数的重要性质:若 f ( x ) f(x) f(x)是凸函数,则有 f ( E ( x ) ) ≤ E ( f ( x ) ) ( 证 明 放 在 第 二 阶 段 ) f(E(x))\leq E(f(x)) (证明放在第二阶段) f(E(x))E(f(x))

凸优化问题的表述

m i n   f 0 ( x ) min\ f_0(x) min f0(x) s . t . f i ( x ) ≤ 0 i = 1 , 2 , . . . , m s.t.\quad f_i(x)\leq0\qquad i=1,2,...,m s.t.fi(x)0i=1,2,...,m h j ( x ) = 0 j = 1 , 2 , . . . , p h_j(x)=0\qquad j=1,2,...,p hj(x)=0j=1,2,...,p
其中所有函数都是凸函数。

记号
最优(小)值: p ∗ p^* p
可行域: D = ⋂ i = 1 n D f i ∩ ⋂ j = 1 p D h j D=\bigcap_{i=1}^n D_{f_i} \cap \bigcap_{j=1}^p D_{h_j} D=i=1nDfij=1pDhj
最优点: x ∗ x^* x,且有 f ( x ∗ ) = p ∗ f(x^*)=p^* f(x)=p

凸问题中判别最优点的准则
f 0 ( x ) f_0(x) f0(x)可微,则 x ∗ x^* x是最优点,当且仅当 ▽ f 0 ( x ) T ( y − x ) ≥ 0 ∀ 可 行 域 中 的 y \triangledown f_0(x)^T(y-x)\geq 0 \qquad \forall 可行域中的y f0(x)T(yx)0y

拉格朗日函数求解最优点

拉格朗日函数
L ( x , λ , ν ) = f 0 ( x ) + ∑ i = 1 n λ i f i ( x ) + ∑ j = 1 p ν j h j ( x ) L(x,\bm \lambda,\bm \nu)=f_0(x)+\sum_{i=1}^n \lambda _if_i(x)+\sum_{j=1}^p \nu _jh_j(x) L(x,λ,ν)=f0(x)+i=1nλifi(x)+j=1pνjhj(x)

对偶函数
g ( λ , ν ) = i n f x ∈ D L ( x , λ , ν ) g(\bm \lambda,\bm \nu)=\mathop{inf}\limits_{x\in D}L(x,\bm \lambda,\bm \nu) g(λ,ν)=xDinfL(x,λ,ν)
我们可以观察到对偶函数有如下重要性质:
1、对偶函数始终都是凸函数(不管原问题是否是凸问题)
2、若对于 ∀ \forall 可行域中的x,若 λ ≥ 0 \bm\lambda\geq0 λ0,则有 g ( λ , ν ) ≤ L ( x , λ , ν ) ≤ f 0 ( x ) g(\bm \lambda,\bm \nu)\leq L(x,\bm \lambda,\bm \nu)\leq f_0(x) g(λ,ν)L(x,λ,ν)f0(x),因此可推出 g ( λ , ν ) ≤ p ∗ , ∀ λ ≥ 0 , ν ∈ R p g(\bm \lambda,\bm \nu)\leq p^*,\forall \bm\lambda\geq0,\bm \nu\in R^p g(λ,ν)pλ0,νRp

拉格朗日对偶问题 m i n   g ( λ , ν ) min\ g(\bm \lambda,\bm \nu) min g(λ,ν) s . t . λ ≥ 0 s.t.\quad \bm \lambda \geq 0 s.t.λ0记对偶问题的最小值为 d ∗ d^* d,最小值点为 ( λ ∗ , ν ∗ ) (\bm \lambda^*,\bm \nu^*) (λ,ν)
d ∗ ≤ p ∗ d^*\leq p^* dp,则称该情况为弱对偶,称 d ∗ − p ∗ d^*- p^* dp为最优值对偶间隙
d ∗ = p ∗ d^*= p^* d=p,则称该情况为强对偶

强对偶的一个充分条件
Slater’s Condition(还不太明白这个条件说的啥,查好后补充)*

强对偶能带来的一些结论
首先我们考察下面这个连不等式
f 0 ( x ∗ ) = g ( λ ∗ , ν ∗ ) = i n f x ∈ D L ( x , λ ∗ , ν ∗ ) = i n f x ∈ D f 0 ( x ) + ∑ i = 1 n λ i ∗ f i ( x ) + ∑ j = 1 p ν j ∗ h j ( x ) ≤ f 0 ( x ∗ ) + ∑ i = 1 n λ i ∗ f i ( x ∗ ) + ∑ j = 1 p ν j ∗ h j ( x ∗ ) ≤ f 0 ( x ∗ ) \begin{aligned} f_0(x^*)=& g(\bm \lambda^*,\bm \nu^*)=\mathop{inf}\limits_{x\in D}L(x,\bm \lambda^*,\bm \nu^*) \\ =& \mathop{inf}\limits_{x\in D} f_0(x)+\sum_{i=1}^n \lambda _i^*f_i(x)+\sum_{j=1}^p \nu _j^*h_j(x)\\ \leq & f_0(x^*)+\sum_{i=1}^n \lambda _i^*f_i(x^*)+\sum_{j=1}^p \nu _j^*h_j(x^*)\\ \leq & f_0(x^*) \end{aligned} f0(x)==g(λ,ν)=xDinfL(x,λ,ν)xDinff0(x)+i=1nλifi(x)+j=1pνjhj(x)f0(x)+i=1nλifi(x)+j=1pνjhj(x)f0(x)由于有强对偶,所以上式中的不等号全部全部取等,可得两个重要条件
(1): x ∗ x^* x使 L ( x , λ ∗ , ν ∗ ) L(x,\bm \lambda^*,\bm \nu^*) L(x,λ,ν)取最小值
(2): λ i ∗ f i ( x ∗ ) = 0 \lambda _i^*f_i(x^*)=0 λifi(x)=0 (互补条件)

通过上面的讨论我们可以得到求解优化问题的一套流程:首先写出拉格朗日函数,算出对偶函数,由对偶函数的凸性算出对偶函数的极值点 ( λ ∗ , ν ∗ ) (\bm \lambda^*,\bm \nu^*) (λ,ν),最后在该极值点下求出拉格朗日函数的极值点 x ∗ x^* x
但是我们发现这一套流程很麻烦,所以想找出一个较为容易的求解方法,这就催生了KKT条件。

KKT条件
( x ∗ , λ ∗ , ν ∗ ) (x^*,\bm \lambda^*,\bm \nu^*) (x,λ,ν)是最优点,则KKT条件的内容为拉格朗日函数关于x的梯度在最优点处取值为0+约束条件+ λ ∗ ≥ 0 \bm \lambda^* \geq0 λ0+互补条件
首先由上面的讨论可以知道KKT条件是最优点的必要条件
定理:当原问题是凸问题时,KKT条件是最优点的充要条件 (不会证)

梯度下降法

上面的拉格朗日乘子法对于有解析解的问题较为好办,但如果问题没有或者很难求出解析解,数值求最优点就变得很重要了,接下来将讨论无约束问题的梯度下降法及其若干变种,每种方法将从算法流程,收敛性方面来讨论

在讨论之前,我们在这里列出三个假设,便于下文引用:
(1)f在 R n R^n Rn上凸且连续可微
(2) ▽ f ( x ) \bigtriangledown f(x) f(x) R n R^n Rn上L-李普西斯连续,即对 ∀ x , y ∈ R n , ∥ ▽ f ( x ) − ▽ f ( y ) ∥ ≤ L ∥ x − y ∥ \forall x,y\in R^n,\|\bigtriangledown f(x)-\bigtriangledown f(y)\|\leq L\|x-y\| x,yRn,f(x)f(y)Lxy
(3)f的最优值有限且最优点能取到
(4)f是m-强凸的

最原始的梯度下降法

算法(略)
收敛速度
(1,2,3)无(4)时为 O ( 1 / k ) O(1/k) O(1/k),有是(4)时为指数收敛

牛顿法

牛顿法产生的背景
对于梯度下降法,我们可以如下理解:假设 f ( x ) f(x) f(x)有一阶导数,所以可以将 f ( x ) f(x) f(x)作一阶泰勒展开并略去高阶小量,得到 f ( x + v ) = f ( x ) + f ′ ( x ) T v f(x+v)=f(x)+f^{'}(x)^Tv f(x+v)=f(x)+f(x)Tv,我们的目标是取某个方向的单位向量 v v v,使得 f ( x + v ) f(x+v) f(x+v)最小,此时 v v v就是最原始的梯度下降法中得到的方向

牛顿法
牛顿法就是当 f ( x ) f(x) f(x)有二阶导数时,将 f ( x ) f(x) f(x)作二阶泰勒展开,略去高阶小量并解上述的最优化问题得到的 v v v,具体形式为 v = − ( ▽ 2 f ( x ) ) − 1 ▽ f ( x ) v=-(\triangledown^2 f(\bm x))^{-1}\triangledown f(\bm x) v=(2f(x))1f(x)

当然我们也可以从另一方面来看牛顿法,使用一个正定矩阵新定义一个距离,在该距离下,v是下降最快的方向(与最原始的梯度下降法的想法类似)

拟牛顿法

拟牛顿法产生的背景
在牛顿法中,我们需要计算海森矩阵的逆,在矩阵较大时计算开销会很大,所以我们希望每次更新 x x x时使用一个矩阵近似海森矩阵,而这个近似矩阵的逆便于求得,减少计算开销

算法
设当前所在点为 x n + 1 x_{n+1} xn+1,上一步所在点为 x n x_n xn,已经求得上一步的近似矩阵 M n M_n Mn,则算法如下: Δ x n = x n + 1 − x n y n = ▽ f ( x n + 1 ) − ▽ f ( x n ) v n = y n − M n x n M n + 1 = M n + v n v n T v n T Δ x n 计算 M n + 1 的逆矩阵 M n + 1 − 1 x n + 2 = x n + 1 − t M n + 1 − 1 ▽ f ( x n + 1 ) \Delta x_n=x_{n+1}-x_n \\y_n=\bigtriangledown f(x_{n+1})-\bigtriangledown f(x_n) \\ v_n=y_n-M_nx_n\\ M_{n+1}=M_n+\frac{v_nv_n^T}{v_n^T\Delta x_n}\\ \text{计算$M_{n+1}$的逆矩阵$M_{n+1}^{-1}$}\\ x_{n+2}=x_{n+1}-tM_{n+1}^{-1}\bigtriangledown f(x_{n+1}) Δxn=xn+1xnyn=f(xn+1)f(xn)vn=ynMnxnMn+1=Mn+vnTΔxnvnvnT计算Mn+1的逆矩阵Mn+11xn+2=xn+1tMn+11f(xn+1)
其中 M n + 1 − 1 M_{n+1}^{-1} Mn+11的计算使用了Sherman-Morrison-Woodbury 公式 ( A + U C V ) − 1 = A − 1 − A − 1 U ( C − 1 + V A − 1 U ) − 1 V A − 1 其 中 A ∈ R n × n , U ∈ R n × d , C ∈ R d × d , V ∈ R d × n 其 中 d < n , 所 有 矩 阵 满 秩 (A+UCV)^{-1}=A^{-1}-A^{-1}U(C^{-1}+VA^{-1}U)^{-1}VA^{-1}\\ 其中A\in R^{n\times n},U\in R^{n\times d},C\in R^{d\times d},V\in R^{d\times n}\\其中 d<n,所有矩阵满秩 (A+UCV)1=A1A1U(C1+VA1U)1VA1ARn×n,URn×d,CRd×d,VRd×nd<n,该公式暂时不在本文中证明,可能以后会证一下
在拟牛顿法中矩阵C为1,矩阵U为列向量 v n v_n vn,矩阵V为行向量 v n T v_n^T vnT,所以 M n + 1 − 1 M_{n+1}^{-1} Mn+11易求出

拟牛顿法的扩展
上面在更新 M n M_{n} Mn时,使用了一个秩为1的矩阵,为了更加逼近海森矩阵,我们想用一个秩为2的矩阵进行更新,这就产生了BFGS方法
M n + 1 = M n + y n y n T y n T Δ x n − M n Δ x n ( M n Δ x n ) T ( Δ x n ) T M n Δ x n M_{n+1}=M_n+\frac{y_ny_n^T}{y_n^T\Delta x_n}-\frac{M_n\Delta x_n(M_n\Delta x_n)^T}{(\Delta x_n)^TM_n\Delta x_n} Mn+1=Mn+ynTΔxnynynT(Δxn)TMnΔxnMnΔxn(MnΔxn)T

遗留的问题
在这里我没有说明为什么这样构造的 M n M_n Mn会收敛到海森矩阵,以及为什么BFGS方法比秩1方法好,我会在以后填一下这个坑
关于拟牛顿法的收敛速度,我也会通过数值试验来填一下坑

动量方法

背景
原始的梯度下降法有如下的缺点:
(1)陷入鞍点
(2)收敛速度不够快
(3)难以解决大规模数据
(4)无法求没有导数的函数的最值
这就催生了另一些改进的下降方法来求函数最值

原始的动量方法

算法
m k = μ m k − 1 + ( 1 − μ ) ▽ f ( x n − 1 ) x n = x n − 1 − α m k 0 ≤ μ < 1 m_k=\mu m_{k-1}+(1-\mu)\bigtriangledown f(x_{n-1})\\ x_n=x_{n-1}-\alpha m_k\\ 0\leq \mu<1 mk=μmk1+(1μ)f(xn1)xn=xn1αmk0μ<1
直观想法
从名字就可以看出,选择下一个点的原则和物体运动类似,其方向收到上一步方向的影响,当 μ = 0 \mu=0 μ=0时,即为梯度下降法

优点
相比于梯度下降法,在等高线为椭圆形,出发点位于长轴附近时(偏离长轴一些),动量方法的更新方向沿长轴的分量会逐渐积累,沿短轴的分量会相互抵消,这样可以更快的向最优点收敛(如图)
在这里插入图片描述在这里插入图片描述

Nesterov加速法(NAG)

背景
见其他大佬写的文章

https://blog.csdn.net/tsyccnh/article/details/76673073

算法
令 x 0 = x − 1 y = x n − 1 + n − 2 n + 1 ( x n − 1 − x n − 2 ) x n = y − t ▽ f ( y ) 令x_0=x_{-1}\\ y=x_{n-1}+\frac{n-2}{n+1}(x_{n-1}-x_{n-2})\\ x_n=y-t\bigtriangledown f(y) x0=x1y=xn1+n+1n2(xn1xn2)xn=ytf(y)可以看出此方法和动量法差别在于需要求导数的点的位置,此方法求导的位置比当前位置靠前一点,而动量方法求导的位置就是在当前位置。

优点
在一定条件下,收敛速度在达到一阶方法的最快速度(一阶方法是什么锤子,找不到定义),下面这个定理说明一阶方法收敛的最快速度为 1 k 2 \frac{1}{k^2} k21(本文不证明该定理)

定理:对任意的整数 k < n − 1 2 \bm {k<\frac{n-1}{2}} k<2n1(n为维数)和初始值 x 0 , \bm{x_0}, x0,,都存在满足假设(1,2,3)的函数f,使得对于任意的一阶方法, f ( x k ) − f ( x ∗ ) ≥ 3 32 L ∥ x 0 − x ∗ ∥ 2 ( k + 1 ) 2 \bm{f(x_k)-f(x^*)\geq \frac{3}{32}\frac{L\|x_0-x^*\|^2}{(k+1)^2}} f(xk)f(x)323(k+1)2Lx0x2

收敛速度

定理:f满足假设(1,2,3),则对于 t ≤ 1 L \bm{t\leq \frac1L} tL1,有 f ( x k ) − f ( x ∗ ) ≤ 2 ∥ x 0 − x ∗ ∥ 2 t ( k + 1 ) 2 \bm{f(x_k)-f(x^*)\leq \frac{2\|x_0-x^*\|^2}{t(k+1)^2}} f(xk)f(x)t(k+1)22x0x2
该定理说明Nesterov加速法在一定条件下,收敛速度在达到一阶方法的最快速度,我们将在第二阶段给出证明

小结
至此我们可以解决梯度下降法的缺点(2)

近端(proximal)梯度下降

背景
该方法可以求部分没有导数的函数的最值,只要这个这个函数可以分解为两个部分 f = g + h f=g+h f=g+h g g g为凸且连续可微的, h h h为凸且较为简单,这个较为简单定义得比较模糊,可以通过下面近端函数的一些例子来理解。

prox函数
定义:设h是凸函数,则关于h的近端函数为 p r o x h ( x ) = a r g m i n u ( h ( u ) + 1 2 ∥ u − x ∥ 2 2 ) prox_h(x)=\mathop{argmin}\limits_{u}(h(u)+\frac 12\|u-x\|^2_2) proxh(x)=uargmin(h(u)+21ux22)例如: ( 1 ) h ( x ) = 0 时 , p r o x h ( x ) = x ( 2 ) 定 义 示 性 函 数 1 C ( x ) = { 0 x ∈ C + ∞ x ∉ C 当 h ( x ) = 1 C ( x ) 时 , p r o x h ( x ) 为 点 x 在 C 上 的 投 影 ( 3 ) 当 h ( x ) = ∥ x ∥ 1 时 , p r o x h 为 软 阈 值 算 子 , 其 中 p r o x h ( x ) 的 第 i 个 分 量 为 p r o x h ( x ) i = { x i − 1 x i > 1 0 − 1 ≤ x i ≤ 1 x i + 1 x < − 1 (1)h(x)=0时,prox_h(x)=x\\ (2)定义示性函数\bm1_C(x)=\left\{ \begin{aligned} & 0\quad x\in C\\ & +\infty \quad x\notin C \end{aligned} \right. \\ 当h(x)=\bm 1_C(x)时,prox_h(x)为点x 在C上的投影\\ (3)当h(x)=\|x\|_1时,prox_h为软阈值算子,\\ 其中prox_h(x)的第i个分量为prox_h(x)_i=\left\{ \begin{aligned} & x_i-1\quad x_i>1\\ & 0 \quad -1\leq x_i\leq 1\\ & x_i+1\quad x<-1 \end{aligned} \right. 1h(x)=0proxh(x)=x21C(x)={0xC+x/Ch(x)=1C(x)proxh(x)xC(3)h(x)=x1proxhproxh(x)iproxh(x)i=xi1xi>101xi1xi+1x<1通过上面的例子,我们可以找到一些在近端算子作用下的形式较为“简单”的函数。

算法
x n + 1 = p r o x t ⋅ h ( x n − t ▽ g ( x n ) ) x_{n+1}=prox_{t\cdot h}(x_n-t\bigtriangledown g(x_n)) xn+1=proxth(xntg(xn))

计算上的解释
x n + 1 = a r g m i n u ( h ( u ) + 1 2 t ∥ u − x n + t ▽ g ( x n ) ∥ 2 2 ) = a r g m i n u ( h ( u ) + g ( x ) + ▽ g ( x n ) T ( u − x n ) + 1 2 t ∥ u − x n ∥ 2 2 ) \begin{aligned} x_{n+1}=& \mathop{argmin}\limits_{u}(h(u)+\frac{1}{2t}\|u-x_n+t\bigtriangledown g(x_n)\|^2_2) \\ =& \mathop{argmin}\limits_{u}(h(u)+g(x)+\bigtriangledown g(x_n) ^T(u-x_n)+\frac{1}{2t}\|u-x_n\|^2_2) \end{aligned} xn+1==uargmin(h(u)+2t1uxn+tg(xn)22)uargmin(h(u)+g(x)+g(xn)T(uxn)+2t1uxn22)可以看出 x n + 1 x_{n+1} xn+1最小化了 h ( u ) h(u) h(u) g ( x ) g(x) g(x)的一个二次近似(不是泰勒展开,但接近)

直观上的解释
见其他大佬写的文章

https://www.cnblogs.com/raby/p/5886699.html

具体的近端梯度下降的例子
h ( x ) = 0 h(x)=0 h(x)=0时,即为梯度下降
h ( x ) = 1 C ( x ) h(x)=\bm1_C(x) h(x)=1C(x)时,即为投影梯度下降
h ( x ) = ∥ x ∥ 1 h(x)=\|x\|_1 h(x)=x1时,即为ISTA算法(Iterative Shrinkage-Thresholding Algorithm) x n + 1 = S t ( x − t ▽ g ( x n ) ) 其 中 S t ( u ) = ( ∥ u ∥ − t ) + s i g n ( u ) x_{n+1}=S_t(x-t\bigtriangledown g(x_n))\\其中S_t(u)=(\|u\|-t)_+sign(u) xn+1=St(xtg(xn))St(u)=(ut)+sign(u)

近端梯度下降法的收敛速度和梯度下降法相同,只要 h ( x ) \bm{h(x)} h(x)是凸且闭的(本文不给出证明)

加速近端梯度下降法

背景
模仿NAG法

算法
令 x 0 = x − 1 y = x k − 1 + k − 2 k + 1 ( x k − 1 − x k − 2 ) x k = p r o x t h ( y − t ▽ g ( y ) ) 令x_0=x_{-1}\\ y=x_{k-1}+\frac{k-2}{k+1}(x_{k-1}-x_{k-2})\\ x_k=prox_{th}(y-t\bigtriangledown g(y)) x0=x1y=xk1+k+1k2(xk1xk2)xk=proxth(ytg(y)) h ( x ) = ∥ x ∥ 1 h(x)=\|x\|_1 h(x)=x1时,算法又称为FISTA

收敛速度和NAG法一样(本文不给出证明)

小结
至此我们可以部分解决梯度下降法的缺点(4)

随机优化

该部分以浏览为主,理论证明部分较少,算法流程较多,会提及部分算法的想法和优缺点,可快速读过(主要是敲字敲到这太累了,不想敲了 × \times ×
我参考了其他大佬的文章

https://blog.csdn.net/u014595019/article/details/52989301

随机梯度下降(SGD)

目的
逃离不稳定的极值点,摆脱鞍点,可以处理大规模数据

算法
目标优化函数仍然是 f ( x ) f(x) f(x)
x k + 1 = x k − t g ( x k ) 其 中 E ( g ( x ) ) = ▽ f ( x ) x_{k+1}=x_k-tg(x_k)\\ 其中E(g(x))=\bigtriangledown f(x) xk+1=xktg(xk)E(g(x))=f(x)

例子
太麻烦,不想敲,如果有想要的可以在评论里留言,我会填坑

收敛速度

缺点
收敛速度慢,调参(学习率)较麻烦

自适应随机梯度下降(Adaptive Stochastic Gradient Descent)

AdaGrad算法

目的
解决SGD学习率不变的缺点

想法来源
假设 f ( x ) f(x) f(x)是某个随机变量的期望,那么我们可以使用Fisher信息量来调整学习率(因为Fisher信息量可以类比于函数的曲率),这启发我们使用 g ( θ k ) g ( θ k ) T g(\theta_k)g(\theta_k)^T g(θk)g(θk)T的某种平均来调整学习率

算法
g ( θ k ) 仍 表 示 随 机 取 样 本 点 算 出 的 梯 度 r = r + g ( θ k ) ⊙ g ( θ k ) 其 中 圈 乘 表 示 逐 元 素 相 乘 θ k + 1 = θ k − η ϵ + r ⊙ g ( θ k ) 其 中 所 有 运 算 均 为 逐 元 素 运 算 g(\theta_k)仍表示随机取样本点算出的梯度\\ r=r+g(\theta_k)\odot g(\theta_k)其中圈乘表示逐元素相乘\\ \theta_{k+1}=\theta_k-\frac{\eta}{\epsilon+\sqrt r}\odot g(\theta_k)其中所有运算均为逐元素运算 g(θk)r=r+g(θk)g(θk)θk+1=θkϵ+r ηg(θk)其中超参数有 η , ϵ \eta,\epsilon η,ϵ

缺点
r r r的累积最终导致学习率下降

RMSprop

目的
解决AdaGrad的缺点

想法
降低 r r r的累积速度

算法
g ( θ k ) 仍 表 示 随 机 取 样 本 点 算 出 的 梯 度 r = ρ r + ( 1 − ρ ) g ( θ k ) ⊙ g ( θ k ) 其 中 圈 乘 表 示 逐 元 素 相 乘 θ k + 1 = θ k − η ϵ + r ⊙ g ( θ k ) 其 中 所 有 运 算 均 为 逐 元 素 运 算 g(\theta_k)仍表示随机取样本点算出的梯度\\ r=\rho r+(1-\rho)g(\theta_k)\odot g(\theta_k)其中圈乘表示逐元素相乘\\ \theta_{k+1}=\theta_k-\frac{\eta}{\epsilon+\sqrt r}\odot g(\theta_k)其中所有运算均为逐元素运算 g(θk)r=ρr+(1ρ)g(θk)g(θk)θk+1=θkϵ+r ηg(θk)其中超参数有 η , ϵ , ρ \eta,\epsilon,\rho η,ϵ,ρ
可以看出此方法中有些矩方法的样子

Adam

想法
融合矩方法的优点,将 r r r和梯度都使用矩方法更新

算法
不想敲了,上面的大佬链接写得很清楚

小结
至此,我们解决了梯度下降法的缺点(1)(3).

总之,这些算法长什么形式不重要,因为一般从形式上也看不出大佬是怎么想出来的,尤其是Adam方法和NAG方法,所以阅读原始文章和其中的证明对于理解方法更重要,可以先在这里留个坑,以后用到时会挖

第二阶段

第一阶段终于写完了,感觉长得都不像第一阶段 × \times ×),第二阶段就两个证明,第一个是梯度下降法的收敛速度,第二个证明是随机梯度下降法的收敛速度

第一个证明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值