機器學習 神經網路(5)

神經網路結構圖
經過幾次分享我們已經設計好了神經網路圖,今天有所學過的線性代數來整理我們的模型,所以一下我們有時間可以複習一下線性代數代數的知識。
相當在這個神經網路上有 13000 節點需要你來嘗試調整。我們需要讓計算機來計算出這些數值。
想一下如果這件事要我們手動去做,還是多麼大的工程量呀。

每個神經元對應
這裡我們已經通過圖形給大家解釋神經網路是如何設計和實現的。我們需要用簡潔的表示式來整理這一大坨,細思極恐的模型。如下圖

圖
把神經網路的某一層中的所有啟用值統一成一列向量。

權重矩陣
再把這一層和他的向下一層間的權重放到一個矩陣中。矩陣第 n 行就是這一層所有神經元和下一層第 n 個神經元間所有連線的權重值。

圖
這一層所有的啟用值和下一層第 n 個神經元間連線權重的加權的和。

圖
要想更好地解解上面的表示式,我們需要有基本的線性代數的知識。

偏移量
可以每個模型的偏移量列為向量,把他和之前的矩陣乘積相加。然後再把整個表示式用一個 sigmoid 包起來。對錶達式

圖
現在我們把權重矩陣和用向量符號抽象地表示。這樣我們就用簡單的表示式表示神經網路各層間啟用值的轉化。

圖
這樣的表示式可以輕鬆容易用 Python 或者 R 需要來實現。

圖
我們之前提及到每個神經元都是包含數值的容器,實際上神經元中裝著的值是取決於你輸入圖形的。

圖
所以,準確地說每個神經元應該是一個函式而不是數值。輸入是上一層的神經元的函式的結果值。輸出是一個 0 1間的數值,這個神經網路也是一個函式,輸入是 784 畫素值,輸出是 10 數值。