线性回归
对于 y=ax+b 一元线性回归如下图所示:

考虑多个变量的情形:
hθ(x)=θ0+θ1x1+θ2x2h(x)=i=0∑nθixi=θTx
我们选取一个比较“符合常理”的误差函数为(损失函数):
J(θ)=21i=1∑m(hθ(x(i))−y(i))2
当损失函数取得极小值时,求得的θ即为局部最优解。(对于J(θ)这个二次函数而言,当取得极小值,求得的θ为全局最优解)
对于θ的解析式的求解过程如下:

可得最小二乘意义下的参数最优解为:
θ=(XTX)−1XTy
特别的,当XTX阶过高时,仍然需要使用梯度下降的方式计算数值解
梯度下降算法
步骤:
1、初始化θ(随机初始化)
2、迭代得到新的θ能够是的J(θ)更小
3、如果J(θ)能够继续减少,返回(2)
迭代公式(α为称为学习率):
θj:=θj−α∂θj∂J(θ)
梯度方向(本质上是对θ求偏导):
∂θj∂J(θ)=∂θj∂21(hθ(x)−y)2=2∗21(hθ(x)−y)∗∂∂θj∂(hθ(x)−y)=(hθ(x)−y)∗∂θj∂(i=0∑nθixi−y)=(hθ(x)−y)xj
批梯度下降算法
Repeat until convergence{θj:=θj+αi=1∑m(y(i)−hθ(x(i)))xj(i)}
批梯度下降图示:

随机梯度下降算法
Loop{for i = 1 to m,{θj:=θj+α(y(i)−hθ(x(i)))xj(i)}}
mini-batch梯度下降算法
Repeat until convergence{θj:=θj+α∑i=1m(y(i)−hθ(x(i)))xj(i)}
Loop{for i = 1 to m,{θj:=θj+α(y(i)−hθ(x(i)))xj(i)}}
梯度下降算法总结
对于批梯度下降算法而言,由于要计算所有样本的偏差,效率相对随机梯度下降算法和mini-batch梯度下降算法较差,其优点在于能够稳步地收敛得到最优解。而随机梯度下降算法由于时随机选取样本计算梯度,导致其收敛的时快时慢,有时甚至会产生振荡现象(由于梯度过大错过了全局最优解),但胜在效率更高。mini-batch则是两者的结合。