GAN版馬裡奧創作家來了:一個樣本即可訓練,生成關卡要素豐富

2021-01-13 量子位

魚羊 發自 凹非寺量子位 報導 | 公眾號 QbitAI

對超級馬裡奧的關卡太熟悉,想玩點刺激的?

現在,漢諾瓦大學的研究人員推出了一個新的GAN,能夠生成船新、可玩的超級馬裡奧關卡。

畫風完美統一,難點出其不意:

並且,僅需要一個示例,就可以進行訓練。

比起我這樣的馬裡奧亂造家,看上去有邏輯多了。

並且,他們已經把代碼開源啦。

GAN版馬裡奧創作家

在《超級馬裡奧製造2》這款遊戲裡,玩家可以組合不同的關卡零件,憑藉自己的靈感創作超級馬裡奧關卡。

事實上,這隻名為TOAD-GAN的AI生成關卡的邏輯也與之類似。

TOAD-GAN是基於SinGAN架構的擴展,能夠生成基於token的超級馬裡奧關卡。

所謂token長這樣:

通過使用級聯的生成器和判別器,SinGAN可以僅憑單一圖像,訓練生成模型。

基於這個架構,在訓練中,一個關卡被採樣為N個不同的尺寸。

N的選擇標準,是生成器和判別器中卷積濾波器的感受野能夠覆蓋最小尺寸下關卡高度的至少一半。

這樣一來,既可以確保關卡中較大的結構被正確建模,也能保障其全局位置的變化。

在空間下採樣的過程中,一些小但重要的結構可能會丟失。為此,研究人員提出了一種保留重要token的下採樣方法。

具體步驟如下:

首先,在單樣本編碼的訓練關卡上,使用雙線性下採樣來創建所選尺寸的基礎關卡。

針對每個尺寸中的每個像素,選擇值大於0的token。並從該列表中,保留層次結構中等級最高的token,將其餘token設置為0。

然後,在每個像素的所有通道上應用Softmax。

接著,還需要對較小尺寸的輸出進行雙線性上採樣。

這樣,TOAD-GAN就可以通過將預定義輸入注入到生成器級聯中,來執行關卡編寫。

研究人員表示,這種應用對於程序內容生成而言十分有趣,因為給定token,設計者只需指定參考關卡或布局,生成器就會自動創建其變體,對數據量的要求並不高。

實驗結果

研究人員對TOAD-GAN生成的結果進行了定性對比。

可以看出,與超級馬裡奧的原生關卡相比,TOAD-GAN生成的關卡在保留了風格的基礎上,產生了不同的元素組合方式。

與此前的其他方法不同的是,TOAD-GAN是一個生成器對應一個關卡。這也就避免了不同類型的關卡風格被混合到一起,造成混亂。

並且,也不會因為依賴於小樣本的問題,而導致(p)中出現的重複情況。

所以,TOAD-GAN生產成本的遊戲關卡在視覺效果上,更加令人信服。

研究人員還用Baumgarten等人提出的馬裡奧通關AI,驗證了生成關卡的有效性。通關AI能在65%的隨機生成關卡中取勝。在原生關卡中,其勝率是52%。

不只是超級馬裡奧

其實,不只是超級馬裡奧,研究人員也通過實驗證明,TOAD-GAN可以生成任何基於token的遊戲的關卡,比如超級馬裡奧賽車。

TOAD-GAN只用原生賽道樣本進行訓練。

對布局進行種子化處理,就可以保證賽車軌道的連接性和可玩性,還能讓軌道結構與原始樣本產生明顯的不同。

研究人員還表示,下一步他們還會將遊戲機制揉進生成過程中,並將TOAD-GAN應用於Minecraft這樣的像素遊戲,或具有非線性關卡結構的迷宮遊戲。

相關焦點

  • GAN(生成對抗網絡)萬字長文綜述
    點擊文末「閱讀原文」立刻申請入群~本文介紹了一篇最新的有關GAN綜述的paper,四十餘頁,介紹了GAN的各個方面,關注「極市平臺」,在公眾號後臺回復GAN,即可獲取本文PDF版文件下載。考慮如下理想情況,一個訓練良好的 GAN,真實數據分布 Pdata 和生成數據分布 Pg 完全重合,判別器決策面穿過真實數據點,所以,反過來,我們利用樣本點離決策面的遠近來度量生成樣本的質量,樣本離決策面越近,則 GAN 訓練的越好。
  • 生成式對抗網絡GAN的高級議題
    最近引入了生成對抗網作為訓練生成模型的新方法,即創建能夠生成數據的模型。它們由兩個"對抗"模式:生成模型G獲得數據和判別模型D來估計訓練數據提供的樣本的準確性。G和D可能是一個非線性映射函數,如多層感知。在生成對抗網絡(GAN)中,我們有兩個神經網絡在零和遊戲中相互對抗,其中第一個網絡,即生成器,其任務是欺騙第二個網絡,即鑑別器。
  • 萬字綜述之生成對抗網絡(GAN)
    為了保證 V(D,G) 取得最大值,所以我們通常會訓練迭代k次判別器,然後再迭代1次生成器(不過在實踐當中發現,k 通常取 1 即可)。考慮如下理想情況,一個訓練良好的 GAN,真實數據分布 Pdata 和生成數據分布 Pg 完全重合,判別器決策面穿過真實數據點,所以,反過來,我們利用樣本點離決策面的遠近來度量生成樣本的質量,樣本離決策面越近,則 GAN 訓練的越好。上圖 b 中,一些離決策面比較遠的點,雖然被分類正確,但是這些並不是好的生成樣本。
  • 超全的GAN PyTorch+Keras實現集合
    (GAN)是一種學習框架,它依賴訓練判別器來度量目標和生成分布之間的差距。正如通常所說的,GAN 依賴於生成的樣本對生成器的參數是完全可微的,因此它是適用於離散數據。作者引入了一種用離散數據訓練 GAN 的方法,該方式使用判別器的差異度量來計算生成樣本的重要權重,從而為訓練生成器提供策略梯度。此外,重要權重與判別器的決策邊界有非常強的聯繫,因此作者們稱這種方法為 boundary-seeking GAN(BGAN)。
  • 如何使用GAN做一個禿頭生產器
    生成對抗網絡介紹  說到圖像生成,就必須說到GAN,它是一種非監督學習的方式,通過讓兩個神經網絡相互博弈的方法進行學習,該方法由lan Goodfellow等人在2014年提出。生成對抗網絡由一個生成網絡和一個判別網絡組成,生成網絡從潛在的空間(latent space)中隨機採樣作為輸入,其輸出結果需要儘量模仿訓練集中的真實樣本。
  • 只需130 行代碼,用 GAN 生成二維樣本的小例子
    這是一份用一維均勻樣本作為特徵空間(latent space)樣本,經過生成網絡變換後,生成高斯分布樣本的代碼。結構非常清晰,卻有一個奇怪的問題,就是判別器(Discriminator)的輸入不是2維樣本,而是把整個mini-batch整體作為一個維度是batch size(代碼中batch size等於cardinality)那麼大的樣本。
  • 訓練不穩定、調參難度大,這裡有 7 大法則帶你規避 GAN 訓練的坑!
    也就是說,給定一組訓練數據,GAN 可以學會估計數據的底層概率分布。這一點非常有用,因為我們現在可以根據學到的概率分布生成原始訓練數據集中沒有出現過的樣本。如上面的連結所示,這催生了一些非常實用的應用程式。該領域的專家已經提供了一些很棒的資源來解釋 GAN 以及它們的工作遠離,所以本文在這裡不會重複他們的工作。但是為了保持文章的完整性,在這裡對相關概念進行簡要的回顧。
  • GAN快速入門資料推薦:17種變體的Keras開原始碼,附相關論文
    在這類GAN變體中,生成器生成的每張圖像,都帶有一個類別標籤,鑑別器也會同時針對來源和類別標籤給出兩個概率分布。論文中描述的模型,可以生成符合1000個ImageNet類別的128×128圖像。在論文中,研究人員給出了用MNIST和多倫多人臉數據集 (TFD)訓練的模型所生成的樣本。
  • 用GAN來做圖像生成,這是最好的方法
    前言在我們之前的文章中,我們學習了如何構造一個簡單的 GAN 來生成 MNIST 手寫圖片。對於圖像問題,卷積神經網絡相比於簡單地全連接的神經網絡更具優勢,因此,我們這一節我們將繼續深入 GAN,通過融合卷積神經網絡來對我們的 GAN 進行改進,實現一個深度卷積 GAN。如果還沒有親手實踐過 GAN 的小夥伴可以先去學習一下上一篇專欄:生成對抗網絡(GAN)之 MNIST 數據生成。
  • 萬字長文解讀GAN:從基本概念、原理到實際應用
    為了保證 V(D,G) 取得最大值,所以我們通常會訓練迭代 k 次判別器,然後再迭代 1 次生成器(不過在實踐當中發現,k 通常取 1 即可)。考慮如下理想情況,一個訓練良好的 GAN,真實數據分布 pdata 和 pg 生成數據分布 完全重合,判別器決策面穿過真實數據點,所以,反過來,我們利用樣本點離決策面的遠近來度量生成樣本的質量,樣本離決策面越近,則 GAN 訓練的越好。
  • 史上最全GAN綜述2020版:算法、理論及應用
    接著,GAN 表示了從噪聲空間到數據空間的映射 G(z, θ_g),其中 G 是一個由參數為 θ_g 的神經網絡表示的可微函數。除了 G 之外,另一個神經網絡 D(x, θ_d) 也用參數 θ_d 定義,D(x) 的輸出是一個標量。D(x) 表示了 x 來自真實數據而不是來自生成器 G 的概率。我們對判別器 D 進行訓練,以最大化為訓練數據和生成器 G 生成的假樣本提供正確標籤的概率。
  • 先融合再填充,上海交大提出少樣本圖像生成新方法F2GAN
    少樣本圖像生成(few-shot image generation)任務是指用已知類別(seen category)的大量圖片訓練出一個生成模型,然後給定某個未知類別(unseen category)的少量圖片,即可為該未知類別生成大量真實且多樣的圖片。少樣本圖像生成屬於圖像數據增廣的範疇,可用來輔助很多下遊任務,如少樣本圖像分類等。
  • 生成對抗網絡的最新研究進展
    使用這種迭代訓練方法,我們最終得到一個真正擅長生成類似於目標樣本的樣本的生成器。GAN 有大量的應用程式,因為它們可以學習模擬幾乎任何類型的數據分布。一般來說,GAN 可以用於處理超低解析度的圖像以及任何類型的圖像翻譯等等,如下所示:
  • GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!
    一種方法是定義一個明確的密度函數,然後直接的根據最大似然框架進行參數估計。另外一種方法是使用一個不明確的密度函數記性數據分布估計,不需要使用Pmodel的解析形式。還有一些想法是借用最小包圍球的原理來訓練生成器,訓練和生成的數據,在被映射到特徵空間後,被封閉在同一個球體中。這種方法最為著名的先驅應用是生成對抗網絡(GAN),它是一種表達生成模型,具備生成自然場景的尖銳和真實圖像的能力。
  • 不到200 行代碼,教你如何用 Keras 搭建生成對抗網絡(GAN)
    它的核心思想是:同時訓練兩個相互協作、同時又相互競爭的深度神經網絡(一個稱為生成器 Generator,另一個稱為判別器 Discriminator)來處理無監督學習的相關問題。在訓練過程中,兩個網絡最終都要學習如何處理任務。通常,我們會用下面這個例子來說明 GAN 的原理:將警察視為判別器,製造假幣的犯罪分子視為生成器。一開始,犯罪分子會首先向警察展示一張假幣。
  • Ian Goodfellow:GAN相比其他生成模型的優缺點及應用
    生成對抗網絡的簡單介紹如下,訓練一個生成器(Generator,簡稱G),從隨機噪聲或者潛在變量(Latent Variable)中生成逼真的的樣本,同時訓練一個鑑別器(Discriminator,簡稱D)來鑑別真實數據和生成數據,兩者同時訓練,直到達到一個納什均衡,生成器生成的數據與真實樣本無差別,鑑別器也無法正確的區分生成數據和真實數據。GAN的結構如圖1所示。
  • 十個生成模型(GANs)的最佳案例和原理 | 代碼+論文
    一個網絡稱為生成器(generator),能將噪聲作為輸入並生成樣本;另一個網絡稱為鑑別器(discriminator),能接收生成器數據和真實訓練數據,訓練得到能正確區分數據類型的分類器。這兩個網絡互相對抗。其中,生成器通過學習來產生更逼近真實數據的新樣本,用於愚弄鑑別器,反之鑑別器也需要更好地區分生成數據與真實數據。
  • 乾貨| 直觀理解GAN背後的原理:以人臉圖像生成為例
    最優辨別器給定一張圖片,辨別器必須找到正確區分真實和生成的人臉的部分。直觀上說,當辨別器中的一些隱藏神經元看到比如眼睛,嘴巴,頭髮等物體時,他們就會被激活。這些特徵對之後的其他任務比如分類是很有用的。如何訓練我們共同訓練生成器和辨別器,讓他們變得強壯,通過反覆訓練防止其中一個網絡比另一個網絡強大太多。
  • 都在GAN什麼?系列(三)CGAN
    Conditional Generative Adversarial NetsAdversarial Networks 2014原始GAN雖然能夠生出大量的新樣本,但卻沒有辦法控制想生成的樣本的類型。比如在一個包含各種單品的Fashion MNIST數據集的生成訓練裡,我們只想要生成T shirt,帽子,鞋子。
  • 使用Wasserstein GAN生成小狗圖像
    一.前期學習經過GAN(Generative Adversarial Nets)是生成對抗網絡的簡稱,由生成器和判別器組成,在訓練過程中通過生成器和判別器的相互對抗,來相互的促進、提高。最近一段時間對GAN進行了學習,並使用GAN做了一次實踐,在這裡做一篇筆記記錄一下。