【神經網絡】神經網絡中的矩陣的理解

在《深度學習入門:基於Python的理論與實現》書中,看到講解矩陣的章節,加深了我對矩陣的理解。

脫離應用理解數學是很難的。將矩陣放在深度學習的環境裏可以較好的理解矩陣的含義。

這裏假設你已經學過矩陣。

 

1.三層神經網絡

對於神經網絡,我更傾向於理解爲:因素(輸入層)、影響因子(權重),結果(輸出層),這更貼近實際中的因果關係。

先假設有如下矩陣:

\begin{pmatrix} x1 & x2 \end{pmatrix}\begin{pmatrix} 1 & 2 & 3\\ 4& 5 &6 \end{pmatrix}=\begin{pmatrix} R1 &R2 &R3 \end{pmatrix}

根據矩陣的計算規則,畫出模型圖,如下:

輸入層是 x1 與 x2,可理解爲因素,對於每個因素,都有3個權重,組合起來會導致 3個結果。

 

2.理解權重矩陣

權重矩陣的第一行(1,2,3),從圖中可以看出是 從 x1 伸出的三條黑線,是 作用於 x1 的所有權重,分別會影響R1、R2、R3。

權重矩陣的第一列(1,4),從圖中可以看出是指向 結果R1 的兩條輸入線,是僅影響 R1 的全部權重。

 

總結一下,權重矩陣也可以這麼理解:

權重矩陣的每行對應一個因素。每行的數字是作用於某個因素的所有權重。

權重矩陣的每列對應一個結果。每列的數字是影響某個結果的全部權重。

知道這個,就很容易理解權重矩陣與輸入層和輸出層元素個數的關係了。

若輸入層有2個元素,輸出需要有3個元素,那麼權重矩陣就必須是 2行3列。2行對應2個輸入因素,3列對應3個結果。

 

3.多維輸入層

前面講的矩陣運算,左矩陣是一維矩陣,如果是二維、三維,如何理解呢?

\begin{pmatrix} x1 & x2\\ y1 & y2 \end{pmatrix}\begin{pmatrix} 1 &2 &3 \\ 4 &5 &6 \end{pmatrix}=\begin{pmatrix} R1 &R2 &R3 \\ S1& S2 &S3 \end{pmatrix}

輸入層怎麼會出現二維呢?會的,如果我們進行批量處理,即處理完(x1,x2)這對因素,我們還要處理(y1,y2)等因素,就可以組合成二維或多維矩陣形式。每一行就代表一個要處理的二元因素。每行因素之間沒有任何聯繫,也互不影響,只是純粹的計算方便,而摞在一起。

從上面一段話可以看出來,其實每行的數據,是沒有任何關聯的。上式可理解爲下面二式的簡略寫法。

\begin{pmatrix} x1 & x2\end{pmatrix}\begin{pmatrix} 1 &2 &3 \\ 4 &5 &6 \end{pmatrix}=\begin{pmatrix} R1 &R2 &R3 \end{pmatrix}

\begin{pmatrix} y1 & y2\end{pmatrix}\begin{pmatrix} 1 &2 &3 \\ 4 &5 &6 \end{pmatrix}=\begin{pmatrix} S1 &S2 &S3 \end{pmatrix}

所以,我們可以像前面的結論一樣,這麼理解多維的輸入層矩陣運算:

輸入矩陣的每行對應一次運算,各行互不關聯、互不影響。

每次只考慮一行,最後將結果摞在一起。

 

最後,個人理解,矩陣純粹就是人爲定義的數據的排列方式而已,矩陣的乘法就是人爲定義的計算規則。矩陣就只是個數學大師們發明的趁手的工具,沒有任何的自然意義,有點像計算機領域的語法糖。

 

以上僅爲個人理解,歡迎指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章