Coursera吴恩达机器学习教程笔记(三)

上回说到当假设函数的参数增多的时候,代价函数的维度就会变高,描点画图这种方法就不适用了,那得咋整呢?所以我们就要采用数学的方法找到代价函数的最小值。这个方法就是大名鼎鼎的梯度下降法。

    啥叫梯度下降呢?来看这张图。

    

    这张图的outline就是梯度下降的基本思想,先给定一组参数θ0,θ1,然后不断调解上面两个参数,来减小代价函数,知道代价函数减到最小。当然,梯度下降法不仅适用于两个参数的情况,也适用于多个参数的情况。那么,通过啥来调节呢?答案就是梯度,先用两个图说明下梯度下降法是怎么工作的。

    假如现在你在山上那个画红圈的地方,你想知道怎么才能最快下上(先不考虑山的陡峭情况),假如山是笔直的悬崖,是不是直接跳下去下山最快(当然,这只是一个比喻),可是现在山有坡度,下山最快是不是就要沿着最陡峭的方向走?何为最陡峭,用一个数学名词来说就是梯度最大。后来发现第二个点是周围梯度最大的,然后就走到了第二个点,然后在环顾周围,发现第三个点最陡峭(梯度最大),又走到了第三个点,后来走着走着,发现自己走到坑里了(最后一个点),发现周围的位置都比你的位置高,这是你就知道你处在最低点了。你在的位置就是代价函数最小的地方。

    假如你的初始位置不在红圈的位置了,而在他旁边一点,重复上述过程,你会发现,最后会走到这个坑里,如下图所示:

    那么,你可能会问,哪个是最优点?答案是,都是最优点,只不过都是局部最优点,局部最优解与初始点的选择有关系,初始点咋选,不知道,看命。。。运气好一点是全局最优,运气不好只能是局部最优。而且,当进入一个局部最优点之后,就会发现进入一个永远出不来的坑里。这就是所谓的陷入局部最优。这其实也是梯度下降法的两个缺点,有待改进。

    说了这么多,如何用数学过程把上述过程描述出来呢?看下面的图

    重上到下第一个公式就是梯度下降法的定义,:=表示的是赋值,α表示的是一个叫学习率的参数,这个参数主要用来调节参数衰减或增加的速度,太大太小都不行,也是个凭经验选取的参数。后两个公式的第一个就是梯度下降法的过程,第二个是与第一个做对比的,目的是为了强调,参数θ1,θ2更新的时候要同时更新,更新到啥时候是个头呢,就是更新到偏导数项为零时为止。

    那么根据上面的公式,可以来看一下线性回归问题如何用梯度下降法求取代价函数的最小值,还是先从一个参数的看起:

    计算过程如上图所示,由前一次的教程可知,单变量的线性回归的代价函数是个一元二次函数,由图中可见,当θ是一个很大的值,θ点的梯度大于等于0,也就是说,θ的更新过程是通过初始值减去学习率和梯度的乘积(是个正数)来让θ不断的减小,从不断趋近代价函数的最小值。同理,当θ是一个很小的值,θ点的梯度小于等于0,θ的更新过程是通过初始值减去一个负数来让θ不断的变大,从不断趋近代价函数的最小值。

    除了参数初始值的选取导致趋近方向不同,那学习率α是怎么影响趋近过程的呢?再来看另一张图

    考虑下极限情况,假如α为零,那么就会导致参数θ原地不动,不会更新,无论梯度是多少,迭代的时间将会是无穷大,所以如果学习率太小,就会导致迭代的速度很慢。假如学习率味无穷大,那么参数θ就为无穷大,那么是不是就意味着无论怎么迭代更新,也永远不会到达代价函数的最小值,而且还是发散的,不收敛,所以学习率太大就会导致参数θ不收敛,发散,所以学习率α要取适当的值。

    那么学习率α值固定下来之后,就可以不断的迭代了,直至参数θ无法更新,此时就意味着到达代价函数的局部最小值了,因为是线性回归问题,局部最小值就是全局最小值,所以不用担心所取得的代价函数值是局部最小而不是全局最小,还因为最小值只有一个,所以在线性回归问题中,也不用担心初始点的选择问题,反正无论咋选,都能趋近最小,看来梯度下降法最适合线性回归问题了。下面这个图就是趋近的过程,还可以看出,在线性回归的趋紧的过程中,梯度是逐渐变小的,所以学习率选定之后可以不用改变。

    一个参数的讲完了,两个参数的也是同理,只不过计算量稍微大一点,再次给出梯度下降公式和线性回归的假设函数和代价函数

    分别对两个参数求偏导数,不会求的自行百度或者参照同济大学出版的高等数学下册的偏导数的部分。

    当求θ0偏导时,θ1看做常量,做导数运算,求θ1偏导时,θ0看做常量,在做导数运算

    最后的迭代公式如下:

    按照这个公式迭代,就能找到上个教程说的含有两个参数的代价函数的最小值,找的过程在下面这个GIF里,GIF做的不好,如果有更好的办法还请大家告诉我,注意,参数θ0和θ1要同时更新迭代

    这个过程其实就是根据已有数据集做训练的过程。迭代完之后,就找到了能使代价函数为最小值的参数θ0和θ1,这节课的可见在教程二中已经给出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值