一碗酸梅湯 作品

第158章 查崗?

    如果說“感知機”是單個的神經元,那麼“多層感知機”就是將分散的神經元,連接成了網絡。

    在輸入層和輸出層之間,再加入若干層,每層若干個神經元。

    然後每一層的每個神經元,與下一層的每個神經元,都通過權重參數建立起連接……

    層與層之間,完全連接。

    也就是說,第i層的任意一個神經元,一定與第i+1層的任意一個神經元相連。

    這就是多層感知機,簡稱mlp。

    但僅僅簡單組合在一起,還不算真正的“人工神經網絡”,必須對“感知機”的基本結構,做出一定的改進。

    首先,必須加入隱藏層,以增強模型的表達能力。

    隱藏層可以有多層,層數越多,表達能力越強,但與此同時,也會增加模型的複雜度,導致計算量急遽增長。

    其次,輸出層的神經元允許擁有多個輸出。

    這樣模型就可以靈活地應用於各種分類迴歸,以及其他的機器學習領域,比如降維、聚類等。

    此外,還要對激活函數做出擴展……

    前一篇“感知機”論文中,主要使用的是階躍函數sign,雖然簡單易用,但是處理能力有限。

    因此神經網絡的激活函數,一般使用其他的非線性函數。

    備選的函數有很多:sigmoid函數,tanh函數,relu函數……

    江寒逐一進行了分析。

    通過使用多種性能各異的激活函數,可以進一步增強神經網絡的表達能力。

    對於二分類問題,只需要一個輸出神經元就夠了。

    使用sigmoid作為激活函數,來輸出一個0到1之間的數值,用來表示結果為1的概率。

    對於多類分類問題,一般在輸出層中,安排多個神經元,每個分類一個。

    然後用softmax函數來預測每個分類的概率……

    描述完結構之後,就可以討論一下“多層感知機”的訓練了。

    首先是mlp的訓練中,經典的前向傳播算法。

    顧名思義,前向傳播就是從輸入層開始,逐層計算加權和,直到算出輸出值。

    每調整一次參數值,就需要重頭到尾重新計算一次。

    這樣運算量是非常大的,如果沒有強大的硬件基礎,根本無法支撐這種強度的訓練。

    好在現在已經是2012年,計算機性能已經足夠強悍。

    前向傳播無疑是符合直覺的,缺陷就是運算量很大,訓練起來效率比較差。