東莞桂城網(wǎng)站建設外貿(mào)網(wǎng)站推廣服務
深度神經(jīng)網(wǎng)絡是一項令人驚嘆的技術。 有了足夠的標記數(shù)據(jù),他們可以學習為圖像和聲音等高維輸入生成非常準確的分類器。 近年來,機器學習社區(qū)已經(jīng)能夠成功解決諸如對象分類、圖像中對象檢測和圖像分割等問題。
上述聲明中的加黑字體警告是有足夠的標記數(shù)據(jù)。 對真實現(xiàn)象和現(xiàn)實世界的模擬有時會有所幫助。 在某些情況下,合成數(shù)據(jù)可以提高計算機視覺或機器人控制應用中深度學習系統(tǒng)的性能。
模擬可以為我們提供帶有免費標簽的準確場景。 但我們以俠盜獵車手 V (GTA) 為例。 研究人員利用了在 GTA V 世界中自由漫游時收集的數(shù)據(jù)集,并一直使用該數(shù)據(jù)集來引導深度學習系統(tǒng)等。 許多游戲設計師和地圖制作者都致力于創(chuàng)造 GTA V 的錯綜復雜的世界。他們一條條街道精心設計,然后對街道進行精細梳理,添加行人、汽車、物體等。
GTA V(俠盜獵車手 V)中的示例圖像
這很貴。 無論是時間還是金錢。 使用隨機模擬場景我們可能不會做得更好。 這意味著重要的編輯情況可能會嚴重采樣不足,并且我們的分類器可能無法學習如何正確檢測它們。 讓我們想象一下我們正在嘗試訓練一個檢測危險場景的分類器。 在現(xiàn)實世界中,我們會遇到如下危險場景的頻率很低,但它們卻非常重要。 如果我們生成大量隨機場景,那么像下面這樣的危險場景也很少。 對這些重要情況進行欠采樣的數(shù)據(jù)集可能會產(chǎn)生無法處理這些情況的分類器。
危險交通場景的示例。 當對合成數(shù)據(jù)進行隨機采樣時,這些重要情況可能會被欠采樣。 我們可以做得更好嗎?
學習模擬(Learning to simulate)的想法是,我們可以學習如何最佳地生成場景,以便深度網(wǎng)絡可以學習非常好的表示或可以在下游任務中表現(xiàn)良好。
為了測試我們的工作,我們使用虛幻引擎 4 和 Carla 插件創(chuàng)建了一個參數(shù)化的程序交通場景模擬器。 我們的模擬器創(chuàng)建了一條具有不同類型交叉口(X、T 或 L)的可變長度道路。 我們可以在道路上布滿建筑物,并在道路上布滿 5 種不同類型的汽車。 建筑物和汽車的數(shù)量由可調(diào)參數(shù)以及汽車的類型控制。 我們還可以在 4 種不同的天氣類型之間更改天氣,從而控制照明和降雨效果。 主要思想是學習控制不同任務(例如語義分割或?qū)ο髾z測)的這些場景特征的最佳參數(shù)。
我們的程序場景模擬器的演示。 我們改變道路的長度、交叉路口、汽車的數(shù)量、汽車的類型和房屋的數(shù)量。 所有這些都由一組參數(shù)控制。
為了獲取傳感器數(shù)據(jù),我們將一輛汽車放在生成的場景的道路上,它可以從生成的場景中捕獲 RGB 圖像,這些圖像自動具有語義分割標簽和深度標注(免費!)。
使用一組固定參數(shù)從我們的模擬器生成的場景的內(nèi)部視圖
然而,學習模擬算法比這更普遍。 我們不必專門將它用于交通場景,它可以適用于任何類型的參數(shù)化模擬器。 我們的意思是,對于任何將參數(shù)作為輸入的模擬器,我們提出了一種搜索最佳參數(shù)的方法,以便生成的數(shù)據(jù)對于深度網(wǎng)絡學習下游任務來說是最佳的。 據(jù)我們所知,我們的工作是首先進行模擬優(yōu)化,以最大限度地提高主要任務的性能,并將其應用于交通場景。
繼續(xù)我們算法的關鍵。 傳統(tǒng)的機器學習設置如下,其中數(shù)據(jù)從分布 P(x,y) 中采樣(x 是數(shù)據(jù),y 是標簽)。 通常,這是通過收集現(xiàn)實世界中的數(shù)據(jù)并手動標記樣本來實現(xiàn)的。 該數(shù)據(jù)集是固定的,我們用它來訓練我們的模型。
傳統(tǒng)機器學習
通過使用模擬器訓練主任務網(wǎng)絡,我們可以從模擬器定義的新分布 Q 生成數(shù)據(jù)。 該數(shù)據(jù)集不是固定的,我們可以在計算和時間限制允許的情況下生成盡可能多的數(shù)據(jù)。 盡管如此,在此域隨機化設置中生成的數(shù)據(jù)是從 Q 中隨機采樣的。獲得良好模型所需的數(shù)據(jù)可能很大,并且性能可能不是最佳的。 我們可以做得更好嗎?
我們引入學習模擬,它優(yōu)化了我們在主要任務上選擇的指標—通過定義與該指標直接相關的獎勵函數(shù) R 來訓練管道(通常與指標本身相同)。 我們從參數(shù)化模擬器 Q(x,y|θ) 中采樣數(shù)據(jù),用它在算法的每次迭代中訓練主要任務模型。 然后,我們定義的獎勵 R 用于通知控制參數(shù) θ 的策略的更新。 獎勵 R 是通過在驗證集上測試訓練后的網(wǎng)絡獲得的。 在我們的例子中,我們使用普通策略梯度來優(yōu)化我們的策略。
非正式地,我們試圖找到最佳參數(shù) θ,它為我們提供了分布 Q(x,y|θ),從而最大化主要任務的準確性(或任何度量)。
學習模擬
學習模擬問題的數(shù)學表述是一個雙層優(yōu)化問題。 嘗試使用基于梯度的方法解決它會對較低級別的問題造成平滑性和可微性約束。 在這種情況下,模擬器也應該是可微分的,但這通常是不正確的! 這就是為什么像普通策略梯度這樣的不需要微分的優(yōu)化方法是有意義的。
模擬優(yōu)化問題的雙層學習的數(shù)學公式
下面展示了我們的實例計數(shù)和語義分割方法。
我們探索的汽車計數(shù)任務很簡單。 我們要求網(wǎng)絡計算場景中每種特定類型的汽車數(shù)量。 下面是一個示例場景,右側(cè)有正確的標簽。
汽車計數(shù)任務示例
我們使用學習模擬來解決這個問題,并與僅使用隨機模擬所發(fā)生的情況進行比較。 在下圖中,重點關注紅色和灰色曲線,它們顯示了學習模擬 (LTS) 如何在 250 個 epoch 后獲得更高的獎勵(計算的汽車的平均絕對誤差更低)。 隨機采樣情況會短暫改善,但一旦采樣的隨機批次不足以完成任務,性能就會下降。 灰色曲線在幾次迭代中緩慢上升,但學習模擬會收斂到藍色曲線(我們使用真實模擬參數(shù))所示的最佳精度。
計車任務獎勵。 請注意學習模擬如何收斂到藍色曲線所示的最佳可能獎勵(在模擬數(shù)據(jù)集上)。
這意味著什么? 觀察它的一個好方法是可視化場景中不同場景和對象的概率。 我們繪制隨時間變化的天氣概率。 我們生成的地面實況驗證數(shù)據(jù)集對某些天氣(晴朗的中午和晴朗的日落)進行了過采樣,并對其余天氣進行了欠采樣。 這意味著晴朗的正午和晴朗的日落天氣的圖像比其他類型的天氣更多。 我們可以看到我們的算法恢復了粗略的比例!
隨時間變化的天氣概率 (logits)
讓我們對汽車生成概率做同樣的事情。 我們的地面實況數(shù)據(jù)集對某些類型的汽車(銀色日產(chǎn)和綠色甲殼蟲)進行了過采樣。 學習模擬在訓練后也反映了這些比例。 本質(zhì)上,該算法推動模擬器參數(shù)來生成與地面實況數(shù)據(jù)集相似的數(shù)據(jù)集。
隨時間變化的汽車概率(logits)
現(xiàn)在我們展示一個示例,說明學習模擬如何提高 KITTI 流量分段數(shù)據(jù)集上隨機模擬的準確性,該數(shù)據(jù)集是在現(xiàn)實世界中捕獲的數(shù)據(jù)集。
來自 KITTI 數(shù)據(jù)集的示例圖像。
我們的模擬器上的真實語義分割標簽的示例。 在模擬器中,可以免費獲得對象標簽 - 無需人工標注者
作為我們的基線,我們分別訓練主要任務模型 600 次,模擬器使用不同的隨機參數(shù)集生成數(shù)據(jù)。 我們監(jiān)控每個網(wǎng)絡的驗證 Car IoU 指標,并選擇驗證獎勵最高的一個。 然后我們在看不見的 KITTI 測試集上對其進行測試。 我們訓練學習模擬 600 次迭代,并獲得 0.579 的 Car IoU(廣泛分割指標),遠高于使用隨機參數(shù)基線(隨機參數(shù))實現(xiàn)的 0.480。 我們還展示了使用另一種無導數(shù)優(yōu)化技術(隨機搜索)的結(jié)果,該技術在本實驗中沒有取得良好的結(jié)果(盡管它在汽車計數(shù)方面確實效果很好)。 最后,我們還通過在 982 個帶標注的真實 KITTI 訓練圖像(KITTI 訓練集)上進行訓練來展示用于分割的 ResNet-50 網(wǎng)絡的實際性能,以顯示上限。
學習模擬可以被視為一種元學習算法,它調(diào)整模擬器的參數(shù)以生成合成數(shù)據(jù),以便基于這些數(shù)據(jù)訓練的機器學習模型分別在驗證集和測試集上實現(xiàn)高精度。 我們證明它在實際問題中擊敗了領域隨機化,并相信這是一個非常有前途的研究領域。 看到在不久的將來它的擴展和應用會發(fā)生什么將是令人興奮的,我鼓勵每個人研究模擬和學習模擬如何幫助你的應用或研究。
原文鏈接:學習模擬簡明教程 - BimAnt