逻辑回归优化方法-L-BFGS

逻辑回归的优化方法是一个经典的问题,如果我们把它视为一个最大熵模型,那么我们知道最早的优化方法是IIS,这个方法就不细讲了,因为它速度很慢。后来发现在最优化领域中非常常用的l-BFGS方法对于Logistic Regression的收敛速度优化是不错的。

l-BFGS方法是Quasi-Newton方法中的一种,我想从工程角度谈一下我的看法,上次我们谈到在分布式环境下进行模型的优化,无非有两种思路,一,如果数据是mixture of exponent family的分布,用mapper进行E步骤,reducer进行M步骤进行迭代优化,这种是比较简单的方法。如果不是mixture of exponent family的情况,就用基于导数,基于梯度的方法优化。但基于梯度的方法有一个问题,比如有两次函数中,函数等高线是一个非常扁的椭圆,那么基于梯度的收敛速度是很慢的。在实际的工程问题中,这种病态的函数是很常见的,因为在工程中有成千上万的特征,它们的物理意义有时候是不明确的,无法统一的对它们进行归一化处理,因此无法用一阶导数的方法很快的求解,那么我们可以用二阶的导数,根据前两次的路径,大概求得它两次的求值是什么,这样就可以校正它的方向,使得它快速收敛。所以Quasi-Newton在工程中是必要的方法,而不只是优化的方法。那么这种方法与Newton法有什么不同呢?在Newton法中要求Hession矩阵是正定的,但在实际问题中,很难保证是正定的。BFGS的思路是用函数值和特征的变化量来近似Hession矩阵,以保证正定性,并减少计算量。Hession阵是通过前几步的路径,估计出一个二阶导数,它有不同的估计方法,BFGS就是其中一种估计方法。

L(imited memory)-BFGS它是为了解决空间复杂度的问题,虽然Hession阵可以估计可以计算,但它的规模太大,对于刚才说的点击率预测问题,它可能有上亿个特征,而Hession是一个n*n 的矩阵。而在L-BFGS,它是对Hession进行近似,将它拆为一个单位阵加上三个小的矩阵之积,假设选择一个比较小的k值以近似前面的Hession阵。它将BFGS的O(n*n)空间复杂度降到了O(n*k),k一般是10以内的数。

l-BFGS在特征量大时比BFGS实用,可以非常容易用map/reduce实现分布式求解,mapper求部分数据上的梯度,reducer求和并更新参数。它与梯度法实现复杂一点的地方在,它需要保存前几次的模型,才能计算当前迭代的更新值。

l-BFGS是对Logistic Regression优化的最基本的一个方法,了解它之后对优化的框架和思路会有一个比较清晰的线索。

竞价广告系统-逻辑回归优化方法-L-BFGS的更多相关文章

  1. 竞价广告系统-ZooKeeper介绍

    ZooKeeper介绍 为了讲述的完整性,介绍一下ZooKeeper.ZooKeeper在Index和Ad Server里使用比较多,虽然它可能没有google的Chubby好,但它是开源的工具.举一 ...

  2. 机器学习简要笔记(五)——Logistic Regression(逻辑回归)

    1.Logistic回归的本质 逻辑回归是假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度上升/下降法来求解参数,从而实现数据的二分类. 1.1.逻辑回归的基本假设 ①伯努利分布:以抛硬币为例 ...

  3. 通俗地说逻辑回归【Logistic regression】算法(二)sklearn逻辑回归实战

    前情提要: 通俗地说逻辑回归[Logistic regression]算法(一) 逻辑回归模型原理介绍 上一篇主要介绍了逻辑回归中,相对理论化的知识,这次主要是对上篇做一点点补充,以及介绍sklear ...

  4. 线性模型之逻辑回归(LR)(原理、公式推导、模型对比、常见面试点)

    参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解LR): (1).https://zhuanlan.zhihu.com/p/74874291 (2).逻辑回归与交叉熵 (3) ...

  5. 一小部分机器学习算法小结: 优化算法、逻辑回归、支持向量机、决策树、集成算法、Word2Vec等

    优化算法 先导知识:泰勒公式 \[ f(x)=\sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n \] 一阶泰勒展开: \[ f(x)\approx ...

  6. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归

    使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...

  7. 机器学习方法(五):逻辑回归Logistic Regression,Softmax Regression

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面介绍过线性回归的基本知识, ...

  8. 互联网DSP广告系统架构及关键技术解析

    互联网DSP广告系统架构及关键技术解析 宿逆 关注 1.9 2017.10.09 17:05* 字数 8206 阅读 10271评论 2喜欢 60 广告和网络游戏是互联网企业主要的盈利模式 广告是广告 ...

  9. DSP广告系统架构及关键技术解析(转)

    广告和网络游戏是互联网企业主要的盈利模式 广告是广告主通过媒体以尽可能低成本的方式与用户达成接触的商业行为.也就是说按照某种市场意图接触相应人群,影响其中潜在用户,使其选择广告主产品的几率增加,或对广 ...

随机推荐

  1. BZOJ 1355 Baltic2009 Radio Transmission KMP算法

    标题效果:给定一个字符串,求最小周期节(不能整除) 示例Hint这是错误的忽略了就好了 环路部分应该是cab 这个称号充分利用KMP在next自然阵列,那是,n-next[n]它表示一个循环节 POJ ...

  2. Appium:通过wifi连接Android设备

    1.首先用USB连接你的Android设备,然后在终端运行命令,它可以启动设备的5555端口使其在网络上可以连接. adb tcpip 2.现在断开USB连接,然后确保设备和你的电脑连接同一个无线网络 ...

  3. PHP_零基础学php_3PHP函数、传参函数、默认参数、函数返回值

    <?php function say_hello() //无参数 { $name="tang"; echo "hello,".$name; echo &q ...

  4. MySQL检查连接的最大数量和改变的最大连接数

    版权声明:本文博主原创文章.博客,未经同意不得转载.

  5. Dialog中显示倒计时,到时自己主动关闭

    这里直接用系统Dialog中加入了倒计时的显示,假设用自己定义Dialog会更美观: private TextView mOffTextView; private Handler mOffHandle ...

  6. PL/SQL联系oracle成功可以sql解决的办法是检查表的名称无法显示

    有时,因为机器突然断电或其他原因PL/SQL它甚至不能在数据库表后显示.序列和其它元素.使用SQL Windows运行查询一般查询,登录或同样的现象再次. 我是不是可以解决因重复登录的猜测是,PLSQ ...

  7. session什么时候被创建

    一个常见的错误是以为 session 在有客户端访问时就被创建,然而事实是直到某 server 端程序(如 Servlet )调用HttpServletRequest.getSession(true) ...

  8. 四大OLAP工具选型浅析

    OLAP(在线分析处理)这个名词是在1993年由E.F.Codd提出来的,只是,眼下市场上的主流产品差点儿都是在1993年之前就已出来,有的甚至已有三十多年的历史了.OLAP产品不少,本文将主要涉及C ...

  9. RESTful API的设计原则

    好RESTful API的设计原则   说在前面,这篇文章是无意中发现的,因为感觉写的很好,所以翻译了一下.由于英文水平有限,难免有出错的地方,请看官理解一下.翻译和校正文章花了我大约2周的业余时间, ...

  10. 配置phonegap Android开发环境

    phonegap的安装路途曲折,首先要基于多种程序,中途还要解决各种问题,下面是phonegap需要的程序 1.NodeJs 2.Phonegap 3.jdk,jre 4.Apache Ant 5.A ...