# Learning from Simulated and Unsupervised Images through Adversarial Training. (通過對抗訓練從模擬和無監督的圖像中學習) Shrivastava, A., Pfister, T., Tuzel, O., Susskind, J., Wang, W., & Webb, R. (2016). arXiv:1612.07828 [Cs]. ### Abstract 隨著近年來圖形上的進步 , 在合成圖像上訓練模型變得更加容易 , 這也可能地避免了昂 貴的標註的需求.由於合成圖像與真實圖像之間分布的差距,從合成圖像中學習可能無法達到 預期的表現. 提出’模擬+無監督式學習(Simulated+Unsupervised (S+U))’,其中的任務是學習使用無 標簽的真實資料來提升模擬器輸出的真實性,同時保留來自該模擬器的標註資訊. 論文開發了一種用於 S + U 學習的方法 , 該方法使用了一個類似生成對抗網路 (Generative Adversarial Networks (GANs)),但是輸入是使用合成圖像而非隨機向量. 我們對標準GAN演算法進行了幾個關鍵修改,保留其標註、避免不自然的人造感 (artifact)和穩定訓練品質,修改了以下三項: • a ‘self-regularization’ term(一個’自我正規化’項) • a local adversarial loss (一個局部對抗損失) • updating the discriminator using a history of refined images. (使用紀錄優化過的 圖像來更新鑑別器) 實驗表明這能夠生成高真實的圖像 , 這在品質評估與用戶研究上得到了證明 . 我們通過 視線追蹤與手勢識別(gaze estimation and hand pose estimation)的訓練模型來對生成的圖 像進行了量化評估. 研究表明本論文在使用合成圖像上有顯著的改善,並且在沒有任何有標籤的真實資料情 況下實現了在MPIIGaze資料集上取得最佳的結果. ### Introduction 大量的標籤資料集隨著高容量深度神經網路變得越來越重要,標籤這樣的巨量資料集是昂貴與耗時的.因此對於訓練合成而不是真實圖像的想法變得有吸引力,使用合成資料解決了大量其他任務. 增加真實性通常在計算上是昂貴的,甚至描繪器仍然不能建模真實圖像的所有特性.這種缺乏真實性可能導致模型過度擬合合成圖像中’不真實’的細節. 提出了’模擬+無監督式學習(Simulated+Unsupervised (S+U))’,目的是改善使用無標籤的真實資料從模擬器中學習提升合成圖像真實性. 改善真實性使得在沒有任何資料收集與人工標籤的情況下在巨量資料上訓練更好的機器學習模型. ![](https://i.imgur.com/skAeRDp.png) 圖1. 模擬+無監督式學習(Simulated+Unsupervised (S+U)).任務是使用無標籤的真實資料從模擬器中學習提升合成圖像真實性的模型,同時保留標註資訊. 這套方法稱之為SimGAN,模擬器使用神經網路精煉模擬合成圖像,我們稱為’精煉網路’使用對抗損失訓練精煉網路和生成對抗網路類似,使得在使用鑑別網路時精緻的圖像與真實的難以區分. 為了保留合成圖像的標註,使用自我正規化損失彌補對抗性損失合成圖像與精煉圖像之間的差異GAN框架需要訓練兩個有競爭目標的神經網路,已知目標是不穩定的並且傾向採用偽造圖像. 為了避免漂移和引入假的偽像,同時試圖欺騙單個更強的鑑別器,將限制鑑別器只接受局部區域而不是整個圖像,得到每個圖像多個局部對抗損失. 採用一種通過使用歷史優化過的圖像,而不是來自當前精煉網路來更新鑑別器提高訓練穩定性的方法. ![](https://i.imgur.com/zJMLv1j.png) 圖2. 概述SimGAN.可最小化局部對抗損失和自我正規化組合的精煉神經網路(R),來改進模擬器的輸出.對抗損失欺瞞過鑑別器網路(D),它將區分圖像為真實或精煉過的.自我正規化最小化合成圖像與精煉圖像之間的差異.保留了標註資訊(例如.凝視方向),使得精煉過的圖像對訓練機器學習模型有用,精煉網路(R)與鑑別器網路(D)是交替更新的. ### Contributions: We propose S+U learning that uses unlabeled real data to refine the synthetic images generated by a simulator. (提出了S+U學習方法使用無標籤的真實資料來精練模擬器生成的合成圖像.) We train a refiner network to add realism to synthetic images using a combination of an adversarial loss and a self-regularization loss. (訓練一個精煉網路使用對抗損失和自正規化損失的組合增加合成圖像的真實性.) We make several key modifications to the GAN training framework to stabilize training and prevent the refiner network from producing artifacts. (我們對標準GAN訓練框架進行了幾個關鍵修改,穩定訓練品質和防止精煉網路產生避免不自然的人造感.) We achieve state-of-the-art results, without any human annotation effort, by training deep neural networks on the refined output images. (通過在優化輸出圖像上訓練深度神經網路,取得最佳的結果,沒有任何人標註的努力.) ### S+U Learning with SimGAN 模擬+無監督式學習(Simulated+Unsupervised (S+U))使用未標籤真實圖片yi ∈ Y學習精煉機Rθ(x)精煉後合成圖像x,其中θ為函數參數,精煉後的圖像x˜表示 ![](https://i.imgur.com/RBxDl2d.png) S+U學習的主要要求是精煉圖像x˜ 在外觀上看起來像真實圖像,同時保留來自模擬器的標註資訊.我們提出通過最小化兩種損失的合組來學習θ: ![](https://i.imgur.com/J5B1MBH.png) 其中xi是第ith個合成訓練圖像,x˜i是相應的精煉圖像.成本在第一部份,lreal,對合成圖像增加真實性,而在第二部分,lreg,通過最小化合成圖像與精煉圖像之間的差異來保留標註資訊. ### Adversarial Loss with Self-Regularization 為了讓合成圖像增加真實性,需要縮小合成與真實圖像分佈之間的差距.理想的精煉器將不可能替將圖像做分類為真實或具有高可信度的精煉圖像. 促使使用對抗鑑別器網路,Dφ,訓練分類圖像為真實或精煉,φ,是鑑別器網路的參數. 在訓練精煉網路(R.)中使用對抗損失負責’欺騙’網路D將精煉圖像分類為真實的. 遵循GAN方法,模型為兩個玩家最小化遊戲,並且精煉網路(Rθ)與鑑別器網路(Dφ)是交替更新的.鑑別器網路通過最小化損失來更新參數 ![](https://i.imgur.com/Zi9XiUO.png) 這是等差兩類分類問題交叉熵誤差,其中Dφ(.)是作為合成圖像的輸入概率,1 − Dφ(.)是真實的.將Dφ實現為ConvNet,最後一層輸出的樣本是精煉圖像的概率. 為了訓練網路,每個小量資料由隨機採樣的精煉模擬圖像x˜i與真實圖像yj組合而成.交叉熵誤差損失層的目標標籤每個yj為0,與每個x˜i為1. 小量資料損失梯度通過採取隨機梯度下降法更新小量φ.在(1)中真實損失函數lreg使用訓練的鑑別器D如下: ![](https://i.imgur.com/mXxNHDX.png) 通過最小化損失函數,迫使鑑別器不能將精煉圖像分類為合成圖像.除了生成圖像外,精煉網路應保留模擬器的標註資訊. 例如,對於視線追蹤的學習變換不應該是改變視線方向.這是一個重要的組成部分,使訓練一個機器學習模型使用精煉的圖像與模擬器的標註. 為了實施這一點,本論文提出使用自我正規化損失,最小化合成圖像與精煉圖像之間的差異. 因此,在我們執行中使用的整體精煉機損失函數(1)是: ![](https://i.imgur.com/JExNEqK.png) 實現Rθ完全卷積神經網路沒有跨層與匯集層.這是在像素級修改了合成圖像,而不是像完全連接的編碼器網路整體修改圖像內容,並且在Rθ保留全局結構與標註. 通過交替最小化LR(θ)與LD(φ)來學習精煉器與鑑別器,當更新Rθ參數時,保持φ固定,而在更新Dφ參數時,固定θ,總結出演算法 ![](https://i.imgur.com/MUt3I0j.png) ### Local Adversarial Loss ![](https://i.imgur.com/OQPxMgK.png) 圖. 當鑑別器網路輸出w × h概率圖.對抗損失函數是局部區塊上的交叉熵誤差損失的總和. 本論文將鑑別器D設計一個完全卷積網路輸出為偽分類區塊的w × h概率圖 ,其中w × h是圖像中局部區域的數量. ### Updating Discriminator using a History of Refined Images ![](https://i.imgur.com/9f7Gstl.png) 對抗訓練的另外一個問題是鑑別器只關注在最新精煉圖像,這可能會導致 分歧的對抗訓練 精煉網路重新引入鑑別器已忘記偽像 引用一種通過使用歷史精煉圖像,而不是只使用當前的小量資料來更新鑑別器,來提高對抗訓練穩定性的方法 稍微修改演算法以具有由先前網絡產生的精煉圖像的緩衝區.令B是緩衝區的大小與b為小量資料的大小. ### Experiments Appearance-based Gaze Estimation 視線追蹤是許多人機互動任務的重要關鍵因素,但是從眼睛圖像視線追蹤是具有挑戰性的,特別是當圖像低質量時,例如從手機相機,用視線方向標註圖像對愚人來說也是有挑戰性的. #### Qualitative Results(定量結果): ![](https://i.imgur.com/ohi2dfg.png) 圖. SimGAN成功的捕捉皮膚紋理,感測器雜訊與實際圖像中虹膜區域的外觀,在這裡我們的方法保留標註資訊,同時改善真實性. #### ‘Visual Turing Test’(視覺圖靈測試): ![](https://i.imgur.com/g1Isxai.png) 為了能量化評估精煉後圖像的視覺質量,設計了一個簡單的使用者研究,其中要求受測者將圖像分類為真實或精煉合成.每個受測者將隨示隨機顯示50個真實圖像與50個精煉圖像以隨機順序,並要求標籤圖像是真實或精煉. 在執行任務時受測者不斷地顯示真實與精煉圖像的20個例子.受測者發現非常難分辨真實圖像與精煉圖像之間的差異. 在整體分析中,10位受測者在1000個測試中選擇了正確的標籤517次(p=0.148).相較之下,當測試原始合成圖像與真實圖像,每位受測者顯示10張真實圖像與10張合成圖像,受測者在200個測試中選擇了正確的標籤162次(p ≤ 10−8 ).」 受測者的結果,人為分類平均精準度為51.7%,這表示自動生成的精煉圖像在視覺上非常難以真實圖像做區別. #### Quantitative Results(量化結果): ![](https://i.imgur.com/a95wSQc.png) 我們訓練一個簡單的卷積神經網路(CNN)類似魚預測眼睛視線方向(x,y,z為三維向量編碼)與l2損失.與現有技術比較,在精煉圖像上訓練CNN表現優於MPIIGaze資料集上最佳的方法,相對改善21% 比較在合成資料與SimGAN的輸出訓練視線追蹤器,結果距離參考標準d=7度,SimGAN輸出的精煉圖像在訓練上優於合成資料22.3%. #### Implementation Details: 精煉網路Rθ是剩餘網路(ResNet),每個ResNet區塊由包含64個特徵的兩個卷積層組成,大小為55 × 35的輸入圖像與64個特徵圖的3 × 3的輸出. 輸出是通過4個ResNet區塊,最後的ResNet區塊的輸出會通過1 × 1卷積層產生對應於精煉合成圖像的1個特徵圖. 鑑別器網路Dφ,包含5個卷積層和2個max-pooling: (1) Conv3x3, stride=2, feature maps=96, (2) Conv3x3, stride=2, feature maps=64, (3) MaxPool3x3, stride=1, (4) Conv3x3, stride=1, feature maps=32, (5) Conv1x1, stride=1, feature maps=32, (6) Conv1x1, stride=1, feature maps=2, (7) Softmax. 對抗網路是完全卷積,並且已經被設計Rθ與Dφ中的最後層神經元的接受是類似的.首先先訓練Rθ網路僅具有1,000步自我正規化損失,Dφ為200步. 對於Dφ的每次更新,在演算法1中Rθ為更新兩次,即Kd設置為1和Kg設置為50. 輸入是35 × 55灰階圖像,通過5層卷積層然後是3層完全連接層,最後是一個是三維度編碼的凝視向量: (1) Conv3x3, feature maps=32, (2) Conv3x3, feature maps=32, (3) Conv3x3, feature maps=64, (4) MaxPool3x3, stride=2, (5) Conv3x3, feature maps=80, (6) Conv3x3, feature maps=192, (7) MaxPool2x2,stride=2, (8) FC9600, (9) FC1000, (10) FC3, (11) Euclidean loss. 所有網路訓練是用0.001的學習速率與512批量,直到驗證誤差收斂. #### Analysis of Modifications to Adversarial Training ![](https://i.imgur.com/RQTeOXX.png) 在圖中使用歷史精煉圖像更新鑑別器.(左)為合成圖像;(中間)使用歷史精煉圖像的結果;(右)不使用歷史精煉圖像的結果(僅使用近期的精煉圖像).觀察到明顯的不真實感,特別是在眼角的附近. ### Conclusions and Future Work 本論文提出的’模擬+無監督式學習(Simulated+Unsupervised (S+U))’,以用未標籤的真實資料來精煉模擬器的輸出.S+U學習為模擬器增加真實性,並保留全局結構與合成圖像的標註.本論文描述了SimGAN,S+U學習方法,使用對抗網路與演示最佳的結果,沒有任何標籤的真實資料,將來,將為每個合成圖像生成多個精煉圖像,並研究精煉影像而不是單個圖像. ### 我的結論 在機器學習的領域要做圖像辨識對於標籤的工作非常耗費時、金錢和人力,當研究人員在這些資源上較稀少時,便會選擇使用電腦所標籤好的合成圖像,但往往合成圖像都不夠真實,導致使用合成圖像訓練的神經網路,在分辨真實世界的圖像時性能並不好。 生成式對抗(Generative Adversarial Networks , GAN)在過去比較主要的用途之一就是訓練電腦生成擬真的照片,就是用一個生成「合成圖像」的網路,和另一個提供真實圖像的資料集進行對抗,再用一個單獨的鑑別網路進行鑑別。 GAN是利用競爭性神經網絡(Competing Neural Network)之間的對抗關係來工作的。模擬器產生合成圖像;接著,合成的圖像通過精鍊機;然後,精鍊後的圖像通過判鑑別器,用以鑑別是真實圖像還是合成圖像。 這篇論文在GAN的架構上,對模型做了一些調整,例如輸入的值由隨機向量改成合成圖像,最後提出了’模擬+無監督式學習(Simulated+Unsupervised (S+U))’的學習模型稱為SimGAN,讓電腦能夠生成出更真實的合成圖像,圖像失真更少,真實性質量更穩定。 為了保留標註、避免不自然的人造感與穩定訓練品質,也對GAN做了一些修改包括縮小對抗損失及自我正規化造成的的損失,並以歷史精煉圖像更新鑑別器,藉此提升產出圖像的真實感。 從遊戲理論角度來看,該網絡就像在在雙人遊戲中競賽。遊戲的目標即獲得最小的損失。 SimGAN可以最小化局部對抗損失和一個自我正規化項的組合。自正則化項可以最小化合成圖像和真實圖像之間的差異,這保留了標註資訊。意思是,與真實圖像差異過大會影響無監督訓練集的效果。例如,如果樹木看起來不像樹木,而你的模型是用於幫助無人駕駛汽車識別樹木並避開,那麼就危險了。 https://read01.com/oRALeD.html 生成對抗網絡(GANs ) ###### tags: `deep learning` `gan`