資源|帶自注意力機制的生成對抗網絡,實現效果怎樣?

2021-01-17 機器之心Pro

在前一段時間,Han Zhang 和 Goodfellow 等研究者提出添加了自注意力機制的生成對抗網絡,這種網絡可使用全局特徵線索來生成高解析度細節。本文介紹了自注意力生成對抗網絡的 PyTorch 實現,讀者也可以嘗試這一新型生成對抗網絡。

項目地址:https://github.com/heykeetae/Self-Attention-GAN

這個資源庫提供了一個使用 PyTorch 實現的 SAGAN。其中作者準備了 wgan-gp 和 wgan-hinge 損失函數,但注意 wgan-gp 有時與譜歸一化(spectral normalization)是不匹配的;因此,作者會移除模型所有的譜歸一化來適應 wgan-gp。

在這個實現中,自注意機制會應用到生成器和鑑別器的兩個網絡層。像素級的自注意力會增加 GPU 資源的調度成本,且每個像素有不同的注意力掩碼。Titan X GPU 大概可選擇的批量大小為 8,你可能需要減少自注意力模塊的數量來減少內存消耗。

目前更新狀態:

注意力可視化 (LSUN Church-outdoor)無監督設置(現未使用標籤)已應用:Spectral Normalization(代碼來自 https://github.com/christiancosgrove/pytorch-spectral-normalization-gan)已實現:自注意力模塊(self-attention module)、兩時間尺度更新規則(TTUR)、wgan-hinge 損失函數和 wgan-gp 損失函數

結果

下圖展示了 LSUN 中的注意力結果 (epoch #8):

SAGAN 在 LSUN church-outdoor 數據集上的逐像素注意力結果。這表示自注意力模塊的無監督訓練依然有效,即使注意力圖本身並不具有可解釋性。更好的圖片生成結果以後會添加,上面這些是在生成器第層 3 和層 4 中的自注意力的可視化,它們的尺寸依次是 16 x 16 和 32 x 32,每一張都包含 64 張注意力圖的可視化。要可視化逐像素注意力機制,我們只能如左右兩邊的數字顯示選擇一部分像素。

CelebA 數據集 (epoch on the left, 還在訓練中):

LSUN church-outdoor 數據集 (epoch on the left, 還在訓練中):

訓練環境:

Python 3.5+ (https://www.continuum.io/downloads)PyTorch 0.3.0 (http://pytorch.org/)

用法

1. 克隆版本庫

$ git clone https://github.com/heykeetae/Self-Attention-GAN.git$ cd Self-Attention-GAN

2. 下載數據集 (CelebA 或 LSUN)

$ bash download.sh CelebAor$ bash download.sh LSUN

3. 訓練

$ python python main.py --batch_size 6 --imsize 64 --dataset celeb --adv_loss hinge --version sagan_celebor$ python python main.py --batch_size 6 --imsize 64 --dataset lsun --adv_loss hinge --version sagan_lsun

4. 享受結果吧~

$ cd samples/sagan_celebor$ cd samples/sagan_lsun

每 100 次迭代生成一次樣本,抽樣率可根據參數 --sample_step (ex,—sample_step 100) 控制。

論文:Self-Attention Generative Adversarial Networks

論文地址:https://arxiv.org/abs/1805.08318

在此論文中,我們提出了自注意生成式對抗網絡(SAGAN),能夠為圖像生成任務實現注意力驅動的、長範圍的依存關係建模。傳統的卷積 GAN 只根據低分辨特徵圖中的空間局部點生成高解析度細節(detail)。在 SAGAN 中,可使用所有特徵點的線索來生成高解析度細節,而且鑑別器能檢查圖片相距較遠部分的細微細節特徵是否彼此一致。不僅如此,近期研究表明鑑別器調節可影響 GAN 的表現。根據這個觀點,我們在 GAN 生成器中加入了譜歸一化(spectral normalization),並發現這樣可以提高訓練動力學。我們所提出的 SAGAN 達到了當前最優水平,在極具挑戰性的 ImageNet 數據集中將最好的 inception 分數記錄從 36.8 提高到 52.52,並將 Frechet Inception 距離從 27.62 減少到 18.65。注意力層的可視化展現了生成器可利用其附近環境對物體形狀做出反應,而不是直接使用固定形狀的局部區域。

相關焦點

  • 理解卷積神經網絡中的自注意力機制
    這篇文章討論了語義分割和編碼器-解碼器架構作為例子,闡明了其局限性,以及為什麼自注意機制可以幫助緩解問題。這種機制叫做自注意力。圖3: CNN中的自注意力機制為了實現對每個像素級預測的全局參考,Wang等人在CNN中提出了自我注意機制
  • 揭秘騰訊變臉魔法,生成對抗網絡GAN的威力是什麼?
    揭秘騰訊變臉魔法,生成對抗網絡GAN的威力是什麼?不管是創造了微視視頻特效製作量新紀錄的王者臉,還是在QQ上線的全球首創光頭特效,都是騰訊光影研究室利用生成式對抗網絡 GAN所製造的魔法。隨著GAN網絡在生成質量上的不斷提高,它越來越頻繁地落地到社交娛樂場景中,給用戶帶去最直觀、新鮮的AI體驗。左右互搏生成完美圖片,AI界的"網紅"技術那麼使得新型變臉特效得以實現的生成式對抗網絡 GAN,究竟是什麼?它是由美國科學家Ian Goodfellow發明,試圖讓計算機自己生成逼真圖片的AI技術。
  • AAAI 2020|南京大學:利用多頭注意力機制生成多樣性翻譯
    當下的神經機器翻譯(Neural Machine Translation, NMT)已經擁有很強的翻譯性能,在諸多模型之中,Transformer模型取得了最好的效果。其區別於傳統模型之處在兩個方面:自注意力機制(Self-Attention)以及多頭注意力機制(Multi-Head Attention)。
  • 輕鬆構建 PyTorch 生成對抗網絡(GAN)
    本文的課題是用機器學習方法『模仿手寫字體』,為了完成這個課題,您將親手體驗生成對抗網絡的設計和實現。『模仿手寫字體』與人像生成的基本原理和工程流程基本是一致的,雖然它們的複雜性和精度要求有一定差距,但是通過解決『模仿手寫字體』問題,可以為生成對抗網絡的原理和工程實踐打下基礎,進而可以逐步嘗試和探索更加複雜先進的網絡架構和應用場景。《生成對抗網絡》(GAN)由 Ian Goodfellow 等人在 2014年提出,它是一種深度神經網絡架構,由一個生成網絡和一個判別網絡組成。
  • 生成對抗網絡生成樣本 - CSDN
    如果說卷積神經網絡是昔日影帝的話,那麼生成對抗已然成為深度學習研究領域中一顆新晉的耀眼新星,它將徹底地改變我們認知世界的方式。
  • 注意力機制Attention
    注意力機制(attention mechanism)Attention實質上是一種分配機制,其核心思想是突出對象的某些重要特徵。根據Attention對象的重要程度,重新分配資源,即權重,實現核心思想是基於原有的數據找到其之間的關聯性,然後突出其某些重要特徵。注意力可以被描述為將一個查詢和一組鍵值對映射到一個輸出,其中查詢、鍵、值和輸出都是向量。
  • 無需標註數據集,自監督注意力機制就能搞定目標跟蹤
    接著介紹了這個概念如何啟發深度學習跟蹤系統,以及自監督和視覺注意力在這些系統的開發中如何發揮關鍵作用。文中所討論的技術主要應用於行人跟蹤、自動車輛導航以及許多新的應用。如果你在為數據集的製作發愁,或許自監督注意力機制可以幫助到您。
  • 拋棄注意力,類Transformer新模型實現新SOTA
    利用lambda生成的神經網絡 LambdaNetwork 計算效率很高,能夠以很小的內存成本建模長程依賴,因而可用於高解析度圖像等大型結構化輸入。研究者在計算機視覺任務上評估了 LambdaNetwork,在這些任務上,自注意力顯示出了希望,但遇到了內存成本高昂和無法實際實現的問題。
  • 自然語言處理中注意力機制綜述
    注意力機制首先從人類直覺中得到,在nlp領域的機器翻譯任務上首先取得不錯的效果。簡而言之,深度學習中的注意力可以廣義地解釋為重要性權重的向量:為了預測一個元素,例如句子中的單詞,使用注意力向量來估計它與其他元素的相關程度有多強,並將其值的總和作為目標的近似值。既然注意力機制最早在nlp領域應用於機器翻譯任務,那在這個之前又是怎麼做的呢?
  • 生成對抗網絡的最新研究進展
    生成對抗網絡的工作原理給定一組目標樣本,生成器試圖生成一些能夠欺騙判別器、使判別器相信它們是真實的樣本。判別器試圖從假(生成)樣本中解析真實(目標)樣本。8.自我關注機制「Self Attention GANs」的作者聲認為,用於生成圖像的卷積著眼於局部傳播的信息。也就是說,由於接受領域有限,這些卷積錯過了全局關係。
  • AI實驗之條件對抗生成網絡CGAN
    前面寫過文章,使用mma實現生成對抗網絡GAN來生成MNIST圖片,但是生成樣本是隨機的,GAN有很多變形,有些可以實現根據標籤生成特定的圖片,MNIST數據集提供了標籤,可以用來做根據標籤生成圖片如果你的數據沒有標籤,那就只能使用基礎的GAN隨機生成樣本,如果有標籤,就可以使用下面的方式,至於怎麼來給沒有標籤的數據加標籤,這裡就不討論了
  • 雲計算必備知識-基於PyTorch機器學習構建生成對抗網絡
    一個優秀的GAN應用需要有良好的訓練方法,否則可能由於神經網絡模型的自由性而導致輸出不理想。生成對抗網絡被廣泛應用於廣告、遊戲、娛樂、媒體、製藥等行業,可以用來創造虛構的人物、場景,模擬人臉老化,圖像風格變換,以及產生化學分子式等等。下面兩張圖片,分別展示了圖片到圖片轉換的效果,以及基於語義布局合成景物的效果。
  • 生成對抗網絡經典論文推薦10篇
    生成式對抗網絡(Generative adversarial networks, GAN)是當前人工智慧學界最為重要的研究熱點之一。其突出的生成能力不僅可用於生成各類圖像和自然語言數據,還啟發和推動了各類半監督學習和無監督學習任務的發展。
  • 拋棄注意力,類Transformer新模型跨界視覺任務實現新SOTA
    利用lambda生成的神經網絡 LambdaNetwork 計算效率很高,能夠以很小的內存成本建模長程依賴,因而可用於高解析度圖像等大型結構化輸入。研究者在計算機視覺任務上評估了 LambdaNetwork,在這些任務上,自注意力顯示出了希望,但遇到了內存成本高昂和無法實際實現的問題。
  • 深度學習中的注意力機制(三)
    包括但不限於:「基於強化學習的注意力機制」:選擇性的Attend輸入的某個部分「全局&局部注意力機制」:其中,局部注意力機制可以選擇性的Attend輸入的某些部分「多維度注意力機制」:捕獲不同特徵空間中的Attention特徵。
  • 深度學習界明星:生成對抗網絡與Improving GAN
    2016年12月NIPS大會上,Goodfellow做了關於GANs的專題報告,使得GANs成為了當今最熱門的研究領域之一,本文將介紹如今深度學習界的明星——生成對抗網絡。1何為生成對抗網絡生成對抗網絡,根據它的名字,可以推斷這個網絡由兩部分組成:第一部分是生成,第二部分是對抗。
  • 自注意力機制(Self-Attention)的基本知識
    這裡我們關注的是基本的Self-Attention機制是如何工作的,這是Transformers模型的第一層。本質上,對於每個輸入向量,Self-Attention產生一個向量,該向量在其鄰近向量上加權求和,其中權重由單詞之間的關係或連通性決定。
  • 注意力機制及其理解
    注意力機制逐漸在NLP中得地位變得越來越重要,上有Google的"Attention is All You Need"論文,下有 Tranformer、BERT等強大的NLP表徵模型,attention 在 NLP 的地位就像卷積層在圖像識別一樣變得不可缺少的一部分。在這裡,總結下注意力機制,並回顧下最近的一些的研究進展。
  • 生成對抗網絡(GANs)最新家譜:為你揭秘GANs的前世今生
    這也說明了GANs的另一局限——生成結構性的內容。  Improved DCGANs的使用場景如下  生成更高解析度的圖像  條件生成式對抗網絡(Conditional GANs, cGANs)  條件式生成式對抗網絡使用額外的標籤信息用於生成更高質量圖片,並且使圖片的呈現可控制。
  • 百度AAAI 2018錄用論文:基於注意力機制的多通道機器翻譯模型
    在這一過程中,每個字符都要進行單獨處理,最後生成字嵌入後的原序列。圖中在字嵌入層的上方,NMT 使用雙向循環神經網絡(biRNN) 經訓練得到整個原序列的表示。在編碼層與解碼層之間,加入注意力機制融合輸入序列的全部的時間步(time step),並將注意力放到解碼層的當前時間步上。