当前位置:网站首页>常见的最优化方法
常见的最优化方法
2022-07-05 05:27:00 【李峻枫】
前言
在神经网络的训练中,其本质就是找到合适的参数,使得loss function最小。然而这个最小值实在是太难求了,因为参数太多了。为了解决这个问题,目前有几种常见的最优化方法。
随机梯度下降法
这是最最最经典的一个算法,也是比较常用的方法。相比于随机搜素,这个方法已经非常优秀了,但是仍然存在着一些不足。
缺点
- 步长的取值对结果有较大的影响:步长过多会无法收敛,步长过小,训练时间过长,甚至无法收敛。
- 某些函数的梯度并不少指向其最小值,例如函数是 z = x 2 100 + y 2 z=\frac{x^2}{100}+y^2 z=100x2+y2,这个函数图像是一个对称的,狭长的“山谷”。
- 因为部分梯度不是指向最小值,这会造成其找到最优解的路径十分曲折,而且对应较为“平坦”的地方,其可能无法求出最优解。
AdaGrad
由于梯度的性质,决定了其很难在部分地方能够改进,但是对于步长这个超参也可以有优化。
一种比较普遍的方法就是步长衰减,最开始的步长比较大,因为这个时候一般与最优解还相差比较远,可以多走些,以提高训练速度。随着训练的继续,步长不断衰减,因为此时已经更加接近最优解了,如果步长太大可能错过最优解或者无法收敛。
衰减参数一般与已经训练过的梯度有关
h ← h + ∂ L ∂ W ⋅ ∂ L ∂ W W ← W − η 1 h ⋅ ∂ L ∂ W h\leftarrow h + \frac{\partial L}{\partial W}\cdot\frac{\partial L}{\partial W} \newline W\leftarrow W - \eta\frac{1}{\sqrt{h}}\cdot\frac{\partial L}{\partial W} h←h+∂W∂L⋅∂W∂LW←W−ηh1⋅∂W∂L
Momentum
这个单词的解释是动量,根据物理中的定义 F ⋅ t = m ⋅ v F\cdot t = m\cdot v F⋅t=m⋅v。
为了更加生动地理解这种方法,不妨考虑一个三维空间中的一个曲面,上面有一个球,需要滚到最低点。
为了方便计算,部分把球的质量视作单位1,则对该式子求时间的导数: d F d t ⋅ d t = m ⋅ d v d t ⇒ d F = m ⋅ d v d t \frac{dF}{dt}\cdot dt=m\cdot\frac{dv}{dt} \Rightarrow dF=m\cdot\frac{dv}{dt} dtdF⋅dt=m⋅dtdv⇒dF=m⋅dtdv。
考虑这个小球受到的“力”:当前位置倾斜所带来的重力的分力(梯度),阻碍运动的摩擦力(在无梯度时候速度会衰减)。
那么就可以很轻松地写出小球下一时刻的速度与位置了: v ← α ⋅ v − ∂ F ∂ W w ← w + v v\leftarrow\alpha\cdot v - \frac{\partial F}{\partial W} \newline w\leftarrow w + v v←α⋅v−∂W∂Fw←w+v
优点
这种方法能够很好接近梯度不指向最优解的问题,即便是一个梯度不指向最优解,但是只有它存在的向最优解的速度,那么它就可以继续向最优解靠近。
边栏推荐
- 剑指 Offer 53 - II. 0~n-1中缺失的数字
- Web APIs DOM节点
- kubeadm系列-00-overview
- Embedded database development programming (V) -- DQL
- 26、 File system API (device sharing between applications; directory and file API)
- kubeadm系列-01-preflight究竟有多少check
- Using HashMap to realize simple cache
- [turn to] MySQL operation practice (I): Keywords & functions
- Talking about JVM (frequent interview)
- [to be continued] I believe that everyone has the right to choose their own way of life - written in front of the art column
猜你喜欢
随机推荐
Remote upgrade afraid of cutting beard? Explain FOTA safety upgrade in detail
Haut OJ 2021 freshmen week II reflection summary
sync. Interpretation of mutex source code
Zzulioj 1673: b: clever characters???
Bubble sort summary
【ES实战】ES上的native realm安全方式使用
Csp-j-2020-excellent split multiple solutions
National teacher qualification examination in the first half of 2022
Haut OJ 1316: sister choice buys candy III
[to be continued] [UE4 notes] L2 interface introduction
Binary search basis
GBase数据库助力湾区数字金融发展
A misunderstanding about the console window
MySQL数据库(一)
[turn]: Apache Felix framework configuration properties
SAP method of modifying system table data
Mysql database (I)
YOLOv5-Shufflenetv2
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
A new micro ORM open source framework