week2_多变量线性回归

多变量线性回归(Linear Regression with Multiple Variables)

1.多特征(Multiple Features)

对于一个要度量的对象,一般来说会有不同维度的多个特征。比如之前的房屋价格预测例子中,除了房屋的面积大小,可能还有房屋的年限、房屋的层数等等其他特征


多变量假设函数hh表示为:hθh_{\theta}=θ0\theta_0+θ1\theta_1x1x_1+θ2\theta_2x2x_2+…+θn\theta_nxnx_n

这里由于特征不再只有一个,引入一些新的记号

nn:特征的总数
x(i)x^{(i)}: 代表样本矩阵中第 ii行,也就是第 ii个训练实例。
xj(i)x^{(i)}_j代表样本矩阵中第 ii行的第 jj列,也就是第 ii个训练实例的第 jj个特征。

其中参数向量的维度是nn+1,给特征向量添加x0x_0,其维度也变成nn+1维,则假设函数可以用矩阵表达为:

hθ(x)=[θ0θ1...θn][x0x1...xn]=θTx h_\theta(x)= \begin{bmatrix} \theta_0 & \theta_1 &...&\theta_n \end{bmatrix} \begin{bmatrix} x_0& \\ x_1&\\ ...&\\ x_n& \end{bmatrix} =\theta^Tx

θT\theta^T:θ\theta矩阵的转置
ss:某个样本的特征向量。n+1维
x0x_0:假设x0(i)x^{(i)}_0=1

2.多变量梯度下降(Gradient Descent for Multiple Variable)

多变量代价函数类似与单变量代价函数,即

J(θ0,θ1,...,θn)J(\theta_0,\theta_1,...,\theta_n)= 12m\frac 1 {2m}i=1m(hθ(x(i))y(i))2\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2,其中hθ(x)=θTxh_\theta(x)=\theta^Tx

梯度下降对于最小化代价函数的通用性,则多变量梯度下降公式即
repeatuntilconvergence:{repeat until convergence:\{
θj:=θjαθ1(θ0,θ1,...,θn)\theta_j:=\theta_j-\alpha\frac{\partial }{\partial \theta_1}(\theta_0,\theta_1,...,\theta_n)
}\}
解出偏导得:
repeatuntilconvergence:{repeat until convergence:\{
θj:=θjα1m\theta_j:=\theta_j -\alpha \frac 1 mi=1m(hθ(x(i))y(i))xj(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)} forj:=0,1,2,...nfor \qquad j:=0,1,2,...n
}\}

可展开为:
repeatuntilconvergence:{repeat until convergence:\{
θ0:=θ0α1m\theta_0:=\theta_0 -\alpha \frac 1 mi=1m(hθ(x(i))y(i))x0(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_0^{(i)}
θ1:=θ1α1m\theta_1:=\theta_1 -\alpha \frac 1 mi=1m(hθ(x(i))y(i))x1(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_1^{(i)}
θ2:=θ2α1m\theta_2:=\theta_2 -\alpha \frac 1 mi=1m(hθ(x(i))y(i))x2(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_2^{(i)}

θn:=θnα1m\theta_n:=\theta_n -\alpha \frac 1 mi=1m(hθ(x(i))y(i))xn(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_n^{(i)}
}\}

同单变量梯度下降一样,计算时需要同时更新所有参数。

3.特征值缩放(Gradient Descent in Practice I - Feature Scaling)

在应用梯度下降算法实践时,由于各特征值的取值范围不同,可能会影响代价函数收敛速度
以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。
下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁震荡较大,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。
在这里插入图片描述
为了加快梯度下降的收敛速度,采用特征缩放的方式,使得特征值的范围尽量一致
方法主要有2种特征缩放(feature scaling) and 均值归一化(mean normalization)
特征缩放:每个训练实例的特征值都除以该特征值中最大的数;
均值归一化
xi=xiaverage(x)maximum(x)minimum(x)x_i=\frac {x_i-average(x)} {maximum(x)-minimum(x)} xi(1,1)\qquad x_i \isin (-1,1)

另外注意,一旦采用特征缩放,我们就需对所有的输入采用特征缩放,包括训练集、测试集、预测输入等。

4.学习速率(Gradient Descent in Practice II - Learning Rate)

通常,有两种方法来确定函数是否收敛

  • 多次迭代收敛法
    无法确定需要多少次迭代
    较易绘制关于迭代次数的图像
    根据图像易预测所需的迭代次数
    在这里插入图片描述

  • 自动化测试收敛法(比较阈值)
    不易选取阈值
    代价函数近乎直线时无法确定收敛情况

因为自动化测试收敛法需要预判代价函数的的参考值,但对于每个项目并不相同,选取参考值很困难。因此一般借助图形发现代价函数的趋势,调整学习速率α\alpha,随着曲线的下降,每次取更小的学习速率,逐渐逼近最小值。

对于学习速率α\alpha,一般上图展现的为适中情况下图中,左图可能表明α\alpha过大,代价函数在跳跃,无法收敛;右图可能表明α\alpha过小,代价函数收敛的太慢。代价函数在迭代会增加影响效率。在实际使用时,可以不断改变α\alpha值,绘制并观察图像,并以此来确定合适的学习速率。
在这里插入图片描述

5.特征处理和多项式回归(Features and Polynomial Regression)

5.1特征处理

在特征选取时,我们也可以自己归纳总结,定义一个新的特征,用来取代拆分旧的一个或多个特征。比如,对于房屋面积特征来说,我们可以将其拆分为长度和宽度两个特征,反之,我们也可以合并长度和宽度这两个特征为面积这一个特征。如能减少相关性很高特征就能减少计算梯度下降时候的运算,提高效率。

5.2多项式回归

对比week1单变量线性拟合
线性回归只能以直线来对数据进行拟合,有时候需要使用曲线来对数据进行拟合,即多项式回归(Polynomial Regression)。下面以单变量为例说明多项式拟合曲线的问题
在这里插入图片描述
在使用多项式回归时,要记住非常有必要进行特征缩放,比如 的范围为 1-1000,那么 的范围则为 1- 1000000,不适用特征缩放的话,范围更有不一致,也更易影响效率。还需要注意多项式如果项数太多虽然拟合效果更好了,但是增加了计算量。

6.正规方程(Normal Equation)

对于一些线性回归问题来说,正规方程法给出了一个更好的解决问题的方式。
正规方程法,即令θjJ(θj)=0\frac{\partial }{\partial \theta_j}J(\theta_j)=0 ,通过解析函数的方式直接计算得出参数向量的值 θ=(XTX)1XTy\theta=(X^TX)^{-1}X^Ty
比较正规方程法和梯度下降算法

条件 梯度下降 正规方程
是否需要选取学习速率α\alpha 需要 不需要
是否需要迭代运算 需要 不需要
特征量较多时 使用,O(kn2)O(kn^2) 不适用,(XTX)1(X^TX)^{-1}复杂度O(n3)O(n^3)
适用范围 各种模型 只适用线性模型且需要矩阵可逆
适用特征数 1w以下 1以上

7.不可逆性正规方程(Normal Equation Noninvertibility)

造成正规方程不可逆的原因有:

  • 特征线性相关
  • 特征数量nn大于训练集的数量mm

XTXX^TX不可逆的处理办法:

  • 合并冗余项
  • 增加训练集数量
  • 使用正则化

在Octave中,XTXX^TX不可逆时强制求解逆函数使用pinv()函数,可逆函数使用inv()函数。

8.week2编程思路

  1. 目的:建模求一组参数θ\theta,能使预测函数输出值最接近真实值;
  2. 描述接近程度的函数:代价函数Jθ=J_\theta= 12m\frac 1 {2m}i=1m(hθ(x(i))y(i))2\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2
    其中预测函数:hθ(x)=θTxh_\theta(x)=\theta^Tx
  3. 代价函数越小,表示预测越准确;求代价函数的最小值,转为求θj\theta_jJ(θ)J(\theta)的偏导数,同时求多个参数的偏导数,机器学习中称为 批量梯度下降算法(batch gradient descent algorithm)
  4. θj\theta_j 为:θj:=θjα1m\theta_j:=\theta_j -\alpha \frac 1 mi=1m(hθ(x(i))y(i))xj(i)\displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)} forj:=0,1,2,...n\qquad for \quad j:=0,1,2,...n
    在迭代次数内执行该计算,并且需要同时更新 θj\theta_j的值。
  5. 将迭代次数与代价函数图形化,直观判断优化过程,针对性修改学习参数α\alpha和迭代次数;

附录

思路整理

对模型进行优化处理目前看是从两个方面入手:特征+数据拟合方式,分别整理一下。

  • 特征
    可以取代和拆分,目的减少冗余计算;
    特征值缩放{两种方式:除以固定值、均值归一化},目的加快梯度下降的收敛速度;

  • 数据拟合方式
    直线->单变量 线性回归 使用正规方程和梯度下降求解
    曲线->多变量 多项式回归 梯度下降算法求解最优解

    ps:使用正规方程需要实例矩阵需要可逆即特征和训练集实例数一致

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章