【神经网络】线性模型非线性模型,感知机与神经网络
剛才突然有一點懵。。神經網絡的非線性到底體現在哪里?結合感知機為什么是線性模型思考了一下。
即使自我感覺已經把神經網絡的結構搞的很透徹了,但是時不時得多問問自己還是可以發現新的問題。
線性模型和非線性模型區別
感知機
什么是感知機模型呢,簡而言之就是可以將有兩個特征的數據集中的正例和反例完全分開的關于一條直線的函數,或者可以是關于三維空間中的一個平面的函數,更可以是關于高維的一個超平面的函數。
圖即為感知機的模型,仔細一看就會發現,其實就是一個單層的神經網絡,激活函數是躍階函數。
從上面的線性模型與非線性模型的判別標準來看,
從這個式子很容易就看出來,每個w只影響一個x,所以感知機是一個經典的線性模型,只能夠處理線性可分的問題。
具體的感知機算法不是本文的重點。
神經網絡
神經網絡是非線性
簡單明了,就可以看出神經網絡是非線性的了。
但其實一開始困擾了我的是另一個問題。
在Yjango大神的超智能體中,有寫到
激活函數確實可以產生非線性的變換,但對于神經網絡模型而言,整個處理非線性可分的能力關鍵不在于激活函數,而是神經網絡之間的多層疊加,使得只能處理線性可分問題的感知機(神經元)可以處理非線性可分問題。
但激活函數同樣是必不可少的。如果神經網絡中的神經元都不帶激活函數,那么神經元無論怎么樣堆疊,都只能夠處理線性問題。為什么必不可少可以看這篇文章:激活函數的作用
雖然沒有激活函數時,每個變量也被多個權值所影響,但不同的是,此時每個變量都以獨立于其它變量區分開來。
而當引入非線性的激活函數時,每個變量是無法與其它變量所獨立開來的!
在二維空間中,無論用多么復雜的激活函數,決策平面依舊是線性的。那激活函數在干嘛?好,來回顧一張圖
為什么同樣是sigmoid,LR是線性,神經網絡是非線性,之前有解釋過。但可能從理論上理解了,但是直觀來想,可能還不清楚。LR的sigmoid函數切了一刀,這一刀就是判決平面(下圖中的白色線條),空間被映射成一個坡狀(這里體現了一部分的“彎曲”)。但對于LR而言,它拿走了判決平面就不管了,而神經網絡將這些坡組合起來,也就是利用了sigmoid函數的輸出。從而形成了最右圖的白色圓圈。
這是tensorflow playground中的運行實例,注意看每個神經元的顏色分割。
這部分不是我們研究的重點,這只是給定神經網絡的輸入特征,一般信息越多越容易分開。
重點看這兩部分,每個神經元都會有一條切割線。這也暗含了之前講的感知機是線性模型的道理。因為每個神經元其本質上就是一個感知機。而激活函數在這邊做了一件什么事情。就是越復雜的激活函數其在單個神經元上的線性可分能力就越強!有一個想都不要想的道理,每個神經元的分類能力越強,那整體的神經網絡的性能肯定越優秀。
到這里可以總結一下,激活函數的功能就在于使得單個神經元具有更強大的分割能力,每個神經元就是切一刀,合適的激活函數,可以讓這一刀切的很準。
?
再將新的特征經由神經網絡堆疊,所有的特征基本上就都混在一起了。繼續觀察上圖,第二層第一個神經元是怎么來的,就是之前的四個神經元堆疊產生的。你可以這么想,藍色的是高的地方,黃色的是低的地方。四個神經元疊在一起,本來是類似于階梯狀的,但是由于四個階梯的中間都是高的,周圍都不全是高,有高有低,所以最后就形成了中間高四周低的形狀。然后神經元的作用依舊是切一刀,把山頭給切了下來。就是
這個形狀了。
?
?
但事實上,彎曲這件事不好說是不是真的彎曲,只是不斷映射到高維空間,將樣本稀疏化,然后不斷去尋找一個線性可分的超平面將樣本分離開來(注意是線性可分,每個神經元都只是切一刀)。“彎曲”的含義在我們直觀上來理解是被扭曲了,其實也確實是這么回事,從樣本分布上來理解,就是正的樣本都被拉到一頭,負的樣本被拉到另一頭,變成一座山的樣子。
下面來個實例,有個網站很好的https://cs.stanford.edu/people/karpathy/convnetjs//demo/classify2d.html
還是類似于剛才那個形狀,這里只有一個輸入層,一個隱含層,一個softmax輸出層。激活函數一共有兩個,但實際上只是被扭曲了一次,只被堆疊了一次。就像剛才我描述的,中間的樣本往山頭去,四周的樣本網山腳去。
右邊的圖只是把圖像二維化了,把一座山變成了一條線。
總結一下
激活函數越復雜單個神經元切一刀的能力就越強,切的越準。
神經網絡的非線性能力體現在激活函數上。堆的越深,樣本在映射空間中的分布就越稀疏,分布一稀疏,判決超平面就好找,切一刀也好切。就像上面的例子,將樣本稀疏分布到山頭和山腳,在山腰上切一刀就完全分開了。
神經網絡還有不少東西可以研究。就上圖那個網站的可視化分布就是一個很好的學習的例子。話說斯坦福是真的厲害,能作出這種demo來,那個理解深度想必是真正的吃透了。
?
參考文章:
線性模型與非線性模型:https://blog.csdn.net/wbcnb/article/details/78306970
感知機原理:https://www.cnblogs.com/pinard/p/6042320.html
?
總結
以上是生活随笔為你收集整理的【神经网络】线性模型非线性模型,感知机与神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】集成学习之stacking
- 下一篇: 【机器学习】机器学习一些概念的整理(不断