我们首先通过回归问题中最简单的线性回归(Linear Regression)来了解什么是监督学习。
监督学习的模型一般可以表示成如下:

在监督学习的问题中,我们要找到一个函数h(x),使得对于一个给定的数据集x,能预测出对应的输出y。即 y=h(x)
如果我们所要预测的y值是连续的,比如房价,那么这就是一个回归问题;如果y值是一些离散的点,比如是良性肿瘤还是恶性肿瘤,那么这就是一个分类问题。
线性回归
1.表达形式
所谓线性回归,就是y和x的关系是线性的。

对于只有一个特征的线性回归,hθ(x)可以表示成:
hθ(x)=θ1x+θ0
如果有多个特征,那么h(x)可以表示成:
hθ(x)=θ0+θ1x1+θ2x2+...+θnxn
其中,n代表特征的个数。
2.cost function
代价函数(cost function),有些地方也叫损失函数(loss function).它是用来衡量预测值hθ(x)与真实值y之间的差异,记为J(θ)。需要注意的是,对于每种算法来说,cost function并不是唯一的。如果J(θ)的值越小,那么说明模型和参数越符合训练样本。
训练参数的过程就是不断地改变θ,从而得到更小的J(θ)的过程。
一个好的cost function需要满足两个最基本的要求:(1)能够评价模型的准确性 (2)对参数θ可微。
在线性回归中,最常用的cost function就是均方误差(Mean squared error).具体表现形式是:
J(θ0,θ1,...θn)=2m1i=1∑m(y^(i)−y(i))2=2m1i=1∑m(hθ(x0(i),x1(i),...xn(i))−y(i))2
其中m表示样本的数量。
那么对于给定的样本,我们需要找到θ0,θ1,...θn得到
θ0,θ1,...,θnminJ(θ0,θ1,...θn)
3.梯度下降法
梯度下降法(Gradient descent)是求J(θ)最小值的一种常用的算法。
在微积分里,对多元函数的参数求∂偏导,把求得的各个参数的偏导数以向量的形式写出来,就是梯度,例如J(θ0,θ1)对θ0和θ1求偏导,得到的梯度向量就是(∂θ0∂J,∂θ1∂J)T。梯度向量,从几何意义上讲,是函数增加最快地地方。也就是说,从某一个点出发,沿着梯度向量的方向,容易找到函数的最大值。
如果我们要求J(θ0,θ1)的最小值,那么沿着梯度向量相反的方向,也就是−(∂θ0∂J,∂θ1∂J)T的方向,一步一步迭代求解。
但是梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解,但如果J(θ0,θ1)是凸函数,梯度下降法得到的解就一定是全局最优解。
对于有多个特征参数的损失函数J(θ0,θ1,...,θn),梯度下降法的具体算法是:
θ0=θ0−α∂θ0∂J(θ0,θ1,...,θn)
⋮
θj=θj−α∂θj∂J(θ0,θ1,...,θn)
⋮
θn=θn−α∂θn∂J(θ0,θ1,...,θn)
一直迭代更新,直到收敛。其中,α是步长,也叫学习速率(learning rate)。α值的选择也比较关键,如果α选择的值太小,会使得收敛太慢,但如果α的值太大,会导致损失函数J(θ)不仅不收敛,反而会发散。
把梯度下降法的公式带入线性回归的损失函数J(θ0,...,θn)的公式中:
θj=θj−mαi=1∑m(hθ(x0(i),x1(i),...xn(i))−y(i))xj(i)
其中x0(i)的值为1。
4.梯度下降法的矩阵表示形式
线性回归的模型假设函数为
h(x0,x1,...,xn)=θ0x0+θ1x1+...+θnxn
表示为矩阵形式为
hθ(X)=Xθ
其中,θ为(n+1)×1维的向量,X为m×(n+1)维的矩阵,hθ(X)为m×1维的向量。m代表样本的个数,n代表特征的个数。
那么损失函数J(θ)的表示形式为:
J(θ)=2m1(Xθ−Y)T(Xθ−Y)
其中Y是样本的输出向量,维度为m×1。
梯度下降算法的更新过程可以表示为:
θ=θ−mαXT(Xθ−Y)
5.归一化
样本中不同特征的取值范围不同,可能导致迭代范围很慢。为了减少特征取值的影响,可以对特征数据归一化,也就是对每个特征x,求出它的期望x和标准差std(x),然后转化为:
x=std(x)x−x
6.正规方程(Normal Equation)
梯度下降法是一种求损失函数最小值的算法,现在我们讨论另外一种算法–正规方程(Normal Equation)。正规方程的好处是无需迭代即可直接求取出θ值。
下面来演示一下推导过程,前面已经得到损失函数的矩阵表达式为:
J(θ)=2m1(Xθ−Y)T(Xθ−Y)
因为2m1是常数,对最终的解没有影响,我们可以先将这部分省去。于是将上式展开得:
J(θ)=(θTXT−YT)(Xθ−Y)
J(θ)=θTXTXθ−(Xθ)TY−YTXθ+YTY
因为Xθ和Y都是m×1维的向量,所以这两者相乘先后顺序没有关系,于是上式简化成:
J(θ)=θTXTXθ−2(Xθ)TY+YTY
接着对θ求导:
∂θ∂J(θ)=2XTXθ−2XTY
当∂θ∂J(θ)=0时取极值,得到:
XTXθ=XTY
于是得到θ的值为:
θ=(XTX)−1XTY
即为最优解。
7.梯度下降法和正规方程的比较
正规方程可以直接求θ,不需要多次迭代,而且也不需要做归一化,而归一化对梯度下降非常重要,但是正规方程却增加了计算的复杂度,不适用于特征非常多的样本。下面把这两种算法的优缺点列出来:

这是Andrew课程中的图片。在实际应用中,根据实际的情况选择对应的算法。