梯度下降法的向量化推导
Posted 众妙之门
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了梯度下降法的向量化推导相关的知识,希望对你有一定的参考价值。
$第二周的向量化一节中,关于梯度下降法的向量化过程,开始不是很明白,后来自己推导了一下,记录到这里。
如下是梯度下降法的参数递归公式(假设n=2):
公式1:
$\theta_0 := \theta_0 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})x^{(i)}_0$
$\theta_1 := \theta_1 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})x^{(i)}_1$
$\theta_2 := \theta_2 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})x^{(i)}_2$
老师在讲到此处时,提到上述等式向量化后即为:
公式2:
$\Theta := \Theta - \alpha \delta$
公式3:
$\delta = \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})X^{(i)}$
那么这个结果是如何得到的呢?如下是我的推导过程:
(1)首先,对公式1整体进行一个向量化的操作:
$\begin{pmatrix} \theta _0 \\ \theta_1 \\ \theta_2 \end{pmatrix} := \begin{pmatrix} \theta_0 - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_0^{(i)} \\ \theta_1 - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_1^{(i)} \\ \theta_2 - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_2^{(i)} \end{pmatrix}$
(2)等号右边根据矩阵减法和乘法规则,可以拆分成如下:
$\begin{pmatrix} \theta _0 \\ \theta_1 \\ \theta_2 \end{pmatrix} := \begin{pmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \end{pmatrix} - \alpha \frac{1}{m} \begin{pmatrix} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_0^{(i)} \\ \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_1^{(i)} \\ \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_2^{(i)} \end{pmatrix}$
(3)等号两边的$\theta$自然可以向量化为$\Theta$,那么关键就是减号后面的部分了,我们可以将其展开:
$\Theta := \Theta - \alpha \frac{1}{m} \begin{pmatrix} (h_\theta (x^{(1)}) - y^{(1)})x_0^{(1)} + (h_\theta (x^{(2)}) - y^{(2)})x_0^{(2)} + ... + (h_\theta (x^{(m)}) - y^{(m)})x_0^{(m)}\\ (h_\theta (x^{(1)}) - y^{(1)})x_1^{(1)} + (h_\theta (x^{(2)}) - y^{(2)})x_1^{(2)} + ... + (h_\theta (x^{(m)}) - y^{(m)})x_1^{(m)}\\ (h_\theta (x^{(1)}) - y^{(1)})x_2^{(1)} + (h_\theta (x^{(2)}) - y^{(2)})x_2^{(2)} + ... + (h_\theta (x^{(m)}) - y^{(m)})x_2^{(m)}\\ \end{pmatrix}$
(4)将展开后的矩阵采用加法规则,拆分成如下m份:
$\Theta := \Theta - \alpha \frac{1}{m} ( \begin{pmatrix} (h_\theta (x^{(1)}) - y^{(1)})x_0^{(1)} \\ (h_\theta (x^{(1)}) - y^{(1)})x_1^{(1)} \\ (h_\theta (x^{(1)}) - y^{(1)})x_2^{(1)} \end{pmatrix} + \begin{pmatrix} (h_\theta (x^{(2)}) - y^{(2)})x_0^{(2)} \\ (h_\theta (x^{(2)}) - y^{(2)})x_1^{(2)} \\ (h_\theta (x^{(2)}) - y^{(2)})x_2^{(2)} \end{pmatrix} + ... + \begin{pmatrix} (h_\theta (x^{(m)}) - y^{(m)})x_0^{(m)} \\ (h_\theta (x^{(m)}) - y^{(m)})x_1^{(m)} \\ (h_\theta (x^{(m)}) - y^{(m)})x_2^{(m)} \end{pmatrix} )$
(5)将每个矩阵中的相同部分抽取出来:
$\Theta := \Theta - \alpha \frac{1}{m} [(h_\theta (x^{(1)}) - y^{(1)}) \begin{pmatrix} x_0^{(1)} \\ x_1^{(1)} \\ x_2^{(1)} \end{pmatrix} + (h_\theta (x^{(2)}) - y^{(2)}) \begin{pmatrix} x_0^{(2)} \\ x_1^{(2)} \\ x_2^{(2)} \end{pmatrix} + ... + (h_\theta (x^{(m)}) - y^{(m)}) \begin{pmatrix} x_0^{(m)} \\ x_1^{(m)} \\ x_2^{(m)} \end{pmatrix} )]$
(6)可以看到,每个x的矩阵都组成了一个向量X:
$\Theta := \Theta - \alpha \frac{1}{m} [(h_\theta (x^{(1)}) - y^{(1)}) X^{(1)} + (h_\theta (x^{(2)}) - y^{(2)}) X^{(2)} + ... + (h_\theta (x^{(m)}) - y^{(m)}) X^{(m)} ]$
(7)再将其表示为$\Sigma$的形式:
$\Theta := \Theta - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)}) X^{(i)}$
以上是关于梯度下降法的向量化推导的主要内容,如果未能解决你的问题,请参考以下文章