Andrew Ng Machine Learning (1) Introduction

此文是斯坦福大学 Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。
课程网址:https://www.coursera.org/learn/machine-learning/home/welcome


1. Environment Setup Instructions

这一章介绍课程一般使用的工具。octave或者matlab即可,这两者本质上没有什么区别,都有着丰富的数学库计算库。

2. Introduction

  1. 机器学习定义:简单来说,让计算机执行一些行为,但是without explicit programmed。
  2. 监督学习(supervised learning):通过已知的正确信息,得到未知的信息。一般用于解决的问题有两类:

    1. 回归问题(regression)
      例如:房价预测。已知一百平房子售价,两百平房子售价,三百平房子售价。那么,一百五十平房子的售价呢?

      很容易想到,拟合。那么接下来,是直线拟合?二次曲线拟合?

      这就是回归问题要解决的,通过已知离散信息,预测未知的连续信息。

    2. 分类问题(classification)
      例如:肿瘤分类。已知肿瘤size与肿瘤良性(label: 0)还是恶性(label: 1)分类的关系如下:

      更进一步,完全可以用一维坐标图来表示:

      现在需要对于根据size的对某个肿瘤判断它是良性还是恶性,就是分类问题。

      再进一步,现在我仅仅把size作为feature之一,如果我们加入考虑肿瘤积水(二维坐标图)?肿瘤硬度(三维坐标图)?原则上可以考虑无限种feature,如何处理?这里卖了个关子,可以使用支持向量机(SVM)。

    3. 无监督学习(unsupervised learning)/ 聚类算法(clustering):
      对于有监督学习而言,我们已知的信息很多:每个data的label是什么,label可以分为多少类,等等。但是无监督学习中,这些都是未知的。
      最常见的应用:浏览新闻时经常会有的相关新闻,或者搜索时的相关搜索结果,又或是weibo中的推荐分组,等等。

      可以理解为计算机自己理解后将信息分为了若干类。

      经典案例:cocktail party problem。简而言之,就是在聚会上摆俩麦克风分别记录声音,需要通过这些信息将不同声源的声音分隔开来。

      如果考虑声音本身的特征与背景知识,解法会比较复杂,需要大量的先验知识。但站在机器学习的角度来思考,就是一类无监督学习的应用场景。matlab实现仅需几行代码而已。

3. Bonus: Course Wiki Lecture Notes

单一变量线性回归:即通过线性方程来拟合已知data的feature,与label之间的关系。表达为

不同的线性方程之间,需要挑出来一个拟合更适合的,这就需要一个判断标准。常用的基于Mean squared error (MSE)

如果让计算机来实现这个过程,怎么办呢?梯度下降法(Gradient Descent)是一种常见手段。
该方法的核心是:

其中α是下降步长,人为确定。可以看出来,梯度下降法的目的是使J(θi,θj)越来越小,对于其是否线性,参数的数量,都没有限制。

最后利用梯度下降法代入导数(不论是链式法则,还是单个变量代入)得到最优的拟合函数参数:

4. Model and Cost Function

再次回顾一下监督学习,两类:regression和classification
简单来说,regression是predict real-valued output,classification是predict discrete-valued output。
注明了以下符号,方便以后沟通:

我们设计拟合,目的就是为了使得表示拟合数据与已知真实数据直接差距的cost function最小,这个cost function是啥?就是我们之前提到的判断标准,常见的为:

当有两个未知量时,cost function就需要表示为三维图:

为了方便表示,也可以把上图表示为类似地理上的“等高线”。术语称为 contour plot(轮廓图)

5. Parameter Learning

现在,我们开始具体来看看,第一个机器学习算法:梯度下降法(gradient descent)


特别注意,这里的temp是为了保证更新是同一时间发生的,这才是最正宗的梯度下降法。如果先更新了θ0,再用更新之后的θ0去更新θ1,就违背了梯度下降法的初衷。

可能你已经发现,这里的最优值,仅仅是局部的(local)而不是全局的(global)。因此选取的初值不同,可能会导致算法停留在不同的最优值。因此,这是梯度下降法的一个缺陷。但是对于线性回归而言,cost function 是一个convex function(形状为弓形),仅有一个最优值,局部最优值就是全局最优值。

到此为止,我们说的其实都是:batch gradient descent。也就是我的cost function是所有样本的MSE之和。如果不是计算所有样本,仅仅是计算某个重要子集的MSE之和,这个方法在以后的课程中会提到。

最后,提到线性代数中的寻找极值的方法:normal equations。但是在大规模的数据计算中,还是梯度下降法更为适用。

6. Linear Algebra Review

矩阵:https://en.wikipedia.org/wiki/Matrix_(mathematics)

向量:特殊的矩阵,注意是 列数 = 1

1-index:下标从1开始。0-index:下标从0开始。

矩阵乘法没有交换律,但是有结合律。

只有方阵(#col=#row)才有逆矩阵。但仅仅满足方阵这一个条件并不足够,同时需要满足行列式不等于0。没有逆矩阵的矩阵,称之为“奇异(singular)矩阵”或“退化(degenerate)矩阵”。