Dropout做用html
在hinton的論文Improving neural networks by preventing coadaptation提出的,主要做用就是爲了防止模型過擬合。當模型參數較多,訓練數據較少時候,根據線性代數相關知識能夠知道,當前模型能夠很是完美的擬合咱們的曲線。但該模型對測試數據集可能就沒有很好的表現了,也就是說訓練出的模型泛化能力很弱,咱們稱之爲過擬合。從文章題目經過阻止特徵檢測器的共同做用來提升神經網絡的性能能夠看出,網絡在提取訓練集特徵時,捨棄掉了一部分特徵來提升網絡的泛化能力。
Dropout用網絡訓練時工做變化來定義的話,是指在模型訓練時隨機讓某些神經單元的權重中止本次更新,等下次訓練時就有可能更新,對與一層中每一個神經單元來講,它們更新的機率是相同的。 在hinton論文中沒有數學公式,只是做者直觀解釋: 1. 網絡中某層神經單元權值更新是等機率的,所以,不能保證相鄰的神經單元每次都更新,直觀解釋就是有些特徵沒必要徹底依託於其餘的特徵。舉個栗子:假若有5兄弟,老大和老二,老二和老3、、、相鄰兩我的才能完成一個任務,如今呢,咱們把5兄弟放在黑屋子裏面,每次隨機選擇一個兄弟執行任務,若是完成不了就懲罰其餘兄弟,同時被選中的大兄弟當面對本身此次沒有完成任務來自我反思(權值更新),在咱們的逼迫下,進行了N次隨機選擇,發現5兄弟都能經過自我努力(權值更新)獨立完成任務。 2. 論文講,把dropout看做是,針對每次batch_size大的樣本集訓練,對應的網絡結構是不一樣的,可是呢,它們之間還能夠共享權重,不一樣的樣本集合訓練出了不一樣的網絡模型。最後,得出的網絡模型是每次訓練的模型的「平均模型」。這種解釋仍是不錯的^.^…… 3. 把dropout比做是貝葉斯,貝葉斯有個大前提(不必定對哈)全部的特徵是相互獨立的,訓練樣本較少時候,獨立學習每一個特徵,測試時候將全部的特徵相乘。實際效果還不錯。 4. 仿生物進化。適者生存,不斷適應環境的變化。參考來源:
參考來源:
https://github.com/rasmusbergpalm/DeepLearnToolbox 【面向代碼】學習 Deep Learning(一)Neural Network http://www.cnblogs.com/tornadomeet/p/3258122.html
http://blog.csdn.net/qq_25073253/article/details/72457840
https://github.com/rasmusbergpalm/DeepLearnToolbox 【面向代碼】學習 Deep Learning(一)Neural Network http://www.cnblogs.com/tornadomeet/p/3258122.html
http://blog.csdn.net/qq_25073253/article/details/72457840