在《深度學習入門:基於Python的理論與實現》書中,看到講解矩陣的章節,加深了我對矩陣的理解。
脫離應用理解數學是很難的。將矩陣放在深度學習的環境裏可以較好的理解矩陣的含義。
這裏假設你已經學過矩陣。
1.三層神經網絡
對於神經網絡,我更傾向於理解爲:因素(輸入層)、影響因子(權重),結果(輸出層),這更貼近實際中的因果關係。
先假設有如下矩陣:
根據矩陣的計算規則,畫出模型圖,如下:
輸入層是 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.多維輸入層
前面講的矩陣運算,左矩陣是一維矩陣,如果是二維、三維,如何理解呢?
輸入層怎麼會出現二維呢?會的,如果我們進行批量處理,即處理完(x1,x2)這對因素,我們還要處理(y1,y2)等因素,就可以組合成二維或多維矩陣形式。每一行就代表一個要處理的二元因素。每行因素之間沒有任何聯繫,也互不影響,只是純粹的計算方便,而摞在一起。
從上面一段話可以看出來,其實每行的數據,是沒有任何關聯的。上式可理解爲下面二式的簡略寫法。
所以,我們可以像前面的結論一樣,這麼理解多維的輸入層矩陣運算:
輸入矩陣的每行對應一次運算,各行互不關聯、互不影響。
每次只考慮一行,最後將結果摞在一起。
最後,個人理解,矩陣純粹就是人爲定義的數據的排列方式而已,矩陣的乘法就是人爲定義的計算規則。矩陣就只是個數學大師們發明的趁手的工具,沒有任何的自然意義,有點像計算機領域的語法糖。
以上僅爲個人理解,歡迎指正。