蘋果首篇AI博客:改進合成圖像的真實性
選自Apple
參與:機器之心編輯部
從 CoreML 到自動駕駛汽車,蘋果的新技術探索在形成產品之前通常都會處於接近保密的狀態,直到去年 12 月底,他們才以公司的名義發表了第一篇機器學習領域裡的學術論文,介紹了自己在改善合成圖像質量方面的研究。最近,這家以封閉而聞名的科技巨頭突然宣布將以在線期刊的形式定期發表自己在機器學習方面的研究,而這份期刊的第一篇文章主要探討的依然是合成圖像的真實性,讓我們先睹為快。
蘋果機器學習期刊:https://machinelearning.apple.com/
現在,神經網路的絕大多數成功實例來自監督學習。然而,為了達到高精度,數據訓練集需要大且多元,並經過精確標註,這意味著高昂的成本。標註海量數據的一個替代方案是使用來自模擬器的合成圖像;這很廉價,並且沒有標註成本,但是合成圖像缺乏逼真度,導致泛化到實際測試圖像時效果欠佳。為了彌補這一性能差距,我們提出了一種新方法,可以改進合成圖像使其看起來更逼真,並在不同的機器學習任務中取得了顯著的精度提升。
概覽
通過標準合成圖像訓練機器學習模型存在一定的問題,因為圖像逼真度不夠,導致模型只學習到了合成圖像的細節,卻無法很好地泛化到真實圖像上。縮小合成與真實圖像之間差距的一個方法是改善模擬器,這通常很昂貴和困難;即使最佳的渲染演算法仍然無法對真實圖像中存在的所有細節進行建模。真實度的缺乏導致模型對合成圖像中的非真實細節產生了過擬合。我們可否不建模模擬器中的所有細節,而是直接從數據中學習呢?為此,我們提出了一種改善合成圖像以使其看起來更逼真的方法。
圖 1. 該任務是藉助非標註的真實數據學習一個模型,從而提高來自模擬器的合成圖像的真實度,同時保留其註解信息。
提高真實度的目標是使圖像看起來儘可能地逼真從而提高測試的精度。這意味著我們要為機器學習模型的訓練保留註解信息。例如,圖 1 中的注視方嚮應該被保留,同時不生成任何偽影,因為機器學習模型可能對它們產生過擬合。我們訓練了一個深度神經網路——「改善器網路(refiner network)」,用來提高合成圖像的真實度。
為了訓練改善器網路,我們需要一些真實圖像。一個選擇是需要若干對真實與合成圖像,且二者之間的像素相對應,或者帶有註解的真實圖像,如上圖中的注視信息。這無疑降低了問題的難度,但是這樣的數據對很難收集。為了實現像素的對應,我們要麼渲染一張合成圖像以對應於一張給定的真實圖像,要麼反之。我們可以無需像素的對應或者不對真實圖像做任何標註而習得兩者之間的映射,從而降低成本使其易於推廣嗎?
為了以無監督的方式訓練改善器網路,我們藉助鑒別器網路(discriminator network)來分類真實與改善的(假的)圖像。改善器網路試圖愚弄鑒別器網路,使其相信改善的圖像是真實的。兩個網路交替訓練,當鑒別器網路無法區分真實與虛假圖像時,則訓練停止。鑒別器網路的對抗式使用和生成對抗網路(GAN)原理相類似。我們的目標是訓練一個改善器網路——一個生成器——從而把合成圖像映射到逼真圖像。圖 2 給出了該方法的概述。
圖 2. 我們的改善器神經網,R,最大限度地減少了局部對抗性損失函數與一個「自正則化」項(『self-regularization』 term)的結合。對抗性損失函數「愚弄」鑒別器網路,D,後者負責區分一張圖片的真假。自正則化項最小化了合成與改善圖像之間的差別。改善器網路和鑒別器網路交替更新。
我們如何保留註解?
除了生成逼真圖像,改善器網路還保留模擬器的註解信息。比如,對於注視的評估,習得的變換不應該改變注視的方向。這一限制很關鍵,使得可以使用帶有模擬器註解的改善圖像訓練機器學習模型。為了保留合成圖像的註解,我們使用自正則化 L1 損失函數補充了對抗性損失函數,從而懲罰了合成圖像與改善圖像之間的大變化。
我們如何避免偽影?
製造局部變化
改善器網路的另一個關鍵需求是它可以引入任何偽影而學習建模真實圖像的特徵。當我們訓練一個單一的強鑒別器網路時,改善器網路傾向於過度強調若干個圖像特徵以愚弄當前的鑒別器,導致了偽影的飄移和產生。一個關鍵的觀察是,從改善圖像採樣的任何局部圖像塊應該具有與真實圖像圖像塊相似的統計。因此,我們沒有定義一個整體的鑒別器網路,而是定義了 一個獨自分類所有局部圖像塊的鑒別器網路(圖 3)。該劃分不僅限制了接收域(進而限制了鑒別器的能力),還為每張圖像提供了很多樣本以學習鑒別器網路。改善器網路也通過擁有每張圖像的多個真實損失函數值而獲得了提升。
圖 3. 局部對抗性損失函數的圖式。鑒別器網路輸出了一個 w × h 概率圖。對抗性損失函數是局部圖像塊之間的交叉熵損失之和。
使用生成器的歷史信息來改善鑒別器
生成器可以用一個新型分布或目標(真實數據)分布的樣本來「愚弄」生成器。直到鑒別器學會那個新分布以前,新分布的生成結果都會對鑒別器進行「欺騙」。生成器愚弄鑒別器的更有效的方式則是通過目標分布(target distribution)來生成結果。
要想使這兩種方式進化,通常最簡單的方法就是生成一個全新的輸出,也就是當我們用相互對抗的方式來訓練當前生成器和鑒別器的時候所觀察到的結果。這種無效序列的簡單情況如圖 4 左手邊所示。生成器和鑒別器分布分別以黃色和藍色區域來表示。
通過引入歷史信息,即從先前生成結果中存儲的生成器樣本(圖 4 右手邊),鑒別器就不太可能會忘記它已經學習過的部分信息了。更強大的鑒別器幫助生成器更快地靠近目標分布。然而實際上,一個簡單且隨機的替換緩衝器(replacement buffer)可以從先前生成器的分布中採集足夠的多樣性。我們的觀念是,在整個訓練過程當中的任意時間,通過改善器網路生成的任何改善的圖像實際上對鑒別器來說都是一個「假」的圖像。我們發現,使用從歷史信息緩衝器採集到的樣本作為一半,以及把當前生成器的輸出作為另一半,來給 D 建造一個 mini-batch,我們就可以實現對訓練的改進。
圖 4. 使用圖像歷史信息提升鑒別器的直覺例證。
圖 5. 帶有 D 的歷史信息的 mini-batch 例證。每個 mini-batch 包括來自生成器當前迭代的圖像以及先前假圖像的緩衝器。
訓練過程如何展開?
我們首先訓練改善器網路的自正則化損失函數,在改善器網路開始輸出輸入合成圖像的模糊版本後引入對抗性損失函數。圖 6 是改善器網路在每個訓練步驟的輸出結果。隨著訓練過程的進行,改善器網路輸出的模糊圖像越來越真實。圖 7 是鑒別器損失函數生成器損失函數在不同訓練迭代階段的變化趨勢。需要注意的是,一開始鑒別器損失較低,這說明該網路可以輕鬆區分真實圖像和改善圖像。隨著訓練過程的進行,鑒別器損失逐漸上升,生成器損失逐漸下降,改善器網路生成的圖像也更加真實。
圖 6. 改善器網路在訓練過程中的輸出結果。最初輸出的圖像比較模糊,隨後改善器網路學習對真實圖像中的細節進行建模。
圖 7. 訓練過程中的鑒別器損失和生成器損失
自正則化 L1 損失有限制性嗎?
如果合成圖像和真實圖像在分布中存在顯著差別,那麼即使是像素級 L1 的不同也會帶來限制。在這種情況下,我們可以在特徵空間上使用自正則項,用替代性特徵變換(alternative feature transform)來替代標識映射。這些是手動調整的特徵,或者習得的特徵,如 VGGnet 的中層。如圖 8 所示,RGB 通道可以生成真實的圖像顏色。
圖 8. 在特徵空間中使用自正則化損失的實例。
生成器會改變標籤嗎?
為了保證標籤不被大量改變,我們在合成圖像和改善圖像上手動畫橢圓,並計算中心之間的距離。圖 9 是 50 個此類中心區距離的散點圖。合成圖像和對應改善圖像的瞳孔中心的絕對距離非常小:1.1 +/- 0.8px(眼睛寬度 = 55px)。
圖 9. 合成圖像和真實圖像瞳孔中心距離的散點圖。
如何調整超參數
G 的初始化
首先我們只在自正則損失中初始化 G,這樣它就可以生成模擬版本的合成輸入。通常 G 需要 500-2000 步(在沒有訓練 D 的情況下)。
在每個訓練迭代中 G 和 D 的不同步驟
我們在生成器和鑒別器每一個訓練迭代中使用了不同的訓練步數。對於手勢估算使用深度,我們在每個 D 的步數中使用 2 個 G 步數;而對於目視估計任務,我們最終找到在每個 D 步數中使用 50 個 G 步數能達到最佳性能。我們發現鑒別器與生成器相比,前者能更快地收斂,部分原因是鑒別器中有 batch-norm。所以我們將 #D 的步數修改為 1,並從小數字開始變化 #G 的步數,根據鑒別器損失值緩慢增加。
學習速率和 stopping 標準
我們發現讓學習速率保持在非常小的數值上(約 0.0001)並訓練很長時間能達到最好的效果。該方法有意義的原因可能是這樣可以讓生成器和鑒別器不會發生突變,讓其中一個甩開另一個。我們發現很難通過可視化訓練損失來停止訓練。取而代之的是,我們保存訓練圖像作為訓練進度,並在改善化圖像看起來與真實圖像相近時停止訓練。
定性結果
為評估改善圖像的視覺質量,我們設計了一個簡單的用戶調查,請參與者將圖像按真實圖像和改善合成圖像進行分類。調查發現參與者很難區分真實圖像和改善圖像。經過綜合分析,10 名參與者在 1000 次試驗中選對標籤的次數是 517 次,即他們不能確切地辨認出真實圖像和改善合成圖像的區別。但是,在對原始合成圖像和真實圖像進行測試的時候,我們向每位參與者展示真實圖像和合成圖像各 10 張。在 200 次試驗中,參與者一共選對了 162 次。圖 10 展示了一部分合成圖像和對應的改善圖像實例。
圖 10. 使用上文所述方法改善後的眼睛圖像實例。
定量結果
圖 11 展示了使用改善數據的性能提升,與使用原始合成數據的訓練效果相比。在下圖中有兩個重點:(1)使用精細圖像進行訓練優於使用原始合成圖像的訓練;(2)使用更多合成數據可進一步提高性能。在圖 12 中,我們將目視估計誤差與其他目前最好的方式進行了比較,展示了提升測試數據的真實性可以顯著提高模型生成質量。
圖 11. 使用合成和改善化圖像進行注視估計的性能對比。評估使用了真實圖片。
圖 12. 在 MPIIGaze 數據集中不同方法之間的注視估計性能對比。
相關工作
近年來,使用對抗性訓練方式的研究正在變得越來越流行。Isola 等人的圖像到圖像(image-to-image)轉換論文 [4] 解釋了一種將圖像從一種形式轉換為另一種的方法,但它需要像素級的對應。隨後,該研究組又提出了非配對的圖像到圖像轉換方法 [5],討論了放寬對像素關聯的限制,並根據我們的策略使用了生成器歷史來提升鑒別器的能力。英偉達 5 月份提出的無監督圖像到圖像轉換網路 [6] 使用 GAN 和變分自動編碼器的組合來學習源域和目標域之間的映射。Costa 等人隨後受我們的啟發展示了生成眼底圖像的研究 [7]。而 Sela 等人也使用了類似的自正則化方法來進行面部幾何重建 [8]。Lee 等人從局部關鍵圖像塊上使用鑒別器來學習合成新的圖片 [9]。若想獲知有關本研究的更多細節,請查閱蘋果的 CVPR 論文《Learning from Simulated and Unsupervised Images through Adversarial Training》[10]。
論文:通過對抗性訓練從模擬和無監督圖像中學習(Learning from Simulated and Unsupervised Images through Adversarial Training)
論文地址:https://arxiv.org/abs/1612.07828
隨著圖像技術的最新進步,在合成圖像上對模型進行訓練也變得更加易於處理,一定程度上避免了對昂貴標註的需求。然而,由於合成圖像分布和真實圖像分布之間存在差距,從合成圖像中進行學習往往可能不會達到所期望的性能表現。為了減小這一差距,我們提出了模擬+非監督學習方法(Simulated+Unsupervised learning,S+U),任務就是通過使用非標註的真實數據來學習一個模型,從而增強模擬器輸出的真實性,同時保留模擬器中的標註信息。我們開發出了一種 S+U 學習方法,使用類似於生成對抗網路的對抗型網路,用合成圖像作為輸入(而不是隨機向量)。我們對標準 GAN 演算法進行了幾處關鍵性的修改,從而來保存標註,避免失真以及使訓練穩定化:(i)一個「自正則化」項,(ii)一個局部對抗損失(local adversarial loss),以及(iii)使用改善圖像的歷史信息來對鑒別器進行更新。我們通過定性說明和用戶研究,展示出了此結構能夠生成高真實度的圖像。我們通過訓練視線估計(gaze estimation)和手勢估計(hand pose estimation)的模型對生成圖像進行了定量評估。我們在使用合成圖像方面展現出了顯著的提升效果,並且在沒有任何已標註的真實數據的情況下,在 MPIIGaze dataset 數據集上實現了一流的結果。
參考內容:
[1] I. J. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio, Generative Adversarial Nets. Proceedings Neural Information Processing Systems Conference, 2014.two thousand fourteen
[2] X. Zhang, Y. Sugano, M. Fritz, and A. Bulling, Appearance-based Gaze Estimation in the Wild. Proceedings Computer Vision Pattern Recognition Conference, 2015.two thousand fifteen
[3] E. Wood, T. Baltru?aitis, L.-P. Morency, P. Robinson, and A. Bulling, Learning an Appearance-based Gaze Estimator from One Million Synthesised Images. Proceedings ACM Symposium on Eye Tracking Research & Applications, 2016.two thousand sixteen
[4] P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros, Image-to-Image Translation with Conditional Adversarial Networks. ArXiv, 2016.two thousand sixteen
[5] J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros, Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. ArXiv, 2017.two thousand seventeen
[6] M.-Y. Liu, T. Breuel, and J. Kautz, Unsupervised Image-to-Image Translation Networks. ArXiv, 2017.two thousand seventeen
[7] P. Costa, A. Galdran, M. I. Meyer, M. D. Abràmoff, M. Niemeijer, A. M.Mendon?a, and A. Campilho, Towards Adversarial Retinal Image Synthesis. ArXiv, 2017.two thousand seventeen
[8] M. Sela, E. Richardson, and R. Kimmel, Unrestricted Facial Geometry Reconstruction Using Image-to-Image Translation. ArXiv, 2017.two thousand seventeen
[9] D. Lee, S.Yun, S. Choi, H. Yoo, M.-H. Yang, and S. Oh, Unsupervised Holistic Image Generation from Key Local Patches. ArXiv, 2017.two thousand seventeen
[10] A. Shrivastava, T. Pfister, O. Tuzel, J. Susskind, W. Wang, R. Webb, Learning from Simulated and Unsupervised Images through Adversarial Training. CVPR, 2017.


※人到中年,微軟人工智慧邁向下一個新征程
※ImageNet 2017目標定位冠軍論文:雙路徑網路
※手機運行神經網路,MIT新方法使神經網路能耗降低 73%
TAG:機器之心 |
※合成鑽石:質量改進及鑒定挑戰
※巴鐵夢想成真,梟龍改進型亮相
※微軟發布更新補丁,改進混合現實門戶的SteamVR遊戲性能
※蘋果公司發布的iOS:一些重要錯誤修復和性能改進,但沒更新電池問題
※改進 UI 微交互的實用建議
※印度:成功試射「阿卡什」改進型地對空導彈
※梟龍戰機首戰告捷!成飛正在研發最新改進型,性能再次提升
※小米Mix 2S上手預覽:最新的硬體與MIUI改進的軟體版本相結合
※蘋果確認參與無人機測試目的是為了改進地圖服務
※國際版華為P9迎系統更新,新增動態圖像和改進的圖像搜索功能
※被修改過的幹細胞顯示出抗HIV的能力,科學家正在積極調整基因編輯技術改進
※iOS 系統更新發布!小幅功能優化改進
※耿海英:改進和完善學術期刊定性評價
※NVIDIA用光線追蹤改進TAA時間抗鋸齒:畫質完美 幀率流暢
※莫拉全龍骨Garberg測評:改進後的它成功挽回了生存刀的顏面
※複合材料孔隙成因及改進措施
※蘋果發文:全局語義信息能否改進神經語言模型?
※蘋果iOS beta 4發布:專註修復錯誤、改進性能
※對廣譜中和抗體的新認識,可以改進HIV疫苗設計
※本是同根生—五九式坦克的終極改進型,誰會更出彩