1. 程式人生 > >【平價資料】SimGAN:活用合成數據和無監督資料

【平價資料】SimGAN:活用合成數據和無監督資料

Shrivastava, Ashish, et al. “Learning from simulated and unsupervised images through adversarial training.” IEEE Conference on Computer Vision and Pattern Recognition.2017

概述

本文是Apple在機器學習領域的首秀,同時也是CVPR 2017的兩篇Best Paper之一。

在使用深度學習結局實際問題時,我們常常遇到以下的局面:

類別 品質 標記 數量
監督資料 真實
無監督資料 真實
合成數據 不真實

本文舉了兩個例子:視線方向識別和手勢識別。

  • 兩種問題的標定都十分困難,使得監督資料昂貴而稀少。
  • 可以用CG模型合成數據。這些資料的視線方向和手關節位置已知,但畫面不夠真實。

本文利用GAN思想,通過無監督資料提升合成數據的質量,同時不改變合成數據的標記。之後使用優化過的合成數據訓練模型。

方法

系統框架

類似GAN網路,本文系統中包含兩個核心模組

  • 改善器R:輸入合成數據,輸出改善結果。
  • 鑑別器D:判斷輸入是真實資料還是經過改善的合成數據。

這裡寫圖片描述

注意,訓練的最終目的是生成改善後的合成資料。而不是改善器或者鑑別器本身。

優化

相關的代價有三種

  • 代價1:鑑別器識別改善影象的錯誤率。
  • 代價2:鑑別器識別真實影象的錯誤率。
  • 代價3:改善影象和原始影象的逐畫素差

其中,代價3保證改善影象和原始影象的類標相同。例如,保證手勢姿態不變,保證視線方向不變。除了直接比較畫素,還可以提取影象特徵之後在做差。

在每一輪迭代中:

  • 最大化代價1,最小化代價3,優化改善器R的引數。共執行Kr次SGD。
  • 最小化代價1,最小化代價2,優化鑑別器D的引數。共執行Kd次SGD。

經過若干次迭代得到的改善器R,可以將合成樣本加工成具有以下兩個性質的樣本:

  • 品質和真實影象難以分辨
  • 保持合成樣本原有類標不變

改進:區域性損失

問題

隨著迭代進展,鑑別器D可能過分利用某些錯誤的全域性特徵進行分類,進而使得改善影象出現不自然的artifact。

舉例:真實影象中可能只包含幾個固定視線方向的樣本,但合成影象的視線方向則均勻而連續。於是鑑別器“劍走偏鋒”地以視線方向作為真假樣本的判別標準。1

解決

本文在訓練鑑別器D時,將影象分割成w×h的小塊分別輸入;在利用D進行分類時,以各個小塊的分類結果只和作為該影象的結果。
除了避免全域性資訊引入artifact之外,這種方法還能夠增加訓練樣本的數量。

改進:歷史資訊

問題

隨著每一次迭代,改善器R輸出的影象是逐步變化的。相應地,鑑別器能夠有效辨識的影象也集中在最近的改善器輸出中。這導致兩個問題:

  • 對抗訓練不收斂2
  • 改善器R會重新引入之前出現過、但已經被鑑別器D忘記的artifact

解決

本文設定一個buffer來儲存迭代中生成的改善影象。

  • 在每個大小為b的mini-batch中,有一半資料來源於這個buffer,另一半來源於當前改善器R的輸出。
  • 完成迭代後,用當前改善器的輸出替換b/2個buffer中的樣本。

實驗

視線方向估計

資料

真實資料:214K的MPIIGaze資料庫
合成數據:1.2M使用UnityEyes生成影象,使用單一渲染環境

由於合成影象和真是影象在顏色上差別較大,在計算代價3時使用RGB三通道平均值之差代替逐畫素差。

由於視線方向估計是在灰度圖上進行,使用灰度代價即可。

結果

改善影象(中)能夠保持原始影象(左)的視線方向,同時其品質接近真實影象(右),即使真人也難以分辨。
這裡寫圖片描述

使用改善影象訓練的分類器,效果大大超出使用原始合成影象訓練的分類器。
這裡寫圖片描述
與state of the art相比,錯誤率也有明顯降低。
這裡寫圖片描述

手勢識別

資料

真實資料:NYU hand pose。70K訓練,8K測試。未標定。裁剪縮放為224×224深度影象。
合成數據:數量未提及。包含14個關節標定結果。

結果

改善資料能夠逼真模擬真實資料中的噪聲。
這裡寫圖片描述

使用改善資料訓練的分類器指標具有明顯優勢。
這裡寫圖片描述

  1. 原文未詳述,此處為個人理解。
  2. 原因未詳述

相關推薦

平價資料SimGAN合成監督資料

Shrivastava, Ashish, et al. “Learning from simulated and unsupervised images through adversarial training.” IEEE Conference on C

java webspringMVC框架實現多選框批量刪除表資料功能

本功能是基於springMVC+mybatis框架實現的,實現過程如下: jsp程式碼: <c:forEach items="${requestScope.movies}" var="movie" varStatus="status"> <

學習筆記變量、作用域內存問題

允許 幫助 範圍 訪問內存 常用 ie9 值傳遞 問題: eof 1.引用類型的值   引用類型的值是指保存在內存中的對象,JavaScript不允許直接訪問內存中的位置,因此在操作對象時,實際上是操作的引用而不是實際的對象。(嚴密的說法是:當復制保存著對象的某個變量時,

TCP/IPIP網際協議(定址路由)

IP是TCP/IP協議族中最為核心的協議,所有的TCP、UDP、ICMP及IGMP資料都以IP資料報格式傳輸。 IP提供不可靠、無連線的資料報傳送服務。 不可靠是指它不能保證IP資料報能成功地到達目的地,IP僅提供最好的傳輸服務,如果期間資料傳輸發生了錯誤,IP的處理演算法

學習筆記使用SQLyog連接MySQL

comm 丟失 school turn 復合主鍵 price not email pre 一、使用SQLyog創建數據庫用來管理學生信息 1 #創建數據庫student 2 DROP DATABASE IF EXISTS Myschool; 3 CREAT

Tensorflow系列使用Inception_resnet_v2訓練自己的集並用Tensorboard監控

process blog exc 系統參數 ota 可視化 自己實現 print loss 【寫在前面】 用Tensorflow(TF)已實現好的卷積神經網絡(CNN)模型來訓練自己的數據集,驗證目前較成熟模型在不同數據集上的準確度,如Inception_V3, VGG16

系統設計432. 全 O(1) 的結構

++ inf map 核心數 structure 是否為空 節點 tor lse 題目: 使用棧實現隊列的下列操作: push(x) -- 將一個元素放入隊列的尾部。 pop() -- 從隊列首部移除元素。 peek() -- 返回隊列首部的元素。 empty() --

幹貨淺談分布式庫中間件之分庫分表

-o img 資源 註意 淺談 中間件 water 大數據 分離 分庫分表,顧名思義就是把原本存儲於一個庫的數據分塊存儲到多個庫上,把原本存儲於一個表的數據分塊存儲到多個表上。那麽關於分庫分表,你了解多少呢?接下來,我們將從什麽是數據分片及如何進行分片兩方面對DDM分庫分表

已解決使用Navicat連接MySQL庫時報錯Client does not support authentication protocol requested by server; consider upgrading MySQL client

ransient nbsp .com res ctr lis org get nfa 報錯緣由:   起初在驗證一個mybatis的demo時提示“Error querying database”(見下方完整代碼),找了很多方法沒有解決,最後在貼吧找到答案。錯誤原因是安裝m

Nvidia合成集訓練機器人拾取物體,勝過真實資料訓練的機器人

Nvidia的研究人員已經找到了一種方法,可以使用在虛擬環境中建立的資料來訓練機器人在現實世界中拾取物體。用合成數據訓練的卷積神經網路系統可以使用Baxter機器人和RGB相機實時檢測物體的位置。 在實驗中,使用罐裝湯,芥末瓶和一盒Cheez-It來訓練系統輕輕地將物品放入人的手中。

servlet獲取單個一組資料

request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8"); //通過getParameter獲取單個表單元素 String g

程序5 題目利用條件運算符的嵌套來完成此題學習成績>=90分的同學A表示,60-89分之間的B表示,60分以下的C表示。 1.程序分析(a>b)?a:b這是條件運算符的基本例子。

window code 例子 prompt 利用 學習 amp text span if…else語句相對比較多,但是容易理解 1 var scroe = window.prompt("請輸入1-100之間的數") 2 scroe = parseInt

詳細資料ICN6202MIPI DSI轉LVDS芯片簡介

blog mipi png images logs log 簡介 es2017 mage ICN6202功能MIPI DSI轉LVDS,分辨率1920*1200,封裝QFN40 【詳細資料】ICN6202:MIPI DSI轉LVDS芯片簡介

完整資料TC358779XBGHDMI轉MIPI DSI芯片方案

。。 alt http 方案 es2017 com png 廣告 領域 TC358779XBG是一顆HDMI1.4轉MIPI DSI帶縮放功能的芯片,分辨率1920*1080,封裝BGA80。通信方式:IIC,電源3.3/1.8/2.2,應用領域:平板,廣告機,VR,顯示

python學習筆記36抓取去哪兒網的旅遊產品資料

學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 書上這章開篇就說了儘量找JSON格式的資料,比較方便解析(在python裡直接轉換成字典),去哪兒網PC端返回的不是JSON資料,這裡抓取的是它的移動端的資料。 如果是就散落在網頁上,我覺得就像上篇學習的那

深度學習8CNN卷積神經網路與sklearn資料集實現數字識別

前言:這個程式碼是自己閒暇無事時候寫的。 因為CNN卷積神經網路用MNIST資料集、sklearn資料集程式碼很多部分都很相似,這一篇就不附詳細說明,原始碼最下。CNN卷積神經網路的工作原理,請詳情參考——【深度學習】5:CNN卷積神經網路原理、MNIST資料

觀世界百家爭鳴全球2019大資料預測

90年前,法國詩人保羅·瓦勒裡(Paul Valery)曾寫道:“明日非同往昔。”對於始於20世紀中期的大資料趨勢來說,這句話同樣適用。如今的我們並不像多數人曾經設想的那樣,但在很多方面,未來要比現在許多人想象的更有趣。   隨著新年開啟,我們邁向了新的征程,這是個推陳出新的

深度學習5CNN卷積神經網路原理、識別MNIST資料

前言:先坦白的說,深度神經網路的學習在一開始對我造成的困擾還是很大的,我也是通過不斷地看相關的視訊資料、文獻講解嘗試去理解記憶。畢竟這些內容大多都是不可查的,我們看到的都只是輸入輸出的東西,裡面的內部運作以及工作原理,都需要沉心靜思。 這篇CNN卷積神經網路的

聊天機器人1DeepQA使用自己的資料集做chatbot

前言:這篇部落格主要是依賴網上開源的DeepQA專案,詳細介紹其使用的方法,以及需要注意的地方,並沒有做較多的改進。這個專案實現簡單,操作方便,對於想了解如何實現聊天機器人的夥伴們,是個不錯的入門之選,其後也附有我的效果展示和原始碼。 –—-—-—-—-—-—