用三维Demo看懂各种优化算法,还有C++程序员福音( 二 )

页面默认是常见的Adam算法,我们会看到参数沿着红色的路线,最终落入损失函数的最低点:

用三维Demo看懂各种优化算法,还有C++程序员福音

左侧是参数初始值所在位置,也就是图片中的红点,可以用鼠标随意拖动。

中间和右侧的图都是损失函数的“等高线”。中间以不同颜色标记不同高度,右侧直接给出了损失函数的梯度场,以箭头指向表示梯度方向、长度表示梯度大小。可以看出等高线越密集的地方,梯度也越大。

如果觉得上面的损失函数图不够清晰直观,还有高清3D大图:

用三维Demo看懂各种优化算法,还有C++程序员福音

随着迭代步数的增加,损失函数的数值不断减小:

用三维Demo看懂各种优化算法,还有C++程序员福音

Adam算法可以调节的超参数有:步长、迭代次数、允许误差、β1、β2、模糊因子?、Batch Size。

推荐阅读