學界 | 面向無監督任務:DeepMind提出神經離散表示學習生成模型VQ-VAE

 2017-11-10 12:27:00.0

原標題:學界 | 面向無監督任務:DeepMind提出神經離散表示學習生成模型VQ-VAE

選自arXiv

參與:路雪、李澤南

DeepMind 最近提出的 VQ-VAE 是一種簡單而強大的生成模型,結合向量量化和變分自編碼器學習離散表示,實現在圖像識別、語音和對話等任務上的無監督學習。

近期,圖像、音頻、視頻領域生成模型的發展產生了驚人的案例與應用。同時,few-shot 學習、域適應或強化學習這樣具有挑戰性的任務也極爲依賴從原始數據學習到的表徵。但以無監督方式訓練的通用表徵的有效性仍無法成爲該領域的主流方法。

最大似然和重構誤差(reconstruction error)是在像素域中訓練無監督模型常用的兩種目標函數,但是它們的有效性取決於使用特徵的特定應用。DeepMind 的目標是構建一個模型,在其潛在空間(latent space)中保存數據的重要特徵,同時優化最大似然。正如 [7] 中的研究,最好的生成模型(以最大似然來衡量)是那些沒有隱變量但是具備強大解碼器的模型(如 PixelCNN)。在這篇論文中,DeepMind 提出學習離散、有用的隱變量也是一種很好的方法,並在多個領域中進行證實。

使用連續特徵學習表示是之前很多研究的重點,但是 DeepMind 把目光放在離散表示上,離散表示有可能更適合 DeepMind 感興趣的很多模態(modality)。語言是內在離散的,類似地,語音通常表示爲符號序列。圖像通常可以通過語言進行精確描述 [40]。此外,離散表示適合複雜的推理、規劃和預測性學習(如,如果下雨了,我就打傘)。在深度學習中使用離散隱變量證明,已經開發出難度高、強大的自迴歸模型,可用於對離散變量的分佈進行建模 [37]。

這篇論文中,DeepMind 介紹了一族新的生成模型,通過對(離散)隱變量的後驗分佈進行新型參數化,成功地將變分自編碼器(VAE)框架和離散隱變量表示結合起來。該模型依賴於向量量化(vector quantization,VQ),易於訓練,不會出現大的變量,避免「後驗崩潰」(posterior collapse)問題,該問題通常由被忽略的隱變量引起,對很多具有強大解碼器的 VAE 模型來說都是個難題。此外,該模型也是首個離散隱變量 VAE 模型,其性能和連續隱變量 VAE 模型類似,同時還具備離散分佈的靈活性。DeepMind 將這種模型命名爲 VQ-VAE。

因爲 VQ-VAE 可以有效利用潛在空間,它可以有效地對通常跨越數據空間多個維度的重要特徵進行建模(例如對象跨越圖像中的多個像素、語音對話中的音素、文本片段中的信息等等),而非把注意力集中在噪聲或其他細微之處——這些細節往往是局部的。

最後,當 VQ-VAE 發現了一種模態的優秀離散隱變量結構,我們就可以在這些離散隨機變量上訓練強大的先驗,得到有意義的樣本和有用的應用。例如,在語音任務中,我們可以在沒有任何監督或單詞音素先驗知識的情況下發現語言的潛在結構。此外,我們可以給解碼器賦予說話者的角色,讓它展開對話,如讓語音在兩個說話者之間傳遞,但不改變說話內容。DeepMind 還在論文中展示了利用此方法在強化學習環境中學習長期結構的高性能。

這篇論文的貢獻可概括爲:

  • 介紹 VQ-VAE 模型,這是一個簡單模型,使用離散隱變量,不會出現「後驗崩潰」和變量問題。

  • 證明離散隱變量模型(VQ-VAE)和它在 log 似然中的連續隱變量模型的性能一樣好。

  • 當和強大的先驗一起出現時,DeepMind 的樣本在大量應用(比如語音和視頻生成)上都是連貫且高質量的。

  • 證明可以在無監督的情況下,通過原材料學習語言,並展示了無監督說話者對話的應用。

VQ-VAE

或許和 DeepMind 的方法聯繫最緊密的就是 VAE。VAE 包括以下幾個部分:1)一個編碼器網絡,對後驗分佈 q(z|x) 進行參數化,z 是離散隱隨機變量,x 爲輸入數據;2)先驗分佈 p(z);3)一個解碼器,它的輸入數據分佈是 p(x|z)。

通常,VAE 中的後驗分佈和先驗分佈呈對角協方差分佈,允許使用高斯重參數化 [32, 23]。其擴展包括自迴歸先驗和後驗模型 [14]、常規流(normalising flow)[31, 10],和逆自迴歸後驗模型 [22]。

這篇論文介紹了 VQ-VAE,該模型使用離散隱變量,受向量量化的啓發用一種新的方式進行訓練。後驗和先驗分佈是明確分類的,從這些分佈中提取的樣本可通過嵌入表進行索引。然後將這些嵌入作爲解碼器網絡的輸入。

圖 1. 左:VQ-VAE 圖示。右:嵌入空間可視化。編碼器 z(x) 的輸出映射到最近點 e_2。梯度∇zL(紅色)使編碼器改變輸出,從而改變下一個前向傳輸的配置。

圖 2. 左:ImageNet 128x128x3 圖像,右:潛在空間爲 32x32x1、K=512 的 VQ-VAE 輸出的重構結果。

圖 5. 上方:原始圖像,下方:兩階段 VQ-VAE 的重構結果,使用 3 個隱變量對整個圖像(27 bits)進行建模,這樣的模型仍然不能對圖像進行完美重構。重構結果是由第一階 VQ-VAE 的 21×21 潛在域中的第二個 PixelCNN 先驗採樣而來,隨後被標準 VQ-VAE 解碼器解碼爲 84×84。很多原始場景,包括紋理、房間佈局和附近的牆壁都保留原狀,但模型沒有試圖去儲存像素值,這意味着紋理是由 PixelCNN 生成的。

論文:Neural Discrete Representation Learning

論文鏈接:https://arxiv.org/abs/1711.00937

論文第一作者 Aaron van den Oord 也在 GitHub 上展示了新模型的一些結果:https://avdnoord.github.io/homepage/vqvae/

摘要:在無監督情況下學習有意義的表示是機器學習的一個核心挑戰。在本論文中,我們提出了一個簡單卻強大的生成模型,該模型可以學習此類離散表示。我們提出了向量量化-變分自編碼器(Vector Quantised-Variational AutoEncoder,VQ-VAE),它與 VAE 在兩個關鍵的方面存在不同:1. 編碼器網絡輸出離散而不是連續的代碼;2. 先驗是學習的,而非靜止的。爲了學習離散隱變量表示,我們吸收了向量量化(VQ)的思路。使用 VQ 方法可以讓模型繞過「後期崩潰」的問題——隱變量在遇到強大的自迴歸解碼器時被忽略,這種問題通常會在 VAE 框架中出現。通過讓這些表示和自迴歸先驗配對,模型可以生成高質量的圖像、視頻、語音,以及高質量對話,也可以在無監督的情況下學習音素,本研究進一步證明了已學得表示的實用性。

本文爲機器之心編譯,轉載請聯繫本公衆號獲得授權。

責任編輯:

文章來源:機器之心