梯度下降算法详解
来源:互联网 发布:数据库管理系统教程 编辑:程序博客网 时间:2024/05/21 08:49
在机器学习中梯度下降算法是一个很重要的方法。上次竟然有个面试题让描述梯度下降算法,曾用过的东西也说不清楚,真的很汗颜。
首先要说下梯度的概念。这要从微分说起,我们都清楚函数在平面上的曲线在某个点A对x微分,此处微分的意义为曲线在点A的变换率。多元函数的时候就有了方向导数的概念。因为这个时候函数的变化可以沿着不同的方向变化,例如在曲面上的任一点都可以有无数个可以变化的方向,方向倒数可理解为函数在某个方向上的变化率。梯度是一个向量,函数沿着梯度的方向是增长最快的方向,至于为什么先看下梯度的定义:
任一方向倒数都可以表示成梯度的模乘上该方向和梯度夹角的余弦。所以在夹角为0时方向导数最大,这就是为什么梯度方向是函数增长最快方向的原因。
在实际应用中,梯度下降和上市方法通常用来寻找最优解。上面只是理论的东西,下面是在求解回归参数上的例子。
例如回归方程为:
为了求参数a通常是让总体误差最小化
就是上面的函数值最小。这是关于参数a的函数。对上面的函数求梯度,然后在训练的时候确定一个步长,不断的用梯度去更新参数向量。具体细节参考稍后贴上的代码。
0 0
- 梯度下降算法详解
- 【转载】梯度下降算法详解
- 梯度下降算法及其改进方法详解
- 线性回归及梯度下降算法详解
- 梯度下降算法与随机梯度下降
- 随机梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- 梯度下降算法
- hibernate注解配置
- 每一个程序员必须掌握的知识,字符集与字符编码.
- <<Python编程实践>>之WhileBreakContinue
- Ckeditor结合springmvc的使用、配置、上传图片、分页
- java_图片验证码生成-
- 梯度下降算法详解
- LeetCode OJ - Combinations
- 你只负责过程的努力;结果和未来的安排,是上帝负责的事情
- throw和throws子句的区别
- 如何查看现有项目的struts和hibernate和spring版本
- 【HDU】3341 Lost's revenge AC自动机+变进制+DP
- LeetCode | Add Two Numbers(两个链表相加)
- acm 最短路—HDU Today
- 我的python学习之旅