牛顿方法(Newton's Method)
在讲义《线性回归、梯度下降》和《逻辑回归》中我们提到可以用梯度下降或梯度上升的方式求解θ。在本文中将讲解另一种求解θ的方法:牛顿方法(Newton's method)。
牛顿方法(Newton's method)
逻辑回归中利用Sigmoid函数g(z)和梯度上升来最大化ℓ(θ)。现在我们讨论另一个最大化ℓ(θ)的算法----牛顿方法。
牛顿方法是使用迭代的方法寻找使f(θ)=0的θ值,在这里θ是一个真实的值,不是一个参数,只不过θ的真正取值不确定。牛顿方法数学表达式为:

牛顿方法简单的理解方式为:先随机选一个点,然后求出f在该点的切线,即f在该点的导数。该切线等于0的点,即该切线与x轴相交的点为下一次迭代的值。直至逼近f等于0的点。过程如下图:

牛顿方法最大化Likelihood
牛顿方法提供了一种寻找f(θ)=0的θ值的方法。怎么用于最大化似然函数ℓ (θ)呢?ℓ的最大值对应点处的一阶导数ℓ'(θ)为零。所以让f(θ) = ℓ'(θ),最大化ℓ (θ)就可以转化为:用牛顿方法求ℓ'(θ)=0的θ的问题。由牛顿方法的表达式,θ的迭代更新公式为:

牛顿-拉夫森迭代法(Newton-Raphson method)
逻辑回归中θ是一个向量,所以我们把上面的表达式推广到多维的情况就是牛顿-拉夫森迭代法(Newton-Raphson method),表达式如下:

表达式中
表示的ℓ(θ)对
的偏导数;H是一个n*n的矩阵,称为Hessian矩阵。Hessian矩阵的表达式为:

牛顿方法VS梯度下降
如下图是一个最小化一个目标方程的例子,红色曲线是利用牛顿法迭代求解,绿色曲线是利用梯度下降法求解:

牛顿方法通常比梯度下降收敛速度快,迭代次数也少。
但因为要计算Hessian矩阵的逆,所以每次迭代计算量比较大。当Hessian矩阵不是很大时牛顿方法要优于梯度下降。
出自BYRans博客:http://www.cnblogs.com/BYRans/
牛顿方法(Newton's Method)的更多相关文章
- 牛顿迭代法(Newton's Method)
牛顿迭代法(Newton's Method) 简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出.但是,这一方法在牛顿生前并未公开发表. 牛顿法的作用是使用迭代的方法来求解函数方程的根. ...
- 牛顿迭代法(Newton's Method)
牛顿迭代法(Newton's Method) 简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出.牛顿法的作用是使用迭代的方法来求解函数方程的根.简单地说,牛顿法就是不断求取切线的过程. ...
- 牛顿方法(Newton-Raphson Method)
本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 牛顿方法是一种求解等式的非常有效的数值分析方法. 1. 牛顿方法 假设\(x_0\)是等式的 ...
- Newton's Method
在求最优解时,前面很多地方都用梯度下降(Gradient Descent)的方法,但由于最优步长很难确定,可能会出现总是在最优解附近徘徊的情况,致使最优解的搜索过程很缓慢.牛顿法(Newton's M ...
- 牛顿法(Newton's Method)
Newton's Method 在求最优解时,前面很多地方都用梯度下降(Gradient Descent)的方法,但由于最优步长很难确定,可能会出现总是在最优解附近徘徊的情况,致使最优解的搜索过程很缓 ...
- 【cs229-Lecture4】Newton’s method
之前我们在求Logistic回归时,用的是梯度上升算法,也就是要使得似然函数最大化,利用梯度上升算法,不断的迭代.这节课引出牛顿方法,它的作用和梯度上升算法的一样的,不同的是牛顿方法所需的迭代次数更少 ...
- 机器学习-牛顿方法&指数分布族&GLM
本节内容 牛顿方法 指数分布族 广义线性模型 之前学习了梯度下降方法,关于梯度下降(gradient descent),这里简单的回顾下[参考感知机学习部分提到的梯度下降(gradient desce ...
- 小菜学习设计模式(三)—工厂方法(Factory Method)模式
前言 设计模式目录: 小菜学习设计模式(一)—模板方法(Template)模式 小菜学习设计模式(二)—单例(Singleton)模式 小菜学习设计模式(三)—工厂方法(Factory Method) ...
- 浅谈C++设计模式之工厂方法(Factory Method)
为什么要用设计模式?根本原因是为了代码复用,增加可维护性. 面向对象设计坚持的原则:开闭原则(Open Closed Principle,OCP).里氏代换原则(Liskov Substitution ...
随机推荐
- BZOJ3879: SvT
后缀数组裸题,每次的查询单调栈扫一遍就完了.为什么要写虚后缀树= =后缀数组不是自带虚树的结构么= = #include<cstdio> #include<algorithm> ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- C语言基础(9)-字符串格式化输入和输出
1.字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 2.printf函数,putchar函数 putchar输出一个char printf是输出一个字符串 prin ...
- JAVA WEB WITH IDEA
本文主要介绍使用IDEA开发环境,创建JAVA WEB 工程,并介绍war包的制作过程. 1 创建MAVEN工程
- 关于MapReduce中自定义Combine类(一)
MRJobConfig public static fina COMBINE_CLASS_ATTR 属性COMBINE_CLASS_ATTR = "mapreduce.j ...
- JavaScript 智能社 完美运动框架
简约版: function getStyle(obj, name) { if(obj.currentStyle) { return obj.currentStyle[name]; } else { r ...
- 布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio
1. TextView控件是文本表示控件,主要功能是向用户展示文本的内容,它是不可编辑的,如设置标题:EditText控件是编辑文本控件,主要功能是让用户输入文本的内容,它是可以编辑的.每一个控件都有 ...
- javascript语言理解
1.使用jquery remove,无法remove自身标签; 使用标签
- python 解压 压缩包
转 http://m.blog.csdn.net/blog/wice110956/26597179# 这里讨论使用Python解压如下五种压缩文件: .gz .tar .tgz .zip .rar ...
- applicationContext.xml的基本配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...