用三维Demo看懂各种优化算法,还有C程序员福音
晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI
机器学习里的优化算法很多,比如SGD、Adam、AdaGrad、AdaDelta等等,光是它们的迭代公式就已经够让人头疼。
好在TensorFlow、Keras、PyTorch中都集成了这些优化工具,但它们是如何在一步步迭代中"滑落"到最小值的,你真的清楚吗?
现在有一个机器学习优化算法的Demo,能帮你从图像中直观感受到调参对算法结果的影响,以及各自的优缺点。
它就是ensmallen!它的开发者不仅提供了Demo,还给程序员们打包了一份C++数据库,那我们先来试玩一下吧。
试玩Demo
试玩方法很简单,甚至不需要安装任何软件,进入ensmallen网站,选择Demo标签,就能看到一组优化算法的3D示意图。
页面默认是常见的Adam算法,我们会看到参数沿着红色的路线,最终落入损失函数的最低点:
左侧是参数初始值所在位置,也就是图片中的红点,可以用鼠标随意拖动。
中间和右侧的图都是损失函数的"等高线"。中间以不同颜色标记不同高度,右侧直接给出了损失函数的梯度场,以箭头指向表示梯度方向、长度表示梯度大小。可以看出等高线越密集的地方,梯度也越大。
如果觉得上面的损失函数图不够清晰直观,还有高清3D大图:
随着迭代步数的增加,损失函数的数值不断减小:
Adam算法可以调节的超参数有:步长、迭代次数、允许误差、β1、β2、模糊因子ϵ、Batch Size。
拖动滑动条调节超参数,"红线"的形状和终点也会随之变化。我们不妨调节一下步长,看看这个参数会对结果造成什么样的影响。
增加步长会让学习曲线震荡幅度变大,步长太小会让损失函数收敛过慢:
△ 步长分别是0.3、0.03和0.003的三种情况
以上只是最简单的情况,Demo界面还提供其他奇形怪状的损失函数:
以及近乎所有常见的优化算法:
在不同形状的损失函数里,这些优化算法各有优缺点。
如果损失函数的"等高线"是椭圆,Adam收敛速度很快,仅迭代100步左右就已经收敛,而AdaGrad迭代了近300步才收敛。
但Adam并非就有绝对优势。在有多个鞍点和局部最小值的图形中,Adam虽然在开始阶段下降速度很快,但是在最后阶段震荡较严重,收敛速度反而不及AdaGrad。
上面的"玩法"只是Demo很小的一部分,想尝试更多请参见文末的链接地址。
C++程序员福音
千万不要以为ensmallen只是一个好玩的Demo,实际上它还是一个高效的C++优化库。对于用C++来给AI编程的程序员来说,它能对任意函数进行数学优化,解决了C++机器学习工具匮乏的痛点。
ensmallen除了打包基本优化算法之外,用户还可以使用简单的API轻松添加新的优化器。实现新的优化器只需要有一种方法和一个新的目标函数,通常用一到两个C++函数就能搞定。
安装ensmallen需要满足以下要求:支持C++ 11的编译器C++线性代数与科学计算库Armadillo数学函数库OpenBLAS或Intel MKL或LAPACK
ensmallen中的所有内容都在ens命名空间中,因此在代码中放置一个using指令通常很有用 :using namespace ens;
以使用Adam为例,其代码如下:RosenbrockFunction f;
arma::mat coordinates = f.GetInitialPoint();
Adam optimizer(0.001, 32, 0.9, 0.999, 1e-8, 100000, 1e-5, true);
optimizer.Optimize(f, coordinates);
其中,Adam优化器中参数的顺序依次是:步长、Batch Size、β1、β2、ϵ、最大迭代次数、允许误差、是否以随机方式访问每个函数。
至于其他优化算法,可以去网站查看详细的说明文档。
最后附上所有资源:
ensmallen压缩包下载地址:
https://ensmallen.org/files/ensmallen-1.14.2.tar.gz
Demo地址:
https://vis.ensmallen.org/
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复"招聘"两个字。
量子位 QbitAI · 头条号签约作者
վ"ᴗ" ի 追踪AI技术和产品新动态
华为鸿蒙是什么?一文讲诉它的前世今生之前很多朋友留言,想多了解鸿蒙的事情。对于鸿蒙的印象,众说纷纭,仅仅是上面这道选择题,很多人都不知道正确答案今天带着这个思考,跟大家聊聊鸿蒙的前世今生,聊聊鸿蒙为何有这么多争议。O
拼多多进入慢增长农业将是长远价值线?本报记者李立上海报道如果回看公司的生命曲线,2021年将是拼多多的重要转折点。3月21日晚间,拼多多(NASDAQPDD)发布了2021年四季度及全年度财报。财报显示,拼多多202
京东,开始飘了一个月内,已经在京东遭遇两次发货延迟了。都是信誓旦旦地告诉用户,你的货品正常发货,将于某某时间送达,还特地标注了明确时间。然鹅,到了时间却又告知货物尚未发出,预计将于某某时间送达(
从地缘政治视角探究互联网平台治理作者韩博(中国社会科学院新闻与传播研究所)随着数字经济飞速发展,我们见证了微信脸书等平台的生长,也见证了抖音快手在海外的迅速发展,本国起家,全球开花成为未来大型互联网平台的发展趋势
都说vivoXFold铰链成本高,那这意味着什么?感谢您的阅读!vivoXFold铰链成本高,那意味着什么呢?目前,大多数的手机品牌已经推出了折叠屏手机,而vivo到目前为止并没有推出不过vivo的折叠屏,手机vivoXFold,
比特币到底是庞氏骗局还是底层人暴富的机遇?入市早的一部分人,已经通过比特币实现财富自由了,是不是骗局已经不是那么重要了。对于普通人来说,错过了比特币的大牛市还是没有进场的,仍然对比特币抱有怀疑的态度。但早些年就接触比特币并
暴跌40000亿后,阿里巴巴的史上最强回购,释放什么信号?阿里巴巴正在抄底阿里巴巴。信心比黄金更重要,可能比较适合当前的阿里巴巴。在股价遭遇史诗级暴跌后,阿里巴巴再向市场释放信心。3月22日早间,阿里巴巴抛出了一项高达250亿美元的巨额回
市值蒸发达3。8万亿,阿里回到原点,马云走下中国首富宝座?坊间传言互联网行业已经开始走下坡了。本来对这样的传言还半信半疑,但是前几天,阿里和华为裁员的消息在网络上散开的时候,才意识这个传言并不是空穴来风。那么,作为互联网行业霸主之一的阿里
腾讯阿里也开始裁员了,失业来得太突然关注啡小沫专注职场赚钱干货,和你一起飞速成长!最近最大的消息,莫过于头部互联网公司裁员的传言。3月13日,阿里裁员腾讯裁员话题直接被送上了微博热搜。我朋友圈互联网从业者比较多,因此
你的电脑上有哪些你认为不可或缺的神仙软件?说说小迷自己这么多年来,电脑上必装的几款神仙软件吧,每次新装完的系统,会在第一时间安装下面这些软件,声明一点,总有人说小迷是打广告,可小迷推荐的都是免费软件哟!一火绒安全软件和wi
买了两台冰箱,终于搞清楚了两千多和一万多的冰箱有什么区别今年夏天的时候我需要买一台冰箱,正好赶上爸妈家的冰箱也坏掉了,于是让我一块买了。爸妈辛苦了一辈子,手头自然比我宽裕得多。于是他们选了一台一万元出头的高端冰箱,而我选了一台两千多几乎