精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

是什么讓變分自編碼器成為如此成功的多媒體生成工具呢?

nlfO_thejiangme ? 來源:未知 ? 作者:李倩 ? 2018-04-19 16:48 ? 次閱讀

與經常作為分類器的神經網絡相比,變分自編碼器是一種十分著名的生成模型,目前被廣泛用于生成偽造的人臉照片,甚至可以用于生成美妙的音樂。然而是什么讓變分自編碼器成為如此成功的多媒體生成工具呢?讓我們來一探其背后的究竟。

當我們使用生成模型時也許只想生成隨機的和訓練數據類似的輸出,但如果想生成特殊的數據或者在已有數據上進行一定的探索那么普通的自動編碼器就不一定能滿足了。而這正是變分自編碼器的獨特之處。

標準自編碼器

一個標準的自編碼器網絡實際上是一對兒相互連接的神經網絡,包括編碼器和解碼器。編碼器神經網絡將輸入數據轉化為更小更緊湊的編碼表達,而解碼器則將這一編碼重新恢復為原始輸入數據。下面我們用卷積神經網絡來對自編碼器進行具體的說明。

自編碼器中的CNNs

對于卷積神經網絡CNNs來說,將輸入的圖像轉換為更為緊密的表達(ImageNet中通常為1000維的一階張量)。這一緊密的表達用于對輸入圖像進行分類。編碼器的工作原理也與此類似,它將輸入數據轉換為十分小而緊湊的表達(編碼),其中包含了可供解碼器生成期望輸出的足夠信息。編碼器一般與網絡的其他部分一同訓練并通過反向傳播的誤差進行優化從而生成有用的特殊編碼。對于CNNs來說,可以將其看做是特殊的編碼器。其輸出的1000維編碼便是用于分類的分類器。

自編碼器便是基于這樣的思想將編碼器輸出的編碼用作重建其輸入的特殊用途。

標準的自編碼器

整個自編碼器神經網絡常常作為整體進行訓練,其損失函數則定義為重建輸出與原始輸入之間的均方差/交叉熵,作為重建損失函數來懲罰網絡生成與原始輸入不同的輸出。

中間的編碼作為隱藏層間鏈接的輸出,其維度遠遠小于輸出數據。編碼器必須選擇性的拋棄數據,將盡可能多的相關信息包含到有限的編碼中,同時智能的去除不相關的信息。解碼器則需要從編碼中盡可能的學習如何重建輸入圖像。他們一起構成了自編碼器的左膀右臂。

標準自編碼器面臨的問題

標準自編碼器能學習生成緊湊的數據表達并重建輸入數據,然而除了像去噪自編碼器等為數不多的應用外,它的應用卻極其有限。其根本原因在于自編碼器將輸入轉換為隱含空間中的表達并不是連續的,使得其中的插值和擾動難以完成。

MNIST數據不同分類間的間隔造成了編碼器無法連續采樣

例如利用MNIST數據集訓練的自編碼器將數據映射到2D隱含空間中,圖中顯示不同的分類之間存在著明顯的距離。這使得解碼器對于存在于類別之間的區域無法便捷的進行解碼。如果你不想僅僅只是復現輸入圖像,而是想從隱含空間中隨機的采樣或是在輸入圖像上生成一定的變化,那此時一個連續的隱含空間就變得必不可少了。

如果隱含空間不連續,那么在不同類別中間空白的地方采樣后解碼器就會生成非真實的輸出。因為解碼器不知道如何除了一片空白的隱含區域,它在訓練過程中從未見到過處于這一區域的樣本。

變分自編碼器

變分自編碼器具有與標準自編碼器完全不同的特性,它的隱含空間被設計為連續的分布以便進行隨機采樣和插值,這使得它成為了有效的生成模型。它通過很獨特的方式來實現這一特性,編碼器不是輸出先前的n維度向量而是輸出兩個n維矢量:分別是均值向量μ和標準差向量σ。

隨后通過對μ和σ作為均值和方差采樣得到了隨機變量Xi,n次采樣后形成了n維的采樣后結果作為編碼輸出,并送入后續的解碼器。

隨機生成編碼矢量

這一隨機生成意味著即使對于均值和方差相同的輸入,實際的編碼也會由于每一次采樣的不同而產生不同的編碼結果。其中均值矢量控制著編碼輸入的中心,而標準差則控制著這一區域的大小(編碼可以從均值發生變化的范圍)。

通過采樣得到的編碼可以是這一區域里的任意位置,解碼器學習到的不僅是單個點在隱含空間中的表示,而是整個鄰域內點的編碼表示。這使得解碼器不僅僅能解碼隱含空間中單一特定的編碼,而且可以解碼在一定程度上變化的編碼,而這是由于解碼器通過了一定程度上變化的編碼訓練而成。

所得到的模型目前就暴露在了一定程度局域變化的編碼中,使得隱含空間中的相似樣本在局域尺度上變得平滑。理想情況下不相似的樣本在隱含空間中存在一定重疊,使得在不同類別間的插值成為可能。但這樣的方法還存在一個問題,我們無法對μ和σ的取值給出限制,這會造成編碼器在不同類別上學習出的均值相去甚遠,使它們間的聚類分開。最小化σ使得相同的樣本不會產生太大差異。這使得解碼器可以從訓練數據進行高效重建。

我們希望得到盡量互相靠近但依然有一定距離的編碼,以便在隱含空間中進行插值并重建出新的樣本。為了實現滿足要求的編碼需要在損失函數中引入Kullback-Leibler散度(KL散度)。KL散度描述兩個概率分布之間的發散程度。最小化KL散度在這里意味著優化概率分布的參數(μ,σ)盡可能的接近目標分布。

對于VAE來說KL損失函數是X中所有元素Xi~N(μi, σi2)與標準正態分布的散度和。

這一損失函數將鼓勵所有編碼在圍繞隱藏層中心分布,同時懲罰不同分類被聚類到分離區域的行為。利用純粹KL散度損失得到的編碼是以隱藏空間中心隨機分布的。但從這些無意義的表達中解碼器卻無從解碼出有意義的信息。

純粹的KL散度優化的隱含空間(左),結合了重建損失優化的隱含空間

這是就需要將KL損失和重建損失結合起來。這使得在局域范圍內的隱藏空間點維持了相同的類別,同時在全局范圍內所有的點也被緊湊的壓縮到了連續的隱含空間中。這一結果是通過重建損失的聚類行為和KL損失的緊密分布行為平衡得到的,從而形成了可供解碼器解碼的隱含空間分布。這意味著可以隨機的采樣并在隱含空間中平滑的插值,得到的結果可控解碼器生成有意義的有效結果。

最終的損失函數

矢量運算

那么現在我們如何在隱含空間中得到平滑的插值呢?這主要通過隱含空間中的矢量運算來實現。

例如想得到兩個樣本之間的新樣本,那么只需要計算出他們均值矢量之差,并以其一半加上原來的矢量。最后將得到的結果送入到解碼器即可。那對于特殊的特征也,比如生成眼鏡該如何操作呢?那就找到分別戴眼鏡和不戴眼鏡的樣本,并得到他們在編碼器隱含空間中矢量之差,這就表示了眼鏡這一特征。將這新的“眼鏡”矢量加到任意的人臉矢量后進行解碼即可得到戴眼鏡的人臉。

展望

對于變分自編碼來說,目前已經出現了各種各樣的改進算法。可以增加、替換標準的全連接編解碼器,并用卷積網絡來代替。有人利用它生成了各種各樣的人臉和著名的MNIST變化數據。

甚至可以用LSTM訓練編解碼器訓練時序離散數據,從而生成文本和音樂等序列樣本。甚至可以模仿人類的簡筆畫。

VAE對于各種各樣的數據都有很好的適應性,無論序列或非序列、連續或離散、標記或非標記數據都是強大的生成工具。期待能在未來看到更多獨特矚目的應用。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    45

    文章

    3601

    瀏覽量

    134201
  • 神經網絡
    +關注

    關注

    42

    文章

    4765

    瀏覽量

    100561

原文標題:一篇文章告訴你「變分自編碼器 (VAE)」的優秀

文章出處:【微信號:thejiangmen,微信公眾號:將門創投】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于自編碼器的異常小區檢測

    出來。  本文提出了一種基于自編碼器的異常小區檢測方法,其基本原理是利用異常小區的KPI數據在通過
    發表于 12-03 15:06

    什么是編碼器 什么叫編碼器 編碼器什么意思

    什么是編碼器 什么叫編碼器 編碼器什么意思 第一種含義:編碼器是把角位移或直線位移轉換成電信號的一種裝置。前者成為碼盤,后者稱碼尺.按照讀
    發表于 12-18 00:13 ?1.5w次閱讀
    什么是<b class='flag-5'>編碼器</b> 什么叫<b class='flag-5'>編碼器</b> <b class='flag-5'>編碼器</b>什么意思

    自編碼器介紹

    自編碼器若僅要求X≈Y,且對隱藏神經元進行稀疏約束,從而使大部分節點值為0或接近0的無效值,便得到稀疏自動編碼算法。一般情況下,隱含層的神經元數應少于輸入X的個數,因為此時才能保證這個網絡結構的價值。
    發表于 06-11 15:07 ?4913次閱讀

    稀疏自編碼器及TensorFlow實現詳解

     稀疏自編碼器(又稱稀疏自動編碼機)中,重構誤差中添加了一個稀疏懲罰,用來限定任何時刻的隱藏層中并不是所有單元都被激活。如果 m 是輸入模式的總數,那么可以定義一個參數 ρ_hat,用來表示每個隱藏層單元的行為(平均激活多少次)。
    發表于 06-11 16:45 ?3836次閱讀
    稀疏<b class='flag-5'>自編碼器</b>及TensorFlow實現詳解

    基于稀疏自編碼器的屬性網絡嵌入算法SAANE

    在多數屬性網絡嵌入算法中,拓撲結構的設計只考慮節點間直接鏈接,而未考慮節點間間接鏈接及不同節點的共同鏈接比,導致不能充分提取網絡真實拓撲特征。針對該問題,提出一種基于稀疏自編碼器的屬性網絡嵌入算法
    發表于 03-27 10:26 ?7次下載
    基于稀疏<b class='flag-5'>自編碼器</b>的屬性網絡嵌入算法SAANE

    基于自編碼器的海面艦船軌跡預測算法

    軌跡坐標數據集轉化為軌跡移動矢量集,使用自編碼器完成軌跡運動特征的提取與生成預測。同時為提高軌跡預測精度,將
    發表于 03-30 09:53 ?5次下載
    基于<b class='flag-5'>變</b><b class='flag-5'>分</b><b class='flag-5'>自編碼器</b>的海面艦船軌跡預測算法

    自編碼器基礎理論與實現方法、應用綜述

    自編碼器是深度學習中的一種非常重要的無監督學習方法,能夠從大量無標簽的數據中自動學習,得到蘊含在數據中的有效特征。因此,自編碼方法近年來受到了廣泛的關注,已成功應用于很多領域,例如數據分類、模式識別
    發表于 03-31 11:24 ?9次下載
    <b class='flag-5'>自編碼器</b>基礎理論與實現方法、應用綜述

    一種基于自編碼器的人臉圖像修復方法

    方法。首先設計了一種自編碼器的變種網絡,通過引人生成對抗網絡解決修復人臉圖像不清晰的問題,同時對
    發表于 04-21 10:51 ?10次下載
    一種基于<b class='flag-5'>變</b><b class='flag-5'>分</b><b class='flag-5'>自編碼器</b>的人臉圖像修復方法

    MCU工具之LED編碼器

    MCU工具之LED編碼器免費下載。
    發表于 05-06 10:06 ?1次下載

    基于自編碼器的網絡表示學習方法

    ,將這些信息融入到網絡表示學習過程中,有助于提升下游任務的性能。但是針對不同的應用場景,結構和屬性信息并不總是線性相關,而且它們都是高度非線性的數據。提岀一種基于自編碼器的網絡表示學習方法 VANRL。
    發表于 05-12 14:50 ?27次下載

    自編碼器神經網絡應用及實驗綜述

    自編碼器是深度學習中的一種非常重要的無監督學習方法,能夠從大量無標簽的數據中自動學習,得到蘊含在數據中的有效特征。因此,自編碼方法近年來受到了廣泛的關注,已成功應用于很多領域,例如數據分類、模式識別
    發表于 06-07 16:38 ?7次下載

    堆疊降噪自動編碼器(SDAE)

    網絡可以看作由兩部分組成:一個由函數 h = f(x) 表示的編碼器和一個生成重構的解碼 r = g(h)。我們不應該將自編碼器設計成輸入到輸出完全相等。這通常需要向
    的頭像 發表于 01-11 17:04 ?6378次閱讀
    堆疊降噪自動<b class='flag-5'>編碼器</b>(SDAE)

    自編碼器 AE(AutoEncoder)程序

    原文鏈接 1.程序講解 (1)香草編碼器 在這種自編碼器的最簡單結構中,只有三個網絡層,即只有一個隱藏層的神經網絡。它的輸入和輸出是相同的,可通過使用Adam優化和均方誤差損失函數,來學習如何重構
    的頭像 發表于 01-11 17:29 ?1304次閱讀
    <b class='flag-5'>自編碼器</b> AE(AutoEncoder)程序

    虹科干貨|絕對式編碼器和增量式編碼器的區別

    在不同的工作領域和工作中,需要使用對應的工具和產品。在處理具有旋轉角度編碼器的工作任務時,了解所需工具的類型是必要的。除了絕對值編碼器外,還有增量式
    的頭像 發表于 05-26 10:51 ?2122次閱讀

    自編碼器的原理和類型

    自編碼器(Autoencoder, AE)是一種無監督學習的神經網絡模型,它通過編碼器和解碼的組合,實現了對輸入數據的壓縮和重構。自編碼器由兩部分組成:
    的頭像 發表于 07-09 11:25 ?977次閱讀