論文筆記:Noise2Noise: Learning Image Restoration without Clean Data

標題

Introduction

這是ICML2018的一篇論文,其由來自英偉達、阿爾託大學和 MIT 的研究者聯合發表。該文章提出了一個很有意思的觀點:在某些常見情況下,網絡可以學習恢復信號而不用“看”到“乾淨”的信號,且得到的結果接近或相當於使用“乾淨”樣本進行訓練。而這項結論來自於一個簡單的統計學上的觀察:我們在網絡訓練中使用的損失函數,其僅僅要求目標信號(ground truth)在某些統計值上是“乾淨”的,而不需要每個目標信號都是“乾淨”的。

Theoretical background

先看一種簡單的情況,假設我們對某個物理量(如房間的溫度)多次測量,得到一系列不可靠的測量值(y1,y2,... )。一種估計真實值的通用方法是找到一個數z ,使其與這些測量值有最小的平均偏差,即優化下面損失函數:

argminzEy{L(z,y)}

對於L2 損失L(z,y)=(zy)2 ,該損失函數的最優解在測量值的算數平均值(期望)處取到:

z=Ey{y}

對於L1 損失L(z,y)=|zy| ,該損失函數的最優解在測量值的中值處取到:

z=median{y}

對於L0 損失L(z,y)=|zy|0 ,該損失函數的最優解近似在測量值的衆數處取到:

z=mode{y}

從統計學角度,這些通用的損失函數都可以解釋爲似然函數的負對數,而對這些損失函數的優化過程可以看做爲最大似然估計。
訓練神經網絡迴歸器是這種點估計過程的推廣。已知一系列輸入-目標對(xi,yi) ,典型的網絡訓練形式是優化下列目標函數:

argminθE(x,y){L(fθ(x),y)}

其中,網絡函數爲fθ(x)θ 爲網絡參數。
如果將整個訓練任務分解爲幾個訓練步驟,根據貝葉斯定理可將上述目標函數變爲:

argminθEx{Ey|x{L(fθ(x),y)}}

則網絡訓練的目標函數與前面所說的標量損失函數有相同的形式,也具有相同的特性。

實際上,通過上述目標函數,在有限數量的輸入-目標對上訓練迴歸器的過程隱含了一點:輸入與目標的關係並不是一一對應的,而是一個多值映射問題。比如對於一個超分辨問題來說,對於每一個輸入的低分辨圖像,其可能對應於多張高分辨圖像,或者說多張高分辨圖像的下采樣可能對應同一張圖像。而在高低分辨率的圖像對上,使用L2 損失函數訓練網絡,網絡會學習到輸出所有可能結果的平均值。

綜上所述,L2 最小化的一個看起來似乎微不足道的屬性是,如果我們用一個期望與目標相匹配的隨機數替換目標,那麼估計值將保持不變。因此,如果輸入條件目標分佈p(y|x) 被具有相同條件期望值的任意分佈替換,則最佳網絡參數θ 也保持不變。這意味着,可以在不改變網絡訓練結果的情況下,將神經網絡的訓練目標添加上均值爲0的噪聲。則網絡目標函數可以變爲

argminθiL(fθ(x^i),y^i)

其中,輸出和目標都是來自於有噪聲的分佈,且滿足E{y^i|x^i}=yi

當給定的訓練數據無限多時,該目標函數的解與原目標函數的相同。當訓練數據有限多時,估計的均方誤差等於目標中的噪聲的平均方差除以訓練樣例的數目,即:

Ey^[1Niyi1Niy^i]2=1N[1NiVar(yi)]

因此,隨着樣本數量的增加,誤差接近於零。即使數據量有限,估計也是無偏的,因爲它在期望上是正確的。

在許多圖像復原任務中,輸入的被污染數據的期望就是我們要恢復的“乾淨”的目標,因此只要對每張被污染的圖像觀察兩次,即輸入數據集也是目標數據集,就可以實現對網絡的訓練,而不需要獲得“乾淨”的目標。
L1 損失可以得到目標的中值,這意味着網絡可以被訓練用來修復有顯著異常內容的圖像(最高可達50%),而且也僅僅需要成對的被污染圖像。

Practical experiments

加性高斯白噪聲

一般加性高斯白噪聲是零均值的,所以文章採用L2 損失訓練網絡。
文章使用開源圖像庫的圖像,對每張圖像隨機添加方差爲σ[0,50] 的噪聲,網絡在去噪過程中需要估計噪聲幅度,整個過程是盲去噪過程。
高斯噪聲
從去噪結果可以看出,使用“乾淨”的目標和使用有噪聲的目標有相似的收斂速度和去噪質量。如果進一步使用不同大小的高斯濾波器模糊有噪聲的目標圖像,可以觀察到低頻噪聲會更頑固,需要更多的迭代次數,但是對於所有情況來說,網絡都收斂於相似的去噪質量。

其他合成噪聲

泊松噪聲

泊松噪聲和高斯噪聲一樣是零均值的,但是更難去除,因爲其是信號相關的。文章使用L2 損失,且在訓練過程中變化噪聲幅度λ[0,50]
需要說明的是,圖像飽和截止區域是不滿足零均值假設,因爲在這些區域部分噪聲分佈被丟掉了,而剩餘部分的期望不再是零了,所以在這些區域不能得到好的效果。

乘性伯努利噪聲

即相當於對圖像進行隨機採樣,未採樣到的點像素值爲0。被污染像素的可能性記爲p ,在文章訓練過程中,變化p[0.0,0.95] ,而在測試中p=0.5 。而得到的結果是使用被污染的目標比“乾淨”目標得到PSNR值還要高一點,這可能是由於被污染的目標在網絡輸出中有效地應用了dropout技術的結果。
結果比較

文字去除

網絡使用獨立的被污染輸入和目標對進行訓練,被污染像素的可能性p 在訓練過程中爲[0.0,0.5] ,而在測試中p=0.25 。且在訓練中使用L1 損失作爲損失函數,從而去除異常值。
文字去除

隨機值脈衝噪聲

即對於每一個位置的像素都有可能性p[0,1] 的值隨機替代。在這種情況下,平均值和中值都能產生好的結果,其理想的輸出應該是像素值分佈的衆數。爲了近似尋找衆數,文章使用退火版本的“L0 損失”函數,其定義爲(|fθ(x^)y^|+ϵ)γ ,其中ϵ=108 ,在訓練時γ 從2到0線性下降。訓練時輸入和目標圖像被污染像素的可能性爲[0,0.95]
脈衝噪聲

除此之外,文章還在Monte Carlo渲染和MRI方面做了測試,均得到了不錯的效果。
該文章的意義在於,在現實世界中想要獲得清晰的訓練數據往往是很困難的,而這篇文章提供了一種新的思路解決這個問題。文章也提到了,天下沒有免費的午餐,該方法也無法學習獲取輸入數據中不存在的特性,但這同樣適用於清晰目標的訓練。

英偉達新聞地址:新聞地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章