本文参考吴恩达机器学习课程第2章
线性回归公式:
f(x)=θ0+θ1x
代价公式(误差均值中的2用来抵消求导得来的2):
J(θ0,θ1)=2m1∑i=1m(fθ(x)i−yi)2
目标:代价最小化
这里演示单变量线性回归时:
令θ0=0, f(x)=θ1x
可对J(θ1)求导,
J′(θ1)=m1∑i=1m(θ1xi−yi)
此时J′(θ1)=0方可求出θ1
实际上,由于代价函数经常含有2个及以上参数,目前函数处于三维空间x, y, z分别为θ0,θ1,J(θ0,θ1),无法直接求导获得最佳参数组合
所以我们实际上,是不断尝试θ0,θ1不同的值,找到损失结果最小的那组(θ0,θ1)。
我们如何找到合适的尝试方法来找到这组参数呢,目前使用
梯度下降法

算法特点:从不同的起始值开始,获得的局部最优解是不一样
为了方便,设 θ0=0,θ1=0
α为学习率(不变),dθidJ(θi)为偏导数,参数更新公式:
θi:=θi−αdθidJ(θ0,θ1)(i=0,1)
具体展开:
θ0:=θ0−αdθ0dJ(θ0,θ1)=θ0−m1∑i=1m(θ0+θ1xi−yi)
θ1:=θ1−αdθ1dJ(θ0,θ1)=θ0−m1∑i=1m(θ0+θ1xi−yi)∗xi
- 导数项: 达到局部最优解时(图中某一处局部最低点时),此时导数项为0,θi:=θi−α∗0,参数不再更新,且随着J(θ)接近最低点,导数项也会越来越小,所以暂时学习率可不变。
- 梯度下降可以用于更新任何可微(因为需要求导)的代价函数J,目前使用的梯度下降用到了∑i=1m,意味着每下降一次遍历一整个数据集,也称batch梯度下降算法。