您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    用三维Demo看懂各种优化算法,还有C++顺序员福音
    时间:2019-04-01 12:14 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    机器学习里的优化算法很多,比如SGDAdamAdaGradAdaDelta等等,光是它们的迭代公式就曾经够让人头疼。

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

    好在TensorFlow、Keras、PyTorch中都集成了这些优化工具,但它们是如何在一步步迭代中“滑落”到最小值的,你真的清楚吗?

    如今有一个机器学习优化算法的Demo,能帮你从图像中直观感遭到调参对算法结果的影响,以及各自的优缺陷。

    它就是ensmallen!它的开发者不只提供了Demo,还给顺序员们打包了一份C++数据库,那我们先来试玩一下吧。

    试玩Demo

    试玩办法很复杂,甚至不需求安装任何软件,进入ensmallen网站,选择Demo标签,就能看到一组优化算法的3D表示图。

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

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

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

    假设觉得下面的损失函数图不够明晰直观,还有高清3D大图:

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

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

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

    拖动滑动条调理超参数,“红线”的外形和终点也会随之变化。我们不妨调理一下步长,看看这个参数会对结果形成什么样的影响。

    添加步长会让学习曲线震荡幅度变大,步长太小会让损失函数收敛过慢:

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

    △ 步长辨别是0.3、0.03和0.003的三种状况

    以上只是最复杂的状况,Demo界面还提供其他奇形怪状的损失函数:

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

    以及近乎一切常见的优化算法:

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

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

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

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

    C++顺序员福音

    千万不要以为ensmallen只是一个好玩的Demo,实践上它还是一个高效的C++优化库。关于用C++来给AI编程的顺序员来说,它能对恣意函数停止数学优化,处置了C++机器学习工具匮乏的痛点。

    ensmallen除了打包基本优化算法之外,用户还可以运用复杂的API轻松添加新的优化器。完成新的优化器只需求有一种办法和一个新的目的函数,通常用一到两个C++函数就能搞定。

    安装ensmallen需求满足以下要求:

    支持C++ 11的编译器

    C++线性代数与迷信计算库Armadillo

    数学函数库OpenBLASIntel MKLLAPACK

    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/

    【编辑引荐】

    顺序员删库跑路网站只剩一张图?真相来了

    中国顺序员仅仰仗一段休息规律霸榜GitHub,每团体都值得反思

    大胆,究竟是哪些顺序员在向996开炮?

    顺序员才懂的搞笑图!保准你笑出猪叫......

    人工智能不为人知的历史:那些隐形的女顺序员们

    (责任编辑:admin)