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 优化器原理图