您的位置:首頁>科技>正文

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

編譯:T.R

與經常作為分類器的神經網路相比, 變分自編碼器是一種十分著名的生成模型, 目前被廣泛用於生成偽造的人臉照片,

甚至可以用於生成美妙的音樂。 然而是什麼讓變分自編碼器成為如此成功的多媒體生成工具呢?讓我們來一探其背後的究竟。

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

標準自編碼器

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

自編碼器中的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, σi²)與標準正態分佈的散度和。

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

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

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

最終的損失函數

向量運算

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

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

展望

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

甚至可以用LSTM訓練轉碼器訓練時序離散資料,從而生成文本和音樂等序列樣本。甚至可以模仿人類的簡筆劃。

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

參考連結:

https://towardsdatascience.com/intuitively-understanding-variational-autoencoders-1bfe67eb5daf

https://blog.csdn.net/lwq1026/article/details/78581649

http://ufldl.stanford.edu/wiki/index.php/Autoencoders_and_Sparsity

https://www.jeremyjordan.me/autoencoders/

VAE:

https://www.jeremyjordan.me/variational-autoencoders/

https://www.youtube.com/watch?v=R3DNKE3zKFk&t=2329s

https://blog.csdn.net/yinruiyang94/article/details/77839048

https://arxiv.org/abs/1312.6114

-The End-

將門是一家專注於發掘、加速並投資技術創新啟動商業價值的創業公司的創投機構,旗下設有將門創新服務、將門技術社群以及將門投資基金。

將門創新服務專注于使創新的技術落地于真正的應用場景,啟動和實現全新的商業價值,服務於行業領先企業和技術創新型創業公司。

將門技術社群專注于幫助技術創新型的創業公司提供來自產、學、研、創領域的核心技術專家的技術分享和學習內容,使創新成為持續的核心競爭力。

將門投資基金專注於投資通過技術創新啟動商業場景,實現商業價值的初創企業,關注技術領域包括機器智慧、物聯網、自然人機交互、企業計算。在兩年的時間裡,將門投資基金已經投資了包括量化派、碼隆科技、禾賽科技、偉景智慧、Convertlab、迪英加科技等十幾傢俱有高成長潛力的技術型創業公司。

如果您是技術領域的初創企業,不僅想獲得投資,還希望獲得一系列持續性、有價值的投後服務,歡迎發送或者推薦項目給我“門”: bp@thejiangmen.com

將門2018招聘看這裡!

企業戰略合作、新媒體運營、技術專家、行業專家等多個崗位期待您的加入~

也歡迎您轉給身邊優秀的朋友!推薦成功、一經錄用將獲得15000元現金作為答謝!

點擊右上角,把文章朋友圈

將門創投

讓創新獲得認可!

微信:thejiangmen

bp@thejiangmen.com

編碼器不是輸出先前的n維度向量而是輸出兩個n維向量:分別是均值向量μ和標準差向量σ。

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

隨機生成編碼向量

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

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

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

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

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

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

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

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

最終的損失函數

向量運算

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

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

展望

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

甚至可以用LSTM訓練轉碼器訓練時序離散資料,從而生成文本和音樂等序列樣本。甚至可以模仿人類的簡筆劃。

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

參考連結:

https://towardsdatascience.com/intuitively-understanding-variational-autoencoders-1bfe67eb5daf

https://blog.csdn.net/lwq1026/article/details/78581649

http://ufldl.stanford.edu/wiki/index.php/Autoencoders_and_Sparsity

https://www.jeremyjordan.me/autoencoders/

VAE:

https://www.jeremyjordan.me/variational-autoencoders/

https://www.youtube.com/watch?v=R3DNKE3zKFk&t=2329s

https://blog.csdn.net/yinruiyang94/article/details/77839048

https://arxiv.org/abs/1312.6114

-The End-

將門是一家專注於發掘、加速並投資技術創新啟動商業價值的創業公司的創投機構,旗下設有將門創新服務、將門技術社群以及將門投資基金。

將門創新服務專注于使創新的技術落地于真正的應用場景,啟動和實現全新的商業價值,服務於行業領先企業和技術創新型創業公司。

將門技術社群專注于幫助技術創新型的創業公司提供來自產、學、研、創領域的核心技術專家的技術分享和學習內容,使創新成為持續的核心競爭力。

將門投資基金專注於投資通過技術創新啟動商業場景,實現商業價值的初創企業,關注技術領域包括機器智慧、物聯網、自然人機交互、企業計算。在兩年的時間裡,將門投資基金已經投資了包括量化派、碼隆科技、禾賽科技、偉景智慧、Convertlab、迪英加科技等十幾傢俱有高成長潛力的技術型創業公司。

如果您是技術領域的初創企業,不僅想獲得投資,還希望獲得一系列持續性、有價值的投後服務,歡迎發送或者推薦項目給我“門”: bp@thejiangmen.com

將門2018招聘看這裡!

企業戰略合作、新媒體運營、技術專家、行業專家等多個崗位期待您的加入~

也歡迎您轉給身邊優秀的朋友!推薦成功、一經錄用將獲得15000元現金作為答謝!

點擊右上角,把文章朋友圈

將門創投

讓創新獲得認可!

微信:thejiangmen

bp@thejiangmen.com

Next Article
喜欢就按个赞吧!!!
点击关闭提示