斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1

1. Introduction

1.1 What's machine learning

课程中介绍了两种定义:

1. Arthur Samuel (1959) : Field of study that gives computers the ability to learn without being explicitly programmed.

2. Tom Mitchell (1998) : A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.

对第二种定义的理解,以垃圾邮件为例:目标T,指将邮件分类为是否为垃圾邮件;经验E,指观察邮件人工分类的结果;评判标准P,指邮件分类的正确率。机器学习,即通过邮件人工分类结果E,使得邮件分类的结果T更好,这体现在分类正确率P的提升。

1.2 Supervised Learning

所谓监督学习,区别于非监督学习,不仅为算法提供数据(data),并且给出正确答案(right answer)。上面的垃圾邮件例子使用的就是监督学习。我们不仅为算法提供了数据(一封邮件),并且提供了正确答案(是否是垃圾邮件)。目前研究多是监督学习。

常见的监督学习分为两类:回归问题(regression)和分类问题(classification)。

回归问题(regression):目的在于预测出一个连续值作为输出,如根据房屋面积判断房价,房价是连续值 。

分类问题(classification):目的在于预测得到的是离散值,如判断邮件是否是垃圾邮件,结果只有两个值,是或不是。

1.3 Unsupervised Learning

非监督学习,只提供数据(data),不提供正确答案(right answer),目的往往是要找出数据的内部结构。最常见的聚类问题(clustering),例如根据饭店顾客的点菜种类及消费情况等,对顾客进行分类。分类结果来源于数据内部间的联系,对于分为几类,每类中有什么共同特性,每类有多少成员,均没有所谓的正确答案(right answer)。

2. Model and Cost Function

2.1 Model Representation

斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1










如图所示,仍以房价预测为例。这是监督学习中的回归问题,在这里我们只讨论线性回归。
符号表示:
x 表示输入,即房屋面积;
y 表示输出,即已知房屋售价;
斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1表示一组训练数据,斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1表示第i个训练数据;
m 表示已有数据的数量,也称为训练数据的大小;
h为假设函数,即要拟合出的函数,表示一种输入与输出的对应关系。

我们所要完成的就是以下过程:
斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1
学习算法利用喂进(feed)的数据,拟合出假设函数h。得到假设函数h后,我们就可以根据输入,得到拟合的输出。假设函数可以采用多种形式,如当h表示为线性函数斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1时,就称为线性回归(linear regression)。

2.2 Cost Function

斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1
如图所示,对同样一组数据做线性回归,可以得到多种不同的假设函数。什么样的线是好的线,我们又应该如何选择其中最好的一条线?这时候我们就要引入损失函数(cost/lost function)。
我们用斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1表示参数为θ时,假设函数的输出,即输入为x时的预测值。斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1表示误差大小,误差越小,直线的拟合效果越好。因此我们将回归问题的损失函数定义为
斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1
我们通过不断调整θ的值,使得损失函数斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1达到最小值,即预测值与实际值的误差达到最小值,这时候我们就认为找到了最好的“线”。当只有一个参数时, 参数与斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1呈现凹函数关系。当含有两个参数时,斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1与函数呈现“碗状”函数关系,常用等高线图表示,如图所示:
斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1

3. Gradient Descent

3.1Gradient Descent 

前面说到,通过计算损失函数斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1来指导假设函数的参数的调整,那么如何利用斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1来指导参数调整?最常用的方法就是梯度下降(Gradient Descent)。
我们将使斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1达到最小值视为一个下山的过程,我们站在山上的任意一个位置,想要尽可能快的下山,到达最低点。斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1
如图所示,假设我们处于蓝叉所在位置,想要尽快到达最低点,也就是大小为500的位置,图中给出两条路线。很明显,沿着各点切线方向前行的红色路线比绿色路线更快地到达了最低点。其原理就是数学中的沿切线方向,下降最快。这就是梯度下降的基本原理。
需要注意:(1).采用梯度下降法得到的不一定是全局最优解,很有可能得到局部最优解,但这已经基本可以满足我们的要求; (2). 起始点的位置常设置为全0或者随机初始化的方式,起始点的不同可能会导致最终到达不同的局部最优解。
梯度下降的数学表示为:
repeat until convergence(不断迭代直到收敛,即到达局部最优解):
斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1
其中θ表示假设函数的参数,j为参数序号,所有参数都需要通过上述公式进行更新。α称为学习率,决定了下山步伐的大小,后面将详细介绍学习率对结果产生的影响。
另外,需要注意的是,所有参数必须对同一个斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1求导,同时更新。如下图所示,右侧在更新一个参数的基础上,更新第二个参数,这是错误的做法。
斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1

3.2 Gradient Descent Intuition

1. 要注意参数每次更新时,都是减去该点的梯度,这样才能保证最后达到的是最小值。

2. 关于学习率α。α是梯度前的系数,决定了每次调整的幅度的大小。α的选取具有重要的意义。如果α过小,那么每次迭代,参数的变化非常小,需要较长时间才能收敛,使得损失函数最小。如果α过大,每次迭代过程中参数均会发生较大的调整,可能会导致无法收敛,损失函数大小在最小值附近震荡,甚至发散。

3. 根据上一点,有人可能会想,可以在迭代初期设置较大的学习率,使得损失函数大小快速到达最小值附近,然后换用较小的学习率,使得损失函数逐步接近最优解。但实际上没有这种必要。根据数学知识我们知道,函数在极小值出的梯度为0。选择了一个合适的学习率后,在损失函数逐渐接近局部最优解的过程中,损失函数的梯度在逐渐减小,参数的调整幅度也在逐渐减小。在距离极小值处较远位置,梯度较大,“步子”大,在接近极小值位置,梯度小,“步子”小,从而可以保证损失函数最终收敛。因此没有在过程中减少学习率的必要。

3.3 Gradient Descent for Linear Regression

将线性回归的假设函数应用于斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1方程,既可以得到线性回归的梯度下降公式,如下:

斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1
由于线性回归的损失函数斯坦福大学吴恩达教授《machine learning》课程学习笔记—— week 1是一个二次函数,函数一定会取得最小值,即唯一的全局最优解,选取合适的学习率后,一定可以收敛。
由于每一次的迭代过程中,都是对所有m个训练样本进行求和,这种方式也称为批量梯度下降(batch gradient descent)