文章目录
- 多变量线性回归(Linear Regression with Multiple Variables)
- 1.多特征(Multiple Features)
- 2.多变量梯度下降(Gradient Descent for Multiple Variable)
- 3.特征值缩放(Gradient Descent in Practice I - Feature Scaling)
- 4.学习速率(Gradient Descent in Practice II - Learning Rate)
- 5.特征处理和多项式回归(Features and Polynomial Regression)
- 6.正规方程(Normal Equation)
- 7.不可逆性正规方程(Normal Equation Noninvertibility)
- 8.week2编程思路
- 附录
- 思路整理
多变量线性回归(Linear Regression with Multiple Variables)
1.多特征(Multiple Features)
对于一个要度量的对象,一般来说会有不同维度的多个特征。比如之前的房屋价格预测例子中,除了房屋的面积大小,可能还有房屋的年限、房屋的层数等等其他特征
多变量假设函数表示为:=+++…+
这里由于特征不再只有一个,引入一些新的记号
:特征的总数
: 代表样本矩阵中第 行,也就是第 个训练实例。
代表样本矩阵中第 行的第 列,也就是第 个训练实例的第 个特征。
其中参数向量的维度是+1,给特征向量添加,其维度也变成+1维,则假设函数可以用矩阵表达为:
:矩阵的转置
:某个样本的特征向量。n+1维
:假设=1
2.多变量梯度下降(Gradient Descent for Multiple Variable)
多变量代价函数类似与单变量代价函数,即
= ,其中
梯度下降对于最小化代价函数的通用性,则多变量梯度下降公式即
解出偏导得:
可展开为:
…
同单变量梯度下降一样,计算时需要同时更新所有参数。
3.特征值缩放(Gradient Descent in Practice I - Feature Scaling)
在应用梯度下降算法实践时,由于各特征值的取值范围不同,可能会影响代价函数收敛速度。
以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。
下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁震荡较大,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。
为了加快梯度下降的收敛速度,采用特征缩放的方式,使得特征值的范围尽量一致。
方法主要有2种特征缩放(feature scaling) and 均值归一化(mean normalization)
特征缩放:每个训练实例的特征值都除以该特征值中最大的数;
均值归一化:
另外注意,一旦采用特征缩放,我们就需对所有的输入采用特征缩放,包括训练集、测试集、预测输入等。
4.学习速率(Gradient Descent in Practice II - Learning Rate)
通常,有两种方法来确定函数是否收敛
-
多次迭代收敛法
无法确定需要多少次迭代
较易绘制关于迭代次数的图像
根据图像易预测所需的迭代次数
-
自动化测试收敛法(比较阈值)
不易选取阈值
代价函数近乎直线时无法确定收敛情况
因为自动化测试收敛法需要预判代价函数的的参考值,但对于每个项目并不相同,选取参考值很困难。因此一般借助图形发现代价函数的趋势,调整学习速率,随着曲线的下降,每次取更小的学习速率,逐渐逼近最小值。
对于学习速率,一般上图展现的为适中情况下图中,左图可能表明过大,代价函数在跳跃,无法收敛;右图可能表明过小,代价函数收敛的太慢。代价函数在迭代会增加影响效率。在实际使用时,可以不断改变值,绘制并观察图像,并以此来确定合适的学习速率。
5.特征处理和多项式回归(Features and Polynomial Regression)
5.1特征处理
在特征选取时,我们也可以自己归纳总结,定义一个新的特征,用来取代或拆分旧的一个或多个特征。比如,对于房屋面积特征来说,我们可以将其拆分为长度和宽度两个特征,反之,我们也可以合并长度和宽度这两个特征为面积这一个特征。如能减少相关性很高特征就能减少计算梯度下降时候的运算,提高效率。
5.2多项式回归
对比week1单变量线性拟合
线性回归只能以直线来对数据进行拟合,有时候需要使用曲线来对数据进行拟合,即多项式回归(Polynomial Regression)。下面以单变量为例说明多项式拟合曲线的问题
在使用多项式回归时,要记住非常有必要进行特征缩放,比如 的范围为 1-1000,那么 的范围则为 1- 1000000,不适用特征缩放的话,范围更有不一致,也更易影响效率。还需要注意多项式如果项数太多虽然拟合效果更好了,但是增加了计算量。
6.正规方程(Normal Equation)
对于一些线性回归问题来说,正规方程法给出了一个更好的解决问题的方式。
正规方程法,即令 ,通过解析函数的方式直接计算得出参数向量的值 ,
比较正规方程法和梯度下降算法
条件 | 梯度下降 | 正规方程 |
---|---|---|
是否需要选取学习速率 | 需要 | 不需要 |
是否需要迭代运算 | 需要 | 不需要 |
特征量较多时 | 使用, | 不适用,复杂度 |
适用范围 | 各种模型 | 只适用线性模型且需要矩阵可逆 |
适用特征数 | 1w以下 | 1以上 |
7.不可逆性正规方程(Normal Equation Noninvertibility)
造成正规方程不可逆的原因有:
- 特征线性相关
- 特征数量大于训练集的数量
不可逆的处理办法:
- 合并冗余项
- 增加训练集数量
- 使用正则化
在Octave中,不可逆时强制求解逆函数使用pinv()函数,可逆函数使用inv()函数。
8.week2编程思路
- 目的:建模求一组参数,能使预测函数输出值最接近真实值;
- 描述接近程度的函数:代价函数
其中预测函数: - 代价函数越小,表示预测越准确;求代价函数的最小值,转为求对的偏导数,同时求多个参数的偏导数,机器学习中称为 批量梯度下降算法(batch gradient descent algorithm)
- 为:
在迭代次数内执行该计算,并且需要同时更新 的值。 - 将迭代次数与代价函数图形化,直观判断优化过程,针对性修改学习参数和迭代次数;
附录
- 【Katex常用函数1】https://katex.org/docs/support_table.html#symbols
- 【Katex常用函数2】https://my.oschina.net/davelet/blog/1831306
- 【Latex常用希腊字母】https://blog.csdn.net/xxzhangx/article/details/52778539
思路整理
对模型进行优化处理目前看是从两个方面入手:特征+数据拟合方式,分别整理一下。
-
特征
可以取代和拆分,目的减少冗余计算;
特征值缩放{两种方式:除以固定值、均值归一化},目的加快梯度下降的收敛速度; -
数据拟合方式
直线->单变量 线性回归 使用正规方程和梯度下降求解
曲线->多变量 多项式回归 梯度下降算法求解最优解ps:使用正规方程需要实例矩阵需要可逆即特征和训练集实例数一致