机器学习笔记——梯度下降算法

来源:互联网 发布:潮汕女孩知乎 编辑:程序博客网 时间: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



















原创粉丝点击