在第二周的课程里,主要讲了多变量线性回归以及相应的梯度下降实践,一些梯度下降的技巧如学习速率的选择,Feature Scaling - 特征缩放等,最后介绍了Polynomial Regression - 多项式回归和Normal Equation - 正规方程。
Linear Regression with multiple variables - 多变量线性回归
Multiple Feature - 多变量
- 参考week1第二节内容。
Gradient Descent for multiple variable - 多变量梯度下降
- 参考week1第三节内容。
Gradient Descent in practise 1: Feature Scaling - 梯度下降实践1:特征缩放
首先还是用房价预测回归的例子来说明:
假设我们有两个特征:
- $x_{1} = size(feet_{2}) \in (0,2000)$
- $x_{2} = number of bedrooms \in (1,5)$
可以看到$x_{1}$
比$x_{2}$
的取值范围要大了几个数量级。这么做的直接后果就是,只要$x_{1}$
的参数$\theta_{1}$
稍微变化一下,预测值$h_{\theta}(x)$
与实际价格之间的误差就会偏移得很厉害,也就导致$J(\theta)$
在$\theta_{1}$
偏移得很厉害,如下图所示:
我们看到,假如对此进行梯度下降,须迭代多次才能达到极值点。显然这是不ok的。
所以我们要对$x_{1}$ 和$x_{2}$ 进行缩放,让他们的取值范围落在同一个区间,或者相近区间。
一般我们会用下面的方法进行缩放:
- $x_{1} = \frac{size(feet_{2})}{2000}$
- $x_{2} = \frac{number of bedrooms}{5}$
这样我们就能令$x_{1},x_{2} \in [0,1]$
,这种方法也叫归一化。
我们在做梯度下降时,速度就会快很多:
更普遍的,我们采用如下方法:
$x := \frac{x-\mu}{s}$
其中$\mu$为$x$的均值,$s$为$x$的方差。这样就能令$x\in (-1,1)$。
Gradient Descent in practise 2: Learning rate - 梯度下降实践2:学习速率
如何选择学习速率是做梯度下降的很关键的一步。在week1第三节的内容里,我们了解到学习速率$\alpha$设置不当会有怎样的结果。所以当我们做梯度下降时一定要确保每一次迭代时$J(\theta)$都在减小,最后收敛于某个值。一般我们可以作迭代次数
- $J(\theta)$图来观察$J(\theta)$是否收敛:
-
收敛
-
发散
或者设置某个阈值(比如$0.001$)来检测,当$J(\theta)$减小的差值小于阈值时,可以认为$J(\theta)$已收敛到极值。
Features and Polynomial Regression - 特征与多项式回归
线性回归顾名思义,用于特征与结果有明显的线性关系时的情况。假如我们的某些特征与结果是非线性关系的,比如下图,我们只要观察散点的分布趋向哪种多项式函数然后做拟合就好了:
Normal Equation - 正规方程
根据week1第三节最后的内容,我们得到:
$$\frac{\partial J}{\partial \theta} = grad_{(n+1)\times 1} = \frac{1}{m} X^{T}(X\theta - Y)$$
令其为$0$,可得:
$$X^{T}X\theta - X^{T}Y = 0$$
$X^{T}X\theta = X^{T}Y$
则得:
$\theta = (X^{T}X)^{-1}X^{T}Y$
其中要注意的是,$X^{T}X$不一定是可逆的。比如特征数过多$(m<<n)$,此时$r(X)\leq
m$,$r(X^{T}X)\leq min(r(X),r(X^{T}))\leq m <
n$。而$X^{T}X\in n\times
n$,因此$X^{T}X$是不可逆的。
因此在样本数量远大于特征数量时才能用正规方程。
小结
具体问题具体分析,梯度下降虽然基础,但在许多问题上仍然是很有效的。正规方程用在合适的问题上则能非常快的得出结果。各司其职。