梯度下降法是深度学习里优化算法的核心,可是最初不懂该算法的思想,看了很多视频也讲的模棱两可,刚才看到以下公式彻悟,现记录下来,希望能够帮助到大家。
以下是代码的实现
def sgd(params, lr): #@save
"""随机梯度下降"""
with torch.no_grad():
for param in params:
param -= lr * param.grad # 更新参数,使得f(x)更小,此处即为 x <-- x - η * f'(x)
param.grad.zero_() # 清空本次的梯度(导数)
标准梯度下降法、随机梯度下降法、小批量随机梯度下降法的区别:
通常情况下,使用小批量随机梯度下降法训练能够达到时间短、收敛快的优质效果。