视频2-1到3-6

我们将深入探究特定的学习算法,开始介绍这些算法是如何工作的,和我们还有你如何来实现它们。

二、单变量线性回归(Linear Regression with One Variable)

2.1 模型表示

      我们的第一个学习算法是线性回归算法。你将会了解监督学习过程完整的流程。

      在监督学习中我们有一个数据集,这个数据集被称训练集我将在整个课程中用小写的m来表示训练样本的数目。

    视频2-1到3-6

       视频2-1到3-6

       这就是一个监督学习算法的工作方式,我们可以看到这里有我们的训练集里房屋价格,我们把它喂给我们的学习算法,学习算法工作,然后输出一个函数,通常表示为小写 h表示。 代表hypothesis(假设),表示一个函数,输入是房屋尺寸大小,就像你朋友想出售的房屋,因此h根据输入的x值来得出y值, y值对应房子的价格 因此,h是一个从 x到y的函数映射

        要解决房价预测问题,我们实际上是要将训练集“喂”给我们的学习算法,进而学习得到一个假设h然后利用h来得到对于y的预测。那么,对于我们的房价预测问题,我们该如何表达h?

视频2-1到3-6

 

2.2 代价函数(Cost Function)

       我们将定义代价函数的概念,这有助于我们弄清楚如何把最有可能的直线与我们的数据相拟合

        视频2-1到3-6

       视频2-1到3-6

       代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回归问题最常用的手段了

       在后续课程中,我们还会谈论其他的代价函数,但我们刚刚讲的选择是对于大多数线性回归问题非常合理的

      视频2-1到3-6

2.3-2.4 代价函数的直观理解

    视频2-1到3-6

2.5 梯度下降(Gradient Descent)

       这是一种算法,能够自动地视频2-1到3-6

    视频2-1到3-6

            视频2-1到3-6

       想象一下你正站立在山的这一点上,站立在你想象的公园这座红色山上,在梯度下降算法中,我们要做的就是旋转360度,看看我们的周围,并问自己要在某个方向上,用小碎步尽快下山。这些小碎步需要朝什么方向?如果我们站在山坡上的这一点,你看一下周围,你会发现最佳的下山方向,你再看看周围,然后再一次想想,我应该从什么方向迈着小碎步下山?然后你按照自己的判断又迈出一步,重复上面的步骤,从这个新的点,你环顾四周,并决定从什么方向将会最快下山,然后又迈进了一小步,并依此类推,直到你接近局部最低点的位置。

       视频2-1到3-6

视频2-1到3-6它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数

                                      视频2-1到3-6

        实现梯度下降算法的微妙之处是,在这个表达式中,如果你要更新这个等式,

      视频2-1到3-6

       我不打算解释为什么你需要同时更新,同时更新是梯度下降中的一种常用方法。我们之后会讲到,同步更新是更自然的实现方法当人们谈到梯度下降时,他们的意思就是同步更新。

 

2.6 梯度下降的直观理解

       在之前的视频中,我们给出了一个数学上关于梯度下降的定义,本次视频我们更深入研究一下,更直观地感受一下这个算法是做什么的,以及梯度下降算法的更新过程有什么意义。梯度下降算法如下:    视频2-1到3-6

视频2-1到3-6

视频2-1到3-6

       如果太小了,即我的学习速率太小,结果就是只能这样像小宝宝一样一点点地挪动,去努力接近最低点,这样就需要很多步才能到达最低点,所以如果太小的话,可能会很慢,因为它会一点点挪动,它会需要很多步才能到达全局最低点。

       如果太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来越远,所以,如果太大,它会导致无法收敛,甚至发散

      视频2-1到3-6

   视频2-1到3-6

       视频2-1到3-6

 

2.7 梯度下降的线性回归

       梯度下降是很常用的算法,它不仅被用在线性回归上和线性回归模型、平方误差代价函数。在这段视频中,我们要将梯度下降和代价函数结合。我们将用到此算法,并将其应用于具体的拟合直线的线性回归算法里

       视频2-1到3-6

       视频2-1到3-6

       我们刚刚使用的算法,有时也称为批量梯度下降。实际上,在机器学习中,通常不太会给算法起名字,但这个名字”批量梯度下降”,指的是在梯度下降的每一步中,我们都用到了所有的训练样本,在梯度下降中,在计算微分求导项时,我们需要进行求和运算,所以,在每一个单独的梯度下降中,我们最终都要计算这样一个东西,这个项需要对所有个训练样本求和。因此,批量梯度下降法这个名字说明了我们需要考虑所有这一"批"训练样本,而事实上,有时也有其他类型的梯度下降法,不是这种"批量"型的,不考虑整个的训练集,而是每次只关注训练集中的一些小的子集。在后面的课程中,我们也将介绍这些方法。

       但就目前而言,应用刚刚学到的算法,你应该已经掌握了批量梯度算法,并且能把它应用到线性回归中了,这就是用于线性回归的梯度下降法。

        线性代数中有一种计算代价函数J最小值的数值解法,不需要梯度下降这种迭代算法。在后面的课程中,我们也会谈到这个方法,它可以在不需要多步梯度下降的情况下,也能解出代价函数J的最小值这是另一种称为正规方程(normal equations)的方法实际上在数据量较大的情况下,梯度下降法比正规方程要更适用一些。

        我们可以在不同的环境中使用梯度下降法,我们还将在不同的机器学习问题中大量地使用它。所以,祝贺大家成功学会你的第一个机器学习算法。

        在下一段视频中,告诉你泛化的梯度下降算法,这将使梯度下降更加强大。

       线性代数不仅仅在线性回归中应用广泛,它其中的矩阵和向量将有助于帮助我们实现之后更多的机器学习模型,并在计算上更有效率。正是因为这些矩阵和向量提供了一种有效的方式来组织大量的数据,特别是当我们处理巨大的训练集时。

 

三、线性代数回顾(Linear Algebra Review)

3.5 矩阵乘法的性质

视频2-1到3-6

视频2-1到3-6