文章目录
- 1.代价函数(cost function)
- 1.1 代价函数图像
- 2.gradient descent(梯度下降)
- 2.1 正导数:positive derivative
- 2.2 负导数:negative derivatvie
- 2.3 线性回归的梯度下降(gradient descent of linear regression )
- 3.矩阵的介绍
- 4.多元线性回归和其梯度下降
- 4.1 多元线性回归
- 4.2 多元线性回归的梯度下降
- 4.3 多元线性回归的梯度下降——特征缩放
- 4.4 多项式回归
1.代价函数(cost function)
1.1 代价函数图像
上图两个坐标表示参数和,它们是动态变化的。通常使用contour figure(等高线线)来描述上面的3D图像:
在右图的等高线中,每个圆圈上面的点的值是一致的。当前红色点处于参数对应于左图的直线,但这时候的直线没有很好拟合数据。
2.gradient descent(梯度下降)
- 微积分:calculus
- 导数:derivatives
- 收敛:converge
- 不收敛:diverge
梯度下降更新公式:
上面两个参数需要同步更新,也就是说在一次迭代中,这两个参数是同时更新的。假设首先需要更新参数,其cost function为:
同时其cost function的函数图像为:
2.1 正导数:positive derivative
当利用公式(2-1)可以求得导数为positive number,则会偏向于向最小值移动。
2.2 负导数:negative derivatvie
同样的,求得的导数会出现negative number,则使得更新之后的也会偏向于最小值。
2.3 线性回归的梯度下降(gradient descent of linear regression )
在线性回归中,通常使用square error(平方误差)来计算代价函数:
公式中代表真实样本的值,则代表线性回归模型的预测值。为data set中的样本数。
- 为什么要在分子上加上2呢?这是因为在求解partial derivative(偏导数)中可以化简出比较简便的形式。
最后可以分别求得两个参数的partial derivative:
- Batch:每完成一次梯度更新,则默认为完成了一个batch。在batch里面,梯度更新会计算所有的个样本。
3.矩阵的介绍
- 单位(identity)矩阵:(对角矩阵都为1)
- 转置矩阵
- 矩阵的逆(matrix inverse):
其中矩阵的维度为,它必定是一个方阵。如果一个矩阵没有逆矩阵,则称为奇异矩阵(Singular matrix),元素为0的矩阵就是一个奇异矩阵。
4.多元线性回归和其梯度下降
4.1 多元线性回归
之间已经简要叙述过简单的线性回归模型,其公式为:
为了引出多元线性回归模型,引入一个预测房价的问题,其具体的特征如下:
在上面的房价预测问题中,共有4个特征:size,房间数量,楼层,使用年限,需要预测的是:价格。
- :共有n个特征
- :表示在数据集中的第个样本
- :表示在第个样本中,第个特征。
最后可以列出多元线性回归模型:
其中,和都为一维向量,同时。
4.2 多元线性回归的梯度下降
在2.3节中已经简单介绍了线性回归的梯度下降,那么多元线性回归的梯度下降也是一样的,在一次迭代的过程当中,需要更新所有的参数:
具体的,上述公式中的偏导数可以化简为:
4.3 多元线性回归的梯度下降——特征缩放
在原始的算法当中,不同特征之间的取值范围不同,会造成gradient descent时收敛过慢。例如,假设存在两个特征:房子的面积和房子的年龄。房子面积的取值范围在**(1-2000),而房子年龄的取值范围为(1-10)**。这两个特征对应的参数为:。它们的代价函数contour图像如下:
可以看出的取值范围会比要小,这是因为只要改变一点点的,则代价函数会影响比较大,所以它的取值会比较小。这时候如果利用梯度下降算法,它会收敛速度比较慢。而如果把这两个特征进行缩放,缩放到0-1之间,这时候图像会变成:
此时收敛速度加快,能够更快找到全局最优点。缩放特征有两种比较常见的方法:
- 最大最小归一化:
首先找出该特征所有值的最大值和最小值,然后按照公式对每个特征值进行缩放。 - Z-score标准化:
其中为均值,为方差
4.4 多项式回归
有些数据不能简单用多元线性回归来进行拟合,这时候可以利用多项式回归来进行拟合。
具体的,polynomial regression可以拟合下图:
可以用下面公式表示
也即是说可以用cubic model(三次模型)来拟合曲线,同时作为多项式回归方程。