一元变量的线性回归是指通过单输入变量预测单输出结果,通过学习梯度下降算法改善假设函数。输入变量通过假设函数求得输出值。
样本集是指样本的输入和输出值的集合,学习算法这里使用的是梯度下降算法,假设函数是指假设出来的输入和输出之间的关系。x是指已知的输入变量,y是指所求的输出变量。
1假设函数
一元线性回归的假设函数的一般形式是
hθ(x)=θ0+θ1x
,一般情况下,
hθ(x)
可以简写为
h(x)
。
但假设函数的初始化是由样本集猜想而来,并不知道初始化的假设函数是否准确。而且假设函数中参数
θ0
和
θ1
的值会影响梯度下降的结果,因为梯度下降算法有可能收敛扎起局部的最小值。而函数局部最小值,而不一定是全局最小值。
2 成本函数
成本函数是用来衡量假设函数的准确性的函数。成本函数的值越小,说明假设函数越准确。而我们的目标就是要提高假设函数的精度,故成本函数又称为目标函数。
J(θ0,θ1)=1/2m∑m1(hθ(xi)−yi)2
其中
hθ(xi)是xi
根据假设函数计算的预测值,
yi
是样本的实际值。m是样本的个数,成本函数亦被称之为平均均方误差,除以2是为了方便后面梯度下降算法的计算。
3 梯度下降算法
成本函数是来衡量假设函数的准确性,那提高假设函数的准确性则要靠梯度下降算法。改变假设函数,其实是改变
θ0和θ1
的值,通过改变
θ
的值,从而使成本函数
实际上这是一个求极小值的过程,实际上若是目标函数是可以求导的情况下,参数较少的情况下,个人觉得是可以通过对每个自变量求偏导数,通过让偏导数为零来求得目标函数最小化时的自变量。
但在不可求导或是参数太多以至于求值很困难的情况下,使用梯度下降算法。该算法目的是找出梯度下降的方向,是自变量沿着梯度逐步减小,最终收敛到局部最小值。
repeat until convergence:
θj≔θj−α∂/(∂θj)J(θ0,θ1)
θj≔θj−α1/m∑m1((hθ(xi)−yi)∗xij)
for j = 0 and j = 1
注意:
θ0和θ1
的值是同步改变的
∂/(∂θj)J(θ0,θ1) 是自变量的偏导数,即自变量在该点的斜率,α是学习速度,为正。表明以多大的幅度来收敛,若幅度太小,收敛步数增加,若幅度太大有可能越过收敛点导致收敛困难。 α∂/(∂θj)J(θ0,θ1) 即为斜率乘以幅度得出下降的高度,一般情况下α不变,但是偏导数会随着收敛而逐步变小,故下降的高度会随着迭代次数而减小,而这也是该算法的优点之一。