吴恩达机器学习笔记11-深入浅出梯度下降法

2020-08-14 10:21:49 浏览数 (2)

本文是吴恩达《机器学习》视频笔记第11篇,对应第1周第11个视频。

“Linear regression with one variable——Gradient descent intiuition”

01

视频

暂缺,明天补上。或者加作者微信索取,添加方式在文末。

02

笔记

2.1 概述

上一个视频给出了梯度下降的数学定义,本次视频更深入一下,看看梯度下降到底是干啥的,以及梯度下降算法更新的意义是什么?

上一个视频中梯度下降的数学定义:

关键是这个

表示学习的步长,表示下降的快慢,而这个偏导数项告诉我们下降的方向。看来这两个东西是比较重要的,这次视频就重点研究一下这俩货。

2.2 直观理解

我们通过一个简单的例子来让梯度下降没那么晦涩。和上一笔记中记录的一样,我们把二维的事情先给放到一维的面上来理解。让 ,代价函数就变成了 ,它是二维平面上的一条曲线,我们要找到曲线的最低点。

我们让 在下图的那个点的地方开始出发,找最低点。

按照上一个笔记中所记录的,我们让 逐步变换,根据所在点的导数指引的方向逐步移动。如下图,当然这个例子我们的起始点是在最低点的右边,它的导数是正的,所以每次变换都是向后移了一点。

如果起始点在最低点的左边呢?如下图。

因为此时,所在点的导数是负数,所以在减去一个负数后,这个点是在向前逐步接近最低点的,而接近的快慢和 有关系。

那如果 太大或太小,会发生什么呢?

太小,如下图,很明显梯度下降的会很慢,想要接近我们的目标点需要耗费很多很多步。

太大,步子太大了呢它容易扯着dan。可能一不小心就过了,然后再回来又过了,就可能一直没法达到我们循环结束的条件了。

那如果我们又想快点收敛,又不想扯着dan,该怎么办呢?通过看上面两个图,很自然想到的办法是前面刚开始的时候我们走快点,等快到目的地的时候我们走慢点,就像打高尔夫一样,开始的时候把吃奶的劲都使上挥一杆,然后再微调。如下图,通过下面图这个特例我们还可以看出来,可以根据导数的大小来调整 的值,我们这样做是因为我们相信快到最低点的时候坡度会变缓(当然这也不绝对)。

2.3 还有个问题

到目前为止,我们有意无意的回避了一个非常关键的问题。那就是,如果我们的初始点在寻找最低点的时候,如果找到的不是全局的点,而是局部的最低点它也会停止搜索,那该怎么办呢?就像下面图中所示。

这种情况到底怎么办呢?本次视频并没有讲,继续耐心往下学习吧。

0 人点赞