1. 程式人生 > >從最簡單的感知器學習到的一些有趣的現象

從最簡單的感知器學習到的一些有趣的現象

google 增加 隨著 展示 初始 成了 src img ogl

看了一些深度學習神經網絡的視頻,最近有了一點新的體會,在google的一個小工具上,地址:http://playground.tensorflow.org 一個神經網絡訓練的模擬器,發現了一些有意思的事情,有了些新的體會

這裏分享給大家。

1 權值,剛開始都是設置的隨機初始值,但是隨著訓練的深入,你會發現權值變化的一些規律,這裏一二分類為列,某些對最終分類幫助性大的因素即輸入的權值會越來越大,而那些對分類作用小的因素,甚至對分類起反作用的因素的權值會逐漸變得很小,或者為負值,有些同學會問權值之和是不是為1,顯然不是,這裏是不是和概率論的知識混淆了,下面一圖來展示

我們的初始值大概是這個樣子:對於這個數據集有點類似異或的關系,但是觀察坐標軸你會發現這個圖的正中間的坐標原點是(0,0)所以它與異或有些不同但同樣不是最簡單的感知器即兩個輸入能進行分類的,所以我們這裏采用改進的感知器,另外增加了三個元素即增加了一些非線性的因素。技術分享

大家先看這個小圖技術分享有沒有發現什麽,對於x1它是相當於數據集(1,3)(3,5)(3,7)等等的x值,而小圖也顯示它將整個圖分為ie左右兩半,而對於x2則是數據集中的y值,它將圖分為上下兩半,其他的都類似,這樣我們來看最後一個因素,x1*x2,這個會決定什麽,查看它的小圖,你會發現它幾乎已經將數據集分成了最終的效果圖,大概就是x1*x2為負值是一類,x1*x2是正值為另一類,這裏大家可以看圖來理解。

所以現在大家可以來預測了,後面我們開始訓練後,隨著訓練次數的叠代,那些輸入的權值會越來越大,那些則會削弱。我們來看圖,這裏我們列舉多個結果圖,它們的初始全職不同,但是訓練結果對於權值的分布是類似的,(另外跟大家解釋一下,神經元之前的連線代表權值,藍色為正,黃色為負,越粗絕對值越大):

初始值:技術分享

結果:技術分享

初始值:技術分享

結果:技術分享

對於線性可分的,我這裏也給一個例子,大家可以看出來,憑借x1和x2已經可以將數據分開了,其他三個因素幾乎用不著:大家看權值:

技術分享

大家可以看出來全職變化的規律了吧。

2,對於多層神經元的模型,神經元的層次越深,這個神經元“考慮的因素越多”,就像我們俗話說的,考慮全面,將各種因素考慮在內,事情才能辦的更好,這裏同樣對於我們的輸出來說,層次越多,綜合各種因素越強,對於訓練集來說最終的分類結果也會越好,這也是對簡單的問題,采用過於復雜的模型對導致過擬合的原因。

同樣來張圖向大家展示,大家可以逐層次的看神經元的小圖來與輸入,和輸出比較:

技術分享

從最簡單的感知器學習到的一些有趣的現象