1. 程式人生 > >MLP(多層感知器)神經網路

MLP(多層感知器)神經網路

由前面介紹看到,單個感知器能夠完成線性可分資料的分類問題,是一種最簡單的可以“學習”的機器。但他無法解決非線性問題。比如下圖中的XOR問題:即(1,1)(-1,-1)屬於同一類,而(1,-1)(-1,1)屬於第二類的問題,不能由單個感知器正確分類。


即在Minsky和Papert的專著《感知器》所分析的:感知器只能解決所謂一階謂詞邏輯問題:與(AND),或(OR)等,而不能解決異或(XOR)等高階謂詞羅輯問題。

用多個感知器實現非線性

單個感知器雖然無法解決異或問題,但卻可以通過將多個感知器組合,實現複雜空間的分割。如下圖:


將兩層感知器按照一定的結構和係數進行組合,第一層感知器實現兩個線性分類器,把特徵空間分割,而在這兩個感知器的輸出之上再加一層感知器,就可以實現異或運算。

也就是,由多個感知器組合:


來實現非線性分類面,其中θ(·)表示階躍函式或符號函式。

多層感知器神經網路 

實際上,上述模型就是多層感知器神經網路(Multi-layer perceptron neural networks,MLP neural netwoks)的基礎模型。神經網路中每個節點為一個感知器,模型生物神經網路中神經元的基礎功能:來自外界(環境或其他細胞)的電訊號通過突觸傳遞給神經元,當細胞收到的訊號總和超過一定閾值後,細胞被啟用,通過軸突向下一個細胞傳送電訊號,完成對外界資訊的加工。


但是,感知器的學習演算法並不能直接應用到多層感知器模型的引數學習上。因此,最初提出的學習方案是:除了最後一個神經元之外,事先固定其他所有神經元的權值,學習過程只是用感知器學習演算法學習最後一個神經元的權係數。實際上,這相當於通過第一層神經元把原始的特徵空間變換到一個新的特徵空間,第一層的每個神經元構成新空間的一維,然後在新的特徵空間用感知器學習演算法構造一個線性分類器。顯然,由於第一層的神經元權值需要人為給定,模型的效能很大程度取決於能否設計出恰當的第一層神經元模型,而這取決於對所面臨的的問題和資料的瞭解,並沒有針對任意問題求解第一層神經元引數的方法。