【机器学习】Stanford Machine Learning 学习笔记(二)

之前刷过一次斯坦福大学吴恩达教授的Coursera公开课,但那次刷的时候我还太年轻,所以也没做笔记,而且到现在为止,也都快忘的差不多了。过不了多久就要开始保研复试了,这里想再花一个月的时间重新过一遍,也在CSDN上做好记录。

一、多变量线性回归

在上一个小节中,我们介绍了单一变量进行线性回归的方法:假设函数h(x)、代价函数J(θ)、梯度下降法等等。


假设函数h(x)

但对于我们日常中的事物,单变量的情形是很少的, 大多数情况下都是多个变量共同决定一件事情的结果,那这个时候,我们就要对单变量的线性回归做一定的调整。
【机器学习】Stanford Machine Learning 学习笔记(二)_第1张图片
以上就是调整之后的假设函数h(x),可以看到其实并没有改变太多,只不过是把一个变量的情况拓展到了多个变量。


Gradient Descent

假设函数h(x)变化,代价函数也跟着变化,自然梯度下降的算法也会有所变化,但其实本质上都是将单变量拓展为多变量而已,没有什么特殊的,下面就只针对单变量和多变量的不同进行分析。
【机器学习】Stanford Machine Learning 学习笔记(二)_第2张图片
这张PPT中左边部分为单变量的梯度下降算法,右边为多变量的。可以看到,二者的形式很想,其实右边的θ0就是左边的θ0,右边的θ1,就是左边的θ1,不同的就是,右边还多了θ2、θ3,对应于多出来的特征的参数。

需要注意的是,这里无论出现多少个参数,他们都需要被同时更新!


特征归一化

这是多变量线性回归的一个特点,它需要对不同的变量进行特征归一化,也就是说要把不同变量的单位去掉,使其统一在一个量纲下进行计算,这样会有利于梯度下降法的运行。
【机器学习】Stanford Machine Learning 学习笔记(二)_第3张图片
上图展示了如果不进行梯度归一化的后果,左图是没有进行梯度归一化的J(θ),右图是进行梯度归一化之后的J(θ),图中的点表示Global Minimum,可以想象在左图中,如果学习率α选取的稍微大了一点,就会出现图中的情况,导致收敛速度慢甚至不收敛,如果学习率α选取很小倒是可以避免这种情况,但又会降低速度。而右图中就不会出现这样的问题。
【机器学习】Stanford Machine Learning 学习笔记(二)_第4张图片
上图是进行Mean Normalization,也是特征归一化的一部分,这个操作的目的是使训练数据的均值都为0,无论如何,这样也会提高梯度下降法运行的效率。

多项式回归

上面都将的是线性回归,那如果遇到变量和输出是非线性关系的,那怎么办呢?这里我们采用变量代换的思想,我们不改变假设函数,而仅仅改变数据的形式,可以看下面的例子:
【机器学习】Stanford Machine Learning 学习笔记(二)_第5张图片
我们的结果和size、size2、size3成线性关系,那我们是怎么做的呢?我们再构造一组数据为size2,令其为第二个特征,同样令size3为第三个特征,这样我们就可以继续构造线性函数来解决这个非线性问题啦!是不是很机智?

Normal Equation

在线性回归问题中,还有一个简便的解决方案,不需要迭代。这就是Normal Equation,正规方程。

这个方法在吴恩达教授的课程中并没有给出证明,所以我们在这一部分就只要背过一个公式就行了。
【机器学习】Stanford Machine Learning 学习笔记(二)_第6张图片
对,就是这个。看起来正规方程很简单是不是?但是不要忘了,这里面有一个对矩阵求逆的过程,这个过程是O(n3)的复杂度,如果n过大的话,对于计算机来说也需要花费很长的时间进行求解,那这个时候,就需要用迭代法了,迭代法的时间复杂度为O(k*n2)。

下面给出两个方法的优缺点对比:

  • 梯度下降法需要选择学习率α,而正规方程法则不用
  • 梯度下降法需要进行迭代,正规方程法不需要
  • 梯度下降法适合工作于n比较大的时候,正规方程法适合工作于n比较小的时候

其实上边说了三条,也就记住最后一条就行了,n太大选择梯度下降,n小则选择正规方程。一般是以10,000作为界限。

你可能感兴趣的:(机器学习)