斯坦福机器学习笔记-线性回归与梯度下降

线性回归

首先,我们明确几个常用的数学符号:

  • 特征(feature)xix_i , 比如,房屋的面积,卧室数量都算房屋的特征
  • 特征向量(输入)xx ,一套房屋的信息就算一个特征向量,特征向量由特征组成, xj(i)x^{(i)}_j 表示第 ii 个特征向量的第 jj 个特征。
  • 输出向量yyy(i)y^{(i)} 表示了第 ii 个输入所对应的输出
  • 假设(hypothesis):也称为预测函数,比如一个线性预测函数是:

hθ(x)=θ0+θ1x1+θ2x2++θnxn=θTxh_θ(x)=θ_0+θ_1x_1+θ_2x_2+⋯+θ_nx_n=θ^Tx

上面的表达式也称之为回归方程(regression equation)θθ 为回归系数,它是我们预测准度的基石。

误差评估

之前我们说到,需要某个手段来评估我们的学习效果,即评估各个真实值 y(i)y^{(i)} 与预测值 hθ(x(i))h_θ(x^{(i)}) 之间的差异。最常见的,我们通过最小均方(Least Mean Square) 来描述误差:
J(θ)=12mi=1m(hθ(x(i))y(i))2,mJ(θ)=\frac{1}{2m}∑_{i=1}^m(h_θ(x^{(i)})−y^{(i)})^2,\quad m 为样本数

其矩阵表达为:
J(θ)=12m(Xθy)T(Xθy)J(θ)=\frac {1}{2m}(Xθ−y)^T(Xθ−y)

误差评估的函数在机器学习中也称为代价函数(cost function)。

批量梯度下降

在引入了代价函数后,解决了“有手段评估学习的正确性”的问题,下面我们开始解决“当学习效果不佳时,有手段能纠正我们的学习策略”的问题。

首先可以明确的是,该手段就是要反复调节 θθ 是的预测 J(θ)J(θ) 足够小,以及使得预测精度足够高,在线性回归中,通常使用梯度下降(Gradient Descent) 来调节 θθ

θj=θjαθjJ(θ),αθ_j=θ_j−\alpha \frac {∂}{∂θ_j}J(θ), \quad α 为学习率

数学上,梯度方向是函数值下降最为剧烈的方向。那么,沿着 J(θ)J(θ) 的梯度方向走,我们就能接近其最小值,或者极小值,从而接近更高的预测精度。学习率 α\alpha 是个相当玄乎的参数,其标识了沿梯度方向行进的速率,步子大了容易扯着蛋,很可能这一步就迈过了最小值。而步子小了,又会减缓我们找到最小值的速率。在实际编程中,学习率可以以 3 倍,10 倍这样进行取值尝试,如:
α=0.001,0.003,0.010.3,1α=0.001,0.003,0.01…0.3,1

对于一个样本容量为 mm 的训练集,我们定义 θθ 的调优过程为:

\quad\quad重复直到收敛(Repeat until convergence):
θj=θj+α1mi=1m(y(i)hθ(x(i)))xj(i)θ_j=θ_j+\alpha \frac1{m}∑_{i=1}^m(y^{(i)}−h_θ(x^{(i)}))x^{(i)}_j

该函数的矩阵(向量)表达如下:
θj=θj+α1m(yXθ)Txjθ_j=θ_j+\alpha \frac{1}{m}(y-Xθ)^Tx_j

其中,代价函数为:
θj=12mi=1m(hθ(x(i))y(i))2θ_j=\frac1{2m}∑_{i=1}^m(h_θ(x^{(i)})−y^{(i)})^2

我们称该过程为基于最小均方(LMS)的批量梯度下降法(Batch Gradient Descent),一方面,该方法虽然可以收敛到最小值,但是每调节一个 θjθ_j ,都不得不遍历一遍样本集,如果样本的体积 mm 很大,这样做无疑开销巨大。但另一方面,因为其可化解为向量型表示,所以就能利用到并行计算优化性能。

随机梯度下降

鉴于批量梯度下降的性能问题,又引入了随机梯度下降(Stochastic Gradient Descent)
Repeatuntilconvergence:重复直到收敛(Repeat \quad until\quad convergence):

fori=1tom:for \quad i=1\quad to\quad m:

θj=θj+α(y(i)hθ(x(i)))xj(i)θ_j=θ_j+\alpha (y^{(i)}−h_θ(x^{(i)}))x^{(i)}_j

可以看到,在随机梯度下降法中,每次更新 θjθ_j 只需要一个样本: (x(i),y(i))(x^{(i)},y^{(i)}) 。即便在样本集容量巨大时,我们也很可能迅速获得最优解,此时 SGD 能带来明显的性能提升。
斯坦福机器学习笔记-线性回归与梯度下降