机器学习优化方法小结
来源:互联网 发布:软件挖矿 编辑:程序博客网 时间:2024/05/29 04:16
一. 梯度下降法
一阶最优化算法,梯度其实是有方向的。若找到一个函数的局部极小值,必须向函数上当前点对应梯度的反方向的规定步长距离点进行迭代搜索;若向梯度正方向搜索,会接近函数的局部极大值,称为梯度上升法。
优点:
简单易行
缺点:
靠近极小值时速度减慢。
二. 牛顿法,拟牛顿法,L-BGFS
牛顿法是使用函数f(x)的泰勒级数的前面几项来寻找
基本思想是:在现有极小点估计值的附件对f(x)做二阶泰勒展开,进而找到极小点的下一个估计值。
例子1. 求函数为0的根
选择接近函数f(x)零点的
会发现得到
例子2. 求解最优化问题
牛顿法可用于求解非线性优化问题,假设任务优化一个目标函数,求f的极大极小问题,可转为求解函数的导数f`(x)=0问题, 这样就可以把优化问题视为求解方程根(f’=0).
由于求最值,由极值必要条件可知,f’(x)=0, 利用产生序列
为了求解f’=0 ,把函数f(x)泰勒展开到2阶形式:
牛顿法中用到了二阶导数,二阶收敛速度更快,相当于使用曲面去拟合原函数。
对于高维问题,牛顿的迭代公式为:
其中
阻尼牛顿法
原始牛顿法为定长步迭代,对于非二次函数,可能有时会使函数值上升,即出现
三. 拟牛顿法
由于利用牛顿法求解最优问题,在计算过程中要求函数一阶,二阶可导,其二阶导数对于高维函数,即海森矩阵可逆;且对矩阵求逆计算量比较大。
令
令
这里是使用矩阵B近似表示海森矩阵:
令,
找到合适的P与Q,得到迭代公式:
算法流程如下:
1. 给定初始值
2. 确定牛顿搜索方向:
3. 根据一维搜索确定步长
4. 计算
5. 否则计算
6. k = k+1
L-BGFS算法
由于BGFS算法需要用到一个N*N的矩阵,在计算机中存储或计算非常不便,为此,不再存储完整的矩阵,而是仅存取当前计算中所需要的最新的m个
思考与总结
梯度下降与牛顿法
A. 梯度下降法利用目标函数的一阶偏导数信息,以负梯度方向作为搜索方向,只考虑目标函数在迭代点的局部性质;B. 牛顿法不仅利用一阶导数信息,还进一步利用了目标函数的二阶偏导数,这样就考虑了梯度变化的趋势。
牛顿法与拟牛顿法
然而牛顿法有一些缺点:
A . 函数必须具有连续的一、二阶偏导数,海森矩阵必须正定,若不正定则优化方向会“跑偏”,
B. 计算复杂度高,计算导数矩阵和它的逆矩阵,尤其随着维数的增加,计算量与存储量都会变大。拟牛顿法避免了每次迭代都要计算海森矩阵的逆,收敛速度介于梯度下降法和牛顿法之间。同时拟牛顿法每次迭代不能保证最优的方向,但是迭代生成的近似矩阵都是正定的,因此算法总是朝着最优值的方向搜索。
http://blog.csdn.net/itplus/article/details/21897715
http://blog.csdn.net/zhirom/article/details/38332111
- 机器学习优化方法小结
- 机器学习中的优化方法
- 机器学习性能优化方法
- 机器学习中的优化方法<一>
- 机器学习中的最优化方法
- 机器学习基础:最优化方法
- 机器学习中导数最优化方法
- 机器学习评估与优化方法
- 机器学习中的最优化方法进阶
- 机器学习之导数最优化方法
- 机器学习中常用的优化方法
- 机器学习中几种常见优化方法总结
- 机器学习中几种常见优化方法总结
- 机器学习中导数最优化方法
- 机器学习中几种常见的优化方法
- 机器学习中的最优化方法进阶
- 机器学习小结
- 机器学习基础小结
- BZOJ-2597 [Wc2007]剪刀石头布(费用流)
- poj1737 带标号连通图计数(DP)
- 通过浏览器访问操作Oracle数据库(附Oracle修改用户名和密码)
- L3-010.是否完全二叉搜索树
- Linux 64bit下Oracle11g安装手册
- 机器学习优化方法小结
- JAVA Map、Set、List、Queue、Stack的特点与用法
- Spark连接Hadoop读取HDFS问题小结
- Sort the Array CodeForces
- RESTful服务最佳实践——(五)
- Android打印框架Demo
- Java内部类
- kjljljk
- 架构师成长之路——7个月成为一名架构师