Coursea-吴恩达-machine learning学习笔记(二)【week 1之Linear Regression with One Variable】

线性回归算法中特定的符号表示:
m:表示训练样本的数目;
x:表示输入的特征;
y:表示输出变量或目标变量;
(x,y):表示一个训练样本;
(x(i),y(i)):表示第i个训练样本;
h:表示假设函数,表示从xy的函数映射;

单变量的线性回归模型:hθ(x)=θ0+θ1x
其中,θ0,θ1为模型参数;

线性回归算法的目标为选择θ0,θ1,使hθ(x)最接近样本对应的y值,即寻找θ0θ1,使

12mi=1m(hθ(x(i))y(i))2

12mi=1m(hθ(x(i))y(i))2表示平均误差,其中,12是为了方便后续梯度下降算法的计算。

引入代价函数的概念:

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2
代价函数也称平方误差函数或平方误差代价函数,为了评价hθ(x)的准确性,算法的目的是让J(θ0,θ1)尽可能小。

平方误差代价函数是解决回归问题最常用的手段。

算法简化:
θ0=0,则hθ(x)=θ1x,模型参数只剩下θ1,代价函数变为

J(θ1)=12mi=1m(hθ(x(i))y(i))2
算法目标变为求
minθ1J(θ1)

带入训练集样本数据,发现J(θ1)是一个下凸曲线,找到令J(θ1)取值最小的θ1

J(θ1,θ0)同理,可用轮廓图表示:
Coursea-吴恩达-machine learning学习笔记(二)【week 1之Linear Regression with One Variable】

梯度下降算法:可以使代价函数最小化。
算法定义:
repeat until convergence{

θj:=θjαθjJ(θ0,θ1)(for j=0 and j=1)
}
:=为赋值运算符;
α为一个数字,称为学习速率,控制梯度下降步幅。

θ0,θ1正确的更新方法:
temp0:=θ0αθ0J(θ0,θ1)
temp1:=θ1αθ1J(θ0,θ1)
θ0:=temp0
θ1:=temp1
θ0,θ1要同时更新。

通常将θ0,θ1均初始化为0。

注:x为偏导数符号,ddx为导数符号

梯度下降算法中,若α的值取得太小,梯度下降过于缓慢;若α的值取得太大,可能导致无法收敛,甚至发散。
在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小幅度,因为当接近局部最低点时,θjJ(θ0,θ1)导数值自动变得越来越小。

线性回归算法的梯度下降:
θjJ(θ0,θ1)=θj12mi=1m(hθ(x(i))y(i))2=θj12mi=1m(θ0+θ1x(i)y(i))2
j=0θ0J(θ0,θ1)=1mi=1m(hθ(x(i))y(i))=1mi=1m(θ0+θ1x(i)y(i))
j=1θ1J(θ0,θ1)=1mi=1m(hθ(x(i))y(i))x(i)=1mi=1m(θ0+θ1x(i)y(i))x(i)
即:
repeat until convergence{

θ0:=θ0α1mi=1m(hθ(x(i))y(i))θ1:=θ1α1mi=1m(hθ(x(i))y(i))x(i)θ0,θ1
}

批量梯度下降法(Batch Gradient Descent):梯度下降法最常用的形式,具体做法是在更新参数时使用所有的样本来进行更新。