CVAE(條件變分自動編碼器)簡單理解

2022-09-07 04:42:09 字數 791 閱讀 5947

之前的文章介紹了ae和vae,指出了它們的優缺點。ae適合資料壓縮與還原,不適合生成未見過的資料。vae適合生成未見過的資料,但不能控制生成內容。本文所介紹的cvae(conditional vae)可以在生成資料時通過指定其標籤來生成想生成的資料。cvae的結構圖如下所示:

整體結構和vae差不多,區別是在將資料輸入encoder時把資料內容與其標籤(label)合併(cat)一起輸入,將編碼(z)輸入decoder時把編碼內容與資料標籤(label)合併(cat)一起輸入。注意label並不參與loss計算,cvae的loss和vae的loss計算方式相同(input和output的mse loss以及\(\mathcal\left(\mu_{}, \sigma_{}^2\right)\)與\(\mathcal\left(0, 1\right)\)的kl loss)

因此我們在生成資料時,可以先從正態分佈取樣,然後cat上你想生成的資料的label,一起送入decoder,就能生成和label類似的資料。

有關cvae的**實現:github

從正態分佈取樣100個latent並選擇期望生成的的標籤,把它們cat以後一起輸入訓練好的decoder

標籤為1時:

標籤為9時:

VAE變分自動編碼器

它本質上就是在我們常規的自編碼器的基礎上,對encoder的結果 在vae中對應著計算均值的網路 加上了 高斯雜訊 使得結果decoder能夠對雜訊有魯棒性 而那個額外的kl loss 目的是讓均值為0,方差為1 事實上就是相當於對encoder的乙個正則項,希望encoder出來的東西均有零均值。...

自動編碼器

自動編碼器基本概念 自動編碼器 autoencoder 是神經網路的一種,一般來講自動編碼器包括兩部分 編碼器和解碼器,編碼器和解碼器相互串聯合作,實現資料的降維或特徵學習,現在也廣泛用於生成模型中.在深度學習中,autoencoder可用於在訓練階段開始前,確定權重矩陣的初始值.左側為encode...

自動編碼器(Autoencoder)

autoencoder是一種無監督的學習演算法,主要用於資料的降維或者特徵的抽取,在深度學習中,autoencoder可用於在訓練階段開始前,確定權重矩陣 w 的初始值。神經網路中的權重矩陣 w可看作是對輸入的資料進行特徵轉換,即先將資料編碼為另一種形式,然後在此基礎上進行一系列學習。然而,在對權重...