Stanford CS229:Supervised Learning[1]

作者一个独行的程序员

Supervised Learning

监督学习(Supervised Learning)是机器学习中的一大类方法,其特点就是需要已经标注过的数据作为训练集,通过回归(Regression)等方法,得到一个误差最小的假设或估计。

Supervised Learning

Linear Regression

最简单的回归模型就是线性回归,在正式讨论之前,先定义一些变量:

Basic Notation

以预测房屋价格(y)为例,假设我们只考虑住房大小(x1)和卧室数量(x2)这2个特征,并且用线性回归进行拟合,则可以得到目标函数的形式如下:

2-D Linear Regression

为了简化形式,假设:

.

则可以将函数写成向量形式:

.

最小二乘法

如何评估当前的h是最优的呢?
最简单、最常用的方法就是最小二乘法,非常好解释。它的原理就是累计预测值(h)和真实值(y)的差的平方:

.

关于公式中为什么会有1/2,原因是在求最优值时,会对J求偏导,刚好指数为2,与前面系数一拍即合~

Gradient Descent

在有了J之后,可以用梯度下降法来求解最优值。显然,我们的目的是想使J尽可能趋近于0。如果通过计算机来进行迭代求解,对于第i个参数,迭代公式如下:

m = 1

当然,实际情况m>1,所以需要把所有训练样本都累加起来。

m > 1

其中,alpha是learning rate。用梯度下降求解的过程可以想象成一个寻找山谷最低点的过程:

Initial

每次选择梯度(下山最快)的方向迭代,alpha决定了每一步迭代的步长。最终当J几乎不变时,函数收敛,我们求得了一个局部最优值。一定记住是局部最优值。

Convergence 1 Convergence 2

不难发现,由于起始值的不同,导致了收敛路线不同,最终收敛结果完全不同。同时,alpha也会影响收敛的路线,这个很好解释,不展开了。