學習神經網路,雖然sgd、反向傳播、CNN都看懂了,但最基礎的感知機卻有疑惑,單層(輸入輸出兩層)感知機只能線性很容易理解,但為何多層感知機就可以表達非線性空間?不用sigmoid等非線性啟用函式,只是權重偏置之類的引數,多層疊加,就可以實現非線性表達?
困惑中,謝謝大家了,希望給出理論上的論述
回覆列表
-
1 # 影象處理與機器視覺
-
2 # 繁星落石
因為加入了啟用函式,啟用函式是非線性的就可以實現非線性,這個道理很簡單,可以嘗試去用非線性函式套一個線性函式來操作,得到的一定是非線性結果。
不過多層感知器網路不一定會有啟用函式,啟用函式也不一定是非線性的。這個可以人為地設定,只是採用非線性啟用函式加隨機權重初始值的方法是目前理論上和實際驗證中得出來的效果最好的方法。
多層感知器神經網路(Multi-layer perceptron neural networks,MLP neural netwoks)的基礎模型。神經網路中每個節點為一個感知器,模型生物神經網路中神經元的基礎功能:來自外界(環境或其他細胞)的電訊號透過突觸傳遞給神經元,當細胞收到的訊號總和超過一定閾值後,細胞被啟用,透過軸突向下一個細胞傳送電訊號,完成對外界資訊的加工。
但是,感知器的學習演算法並不能直接應用到多層感知器模型的引數學習上。因此,最初提出的學習方案是:除了最後一個神經元之外,事先固定其他所有神經元的權值,學習過程只是用感知器學習演算法學習最後一個神經元的權係數。
實際上,這相當於透過第一層神經元把原始的特徵空間變換到一個新的特徵空間,第一層的每個神經元構成新空間的一維,然後在新的特徵空間用感知器學習演算法構造一個線性分類器。
顯然,由於第一層的神經元權值需要人為給定,模型的效能很大程度取決於能否設計出恰當的第一層神經元模型,而這取決於對所面臨的的問題和資料的瞭解,並沒有針對任意問題求解第一層神經元引數的方法。