展开

关键词

【技术分享】L-BFGS算法

2.5 L-BFGS(限制内存BFGS)算法   在BFGS算法中,仍然有缺陷,比如当优化问题规模很大时,矩阵的存储和计算将变得不可行。为了解决这个问题,就有了L-BFGS算法。 L-BFGS即Limited-memory BFGS。 L-BFGS的基本思想是只保存最近的m次迭代信息,从而大大减少数据的存储空间。 该算法的计算过程如下,算法中出现的y即上文中提到的t: 2.21.png   算法L-BFGS的步骤如下所示。 这里有一个问题是,L1正则化项不可微,所以无法像求L-BFGS那样去求。 简单来讲,OWL-QN算法是指假定变量的象限确定的条件下使用L-BFGS算法来更新,同时,使得更新前后变量在同一个象限中(使用映射来满足条件)。

88330

深入机器学习系列之BFGS & L-BFGS

2.5 L-BFGS(限制内存BFGS)算法 在BFGS算法中,仍然有缺陷,比如当优化问题规模很大时,矩阵的存储和计算将变得不可行。为了解决这个问题,就有了L-BFGS算法。 L-BFGS即Limited-memory BFGS。L-BFGS的基本思想是只保存最近的m次迭代信息,从而大大减少数据的存储空间。对照BFGS,重新整理一下公式: ? 算法L-BFGS的步骤如下所示。 ? 这里有一个问题是,L1正则化项不可微,所以无法像求L-BFGS那样去求。 简单来讲,OWL-QN算法是指假定变量的象限确定的条件下使用L-BFGS算法来更新,同时,使得更新前后变量在同一个象限中(使用映射来满足条件)。

5K21
  • 广告
    关闭

    【玩转 Cloud Studio】有奖调研征文,千元豪礼等你拿!

    想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    机器学习算法实现解析——liblbfgs之L-BFGS算法

    在博文“优化算法——拟牛顿法之L-BFGS算法”中,已经对L-BFGS的算法原理做了详细的介绍,本文主要就开源代码liblbfgs重新回顾L-BFGS的算法原理以及具体的实现过程,在L-BFGS 1、liblbfgs简介 liblbfgs是L-BFGS算法的C语言实现,用于求解非线性优化问题。 中参数的初始化 函数lbfgs_parameter_init提供了L-BFGS默认参数的初始化方法。 其实在L-BFGS的算法过程中也回提供默认的参数的方法,所以该方法有点多余。 L-BFGS的具体原理可以参见“优化算法——拟牛顿法之L-BFGS算法”。 在上述过程中,第一个循环计算出倒数第mm代时的下降方向,第二个阶段利用上面计算出的方法迭代计算出当前的下降方向。

    1K20

    优化算法——拟牛顿法之L-BFGS算法

    一、BFGS算法    image.png 二、BGFS算法存在的问题    image.png 三、L-BFGS算法思路    image.png image.png 四、L-BFGS算法中的方向的计算方法 参考文献 libLBFGS: a library of Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS)

    1.1K50

    优化算法——拟牛顿法之L-BFGS算法

    浪费很多的存储空间,而在实际的运算过程中,我们需要的是搜索方向,因此出现了L-BFGS算法,是对BFGS算法的一种改进算法。在L-BFGS算法中,只保存最近的 ? 次迭代信息,以降低数据的存储空间。 三、L-BFGS算法思路     令 ? , ? ,则BFGS算法中的 ? 可以表示为: ? 若在初始时,假定初始的矩阵 ? ,则我们可以得到: ? ? ? ? 若此时,只保留最近的 ? 步: ? 这样在L-BFGS算法中,不再保存完整的 ? ,而是存储向量序列 ? 和 ? ,需要矩阵 ? 时,使用向量序列 ? 和 ? 计算就可以得到,而向量序列 ? 和 ? 四、L-BFGS算法中的方向的计算方法 ? 参考文献 libLBFGS: a library of Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS)

    87120

    机器学习算法实现解析——liblbfgs之L-BFGS算法

    1、liblbfgs简介 liblbfgs是L-BFGS算法的C语言实现,用于求解非线性优化问题。 中参数的初始化 函数lbfgs_parameter_init提供了L-BFGS默认参数的初始化方法。 其实在L-BFGS的算法过程中也回提供默认的参数的方法,所以该方法有点多余。 对于owlqn_pseudo_gradient函数,可以参见2.3.4 在OWL-QN中,由于在某些点处不存在导数,因此使用伪梯度代替L-BFGS中的梯度。 L-BFGS的具体原理可以参见“优化算法——拟牛顿法之L-BFGS算法”。 在上述过程中,第一个循环计算出倒数第mm代时的下降方向,第二个阶段利用上面计算出的方法迭代计算出当前的下降方向。

    85160

    用数据说话:把自拍照变成毕加索名画 哪种算法最高效?

    反观 Adam 和 L-BFGS 算法则能够快速收敛,并且误差也基本相同。 实验2:100 次循环,600 x 600 像素 当参数增多时,L-BFGS 算法应该表现的更好。 但 Adam、Adagrad 和 L-BFGS 三种算法的收敛情况则相对较好,其中效果最好的 L-BFGS 大约比 Adam 的优化效果好 50% ,并且速度也更快。 ? 实验6:1000 次循环,300 x 300 像素 这一次我们仅仅对 Adam LR 1 和 L-BFGS 进行了对比,通过进一步增加循环次数,可以看到,Adam LR 1 最终的表现并没有超过 L-BFGS 总体上,L-BFGS 算法的收敛效果最好,速度也最快。 改变学习率。 Adam 在学习率较小时,收敛情况提升明显,随着循环次数的增大,收敛效果几乎与 L-BFGS 算法相当,但收敛情况最好的依然是 L-BFGS 算法。

    545100

    “轻易强快”的Spark on Angel,大数据处理爽到爆!

    我们将以L-BFGS为例,来分析Spark在机器学习算法的实现上的问题,以及Spark on Angel是如何解决Spark在机器学习任务中的遇到的瓶颈,让Spark的机器学习更加强大。 L-BFGS算法说明 L-BFGS模型参数更新过程如下: ? 其中,wk 是模型参数, pk = Hk-1 gk 是搜索方向, λ 是通过线性搜索得到的步长。 其中,H0-1 是单位阵,yk=gk-gk-1, sk=wk-w k-1k-1,L-BFGS算法将最近 m 轮生成的 yk 和 sk 序列,记做 {yk} 和 {sk}。 Spark的L-BFGS实现 ? Spark on Angel的L-BFGS实现 接口调用里的Vector泛型从 DenseVector 变成 BreezePSVector ? L-BFGS需要用户实现DiffFunction,DiffFunction的calculte接口输入参数是 $w$ ,遍历训练数据并返回 loss 和 gradient。

    71070

    不同训练模型的比较

    在上一篇文章结尾,我们提到了,与使用SGD(随机梯度下降)和冲量训练的模型相比,L-BFGS方法产生不同误差的解决方法。 L-BFGS方法(II)则最小化相同的损失误差。在训练数据集上,两种方法的精度都能够达到100%,并且只要训练误差为零就终止训练。 (I) loss=1.64000 ||W||=3.56, bias=-0.60811 (SGD) (II) loss=0.04711 ||W||=3.75, bias=-0.58073 (L-BFGS)

    23630

    Spark 机器学习的加速器:Spark on Angel

    我们将以L-BFGS为例,来分析Spark在机器学习算法的实现上的问题,以及Spark on Angel是如何解决Spark在机器学习任务中的遇到的瓶颈,让Spark的机器学习更加强大。 1. L-BFGS算法说明 L-BFGS模型参数更新过程如下: wk+1← wk-λ·pk 其中,wk 是模型参数, pk = Hk-1 gk 是搜索方向, λ 是通过线性搜索得到的步长。 其中,H0-1 是单位阵,yk=gk-gk-1, sk=wk-w k-1k-1,L-BFGS算法将最近 m 轮生成的 yk和 sk 序列,记做 {yk} 和 {sk}。 和 sk 保存在driver上,在driver端执行two-loop recursion算法 (3)driver上更新模型 w,并将 w 广播到每个Executor 2.2 性能分析 基于Spark的L-BFGS L-BFGS需要用户实现DiffFunction,DiffFunction的calculte接口输入参数是 $w$ ,遍历训练数据并返回 loss 和 gradient。

    3.1K41

    【技术分享】Spark机器学习的加速器:Spark on Angel

    我们将以L-BFGS为例,来分析Spark在机器学习算法的实现上的问题,以及Spark on Angel是如何解决Spark在机器学习任务中的遇到的瓶颈,让Spark的机器学习更加强大。 1. L-BFGS算法说明 L-BFGS模型参数更新过程如下: 1.png 其中, 2.png 是模型参数, 3.png  是搜索方向, 4.png 是通过线性搜索得到的步长。 返回值 r 就是我们说要的 6.png . 7.png 其中, 8.png 是单位阵, 9.png , 10.png  ,L-BFGS算法将最近 m 轮生成的 11.png  和 12.png 序列 Spark的L-BFGS实现 25.png Spark on Angel的L-BFGS实现 接口调用里的Vector泛型从 DenseVector 变成 BreezePSVector 26.png 4.3 L-BFGS需要用户实现DiffFunction,DiffFunction的calculate接口输入参数是 w,遍历训练数据并返回 loss 和 gradient。

    73830

    资料推荐:Spark-mllib 源码分析之逻辑回归

    上述提到的二阶优化算法:Newton, L-BFGS等属于机器学习算法中经常碰到非线性优化问题。还有: Sparse Filtering 算法,其主要工作在于求解一个非线性极小化问题。 在具体实现中,大多调用的是成熟的软件包做支撑,其中最常用的一个算法是 L-BFGS

    55830

    【数学应用】机器学习常用最优化算法小结

    常见的迭代优化算法有梯度下降,牛顿法,拟牛顿,高斯-牛顿,BFGS,L-BFGS。。。 1)梯度下降 梯度下降也称为最速下降法,属于一阶优化算法。 6)L-BFGS算法 BFGS法比较适合于解决参数规模适中的无约束最优化问题,而当参数维度特别大时,由于上述获得的近似矩阵随着迭代更新次数的增加将越来越变得稠密,便将导致存储空间不足和计算复杂度过高的问题 L-BFGS算法正是为了解决以上问题提出来的,为了减少矩阵所占的存储空间,L-BFGS利用最近几次迭代过程中的曲率信息来构建当前迭代所需的Hessian近似矩阵;而为了减少计算量,L-BFGS则是首先给当前迭代过程一个

    75560

    深入机器学习系列3-逻辑回归

    MLlib中提供了两种方法来求这个参数,分别是梯度下降法和L-BFGS。 2 多元逻辑回归 二元逻辑回归可以一般化为多元逻辑回归用来训练和预测多分类问题。 5 源码分析 5.1 训练模型 如上所述,在MLlib中,分别使用了梯度下降法和L-BFGS实现逻辑回归参数的计算。这两个算法的实现我们会在最优化章节介绍,这里我们介绍公共的部分。 5.1.2 使用最优化算法计算最终的权重值 有梯度下降算法和L-BFGS两种算法来计算最终的权重值,查看梯度下降法和L-BFGS了解详细实现。

    32290

    划重点!十分钟掌握牛顿法凸优化

    比较有代表性的是 BFGS 和 L-BFGS。 BFGS 算法使用近似的方法来计算 Hessian 矩阵的逆,有效地提高了运算速度。 L-BFGS 算法是对BFGS 算法的改进,不需要存储 Hessian 近似逆矩阵, 而是直接通过迭代算法获取本轮的搜索方向,空间成本大大降低。 但是,牛顿法的改进算法,例如 BFGS、L-BFGS 也有其各自的特点,也有很强的实用性。

    17420

    机器学习优化算法:牛顿法 ( Newton Method )

    image.png] [image.png] [image.png] [image.png] 参考文献 [1] 李航,统计学习方法 [2]Numerical Optimization: Understanding L-BFGS

    1.8K10

    「经验」时间序列预测神器-Prophet『理论篇』

    预测模型误差(此图来源于百度) 运行效率高:Prophet可采用基于L-BFGS方式(解决函数最优化问题手段,类似梯度下降)来拟合函数,模型收敛速度更快。 (附上公式) 节假日项公式 总体来讲,Prophet是通过四个组件模型自加形成整体模型,并采用Stan的L-BFGS来进行模型拟合。 L-BFGS含义说明 L-BFGS用于解决无约束非线性规划问题,具有收敛速度快、内存开销少等优点,在机器学习各类算法中经常出现。类似SGD(随机梯度下降),但大多数情况下收敛更快。

    14710

    优化算法——OWL-QN

    2、OWL-QN算法的思想    基于以上L1正则的特点,微软提出了OWL-QN(Orthant-Wise Limited-Memory Quasi-Newton)算法,该算法是基于L-BFGS算法的可用于求解 的象限确定的条件下使用L-BFGS算法来更新,同时,使得更新前后变量在同一个象限中(使用映射来满足条件)。

    1.1K70

    扫码关注腾讯云开发者

    领取腾讯云代金券