机器学习--梯度下降法
2015-12-14 10:13
411 查看
一、梯度的概念
梯度与方向导数的关系为:梯度的方向与取得最大方向导数值的方向一致,而梯度的模就是函数在该点的方向导数的最大值。
二、梯度下降法的流程
1、初始化:随机选取取值范围内的任意数
2、循环操作:
计算梯度;
修改新的变量;
判断是否达到终止:如果前后两次的函数值差的绝对值小于阈值,则跳出循环;否则继续;
3、输出最终结果
其中
为学习率,可以取固定常数。如取
,则
,对应的
,类似的
,对应的
。算法终止的判断准则是:
,其中
是一个指定的阈值。
三、matlab代码实现
四、梯度下降法和牛顿法比较
1、梯度下降法是为了求目标函数最小值f(X)对应的X,只用到了梯度信息,即目标函数的一阶导数信息
牛顿法顿法则用到了二阶导数信息。
梯度下降法(绿色)总是沿着当前点最快下降的方向(几乎垂直于等高线),相当于贪心算法。
牛顿法利用了曲面本身的信息,能够更直接,更快的收敛。
梯度与方向导数的关系为:梯度的方向与取得最大方向导数值的方向一致,而梯度的模就是函数在该点的方向导数的最大值。
二、梯度下降法的流程
1、初始化:随机选取取值范围内的任意数
2、循环操作:
计算梯度;
修改新的变量;
判断是否达到终止:如果前后两次的函数值差的绝对值小于阈值,则跳出循环;否则继续;
3、输出最终结果
其中
为学习率,可以取固定常数。如取
,则
,对应的
,类似的
,对应的
。算法终止的判断准则是:
,其中
是一个指定的阈值。
三、matlab代码实现
四、梯度下降法和牛顿法比较
1、梯度下降法是为了求目标函数最小值f(X)对应的X,只用到了梯度信息,即目标函数的一阶导数信息
牛顿法顿法则用到了二阶导数信息。
梯度下降法(绿色)总是沿着当前点最快下降的方向(几乎垂直于等高线),相当于贪心算法。
牛顿法利用了曲面本身的信息,能够更直接,更快的收敛。
相关文章推荐
- 前端开发工程化探讨--基础篇(长文)
- Java多态性的理解
- k-d tree算法
- 程序员学习能力提升三要素
- 静态类和静态类成员(C# 编程指南)
- 每天一个linux命令--退出<符号
- splinter 学习笔记
- 用Python开始机器学习(2:决策树分类算法)
- [实战]黑帽SEO的RayFile排名做法
- java正则表达式简单应用
- GitHub撤销修改
- JSON使用DataContract和DataMember
- test
- 前端中实现页内跳转和导航栏点击实现样式,点击其他消除样式并为这一项添加样式
- InventSum Closed and ClosedQty
- mysql 导入
- ZoomIt v4.5
- 浅谈Ajax
- Ubuntu需要做的几件事
- 有关变量的知识点学习