题解|实现Adam优化算法

实现Adam优化算法

https://www.nowcoder.com/practice/db4f616292144b1c838787a8732e1b9a?tpId=377&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj

Adam优化算法是一种自适应学习率的优化算法,其计算步骤如下:

  1. 初始化参数
  2. 计算梯度
  3. 更新动量
  4. 更新方差
  5. 更新参数

这里对动量和方差进行了偏差修正,以避免初始阶段的不稳定;对新参数更新的时候加上了,以避免除0错误。

标准代码如下

def adam_optimizer(f, grad, x0, learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8, num_iterations=10):
    x = x0
    m = np.zeros_like(x)
    v = np.zeros_like(x)

    for t in range(1, num_iterations + 1):
        g = grad(x)
        m = beta1 * m + (1 - beta1) * g
        v = beta2 * v + (1 - beta2) * g**2
        m_hat = m / (1 - beta1**t)
        v_hat = v / (1 - beta2**t)
        x = x - learning_rate * m_hat / (np.sqrt(v_hat) + epsilon)

    return x
全部评论

相关推荐

喜欢喜欢喜欢:这是我见过最长最臭的简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务