本文是吴恩达《机器学习》视频笔记第10篇,对应第1周第10个视频。
“Linear regression with one variable——Gradient descent”
01
—
视频
02
—
笔记
概述:
本视频介绍如何通过梯度下降法求线性模型代价函数的最小值,但是要注意的是,梯度下降法可以用来求很多函数的最小值。
问题描述:
算法:
当然,这个参数可以很多,我们为了让问题简化,先只看两个参数的情况。
大家想一下,这不就是下图这样一个在三维空间中的面么?
如果我们把自己想象成上图中凹凸不平的面上的一个小小的点。从十字叉那个点出发,我们应该往哪边走,才有可能到达最低点呢?
如果我们有上帝视角,可以很轻松看到哪个点是最低点。但“不识庐山真面目,只缘身在此山中”,我们该怎么办呢?这个时候,我们肯定想拿一个高度计,每走一步都希望高度在降低,然后尽快到达山下,可能会走出下面图中的轨迹。
如果我们起始点往右边偏一点,同样的办法可能会得到不一样的路径。
当然,可能会收敛到不同的局部最优解那里。
有了图形的感性认识,我们来看看它的算法描述。
我们把问题进一步简化,把它看成是二维平面上的代价函数J,这个时候我们的模型就简化成只有一个参数
,如下面的图,在图中涂抹的那个点,如果这个点处的导数小于0,我们知道往前走就是下降的,就继续往前直到导数为0,我们就到达了一个局部最低点。当然,如果步子迈的大一点,就会快一点到达局部最低,不过也更可能步子太大了;如果步子小一点呢,收敛的速度就会慢一点。
如果扩展到三维空间,我们就把导数换成偏导数,如下图
上面的式子,如果认真分析一下,它是很好玩的。因为这个事,它本质上和我们在一个山坡上怎样一点一点挪到山底这件事是一样的。
更深入的理解梯度下降,需要一点点微积分的知识。
那,梯度下降法具体该怎么应用呢?后面的两个视频会继续深挖。