時間:2018-06-05 16:16:47來源:Joe-Han
1.DenoisingAutoencoder
在神經網絡模型訓練階段開始前,通過Autoencoder對模型進行預訓練可確定編碼器W的初始參數值。然而,受模型復雜度、訓練集數據量以及數據噪音等問題的影響,通過Autoencoder得到的初始模型往往存在過擬合的風險。關于Autoencoder的介紹請參考:自動編碼器(Autoencoder)。
在介紹DenoisingAutoencoder(降噪自動編碼器)之前,我們先來回顧一下機器學習中的過擬合的問題,如下圖所示,其展示了訓練數據量和噪音數量對模型過擬合問題的影響。圖中紅色區域表示模型過擬合,藍色區域表示欠擬合,綠色區域是我們希望得到的模型。從圖中可以看出,當訓練數據越少,數據噪音越多時,模型越容易過擬合。
在模型的復雜度和數據量都已經確定的前提下,防止過擬合的一種辦法是減少數據中的噪音數量,即對訓練集數據做清洗操作。然而,如果我們無法檢測并刪除掉數據中的噪音。另一種防止過擬合的辦法就是給數據中增加噪音,這看似與之前的結論矛盾,但卻是增強模型魯棒性的一種有效方式,我們以手寫數字識別為例,Autoencoder所做的操作是首先對輸入圖片編碼,經過隱含層后解碼重構原始圖片中的數字信息。假如現在我們輸入的是一副含有一定噪音的圖片,例如圖片中有污點,圖片中的數字傾斜等,并且我們仍然希望解碼后的圖片是一副干凈正確的圖片,這就需要編碼器不僅有編碼功能,還得有去噪音的作用,通過這種方式訓練出的模型具有更強的魯棒性。
DenoisingAutoencoder(降噪自動編碼器)就是在Autoencoder的基礎之上,為了防止過擬合問題而對輸入的數據(網絡的輸入層)加入噪音,使學習得到的編碼器W具有較強的魯棒性,從而增強模型的泛化能力。DenoisingAutoencoder是Bengio在08年提出的,具體內容可參考其論文:
Extracting and composing robust features with denoising autoencoders.
論文中關于DenoisingAutoencoder的示意圖如下,其中x是原始的輸入數據,DenoisingAutoencoder以一定概率把輸入層節點的值置為0,從而得到含有噪音的模型輸入x?。這和dropout很類似,不同的是dropout是隱含層中的神經元置為0。
Bengio對DenoisingAutoencoder作出了以下直觀的解釋:
DenoisingAutoencoder與人的感知機理類似,比如人眼看物體時,如果物體某一小部分被遮住了,人依然能夠將其識別出來。
人在接收到多模態信息時(比如聲音,圖像等),少了其中某些模態的信息有時也不會造成太大影響。
Autoencoder的本質是學習一個相等函數,即網絡的輸入和重構后的輸出相等,這種相等函數的表示有個缺點就是當測試樣本和訓練樣本不符合同一分布,即相差較大時,效果不好,而DenoisingAutoencoder在這方面的處理有所進步。
實驗代碼
MNIST數據集的格式與數據預處理代碼input_data.py的講解請參考:Tutorial(2)
實驗代碼如下:
標簽:
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-05-19
2025-04-30
2025-04-11
2025-04-08
2025-03-31
2025-03-26