[TOC]
对于一个要度量的对象,一般来说会有不同维度的多个特征。比如之前的房屋价格预测例子中,除了房屋的面积大小,可能还有房屋的年限、房屋的层数等等其他特征:
这里由于特征不再只有一个,引入一些新的记号
$n$ : 特征的总数
${x}^{\left( i \right)}$ : 代表样本矩阵中第$i$ 行,也就是第$i$ 个训练实例。
${x}_{j}^{\left( i \right)}$ : 代表样本矩阵中第$i$ 行的第$j$ 列,也就是第$i$ 个训练实例的第$j$ 个特征。
参照上图,则有 ${x}^{(2)}\text{=}\begin{bmatrix} 1416\\ 3\\ 2\\ 40 \end{bmatrix}, {x}^{(2)}_{1} = 1416$
多变量假设函数
对于
参数向量的维度为
$h_\theta\left(x\right)=\begin{bmatrix}\theta_0; \theta_1; ... ;\theta_n \end{bmatrix}\begin{bmatrix}x_0 \newline x_1 \newline \vdots \newline x_n\end{bmatrix}= \theta^T x$
$\theta^T$ :$\theta$ 矩阵的转置
$x$ : 某个样本的特征向量,$n+1$ 维特征量向量
$x_0$ : 为了计算方便我们会假设$x_0^{(i)} = 1$
注:该部分记号较多,记不住可随时回顾!
多变量代价函数类似于单变量代价函数,
即
前文提到梯度下降对于最小化代价函数的通用性,则多变量梯度下降公式即
$\begin{align*} & \text{repeat until convergence:} ; \lbrace \newline ; &{{\theta }{j}}:={{\theta }{j}}-\alpha \frac{\partial }{\partial {{\theta }{j}}}J\left( {\theta{0}},{\theta_{1}}...{\theta_{n}} \right) \newline \rbrace \end{align*}$
解出偏导得:
$\begin{align*}& \text{repeat until convergence:} ; \lbrace \newline ; & \theta_j := \theta_j - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_j^{(i)} ; & \text{for j := 0,1...n}\newline \rbrace\end{align*}$
可展开为:
$\begin{aligned} & \text{repeat until convergence:} ; \lbrace \newline ; & \theta_0 := \theta_0 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_0^{(i)}\newline ; & \theta_1 := \theta_1 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_1^{(i)} \newline ; & \theta_2 := \theta_2 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_2^{(i)} \newline & \vdots \newline ; & \theta_n := \theta_n - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_n^{(i)} &\newline \rbrace \end{aligned}$
当然,同单变量梯度下降一样,计算时需要同时更新所有参数。
$X$ : 训练集数据,$m\times(n+1)$ 维矩阵(包含基本特征$x_0=1$ )
在应用梯度下降算法实践时,由于各特征值的范围不一,可能会影响代价函数收敛速度。
以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。
下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。
为了优化梯度下降的收敛速度,采用特征缩放的技巧,使各特征值的范围尽量一致。
除了以上图人工选择并除以一个参数的方式,**均值归一化(Mean normalization)**方法更为便捷,可采用它来对所有特征值统一缩放:
$x_i:=\frac{x_i-average(x)}{maximum(x)-minimum(x)}, 使得 $
对于特征的范围,并不一定需要使得
另外注意,一旦采用特征缩放,我们就需对所有的输入采用特征缩放,包括训练集、测试集、预测输入等。
通常,有两种方法来确定函数是否收敛
- 多次迭代收敛法
- 无法确定需要多少次迭代
- 较易绘制关于迭代次数的图像
- 根据图像易预测所需的迭代次数
- 自动化测试收敛法(比较阈值)
- 不易选取阈值
- 代价函数近乎直线时无法确定收敛情况
对于梯度下降,一般采用多次迭代收敛法来得出最小化代价函数的参数值,自动化测试收敛法(如设定
我们可以通过绘制代价函数关于迭代次数的图像,可视化梯度下降的执行过程,借助直观的图形来发现代价函数趋向于多少时能趋于收敛,依据图像变化情况,确定诸如学习速率的取值,迭代次数的大小等问题。
对于学习速率
通过不断改变
在特征选取时,我们也可以自己归纳总结,定义一个新的特征,用来取代或拆分旧的一个或多个特征。比如,对于房屋面积特征来说,我们可以将其拆分为长度和宽度两个特征,反之,我们也可以合并长度和宽度这两个特征为面积这一个特征。
线性回归只能以直线来对数据进行拟合,有时候需要使用曲线来对数据进行拟合,即多项式回归(Polynomial Regression)。
比如一个二次方模型:$h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}$
或者三次方模型:$h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}+{\theta_{3}}{x_{3}^3}$
或者平方根模型:
在使用多项式回归时,要记住非常有必要进行特征缩放,比如
对于一些线性回归问题来说,正规方程法给出了一个更好的解决问题的方式。
正规方程法,即令 theta = inv(X'*X)*X'*y
。
${X}^{-1}$ : 矩阵$X$ 的逆,在 Octave 中,inv
函数用于计算矩阵的逆,类似的还有pinv
函数。
X'
: 在 Octave 中表示矩阵 X 的转置,即$X^T$
下表列出了正规方程法与梯度下降算法的对比
条件 | 梯度下降 | 正规方程 |
---|---|---|
是否需要选取 |
需要 | 不需要 |
是否需要迭代运算 | 需要 | 不需要 |
特征量大1时 | 适用,$O\left(kn^2\right)$ | 不适用,$(X^TX)^{-1}$ 复杂度 |
适用范围2 | 各类模型 | 只适用线性模型,且矩阵需可逆 |
正规方程法的推导过程:
$\begin{aligned} & J\left( \theta \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( {h_{\theta}}\left( {x^{(i)}} \right)-{y^{(i)}} \right)}^{2}}}\newline ; & =\frac{1}{2m}||X\theta-y||^2 \newline ; & =\frac{1}{2m}(X\theta-y)^T(X\theta-y) &\newline \end{aligned}$
展开上式可得
注意到
接下来对$J(\theta )$ 求偏导,根据矩阵的求导法则:
所以有:
令$\frac{\partial J\left( \theta \right)}{\partial \theta }=0$, 则有 $$ \theta ={{\left( {X^{T}}X \right)}^{-1}}{X^{T}}y $$
(本部分内容为选讲)
正规方程无法应用于不可逆的矩阵,发生这种问题的概率很小,通常由于
-
特征之间线性相关
比如同时包含英寸的尺寸和米为单位的尺寸两个特征,它们是线性相关的
即
${x_{1}}={x_{2}}*{{\left( 3.28 \right)}^{2}}$ 。 -
特征数量大于训练集的数量$\left(m \leqslant n \right)$。
如果发现
- 减少多余/重复特征
- 增加训练集数量
- 使用正则化(后文)
对于这类不可逆的矩阵,我们称之为奇异矩阵或退化矩阵。
这种情况下,如果还想使用正规方程法,在Octave中,可以选用 pinv
函数,pinv
区别于 inv
,pinv
函数被称为伪逆函数,在矩阵不可逆的时候,使用这个函数仍可正确地计算出
复习时可直接倍速回顾视频,笔记整理暂留。