非線性的世界
我們的世界是一個非線性的世界,我們能否讓機器來學習現實中很多複雜的問題呢?從人類大腦結構中受到的啟發,人們開始在一定程度上模擬大腦的結構。既然大腦能夠理解這個世界,那人工神經網路應該也是可以的。
神經網路
簡單的感知機屬於線性模型,而通過巢狀多個神經網路層和增加神經元就可以解決很多複雜的問題。
整個神經網路模型包含了三要素:線性變換、非線性變換和線性決策。線性與非線性變換實際上就是座標變換,將資訊聚合到其他空間中。從線性到非線性屬於特徵變換,將某種特徵轉成另外一種特徵。而多層神經網路就是做表徵學習。
從數學上看,神經網路的巢狀就是多個函式巢狀,通過複雜的函式巢狀關係來描述特徵關係。
學習複雜關係
現實中存在很多複雜關係的事物,於是需要構建複雜的邊界才能描述它們。那麼要怎麼來學習這些邊界呢?我們可以把每個神經元看成一個簡單邊界描述,通過引入一個隱層,很多神經元就能描述很複雜的邊界,即取很多神經元邊界的交集。
超大淺層網路
既然引入一個隱層就能描述任意複雜的連續邊界,那麼是不是我們就可以說對任何複雜關係都只需要使用淺層網路就行呢?不管多複雜的關係,我增加神經元便是了,最終構建一個超大淺層網路來描述任意複雜關係。
深度網路
超大淺層網路看似無敵,但它會引入維度災難。超大淺層網路其實是將低緯度的特徵表徵到超高維度空間中,這樣做將需要足夠大的資料量才能進行學習。除此之外,還將會導致過擬合問題。
所以可以朝深度方向改進,將網路拆成更多層數,這樣每一層都抽象不同的特徵,也就是每一層抽象的程度都不相同。越往後的資訊越抽象,就像人類對資訊的處理,越靠近感官的資訊越具體。比如看到一本書,眼睛最初看到的是書名和書的大小顏色等資訊。往後處理,可能思考的是這本書的主題之類的資訊。
總的來說,我們希望得到一個低緯度卻能很好表示複雜關係的網路。
-------------推薦閱讀------------
我的開源專案彙總(機器&深度學習、NLP、網路IO、AIML、mysql協議、chatbot)
跟我交流,向我提問:
歡迎關注: