第二周:梯度下降法的向量化推導


Coursera系列課程 第二周的向量化一節中,關於梯度下降法的向量化過程,開始不是很明白,后來自己推導了一下,記錄到這里。

如下是梯度下降法的參數遞歸公式(假設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)}$


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM