牛顿方法
2014-10-07 10:34
176 查看
在
可以用梯度下降法,对参数进行更新直至上面的对数似然函数收敛。下面引入另一种方法:牛顿方法。
开始,首先我们考虑如何找到一个函数的零点。也就是我们有一个函数:
,我们希望找到一个值θ,使得
.
我们首先随机取某一点(x,f(x)),那么f(x)在该点处的斜率就是f'(x),根据几何学该点处的斜率同样等于(f(x)-f([b]θ))/(x-θ);[/b]
于是有:f'(x) = [b](f(x)-f([b]θ))/(x-θ),又f(θ) = 0我们可以得到:θ = x - f(x) / f'(x);这就是如何由任一点x寻找到[b]θ的公式,很自然的得出在寻找f(x)[/b][/b][/b]
[b][b][b]零点的时候,参数[b]θ的迭代规则:[/b][/b][/b][/b]
[b][b][b][b]
[/b][/b][/b][/b]
下面是牛顿法的执行过程:
由上图可以看出在迭代过程中我们所取得点(红色标注)慢慢靠近零点([b][b]θ,0).[/b][/b]
[b][b]好了,牛顿法给了我们如何找出函数零点的方法,如何用来最大化上面最开始提到的似然函数呢?[/b][/b]
[b][b]根据解析几何,很容易想到,函数的最大点对应着函数的导数为0的点,于是,我们的目标就变为寻找
的零点。
[/b][/b]
[b][b]也就是说我们让
,这样在最大化似然函数的时候,很容易得出参数更新规则:[/b][/b]
[b][b]
[/b][/b]
在逻辑回归中,[b][b]θ通常是个矢量值,所以对于多维的牛顿法更新规则:[/b][/b]
[b][b]
[/b][/b]
其中
是
关于[b][b]θ[/b][/b]的偏导数向量,H被称为海森矩阵(Hessian):
牛顿法收敛速度要比梯度下降快,而且迭代次数要求很小.但是由于每一步都需要计算海森矩阵的逆,所以当维数太大时,就不太划算。即当变量维数不是很大的时候,
牛顿法的速度通常会比较快。
具体matlba操作,参考我的博客:逻辑回归实战。
逻辑回归之问题建模分析
中我们提到最大化参数θ的最大化似然函数可以用梯度下降法,对参数进行更新直至上面的对数似然函数收敛。下面引入另一种方法:牛顿方法。
开始,首先我们考虑如何找到一个函数的零点。也就是我们有一个函数:
,我们希望找到一个值θ,使得
.
我们首先随机取某一点(x,f(x)),那么f(x)在该点处的斜率就是f'(x),根据几何学该点处的斜率同样等于(f(x)-f([b]θ))/(x-θ);[/b]
于是有:f'(x) = [b](f(x)-f([b]θ))/(x-θ),又f(θ) = 0我们可以得到:θ = x - f(x) / f'(x);这就是如何由任一点x寻找到[b]θ的公式,很自然的得出在寻找f(x)[/b][/b][/b]
[b][b][b]零点的时候,参数[b]θ的迭代规则:[/b][/b][/b][/b]
[b][b][b][b]
[/b][/b][/b][/b]
下面是牛顿法的执行过程:
由上图可以看出在迭代过程中我们所取得点(红色标注)慢慢靠近零点([b][b]θ,0).[/b][/b]
[b][b]好了,牛顿法给了我们如何找出函数零点的方法,如何用来最大化上面最开始提到的似然函数呢?[/b][/b]
[b][b]根据解析几何,很容易想到,函数的最大点对应着函数的导数为0的点,于是,我们的目标就变为寻找
的零点。
[/b][/b]
[b][b]也就是说我们让
,这样在最大化似然函数的时候,很容易得出参数更新规则:[/b][/b]
[b][b]
[/b][/b]
在逻辑回归中,[b][b]θ通常是个矢量值,所以对于多维的牛顿法更新规则:[/b][/b]
[b][b]
[/b][/b]
其中
是
关于[b][b]θ[/b][/b]的偏导数向量,H被称为海森矩阵(Hessian):
牛顿法收敛速度要比梯度下降快,而且迭代次数要求很小.但是由于每一步都需要计算海森矩阵的逆,所以当维数太大时,就不太划算。即当变量维数不是很大的时候,
牛顿法的速度通常会比较快。
具体matlba操作,参考我的博客:逻辑回归实战。
相关文章推荐
- 【机器学习-斯坦福】学习笔记4 - 牛顿方法
- 用牛顿方法解一元非线性方程的根(Matlab实现)
- 【机器学习-斯坦福】学习笔记4 - 牛顿方法
- 牛顿开方法的算法及其原理
- Hessian海森矩阵与牛顿最优化方法
- 机器学习 (笔记)牛顿方法
- MIT公开课: Python 笔记6 二分法,牛顿-拉夫森方法,列表
- 寻优方法总结:最速下降法,牛顿下降法,阻尼牛顿法,拟牛顿法DFP/BFGS
- 牛顿开方法的算法及其原理
- 插值方法-牛顿插值
- 机器学习第四课--牛顿方法
- 【牛顿迭代逼近】求根号2的快速方法
- Nani_xiao的机器学习与总结:Andrew Ng.机器学习(四) :牛顿方法
- 插值方法实现(拉格朗日插值和牛顿插值)
- 最优化——拟牛顿方法matlab程序
- 牛顿方法、指数分布族、广义线性模型—斯坦福ML公开课笔记4
- 使用牛顿迭代方法(Newton’s method)来估计方程的解
- 利用牛顿开方法开任意次方
- 牛顿方法、指数分布族、广义线性模型—斯坦福ML公开课笔记4
- 牛顿(Newton)方法