把监督式学习中关于房屋价格的例子稍作更改,除了原有数据,再加入卧室数量这一数据项。
居住面积( feet 2 ) | 卧室数量 | 价格(1000$s) |
---|---|---|
2104 | 3 | 400 |
1600 | 3 | 330 |
2400 | 3 | 540 |
1416 | 2 | 232 |
3000 | 4 | 540 |
… | … | … |
现在输入变成了一个二维向量,其中 x (i) 1 表示训练集中第i个房屋的居住面积, x (i) 2 表示第i个房屋的卧室数量。为了完成监督式学习,我们首先考虑如何将假设 h 在计算机中实现。为此我们先假设 y 是 x 的一个线性函数:
上式中 θ 是将 X 映射到 Y 的线性函数的组成参数(也叫权重)。后文中会将 h θ (x) 简写为 h ( x) ,我们还可以令 x 0 =1 (截距项的系数),则上式可简写为:
构成 h(x) 的 θ 和 x 都是列向量, n 是输入属性的个数(本例中是2)。要让预测值 h(x) 接近目标变量期望 y ,我们该如何选择参数 θ 呢?我们引入成本函数的概念,让他表示 h(x) 和 y 的近似度:
由上面的最小方差成本函数衍生出最小方差回归模型。
1 LMS算法
要选择合适的权重值 θ 使得成本函数 J(θ) 的值最小化。我们需要一个搜索算法,从某一随机值出发,不断地迭代更新最后收敛到成本函数最小的最优解。我们使用梯度下降算法,从初始 θ 出发,不断重复以下操作:
其中 α 表示学习率,整个式子每次更新,就像是在 J(θ) 下降最快的方向迈一小步,因此被称为梯度下降法。
将成本函数关于某一权重 θ j 的偏导数展开:
对于单个训练样本则有:
该方法被称为最小均方差更新法(Least Mean Squares),也叫Widrow-Hoff学习法。这种方法直观而自然,我们可以看到当预测值与实际值接近时,权重变化就会很小;反之,权重就会变化很大,从逻辑而言这个公式也合情合理。
上面的公式只对单个训练样本,我们有两种方法可将其推广到整个训练集的回归,其一执行以下操作:
它每次更新要遍历整个训练集,因此称为批梯度下降法。注意到,该方法确实有可能落入局部最优解的陷阱,但我们暂时只考虑仅含一个全局最优解的优化问题,这时该方法每次都能收敛到全局最优。
成本函数是一个凸二次函数,下面我们给一个梯度下降优化二次函数的图示:
上图的椭圆代表二次函数的等高线,折现的轨迹是梯度下降的路径,而其上的每个点则表示 θ 梯度下降时的值,可以看到它从(48, 30)出发最后到达最优解(25, 25)。
如果我们使用梯度下降法求解之前仅有房屋面积的例子,可得
θ 0 =71.27,θ 1 =0.1345
,可绘制出下图:
将卧室数量也加入特征中,则求得: θ 0 =89.60,θ 1 =0.1392,θ 2 =−8.738 。
除了批梯度下降,还有一种方法同样表现出色,它的运行步骤是这样的:
这种方法每遇到一个样本就更新一次权重,它被称为随机梯度下降法或增量梯度下降法。由于批梯度下降每走一步都要遍历训练集,当样本个数很大时,训练的时间成本就很高。随机梯度下降每遇一个样本就更新一次权重,普遍来说收敛速度会快于批梯度法(虽然有时会无法收敛到最优解,而是在最优解附近振荡,即使如此得到的近似依然很好)。当训练集很大时,随机梯度下降往往比批梯度下降更受欢迎。