文献会议笔记: Replacing/Enhancing Iterative Algorithms with Neural Networks Part 3: Accelerating Convergence via Optimal First-Order Iterative Algorithms and Learning-to-Learn Generalizations
参考:David Wipf, Microsoft Research, Beijing, 2018
摘要:首先介绍加速的梯度下降算法以及在近端梯度下降上的应用;介绍基于学习的梯度下降算法并于神经网络进行类比.
目录
- 对梯度下降的提速
- 在光滑+非光滑函数的扩展
- 通过学习进一步改善性能
- Learning by gradient descent & Learning to (learn by gradient descent) by gradient descent
- 对优化器的优化,即Learning to learn
- 更细节的讨论
- 总结
1. 对梯度下降提速
上一节我们对非光滑的优化函数提出了近端梯度下降算法,收敛速度为
O(1k)
,但光滑函数的收敛速度为
O(1k2)
. 如何缩短这个差距呢??
在梯度下降中,步长参数过小,收敛速度很慢;步长参数过大,会收敛不到最优解;且当收敛曲面在某个维度变化剧烈时,每次迭代结果会低效率的震荡.
传统的梯度下降更新公式如下:
x(k+1)=x(k)−η▽f(x(k))
即使在
f
是光滑的情况下,梯度下降的结果也是次优的. 而在
f
比较糟糕的情况下,梯度下降就会一直不停的震荡.
给它加上一个动量,即heavy ball method:
x(k+1)=x(k)−η▽f(x(k))+β(x(k)−x(k−1))
该方法对每一次迭代都会有一个向着
(x(k)−x(k−1))
方向移动的趋势.
再进一步得到Nesterov’s Optimal Method,两者相似但又不完全相同
u(k)x(k+1)=x(k)+β(k)(x(k)−x(k−1))=u(k)−η▽f(u(k))
其中,为了确保收敛速度,
β
需满足如下要求:
β(k)=t(k)−1t(k)+1,t(k)=1+1+4(t(k))2−−−−−−−−−√2,η=1L
此时,该方法能够达到
O(1k2)
的收敛速度.
2. 在光滑+非光滑函数的扩展
优化问题
minxfs(x)+fn(x)
在
u(k)
处展开,得到其二次上界为
f^(x;u(k))=fs(u(k))+<▽fs(u(k)),x−u(k)>+L2||x−u(k)||2+fn(x)
最小化该上界,得到
x(k+1)
的迭代公式
x(k+1)=argminxf^(x;u(k))=argminxL2∣∣∣∣∣∣x−(u(k)−1L▽fs(u(k)))∣∣∣∣∣∣2+fn(x)=prox1Lfn(u(k)−1L▽fs(u(k)))
由此,得到加速近端梯度下降算法:
known:repeat:fs凸可微函数,▽fs(x)满足L−Lipschitzu(k)=x(k)+β(k)(x(k)−x(k−1))x(k+1)=prox1Lfn(u(k)−1L▽fs(u(k)))
其中
β(k)=t(k)−1t(k)+1,t(k)=1+1+4(t(k))2−−−−−−−−−√2,η=1L
和之前一样可以通过求解近端问题高效计算.
proxμfn(x)(z)=argminx12||x−z||2+μfn(x)
只要
fn
有高效的近端操作符,就可以使光滑+非光滑的优化函数有和光滑函数同样的收敛速度. 但此时需要多个过去的
x
值,这就要求我们的网络能够存储过去的数据.
3. 通过学习进一步改善性能
在Part 2的第四部分,我们的学习依赖有监督的训练数据对.
现在由于我们使用Nesterov’s Optimal Method,利用了多个之前迭代的数据,优化不再需要一个目标,因此学习变为非监督的情形.
{fθi:θi∈Ω,i=1,2,...,N}⊂F
Learning to (learn by gradient descent) by gradient descent算法提供了该问题的解答.
3.1 Learning by gradient descent & Learning to (learn by gradient descent) by gradient descent
首先回顾Learning by gradient descent:
而Learning to (learn by gradient descent) by gradient descent:
其中,
π(k)
是梯度和
ω
的函数,以参数
ω
更新网络,并能存储过去迭代的数据;
ω
通过梯度下降获得.
3.2 对优化器的优化,即Learning to learn
利用之前的结果,有更新公式
x(k+1)=x(k)+π(k)[▽fθ(x(k));ω]
而经过
K
次迭代后,得到学习算法
g(θ;ω)=x(K)=x(K−1)+π(K−1)[▽fθ(x(K−1));ω]
基于无监督的目标,我们的优化函数为
minω∑i=1Nfθi[g(θi;ω)]
其中一个便于训练的目标函数为
minω∑i=1N[∑k=1Kw(k)fθi(x(k))]
在
w(k)=I[w(k)=K]
时,即
K=1
且
w=1
时,退化为原来的优化函数.
3.3 更细节的讨论
由
minω∑i=1N[∑k=1Kw(k)fθi(x(k))]
得到参数
ω
,因此可以利用更新公式
x(k+1)=x(k)+π(k)[▽fθ(x(k));ω]
进行计算.
定义
▽(k)=▽fθ(x(k))
能够得到
[π(k)h(k+1)]=Λ(▽(k),h(k);ω)
其中,
π
为每一步的更新量,
h
为隐藏的状态,
Λ
为二层LSTM网,
ω
为优化器参数.
最终得到的更新公式为
x(k+1)=x(k)+π(k)
网络结构如图所示:
对某个样本,定义代价函数
fθi
,并进行初始化,通过RNN后,利用反向传播更新权值参数.
4. 总结
主要讨论了梯度下降的推广.
对算法的提速,使其收敛速度达到
O(1k2)
;
将Nesterov’s Optimal Method应用到非光滑情况,结合近端操作符;
通过学习进一步改善算法,结合
K
次迭代,并利用LSTM存储之前指代的结果,得到学习算法.
缺点:
测试时需要计算梯度,计算量可能较大;
想要得到非近似解,需要计算二阶量;
不能很好的结合全局来避免局部极小;
不一定收敛,可能会发散;