机器学习笔记——梯度下降算法
来源:互联网 发布:潮汕女孩知乎 编辑:程序博客网 时间:2024/06/05 15:41
说明:本文的撰写是为了使零基础的人更易理解本文末尾的机器学习视频(斯坦福大学,吴恩达)
建议先看视频后看本文
首先我们先了解什么叫梯度下降算法:
梯度下降算法是一个最优化算法,通常也称为最速下降法。常用于机器学习和人工智能中用来递归性地逼近最小偏差模型。
其迭代公式为
,其中代表梯度负方向,表示梯度方向上的搜索步长。了解了最基本的公式之后,我们来看一个例子:求函数
的最小值。利用梯度下降算法:
1、求梯度,
2、向梯度相反的方向移动,如下
,其中,为步长。如果步长足够小,则可以保证每一次迭代都在减小,但可能导致收敛太慢,如果步长太大,则不能保证每一次迭代都减少,也不能保证收敛。
3、循环迭代步骤2,直到的值变化到使得在两次迭代之间的差值足够小时,输出,这个就是使得函数最小时的的取值 。
那么梯度下降算法对机器学习有什么帮助呢?
我们先来看两个机器学习的基本公式:
一、hθhθ(x)=θ1x1+θ2x2+...+θnxn
θ代表参数,x代表特征值,
先看一个例子,现在用hθ(x)代表房价,x分别代表房子面积(假设是100),卧室数量(假设是3),已使用年数(假设是14)这三个特征,已计算出θ1为18,θ2为1.3,θ3
为-2,即房价hθ(x)=100×18+3×1.3+14×(-2)=155.9
显然,房子面积越大,卧室数量越多,使用年数越小,房价就越高。
看完了这个例子,顺便提出我们的目标
机器通过不断地学习,计算出能够准确预判实际值的参数θ,通俗讲,目标就是使以下函数取值最小
二、J(θ)=1/2m*Σ(i=1~m)(hθ(x(i))-y(i))²
这个叫cost function,其中y代表实际值,显然,这个函数可以体现预测值和实际值的差距
现在我们来考虑如何为θ取值能够使这个差距最小,也就是说给θ取一个合适的值,让之后的预测值充分接近实际值。
结合我们在文章开头举的例子,先对θ求梯度值,再沿着梯度的反方向慢慢更新θ,直到J(θ)取得最小值(实际上很难取到真正的最小值),
那么此时的θ就是使预测值最接近实际值的θ了。
机器学习,其实就是不断减少预测值和实际值差距的行为,我们扔给机器一堆实际值,机器不断更新θ的值。
参考视频:
https://www.coursera.org/learn/machine-learning/lecture/6Nj1q/multiple-features
https://www.coursera.org/learn/machine-learning/lecture/Z9DKX/gradient-descent-for-multiple-variables
h
阅读全文
1 0
- 机器学习笔记——梯度下降算法
- 机器学习——梯度下降算法
- 机器学习—梯度下降算法
- 机器学习笔记——梯度下降:
- 机器学习算法——梯度下降法
- 机器学习sklearn19.0——梯度下降算法
- 机器学习-梯度下降算法
- 机器学习算法-梯度下降
- 机器学习:梯度下降算法
- 机器学习:梯度下降算法
- 机器学习笔记——梯度下降法
- 机器学习笔记1——线性回归,梯度下降
- 机器学习笔记(一):梯度下降算法,随机梯度下降,正规方程
- 机器学习——梯度下降法
- 机器学习——梯度下降
- 机器学习基础——梯度下降
- 机器学习深度学习基础笔记(2)——梯度下降之手写数字识别算法实现
- 机器学习之梯度下降学习笔记
- 动态代理代码段
- Lock和synchronized比较详解
- 小白算法练习 树状dp caioj 二分苹果树
- 机器学习(4)-理解SVM的损失函数和梯度表达式的实现+编程总结
- jungle roads
- 机器学习笔记——梯度下降算法
- 机器学习职业进阶路线
- Leetcode之Summary Ranges 问题
- 一张图说CSS基础
- java中的封装和包
- 详解synchronized与Lock的区别与使用
- offer35--第一个只出现一次的字符
- debug
- 深入理解Hystrix之文档翻译