在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解。在逻辑斯蒂回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法。由于两种方法有些相似,我特地拿来简单地对比一下。下面的内容需要读者之前熟悉两种算法。梯度下降法梯度下降法用来求解目标函数的极值。这个极值是给定模型给定数据之后在参数空间中搜索找到的。迭代过程为:可以看出,梯度下降法更新参数...
分类:
其他好文 时间:
2015-08-10 20:04:38
阅读次数:
238
从学导数那天开始,就差不多接触到了牛顿法求解零点的精髓,那时局限于一维,且只是从几何上认识到它。一、主要作用(1)求零点(2)优化(求最大最小值)二、求零点求f(x)=0.解:如图,满足近似关系 斜率k=f'(xn) xn+1≈xn-f(xn)/k 解得: xn+1≈xn-f(x...
分类:
其他好文 时间:
2015-08-04 18:36:18
阅读次数:
131
方法一:二分查找
x = 24
epsilon = 0.01
numGuesses = 0
low = 0.0
high = max(1.0,x)
ans = (high + low)/2.0
while abs(ans*ans - x)>=epsilon:
print 'low:',low,'high:',high,'ans =',ans
numGuesses += 1
...
分类:
其他好文 时间:
2015-06-15 16:31:05
阅读次数:
161
一、BFGS算法
在“优化算法——拟牛顿法之BFGS算法”中,我们得到了BFGS算法的校正公式:
利用Sherman-Morrison公式可对上式进行变换,得到
令,则得到:
二、BGFS算法存在的问题
在BFGS算法中,每次都要存储近似Hesse矩阵,在高维数据时,存储浪费很多的存储空间,而在实际的...
分类:
编程语言 时间:
2015-06-06 18:14:07
阅读次数:
280
非线性方程的数值解法通常有逐步搜索法,二分法,迭代法,牛顿法,牛顿下山法,弦截法,抛物线法。。。从迭代法开始讨论比如一个方程f(x)=0没有求根公式,只能用数值的方式来解决,那么就必须用迭代来求解很多数学方面的书会告诉你上面的这些XX法怎么做,可是他们TMD就是不告诉你为什么这些迭代方式是有效的!学...
分类:
其他好文 时间:
2015-06-02 21:49:29
阅读次数:
162
数据、特征和数值优化算法是机器学习的核心,而牛顿法及其改良(拟牛顿法)是机器最常用的一类数字优化算法,今天就从牛顿法开始,介绍几个拟牛顿法算法。本博文只介绍算法的思想,具体的数学推导过程不做介绍。1. 牛顿法牛顿法的核心思想是”利用函数在当前点的一阶导数,以及二阶导数,寻找搜寻方向“(回想一下更简单...
分类:
其他好文 时间:
2015-05-28 17:44:24
阅读次数:
282
牛顿迭代法1概念:
Jacobi 矩阵:又称为雅克比矩阵。如果f(x)是标量函数,那么雅克比矩阵是一个向量,等于 f(x) 的梯度。如果f(x)是向量函数,那么雅克比矩阵是二维矩阵,hession矩阵是三维矩阵。
梯度是 Jacobian 矩阵的特例,梯度的 jacobian 矩阵就是 Hesse 矩阵。
hession矩阵:又称海森矩阵,黑塞矩...
分类:
其他好文 时间:
2015-05-25 22:30:07
阅读次数:
277
一、BFGS算法简介
BFGS算法是使用较多的一种拟牛顿方法,是由Broyden,Fletcher,Goldfarb,Shanno四个人分别提出的,故称为BFGS校正。
同DFP校正的推导公式一样,DFP校正见博文“优化算法——拟牛顿法之DFP算法”。对于拟牛顿方程:
可以化简为:
令,则可得:
在B...
分类:
编程语言 时间:
2015-05-20 13:16:54
阅读次数:
256
一、牛顿法
在博文“优化算法——牛顿法(Newton
Method)”中介绍了牛顿法的思路,牛顿法具有二阶收敛性,相比较最速下降法,收敛的速度更快。在牛顿法中使用到了函数的二阶导数的信息,对于函数,其中表示向量。在牛顿法的求解过程中,首先是将函数在处展开,展开式为:
其中,,表示的是目标函数在的梯度,是一个向量。,表示的是目标函数在处的Hesse矩阵。省略掉...
分类:
编程语言 时间:
2015-05-19 22:37:25
阅读次数:
493