您的位置:首页 > 其它

吴恩达机器学习课程笔记——Ch2 单变量线性回归

2019-01-18 13:46 295 查看

Chapter 2  单变量线性回归(Linear Regression with One Variable)

课程笔记总览传送门:https://www.geek-share.com/detail/2758707282.html

Ch2

2.1 模型表示

2.2 Cost Function(代价函数)

2.3 Gradient descent(梯度下降)

小结

2.1 模型表示

一元回归没啥可说的,下图上半部分就是一个一元线性回归函数,下半部分顺便回顾了监督学习的概念。

监督学习回顾

值得注意的是一些参数的标定问题:

一些参数的标定

 

m——训练样本的数量                                                 如:

——特征/输入变量                                                           = 2104

——目标变量/输出变量                                                     = 460

)——第i个观察实例                                         ( )= (2104,460)

 

一元线性回归模型流程图

 

如上图可知,一元线性回归的一般方程为:   [可简化成h(x)]

这里还解释了一下为什么会用 h 作为函数表达的形式。

2.2 Cost Function(代价函数)

什么是代价函数呢,看图(这里   = 0)。

 

 

三根蓝线代表回归函数的值 和实际观测样本  的误差,而代价函数 就是所有误差(  -  )的平方的和再除以2倍样本数。公式为:

                                             

和最小二乘法的概念几乎一样,不同仅在于为了方便计算除以的2m。

 

接下来,为了更进一步了解代价函数的问题,令常数项   = 0 :

 

 

左图,三条过原点的直线分别对应不同   的取值的   ,三个红叉代表观测值   ,黑的竖线代表误差(  - 

右图,黑叉代表不同   取值下的代价函数   的值。

以   为例,  完美经过三个观测点,即误差为0,因此   也为0,对应右图的(1,0)点;

 为例, 与观测点有误差,因此经过计算   也有对应的值,即右图的(0.5,  )点;

......

取无穷个   的值,就会有无穷个误差,也会有无穷个   值。而无穷个   构成的函数就是Cost Function(代价函数)→右图,需要注意的是,这里常数项   = 0。

那么,说了这么多,Cost Function的意义是什么呢。意义是:通过改变   的取值,找出 最小的值,从而得到误差最小,拟合程度最高的,即满足   的回归模型(这里指一元、没有常数项的回归模型)。再偷偷换一下概念,这个过程就是找最小值。

 

了解了特殊的   后,需要了解更一般的代价函数   。

 

 

那么,在常数项   = 0 时,  是一条在二维平面的曲线,如果在常数项   时,它的图像如下:

 

 

二维→三维,不难理解。

 

和之前   = 0 时类比,这里也有一样的示意图,左边是 ,右边则是三维图二维化(?)的“等高线图”:

 

 

越接近中心点,误差越小,代价函数也越接近最小值。

2.3 Gradient descent(梯度下降)

首先,理一下思路。

 

梯度下降过程:1.选个 (  , ) (比如(0,0));

                          2.改变(  , ),目的是尽可能降低代价函数   的值(减少误差),也就是上文提过的找最小值。

需要注意的是:改变(  , )的过程中,  和   要同步更新(simultaneous update),后面会再提到。

举个例子:

 

上图,假设是一个代价函数的图像,红圈是第1步的取值,接下来就要往下走(减少代价函数的值),走到最低处就成功;

下图,相较于上图,第1步稍微偏移了一下,可以看到走了一条完全不同的路径,因此最后的值也不一定相同,这是什么呢?这是极小值啊(破音)。梯度下降,要找最小值,然而如果图像是上面那样的,很有可能面临一堆极小值。好在,吴老师说,一元线性方程的代价函数图都是这样的:

所以,在一元线性回归里,极小值有且仅有一个,就是最小值,莫担心。

到底说没说过,为什么在笔记里没看到,完了,不管了,懒得回去看视频了

 

接下来,喜闻乐见的公式环节:

 

说实话,并不复杂,吴老师的乱涂乱画搞得很难受 =_= 👴来解释一下,需要注意的有3个点:

1.公式主体——

   

2.新出的符号、参数——“ := ” 代表赋值的意思;  是学习率(learning rate),大就变化的快,小就慢;偏导符号没得说。

3.之前提到的同步更新(simultaneous update)——看图中下半部分....反正我是懂了。

 

例子1(   =0):

 

上图,初始点在右侧,偏导数为 +,  减小;

下图,初始点在左侧,偏导数为 - ,  增大;

目的都是到达最低点。

 

例子2:

 

上图,  太小,会收敛(术语!术语!)的太慢;

下图,  太大,可能导致发散。

 

例子3:

 

随着迭代的发生,斜率会越来越小,即偏导数越来越小,所以梯度下降的程度会自动减缓。

 

最后,整理一下   和   的迭代公式,强调,二者同时更新。

 

结束,对了,这个方法叫“Batch” Gradient Descent,是一个比较常用的梯度下降方法。

 

小结

这学期在课上听的云里雾里的梯度下降原来是这么回事,学习——了解专业术语并掌握之,仅此而已。嘿嘿。富文本编辑器好像比那个M编辑器好用很多啊&_&

 

 

 

 

 

 

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: