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

在不同形状的损失函数里,这些优化算法各有优缺点。

如果损失函数的“等高线”是椭圆,Adam收敛速度很快,仅迭代100步左右就已经收敛,而AdaGrad迭代了近300步才收敛。

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

但Adam并非就有绝对优势。在有多个鞍点和局部最小值的图形中,Adam虽然在开始阶段下降速度很快,但是在最后阶段震荡较严重,收敛速度反而不及AdaGrad。

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

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

上面的“玩法”只是Demo很小的一部分,想尝试更多请参见文末的链接地址。

C++程序员福音

千万不要以为ensmallen只是一个好玩的Demo,实际上它还是一个高效的C++优化库。对于用C++来给AI编程的程序员来说,它能对任意函数进行数学优化,解决了C++机器学习工具匮乏的痛点。

推荐阅读