线性回归
线性回归是监督学习的一种
线性回归理论
- 预测过程:给定一个数据集(x, y),寻找它在坐标系中的分布特征,用线性函数h(x)进行数学建模。给定x时,模型可以给出y的预测值
- 预测过程分类:当h(x)是连续函数时,称为线性回归;当h(x)是离散函数时,称为分类问题
- 假设函数:对于线性回归,h(x)可以被称为假设函数,它可以是一个多元函数,如下面的公式所示,注意在公式的右边,写成了,其中向量原本是一个行向量,经转置为列向量,与行向量相乘得到h的值,是一个数值不是矩阵
- 代价函数:用于评估假设函数中待定系数的准确性 ,可以有多种形式,在下面这个代价函数中,当函数值越小时,说明线性回归模型更加的准确,说专业点,体现了函数曲线与数据集的拟合程度越好
- 机器学习过程:如下图所示,我们通过算法得到一个合适的估计函数(假设函数)能够做成较为准确的预测
梯度下降算法理论
- 梯度下降算法: 当J函数取最小值时,说明h函数拟合效果最好,为了得到J函数的最小值,提出了梯度下降算法,还有一种方法是直接用数学的方法,利用导数求出J函数的最小值(由于定义中J函数是连续函数,而连续函数在闭区间中的最小值只在端点和导数为零的地方取到)。梯度下降算法在实际使用中分为三类,不同之处在于每次学习使用的样本个数不同
- 梯度下降算法过程:
首先对函数的赋值,可以是随机的;
改变的值,使函数按梯度下降的方向减小 - 更新的方法:是一个迭代的过程,对向量的每个元素要同时更新,原因还要深入追究;其中是学习率,其实就是用来控制较小的步长,用偏微分求出的是J函数的斜率,斜率越大,下降越快,这是对一个二维的向量的操作
线性回归的批量梯度下降算法
每次使用全部的训练集样本来更新模型的参数;批量梯度下降能够找到一个局部最小值,由于线性回归的代价函数只有一个最小值也就是全局最小值,所以使用批量梯度下降算法可以求出代价函数的最小值
- 对线性回归使用梯度下降算法就可以得到最优解,多变量线性回归的批量梯度下降算法原理为:
将J函数带入,并对微分进行化简得到:
将微分计算得到:
从上面的式子可以看出更新一个值需要进行一次求和运算;在经过一轮运算后得到新的向量的值,用这个值再进行计算;为了考察是否得到了合适的参数,可以考察两次运算之间变化了多少,的变化大小间接衡量了代价函数J斜率的大小,当变化很小时,就认为得到了最小值,也就是斜率为零的点,在这个点取得代价函数的最小值
线性回归的另外两种梯度下降算法
线性回归的另外两种梯度下降算法是:随机梯度下降算法和Mini-batch梯度下降算法,这两种算法速度比批量梯度下降算法快,但是误差会比较大
- 线性回归的随机梯度下降算法
这种算法在更新向量时只使用一个训练集样本 - 线性回归的Mini-batch梯度下降算法
在每次更新速度与更新次数中间取得一个平衡,其每次更新从训练集中随机选择b,b<m个样本进行学习
其他地方三者是一致的
理论总结
以上内容从预测过程开始,紧接着给出了线性回归的定义以及代价函数的定义,为了求得代价函数的最小值使用了梯度下降算法,通过算法自动迭代的值,求出最合适的模型
注:本文公式截图来自http://www.ai-start.com/ml2014/梯度下降算法是