Learn梯度下降Gradient Descent公式

毕业这么多年,高数和线性代数差不多忘记光了,这里推导一下,权当复习基础知识… 参考ML:Linear_Regression_with_One_Variable, 我们有代价函数(Cost function) $$J(\theta_0, \theta_1) = \dfrac {1}{2m} \displaystyle \sum _{i=1}^m \left (h_\theta (x^{(i)}) - y^{(i)} \right)^2$$ 梯度下降法,基于这样的观察:如果实值函数$f(x)$在点$x_0$处可微且有定义,那么函数$f(x)$$x_0$点沿着梯度相反的方向$-\alpha f'(x_0)$下降最快。$f'(x_0)$$f(x_0)$在点a处的导数。 关于导数,可以通过求极限的方法求得$f'(x_0)=\lim\limits_{x\to x_0}\frac{f(x)-f(x_0)}{x-x_0}$。对于一个可导的x区间,$f'(x)$也是导函数。 对于代价函数$J(\theta_0, \theta_1)$,是关于$\theta_0,\theta_1$的函数。假定$\theta_1$是个固定常数,我们可以求$J(\theta_0, \theta_1)$关于变量$\theta_0$导函数,也称为偏导函数。 根据梯度下降法,我们就得出以下找出最优$\theta_0,\theta_1$的方法: repeat until convergence: $$\theta_0 := \theta_0 - \alpha \frac{\partial}{\partial \theta_0} J(\theta_0, \theta_1)$$ $$\theta_1 := \theta_1 - \alpha \frac{\partial}{\partial \theta_1} J(\theta_0, \theta_1)$$

通过一些基础知识:

$u(\theta_0,\theta_1)=h_\theta (x^{(i)}) - y^{(i)}=\theta_0 + \theta_{1}x^{(i)} - y^{(i)}$,所以梯度下降公式: repeat until convergence: $$\theta_0 := \theta_0 - \alpha \frac{\partial}{\partial \theta_0} \dfrac {1}{2m} \displaystyle \sum _{i=1}^m u(\theta_0,\theta_1)^2$$ $$\theta_1 := \theta_1 - \alpha \frac{\partial}{\partial \theta_1} \dfrac {1}{2m} \displaystyle \sum _{i=1}^m u(\theta_0,\theta_1)^2$$

这时可以推导出: repeat until convergence: $$\theta_0 := \theta_0 - \alpha \dfrac {1}{m} \displaystyle \sum _{i=1}^m u(\theta_0,\theta_1)\frac{\partial}{\partial \theta_0}u(\theta_0,\theta_1)$$

$$\theta_1 := \theta_1 - \alpha \dfrac {1}{m} \displaystyle \sum _{i=1}^m u(\theta_0,\theta_1)\frac{\partial}{\partial \theta_1}u(\theta_0,\theta_1)$$

对函数$u(\theta_0,\theta_1)$$\theta_0$偏导数,把$\theta_1$固定为常数,得到1. 对函数$u(\theta_0,\theta_1)$$\theta_1$偏导数,把$\theta_0$固定为常数,得到$x^{(i)}$

最终我们得到ML:Linear_Regression_with_One_Variable列出的运算公式: repeat until convergence: $$\theta_0 := \theta_0 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})$$ $$\theta_1 := \theta_1 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m}\left(h_\theta(x^{(i)}) - y^{(i)})x^{(i)}\right)$$

Done!