线性回归

对于 y=ax+by = ax+b 一元线性回归如下图所示:
线性回归之批梯度下降、随机梯度下降和mini-batch梯度下降算法
考虑多个变量的情形:

hθ(x)=θ0+θ1x1+θ2x2h(x)=i=0nθixi=θTxh_\theta(x) = \theta_0 + \theta_1x_1 + \theta_2x_2\\ h(x) = \sum_{i=0}^n \theta_ix_i = \theta^Tx
我们选取一个比较“符合常理”的误差函数为(损失函数):
J(θ)=12i=1m(hθ(x(i))y(i))2J(\theta) = \frac{1}{2}\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2
当损失函数取得极小值时,求得的θ\theta即为局部最优解。(对于J(θ)J(\theta)这个二次函数而言,当取得极小值,求得的θ\theta为全局最优解)

对于θ\theta的解析式的求解过程如下:
线性回归之批梯度下降、随机梯度下降和mini-batch梯度下降算法
可得最小二乘意义下的参数最优解为:
θ=(XTX)1XTy\theta = (X^TX)^{-1}X^Ty
特别的,当XTXX^TX阶过高时,仍然需要使用梯度下降的方式计算数值解

梯度下降算法

步骤:
1、初始化θ\theta(随机初始化)
2、迭代得到新的θ\theta能够是的J(θ)J(\theta)更小
3、如果J(θ)J(\theta)能够继续减少,返回(2)
迭代公式(α\alpha为称为学习率):
θj:=θjαθjJ(θ)\theta_j :=\theta_j - \alpha\frac{\partial}{\partial\theta_j}J(\theta)
梯度方向(本质上是对θ\theta求偏导):
θjJ(θ)=θj12(hθ(x)y)2=212(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(i=0nθixiy)=(hθ(x)y)xj \begin{aligned} \frac{\partial}{\partial\theta_j}J(\theta) &= \frac{\partial}{\partial\theta_j}\frac{1}{2}(h_\theta(x) - y)^2 \\ &= 2*\frac{1}{2}(h_\theta(x) - y) *\partial\frac{\partial}{\partial\theta_j}(h_\theta(x)-y) \\ &= (h_\theta(x)-y)*\frac{\partial}{\partial\theta_j}(\sum_{i=0}^n \theta_ix_i - y) \\ &= (h_\theta(x)-y)x_j \end{aligned}

批梯度下降算法

Repeat until convergence{θj:=θj+αi=1m(y(i)hθ(x(i)))xj(i)}\text{Repeat until convergence\{}\\ \theta_j := \theta_j + \alpha\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)}\\ \text{\}}
批梯度下降图示:
线性回归之批梯度下降、随机梯度下降和mini-batch梯度下降算法

随机梯度下降算法

Loop{for i = 1 to m,{θj:=θj+α(y(i)hθ(x(i)))xj(i)}}\text{Loop\{}\\ \text{for i = 1 to m,\{} \theta_j :=\theta_j + \alpha(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)} \text{\}}\\ \text{\}}

mini-batch梯度下降算法

Repeat until convergence{θj:=θj+αi=1m(y(i)hθ(x(i)))xj(i)}\text{Repeat until convergence\{}\\ \theta_j := \theta_j + \alpha\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)}\\ \text{\}}

Loop{for i = 1 to m,{θj:=θj+α(y(i)hθ(x(i)))xj(i)}}\text{Loop\{}\\ \text{for i = 1 to m,\{} \theta_j :=\theta_j + \alpha(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)} \text{\}}\\ \text{\}}

梯度下降算法总结

对于批梯度下降算法而言,由于要计算所有样本的偏差,效率相对随机梯度下降算法和mini-batch梯度下降算法较差,其优点在于能够稳步地收敛得到最优解。而随机梯度下降算法由于时随机选取样本计算梯度,导致其收敛的时快时慢,有时甚至会产生振荡现象(由于梯度过大错过了全局最优解),但胜在效率更高。mini-batch则是两者的结合。

相关文章: