Adam自适应矩估计

Adam

Adam(Adaptive Moment Estimation)本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。

具体实现: 
需要:步进值 ϵ, 初始参数 θ, 数值稳定量δ,一阶动量衰减系数ρ1, 二阶动量衰减系数ρ2
其中几个取值一般为:δ=10^−8,ρ1=0.9,ρ2=0.999
中间变量:一阶动量s,二阶动量r,都初始化为0 
每步迭代过程: 
1. 从训练集中的随机抽取一批容量为m的样本{x1,…,xm},以及相关的输出yi
2. 计算梯度和误差,更新r和s,再根据r和s以及梯度计算参数更新量 

    

  • 在数据比较稀疏的时候,adaptive的方法能得到更好的效果,例如Adagrad,RMSprop, Adam 等。Adam 方法也会比 RMSprop方法收敛的结果要好一些, 所以在实际应用中 ,Adam为最常用的方法,可以比较快地得到一个预估结果。
自适应矩估计法(Adaptive Moment Estimation,Adam)是一种用于训练神经网络的优化算法。它是一种基于梯度自适应学习率方法,可以自动调整每个参数学习率,从而有效地处理不同参数梯度Adam算法的核心思想是使用梯度一阶矩估计(均值)和二阶矩估计(方差)来计算每个参数自适应学习率。它维护了每个参数的两个变量:一阶矩估计(即梯度的指数移动平均值)和二阶矩估计(即梯度平方的指数移动平均值),以及一个时间步长计数器。 在每个时间步长,Adam算法计算每个参数梯度,并更新其一阶矩估计二阶矩估计。然后,它使用这些估计值来计算每个参数自适应学习率,并使用这个学习率来更新每个参数。具体地,Adam算法使用以下公式来计算每个参数的更新值: $$ m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t $$ $$ v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2 $$ $$ \hat{m}_t = \frac{m_t}{1-\beta_1^t} $$ $$ \hat{v}_t = \frac{v_t}{1-\beta_2^t} $$ $$ \theta_{t+1} = \theta_t - \frac{\alpha}{\sqrt{\hat{v}_t}+\epsilon}\hat{m}_t $$ 其中,$g_t$是当前时间步长的梯度,$\theta_t$是当前时间步长的参数,$\alpha$是学习率,$\beta_1$和$\beta_2$是用于计算一阶矩估计二阶矩估计的指数衰减率,$\epsilon$是一个很小的常数,用于防止除以零。 Adam算法的优点在于它能够自动调整每个参数学习率,适应不同参数梯度。此外,它还可以有效地处理稀疏梯度和非平稳目标函数。在实践中,Adam算法通常比其他基于梯度的优化算法具有更快的收敛速度和更好的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值