深度学习优化算法Momentum RMSprop Adam
一、Momentum
1. 计算dw、db.
2. 定义v_db、v_dw
\[v_{dw}=\beta v_{dw}+(1-\beta)dw
\]
\[v_{db}=\beta v_{db}+(1-\beta)db
\]
3. 更新dw、db
\[dw=w-\alpha v_{dw}
\]
\[db=b-\alpha v_{db}
\]
二、RMSprop
1. 计算dw、db.
2. 定义s_db、s_dw (这里的平方是元素级的)
\[s_{dw}=\beta s_{dw}+(1-\beta)dw^2
\]
\[s_{db}=\beta s_{db}+(1-\beta)db^2
\]
3. 更新dw、db
\[dw=w-\alpha \frac{w}{\sqrt{s_{dw}}}
\]
\[db=b-\alpha \frac{b}{\sqrt{s_{db}}}
\]
三、Adam
结合了Momentum+RMSprop
1. 计算dw、db.
2. 定义v_db、v_dw、s_db、s_dw.
\[v_{dw}=\beta_{1} v_{dw}+(1-\beta_{1})dw
\]
\[v_{db}=\beta_{1} v_{db}+(1-\beta_{1})db
\]
\[s_{dw}=\beta_{2} s_{dw}+(1-\beta_{2})dw^2
\]
\[s_{db}=\beta_{2} s_{db}+(1-\beta_{2})db^2
\]
3. 纠偏(t为迭代次数)
\[v_{dw}^{correct}=\frac{v_{dw}}{1-\beta^t}
\]
\[v_{db}^{correct}=\frac{v_{db}}{1-\beta^t}
\]
\[s_{dw}^{correct}=\frac{s_{dw}}{1-\beta^t}
\]
\[s_{db}^{correct}=\frac{s_{db}}{1-\beta^t}
\]
4. 更新dw、db,e为很小的数,防止分母为0。
通常(e=10^-8)
\[dw=w-\alpha \frac{v_{dw}^{correct}}{\sqrt{s_{dw}^{correct}}+e}
\]
\[db=b-\alpha \frac{v_{db}^{correct}}{\sqrt{s_{db}^{correct}}+e}
\]
作者:郭耀华
出处:http://www.guoyaohua.com
微信:guoyaohua167
邮箱:guo.yaohua@foxmail.com
本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
【如果你觉得本文还不错,对你的学习带来了些许帮助,请帮忙点击右下角的推荐】
出处:http://www.guoyaohua.com
微信:guoyaohua167
邮箱:guo.yaohua@foxmail.com
本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
【如果你觉得本文还不错,对你的学习带来了些许帮助,请帮忙点击右下角的推荐】