【平價資料】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。
經過若干次迭代得到的改善器
- 品質和真實影象難以分辨
- 保持合成樣本原有類標不變
改進:區域性損失
問題
隨著迭代進展,鑑別器
舉例:真實影象中可能只包含幾個固定視線方向的樣本,但合成影象的視線方向則均勻而連續。於是鑑別器“劍走偏鋒”地以視線方向作為真假樣本的判別標準。1
解決
本文在訓練鑑別器
除了避免全域性資訊引入artifact之外,這種方法還能夠增加訓練樣本的數量。
改進:歷史資訊
問題
隨著每一次迭代,改善器
- 對抗訓練不收斂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個關節標定結果。
結果
改善資料能夠逼真模擬真實資料中的噪聲。
使用改善資料訓練的分類器指標具有明顯優勢。
相關推薦
【平價資料】SimGAN:活用合成數據和無監督資料
Shrivastava, Ashish, et al. “Learning from simulated and unsupervised images through adversarial training.” IEEE Conference on C
【java web】springMVC框架實現用多選框批量刪除表資料功能
本功能是基於springMVC+mybatis框架實現的,實現過程如下: jsp程式碼: <c:forEach items="${requestScope.movies}" var="movie" varStatus="status"> <
【學習筆記】四:變量、作用域和內存問題
允許 幫助 範圍 訪問內存 常用 ie9 值傳遞 問題: eof 1.引用類型的值 引用類型的值是指保存在內存中的對象,JavaScript不允許直接訪問內存中的位置,因此在操作對象時,實際上是操作的引用而不是實際的對象。(嚴密的說法是:當復制保存著對象的某個變量時,
【TCP/IP】IP:網際協議(定址和路由)
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
【程式48】 題目:某個公司採用公用電話傳遞資料,資料是四位的整數, 在傳遞過程中是加密的,加密規則如下:每位數字都加上5, 然後用和除以10的餘數代替該數字,再將第一位和第四位交換, 第二位
/* 2017年3月13日11:46:14 java基礎50道經典練習題 例48 Athor: ZJY Purpose: 【程式48】 題目:某個公司採用公用電話傳遞資料,資料是四位
【程序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
【詳細資料】ICN6202:MIPI DSI轉LVDS芯片簡介
blog mipi png images logs log 簡介 es2017 mage ICN6202功能MIPI DSI轉LVDS,分辨率1920*1200,封裝QFN40 【詳細資料】ICN6202:MIPI DSI轉LVDS芯片簡介
【完整資料】TC358779XBG:HDMI轉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資料,這裡抓取的是它的移動端的資料。 如果是就散落在網頁上,我覺得就像上篇學習的那
【深度學習】8:CNN卷積神經網路與sklearn資料集實現數字識別
前言:這個程式碼是自己閒暇無事時候寫的。 因為CNN卷積神經網路用MNIST資料集、sklearn資料集程式碼很多部分都很相似,這一篇就不附詳細說明,原始碼最下。CNN卷積神經網路的工作原理,請詳情參考——【深度學習】5:CNN卷積神經網路原理、MNIST資料
【觀世界】百家爭鳴:全球2019大資料預測
90年前,法國詩人保羅·瓦勒裡(Paul Valery)曾寫道:“明日非同往昔。”對於始於20世紀中期的大資料趨勢來說,這句話同樣適用。如今的我們並不像多數人曾經設想的那樣,但在很多方面,未來要比現在許多人想象的更有趣。 隨著新年開啟,我們邁向了新的征程,這是個推陳出新的
【深度學習】5:CNN卷積神經網路原理、識別MNIST資料集
前言:先坦白的說,深度神經網路的學習在一開始對我造成的困擾還是很大的,我也是通過不斷地看相關的視訊資料、文獻講解嘗試去理解記憶。畢竟這些內容大多都是不可查的,我們看到的都只是輸入輸出的東西,裡面的內部運作以及工作原理,都需要沉心靜思。 這篇CNN卷積神經網路的
【聊天機器人】1:DeepQA使用自己的資料集做chatbot
前言:這篇部落格主要是依賴網上開源的DeepQA專案,詳細介紹其使用的方法,以及需要注意的地方,並沒有做較多的改進。這個專案實現簡單,操作方便,對於想了解如何實現聊天機器人的夥伴們,是個不錯的入門之選,其後也附有我的效果展示和原始碼。 –—-—-—-—-—-—