在《深度學習入門:基於python的理論與實現》書中,看到講解矩陣的章節,加深了我對矩陣的理解。
脫離應用理解數學是很難的。將矩陣放在深度學習的環境裡可以較好的理解矩陣的含義。
這裡假設你已經學過矩陣。
對於神經網路,我更傾向於理解為:因素(輸入層)、影響因子(權重),結果(輸出層),這更貼近實際中的因果關係。
先假設有如下矩陣:
根據矩陣的計算規則,畫出模型圖,如下:
輸入層是 x1 與 x2,可理解為因素,對於每個因素,都有3個權重,組合起來會導致 3個結果。
權重矩陣的第一行(1,2,3),從圖中可以看出是 從 x1 伸出的三條黑線,是 作用於 x1 的所有權重,分別會影響r1、r2、r3。
權重矩陣的第一列(1,4),從圖中可以看出是指向 結果r1 的兩條輸入線,是僅影響 r1 的全部權重。
總結一下,權重矩陣也可以這麼理解:
權重矩陣的每行對應乙個因素。每行的數字是作用於某個因素的所有權重。知道這個,就很容易理解權重矩陣與輸入層和輸出層元素個數的關係了。權重矩陣的每列對應乙個結果。每列的數字是影響某個結果的全部權重。
若輸入層有2個元素,輸出需要有3個元素,那麼權重矩陣就必須是 2行3列。2行對應2個輸入因素,3列對應3個結果。
前面講的矩陣運算,左矩陣是一維矩陣,如果是二維、三維,如何理解呢?
輸入層怎麼會出現二維呢?會的,如果我們進行批量處理,即處理完(x1,x2)這對因素,我們還要處理(y1,y2)等因素,就可以組合成二維或多維矩陣形式。每一行就代表乙個要處理的二元因素。每行因素之間沒有任何聯絡,也互不影響,只是純粹的計算方便,而摞在一起。
從上面一段話可以看出來,其實每行的資料,是沒有任何關聯的。上式可理解為下面二式的簡略寫法。
所以,我們可以像前面的結論一樣,這麼理解多維的輸入層矩陣運算:
輸入矩陣的每行對應一次運算,各行互不關聯、互不影響。最後,個人理解,矩陣純粹就是人為定義的資料的排列方式而已,矩陣的乘法就是人為定義的計算規則。矩陣就只是個數學大師們發明的趁手的工具,沒有任何的自然意義,有點像計算機領域的語法糖。每次只考慮一行,最後將結果摞在一起。
以上僅為個人理解,歡迎指正。
理解神經網路
了解了什麼是神經單元,就很容易理解神經網路,神經網路就是一系列神經單元連線而成構成的網路結構,如下圖 這是乙個5層神經網路,包括輸入層和輸出層,輸入層也叫做資料層,一般接收資料的輸入。這裡每一層的神經單元都與相鄰層的神經單元連線,而與本層的神經單元無連線,因此也叫全連線神經網路。使用神經網路訓練影象...
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...
神經網路 卷積神經網路
1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...