Adam 优化器是深度学习中常用的一种优化算法,它结合了 AdaGrad 和 RMSProp 的优点。本文将详细介绍 Adam 优化器的原理和使用方法。

Adam 优化器原理

Adam 优化器基于两个动量估计量:v(速度)和 s(累积平方梯度)。它通过以下公式更新参数:

v_t = β_1 * v_{t-1} + (1 - β_1) * (g_t / √(1 - β_2^t))
s_t = β_2 * s_{t-1} + (1 - β_2) * (g_t^2)
θ_t = θ_{t-1} - α * v_t / (√s_t + ε)

其中,β_1β_2 是超参数,通常取值为 0.9;α 是学习率;ε 是一个很小的常数,用于防止除以零。

Adam 优化器使用方法

在 PyTorch 中,可以使用 torch.optim.Adam 来使用 Adam 优化器。以下是一个简单的示例:

import torch
import torch.nn as nn
import torch.optim as optim

# 定义模型
model = nn.Linear(10, 1)

# 定义损失函数
criterion = nn.MSELoss()

# 定义优化器
optimizer = optim.Adam(model.parameters(), lr=0.001)

# 训练模型
for epoch in range(100):
    optimizer.zero_grad()
    output = model(torch.randn(10))
    loss = criterion(output, torch.randn(1))
    loss.backward()
    optimizer.step()

扩展阅读

如果您想了解更多关于 Adam 优化器的信息,可以阅读以下文章:

Adam 优化器原理图