為魯棒的神經網絡模型添加噪音


深度神經網絡在諸如圖像識別、目標檢測、語義分割以及語音和自然語言處理上都表現的很好;

但是也存在一個問題——他們不能很好的處理真實世界數據集上的噪音;

當網絡模型處理含有噪音的數據時,他們的泛化性能就會下降;

為此,我們在本文中將介紹一種提升泛化性能的方法。

 

文章內容主要包括

1)為什么噪音對神經網絡來說是個問題?

2)如何把噪音加入到輸入中可以幫助神經網絡?

3)不同類型的神經網絡及機器學習模型中應該如何加入噪音?

4)可加入的噪音的類型

 

一、為什么噪音對神經網絡來說是個問題?

原因:真實數據圖像不像訓練數據一樣干凈;

當訓練的時候,我們會對輸入數據進行預處理、縮放等;但是大部分時間我們不會考慮數據中的噪音;這使得神經網絡的泛化性能降低;

 

二、如何把噪音加入到輸入中可以幫助神經網絡?

最佳的解決方案:在訓練的時候將噪音加入到輸入圖像中

引自深度學習圖書——Quoting Ian Goodfellow from the Deep Learning book,

One way to improve the robustness of neural networks is simply to train them with random noise applied to their inputs.

Regularization, page 237

因此,最基本的,我們可以在訓練的時候隨機加入噪音;

加入噪音帶來的好處:

1)減少過擬合,提升泛化性能

2)有助於小的訓練集的處理

  可以幫助網絡在訓練的時候看到更加多樣的數據;

  不過如果數據集過小的話,給一半的數據集加入噪音可能會導致模型在訓練時的不充分;當面臨樣本不平衡的問題時,這可能是個問題;

3)加入噪音可以被視為數據增強技術的一種方式

  這有助於克服某一個特定類別數據較少的問題;

Injecting noise in the input to a neural network (Sietsma and Dow, 1991) can also be seen as a form of data augmentation.

Deep Learning, page 237

三、不同類型的神經網絡及機器學習模型中應該如何加入噪音?

圖像數據:

圖像中的大多數數據增強都是通過旋轉圖像、移動像素或添加某種類型的白化來實現的。

現在,我們同樣嘗試加入噪音作為一種數據增強技術;

 

在論文Deep Convolutional Neural Networks and Noisy Images中,他們試圖加入不同類型的噪音給輸入數據,之后訓練不同類型的深度神經網絡模型;

結果發現,加入噪音對於變化的圖像質量來說是有好處的;

 

The results indicate that training networks using data affected by some types of noise could be beneficial for applications that need to deal with images with varying quality, given that it seems to improve the resilience of the network to other types of noise and noise levels.

Deep Convolutional Neural Networks and Noisy Images, Tiago S. Nazare, Gabriel B. Paranhos da Costa, Welinton A. Contato, and Moacir Ponti (2018)

但是他們同樣發現,降噪處理以后,模型的精度會下降;

這可能是由於降噪后的圖像較為模糊,損失了一部分和數據有關的信息;

 

 

 

四、可加入的噪音的類型

高斯噪音

 

 

椒鹽噪聲

 

 

泊松噪音

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM