1.2梯度下降算法

2019-08-05  本文已影响0人  Yuanshuo
The core values of Chinese socialism

梯度下降算法

梯度下降算法可将代价函数J最小化。

image 思路构想

在梯度下降算法在不停地一点点改变θ_{0}θ_{1},试图通过这种改变使得J(θ_{0}, θ_{1})变小,直到找到J的最小值,或局部最小值。

原理 局部最优解 定义

同步反复迭代直到收敛。α是一个数字,被称为学习速率控制以多大的幅度更新θ_{j}

同步更新

深入研究梯度下降算法

探究导数的意义。控制斜率。

image

θ_{1}变量的J(θ_{1})图像。

image

θ_{1} := θ_{1} - α(positive num)θ_{1}减去一个正数,相当于使θ_{1}变小,θ_{1}向左移。

image

θ_{1} := θ_{1} - α(negative num)θ_{1}减去一个负数,相当于使θ_{1}变大,θ_{1}向右移。

线性回归中的梯度下降

image

为了达到梯度下降,需要的关键是这个微分项:

\frac{∂}{∂θ_{j}}J(θ_{0},θ_{1})

带入公式可以得出:

\begin{align*} \frac{∂}{∂θ_{j}}J(θ_{0},θ_{1}) &= \frac{∂}{∂θ_{j}} \frac{1}{2m} \sum_{i=1}^{m} (h_{θ}(x^{(i)}) - y^{(i)})^{2}\\ &= \frac{∂}{∂θ_{j}} \frac{1}{2m} \sum_{i=1}^{m} (θ_{0} + θ_{1}(x^{(i)}) - y^{(i)})^{2}\\ \end{align*}

需要弄清两个偏导数项是什么:

j = 0 时: \frac{∂}{∂θ_{0}}J(θ_{0},θ_{1}) = ? \\ j = 1 时: \frac{∂}{∂θ_{1}}J(θ_{0},θ_{1}) = ?

得到:

\begin{align*} j = 0 时: \frac{∂}{∂θ_{0}}J(θ_{0},θ_{1}) &= \frac{∂}{∂θ_{0}} \frac{1}{2m} \sum_{i=1}^{m} (h_{θ}(x^{(i)}) - y^{(i)})^{2}\\ &= \frac{1}{m} \sum_{i=1}^{m} (h_{θ}(x^{(i)}) - y^{(i)})\end{align*}

\begin{align*}j = 1 时: \frac{∂}{∂θ_{1}}J(θ_{0},θ_{1}) &= \frac{∂}{∂θ_{1}} \frac{1}{2m} \sum_{i=1}^{m} (h_{θ}(x^{(i)}) - y^{(i)})^{2}\\ &= \frac{1}{m} \sum_{i=1}^{m} (h_{θ}(x^{(i)}) - y^{(i)})·x^{i} \end{align*}

image

这就是用于线性回归的梯度下降,反复迭代直到收敛。

image
上一篇下一篇

猜你喜欢

热点阅读