优化算法--牛顿法
来源:互联网 发布:约瑟夫环c语言循环链式 编辑:程序博客网 时间:2024/05/17 17:38
转载地址:http://blog.csdn.net/google19890102/article/details/41087931
一、牛顿法概述
除了前面说的梯度下降法,牛顿法也是机器学习中用的比较多的一种优化算法。牛顿法的基本思想是利用迭代点处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并不断重复这一过程,直至求得满足精度的近似极小值。牛顿法的速度相当快,而且能高度逼近最优值。牛顿法分为基本的牛顿法和全局牛顿法。
二、基本牛顿法
1、基本牛顿法的原理
基本牛顿法是一种是用导数的算法,它每一步的迭代方向都是沿着当前点函数值下降的方向。
我们主要集中讨论在一维的情形,对于一个需要求解的优化函数,求函数的极值的问题可以转化为求导函数。对函数进行泰勒展开到二阶,得到
对上式求导并令其为0,则为
即得到
这就是牛顿法的更新公式。
2、基本牛顿法的流程
- 给定终止误差值,初始点,令;
- 计算,若,则停止,输出;
- 计算,并求解线性方程组得解:;
- 令,,并转2。
三、全局牛顿法
牛顿法最突出的优点是收敛速度快,具有局部二阶收敛性,但是,基本牛顿法初始点需要足够“靠近”极小点,否则,有可能导致算法不收敛。这样就引入了全局牛顿法。
1、全局牛顿法的流程
- 给定终止误差值,,,初始点,令;
- 计算,若,则停止,输出;
- 计算,并求解线性方程组得解:;
- 记是不满足下列不等式的最小非负整数:;
- 令,,,并转2。
2、Armijo搜索
全局牛顿法是基于Armijo的搜索,满足Armijo准则:
给定,,令步长因子,其中是满足下列不等式的最小非负整数:
四、算法实现
实验部分使用Java实现,需要优化的函数,最小值为。
1、基本牛顿法Java实现
2、全局牛顿法Java实现
3、主函数
0 0
- 优化算法:牛顿法
- 优化算法--牛顿法
- 优化算法——牛顿法和拟牛顿法
- 【工程优化】最优化算法--牛顿法、阻尼牛顿法及单纯形法
- 优化算法——拟牛顿法之DFP算法
- 优化算法——拟牛顿法之BFGS算法
- 优化算法——拟牛顿法之DFP算法
- 优化算法——拟牛顿法之BFGS算法
- 优化之牛顿法
- 凸优化-牛顿法
- 最优化 牛顿法
- 优化算法——牛顿法(Newton Method)
- 优化算法——牛顿法(Newton Method)
- 优化算法——拟牛顿法之DFP
- 优化算法——牛顿法(Newton Method)
- 优化算法——牛顿法(Newton Method)
- 梯度-牛顿-拟牛顿优化算法和实现
- 梯度-牛顿-拟牛顿优化算法和实现
- 算法训练 Torry的困惑(基本型)
- Unity 获取指定资源目录下的所有文件
- Debian 8 Jessie国内的几个软件源
- Tornado编译vxworks本质及过程
- c++--Singleton单例模式的实现
- 优化算法--牛顿法
- js 正则表达式验证
- javascript中对象的属性的特性
- 微信接口生成带参数的二维码
- node.js的querystring.stringify的使用
- Java最佳线程数
- BAS系统 升级至VC2008 编译问题
- 【Linux】八个Docker的真实应用场景
- 怎么去看懂mysql的执行计划