一、线性回归模型描述
常用变量含义:
m:训练样本的数量
x's:代表输入变量或者说特征
y's:输出变量
(x,y):表示一个样本
h(hypothesis):假设函数,h(x)=y。当我们设计一个学习算法的时候,需要考虑怎么表示这个假设函数h,在线性回归算法中,我们通常使用如下的假设函数:,有时会简写为h(x)。从函数中可以看出假设函数h为一个线性函数。线性函数的模型最简单,这个函数处理的是一个回归问题,只有单个变量x,所以又叫做一元线性回归函数或单变量回归函数。
二、代价函数
1、问题:
M代表了训练样本的数量,比如M=47。假设函数为:,其中,θ0和θ1是假设函数的两个参数,我们要做的,就是确定这两个参数的值。不同的参数会得到不同的假设函数h(x),如下图:
2、目的:得出θ0和θ1这两个参数的最优值,让假设函数表示的直线尽量地与数据点很好的拟合。
3、标准化
标准化定义:在线性回归中,我们要解决的是一个最小化问题。我们需要预测值h(x)与真实值y之间的差异尽可能的小,也就是尽量减少假设的输出与真实值之间差的平方。公式如下:,其中 ,则叫做代价函数,也被称为平方误差函数,有时也被叫做平方误差代价函数。
三、梯度下降
(一)梯度下降算法思路
1、给定和的初始值,通常设置为0。
2、不停的改变和的值,来使变小,直到我们找到J的最小值或者局部最小值。
梯度下降算法存在多个局部最优解,并且容易陷入某一个局部最优解之中。
(二)梯度下降算法定义
重复此步骤,直到函数收敛:{ ,for( j = 0 and j = 1) }
更新过程:
其中符号 := 表示赋值,α被称为学习率,α用来控制的梯度下降时的步长,α的大小跟步长成正比。
需要注意的是, 和是同步更新的,不能用下面的方法:
如果用这种方法,计算的时候已经改变了。
(三)、演算梯度下降算法几何展示
假设只有一个参数,那么上述公式可以简化为,因为是一个参数即函数只有一个自变量,所以偏导数变为了导数。
根据导数的几何意义可知:为点处的切线斜率,当函数J在点处单调增时,导数为正,减去一个正数数值变小,则由单调性可知J值变小,同理如果在点处单调减,则导数为负数,减去一个负数相当于加上一个正数,变大,则J值还是变小。
(四)、α的取值
1、如果α取值太小,那么每次的步长就会很小,函数收敛速度就会很慢。
2、如果α取值太大,那么每次的步长就会很大,当接近最低点的时候,可能因为步长过大而越过最低点,会导致函数无法收敛甚至发散。
四、线性回归算法
假设函数:
代价函数:=
将两个函数带入梯度下降算法中得到:
重复以上步骤,直到函数收敛,这就是线性回归的梯度下降算法。