其他博客:
多層感知機從零開始實現:https://www.cnblogs.com/somedayLi/p/12359167.html
多層感知機簡潔實現:https:////www.cnblogs.com/somedayLi/p/12359420.html
一、隱藏層
多層感知機在單層神經⽹絡的基礎上引⼊了⼀到多個隱藏層(hidden layer)。隱藏層位於輸⼊層和輸出層之間。下圖展示了⼀個多層感知機的神經⽹絡圖,它含有⼀個隱藏層,該層中有5個隱藏單元。
上圖所示的多層感知機中,輸⼊和輸出個數分別為4和3,中間的隱藏層中包含了5個隱藏單元(hidden unit)。由於輸⼊層不涉及計算,因此上圖的多層感知機的層數為2。由上圖可⻅,隱藏層中的神經元和輸⼊層中各個輸⼊完全連接,輸出層中的神經元和隱藏層中的各個神經元也完全連接。因此,多層感知機中的隱藏層和輸出層都是全連接層。
二、激活函數
上述問題的根源在於全連接層只是對數據做仿射變換(affine transformation),⽽多個仿射變換的疊加仍然是⼀個仿射變換。解決⽅法——引⼊⾮線性變換,即通過激活函數(activation function)實現非線性變換。關於激活函數,可以看我的另一篇博客激活函數總結,本書中列舉的三個激活函數是:ReLU函數、sigmoid函數、tanh函數。
三、多層感知機
多層感知機是指——由全連接組成的神經網絡,至少含有一個隱藏層,並且,每個隱藏層的輸出均通過激活函數進行變換。多層感知機的層數和各隱藏層中隱藏單元個數都是超參數(超參數是在開始學習過程之前設置值的參數,而不是通過訓練得到的參數數據——百度百科)。以單隱藏層為例並沿⽤本節之前
定義的符號(見下面引用內容),多層感知機按以下⽅式計算輸出:
給定⼀個⼩批量樣本\(X \in R^{n \times d}\) ,其批量⼤⼩為\(n\) ,輸⼊個數為\(d\)。假設多層感知機只有⼀個隱藏層,其中隱藏單元個數為 。記隱藏層的輸出(也稱為隱藏層變量或隱藏變量)為\(H\),有\(H \in R^{n \times h}\)。因為隱藏層和輸出層均是全連接層,可以設隱藏層的權重參數和偏差參數分別為\(W_h \in R^{d \times h}\)和\(b_h \in R^{1 \times h}\),輸出層的權重和偏差參數分別為\(W_o \in R^{h \times q}\)和\(b_o \in R^{1 \times q}\)。
其中\(\phi\)表示激活函數。在分類問題中,我們可以對輸出\(O\)做softmax運算,並使⽤softmax回歸中的交叉熵損失函數。 在回歸問題中,我們將輸出層的輸出個數設為1,並將輸出\(O\)直接提供給線性回歸中使⽤
的平⽅損失函數。
小結
- 多層感知機在輸出層與輸⼊層之間加⼊了⼀個或多個全連接隱藏層,並通過激活函數對隱藏層輸出進⾏變換。
- 常⽤的激活函數包括ReLU函數、sigmoid函數和tanh函數。