DeepLearning筆記:多節點神經網路

阿扣:上回我們在 python 裡面實現了單個神經元的梯度下降演算法。現在可以挑戰一下多個神經元的網路了。

阿特:那會不會很難哦?

阿扣:也不會,原理其實是一樣的,只是需要分辨清楚各個參數屬於哪一層。

阿特:(不祥預感)

阿扣:比如說,下面這個網路:

  • 有 3 個輸入 x1,x2,x3,2 個隱層節點 h1,h2
  • 節點之間的權重用 w 表示,第一個下標為出發節點,第二個下標為目標節點,比如 w11 表示 x1 到 h1 的權重

DeepLearning 筆記:用 python 實現梯度下降的演算法

我們把權重存在一個矩陣中,每一行對應一個輸入值的權重,每一列對應一個隱層節點的權重:

所以,隱層的第 j 個節點就表示為:hj=∑iwijxi

權重和輸入值相乘時,需要用到矩陣乘法中的點乘(dot product):

阿特:啊……矩陣,我好些已經忘得差不多了……

阿扣:沒關係,慢慢回憶起來。這裡比較關鍵的是,兩個矩陣相乘,左邊矩陣的行數,必需跟右邊矩陣的列數相等,不然沒法相乘。

比如我們要計算的神經網路的矩陣:

左邊矩陣有 1 行 3 列,右邊矩陣有 3 行 1 列,它們是可以相乘的。

阿特:讓我數一數……

阿扣:記得矩陣需要「門當戶對」就好 ?? 。上面這個矩陣,我們也可以調換左右順序,並且讓兩個矩陣都轉置(就是行列互換)一下來滿足相乘的條件:

阿特:這跟上面那兩個矩陣相乘的結果是一樣的嗎?

阿扣:是的。按照矩陣點乘的公式

把它們展開,會發現其實是一個東西。

00 的 DeepLearning 筆記

DL筆記:機器學習和深度學習的區別www.uegeek.com圖標DL筆記:Neural Networks 神經網路www.uegeek.com

DL筆記:Linear regression 線性回歸www.uegeek.com圖標DL筆記:Activation Function 激活函數www.uegeek.com圖標DL筆記:Cost function 損失函數www.uegeek.com圖標00:DeepLearning筆記:梯度下降 Gradient Descentzhuanlan.zhihu.com圖標00:DeepLearning 筆記:用 python 實現梯度下降的演算法zhuanlan.zhihu.com圖標


推薦閱讀:

譯文:如何使用TensorFlow實現神經網路(上)
【Neural Networks and Deep Learning】3.改進神經網路的學習方法(過擬合)
Inception-v2/v3結構解析(原創)
膠囊網路結構Capsule初探
【Neural Networks and Deep Learning】4.神經網路可以計算任何函數的可視化證明(1)

TAG:深度學習DeepLearning | 神經網路 | 數學 |