日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自编码器(AE)

發(fā)布時(shí)間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自编码器(AE) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自編碼器可以理解為一個(gè)試圖去還原其原始輸入的系統(tǒng),如下圖所示,虛線藍(lán)色框內(nèi)就是一個(gè)自編碼器模型,它由編碼器(Encoder)和解碼器(Decoder)兩部分組成,本質(zhì)上都是對(duì)輸入信號(hào)做某種變換。基本意思就是一個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò),輸入輸出都是x,并且輸入維度一定要比輸出維度大,屬于無監(jiān)督學(xué)習(xí)。一種利用反向傳播算法使得輸出值等于輸入值的神經(jīng)網(wǎng)絡(luò),它先將輸入壓縮成潛在空間表征,然后通過這種表征來重構(gòu)輸出。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???

對(duì)于自編碼器,我們往往并不關(guān)系輸出是啥(反正只是復(fù)現(xiàn)輸入),我們真正關(guān)心的是中間層的編碼,或者說是從輸入到編碼的映射。可以這么想,在我們強(qiáng)迫編碼y和輸入x不同的情況下,系統(tǒng)還能夠去復(fù)原原始信號(hào)x,那么說明編碼y已經(jīng)承載了原始數(shù)據(jù)的所有信息,但以一種不同的形式!這就是特征提取啊,而且是自動(dòng)學(xué)出來的!實(shí)際上,自動(dòng)學(xué)習(xí)原始數(shù)據(jù)的特征表達(dá)也是神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的核心目的之一。?

?Auto-Encoder: What Is It? And What Is It Used For? (Part 1):https://towardsdatascience.com/auto-encoder-what-is-it-and-what-is-it-used-for-part-1-3e5c6f017726

目錄

1. AutoEncoder模型演進(jìn)

1.1 AutoEncoder

1.2 Denoising AutoEncoder

1.3 Sparse AutoEncoder

1.4 CNN/LSTM AutoEncoder

1.5 Variational AutoEncoder(VAE)

1.6 Adversarial AutoEncoder

2. 背景知識(shí)點(diǎn)

2.1 KL散度

2.2 變分推斷:用于近似計(jì)算后驗(yàn)分布P(Z|X)

2.3 Reparameterization Trick:對(duì)某一分布的數(shù)據(jù)進(jìn)行采樣

2.4?GAN生成對(duì)抗網(wǎng)絡(luò)


1. AutoEncoder模型演進(jìn)

參考:AutoEncoder模型演進(jìn)圖譜

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ?

1.1 AutoEncoder

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ?

這里我們可以看到,AutoEncoder在優(yōu)化過程中無需使用樣本的label,本質(zhì)上是把樣本的輸入同時(shí)作為神經(jīng)網(wǎng)絡(luò)的輸入和輸出,通過最小化重構(gòu)誤差希望學(xué)習(xí)到樣本的抽象特征表示z。這種無監(jiān)督的優(yōu)化方式大大提升了模型的通用性。

對(duì)于基于神經(jīng)網(wǎng)絡(luò)的AutoEncoder模型來說,則是encoder部分通過逐層降低神經(jīng)元個(gè)數(shù)來對(duì)數(shù)據(jù)進(jìn)行壓縮;decoder部分基于數(shù)據(jù)的抽象表示逐層提升神經(jīng)元數(shù)量,最終實(shí)現(xiàn)對(duì)輸入樣本的重構(gòu)。

問題:

這里指的注意的是,由于AutoEncoder通過神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)每個(gè)樣本的唯一抽象表示,這會(huì)帶來一個(gè)問題:當(dāng)神經(jīng)網(wǎng)絡(luò)的參數(shù)復(fù)雜到一定程度時(shí)AutoEncoder很容易存在過擬合的風(fēng)險(xiǎn)。?

1.2 Denoising AutoEncoder

為了緩解經(jīng)典AutoEncoder容易過擬合的問題:

  • 一個(gè)辦法是:在輸入中加入隨機(jī)噪聲;Vincent等人[3]提出了Denoising AutoEncoder,在傳統(tǒng)AutoEncoder輸入層加入隨機(jī)噪聲來增強(qiáng)模型的魯棒性。
  • 另一個(gè)辦法是:結(jié)合正則化思想,Rifai等人[4]提出了Contractive AutoEncoder,通過在AutoEncoder目標(biāo)函數(shù)中加上encoder的Jacobian矩陣范式來約束使得encoder能夠?qū)W到具有抗干擾的抽象特征。
  • 下圖是Denoising AutoEncoder的模型框架。目前添加噪聲的方式大多分為兩種:(1)添加服從特定分布的隨機(jī)噪聲;(2)隨機(jī)將輸入x中特定比例置為0。有沒有覺得第二種方法跟現(xiàn)在廣泛石紅的Dropout很相似,但是Dropout方法是Hinton等人在2012年才提出來的,而第二種加噪聲的方法在08年就已經(jīng)被應(yīng)用了。這其中的關(guān)系,就留給你思考一下。

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Denoising AutoEncoder模型框架

    1.3 Sparse AutoEncoder

    為了在學(xué)習(xí)輸入樣本表示的時(shí)候可以得到稀疏的高維抽象特征表示,Ng等人[5]在原來的損失函數(shù)中加入了一個(gè)控制稀疏化的正則項(xiàng)。稀疏約束能迫使encoder的各層只有部分神經(jīng)元被激活,從而將樣本映射成低維稀疏特征向量。?

    具體來說,如果單個(gè)神經(jīng)元被激活的概率很小,則可認(rèn)為該網(wǎng)絡(luò)具有稀疏性。神經(jīng)元是否被激活可以看做服從概率的伯努利分布。

    神經(jīng)網(wǎng)絡(luò)稀疏性的約束衡量方式:

    • 可以使用KL散度來衡量神經(jīng)元被激活的概率ρ^與期望概率ρ之間的loss,通過將D_KL加入到AutoEncoder的目標(biāo)函數(shù)中,即可實(shí)現(xiàn)對(duì)神經(jīng)網(wǎng)絡(luò)稀疏性的約束。

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    • 另外,還有一種方法就是對(duì)神經(jīng)網(wǎng)絡(luò)各層的輸出加入L1約束。

    1.4 CNN/LSTM AutoEncoder

    其實(shí)無論是Convolutional Autoencoder[6]、 Recursive Autoencoder還是LSTM Autoencoder[7]等等,思路都是將傳統(tǒng)NN網(wǎng)絡(luò)的結(jié)構(gòu)融入到AutoEncoder中。

    以LSTM AutoEncoder為例,目標(biāo)是針對(duì)輸入的樣本序列學(xué)習(xí)得到抽象特征z。因此

    • encoder部分:是輸入一個(gè)樣本序列輸出抽象特征z,采用如下的?Many-to-one LSTM
    • decoder部分:則是根據(jù)抽象特征z,重構(gòu)出序列,采用如下的?One-to-many LSTM

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    將傳統(tǒng)NN網(wǎng)絡(luò)的結(jié)構(gòu)引入AutoEncoder其實(shí)更多是一個(gè)大概的思想,具體實(shí)現(xiàn)的時(shí)候,編碼器和解碼器都是不固定的,可選的有:CNN/RNN/雙向RNN/LSTM/GRU等等,而且可以根據(jù)需要自由組合

    1.5 Variational AutoEncoder(VAE)

    參考:

    • 論文:"Tutorial on Variational Autoencoders"
    • 博客:“Tutorial - What is a variational autoencoder??”。
    • 損失函數(shù)含義:Deep Learning AutoEncoder 及其相關(guān)模型

    Vairational AutoEncoder(VAE)是Kingma等人與2014年提出。VAE比較大的不同點(diǎn)在于:

    VAE不再將輸入x映射到一個(gè)固定的抽象特征z上,而是假設(shè)樣本x的抽象特征z服從(μ,σ^2)正態(tài)分布,然后再通過分布采樣生成抽象特征z(重采樣Reparametrization tricks),最后基于z通過decoder得到輸出。

    由于抽象特征z是從正態(tài)分布采樣生成而來,因此VAE的encoder部分是一個(gè)生成模型,然后再結(jié)合decoder來實(shí)現(xiàn)重構(gòu)保證信息沒有丟失。模型框架如下圖所示:

    ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    損失函數(shù):?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    VAE 的結(jié)構(gòu)可以表示為圖1:

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ??? ? ? ? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1? VAE? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2? VAE:Reparameterization Trick

    但是,圖1這種方式需要在前向傳播時(shí)進(jìn)行采樣,而這種采樣操作是無法進(jìn)行反向傳播 的。于是,論文作者提出一種“Reparameterization Trick”:將對(duì)采樣的操作移到輸入層進(jìn)行,于是就有了圖2的VAE 最終形式:

    ? ? ? ? ? ? ? ? ? ??

    下圖表示了 VAE 整個(gè)過程。即首先通過 Encoder 得到x的隱變量分布參數(shù);然后采樣得到隱變量z。接下來按公式,應(yīng)該是利用 Decoder 求得x的分布參數(shù),而實(shí)際中一般就直接利用隱變量恢復(fù)x

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    下圖展示了一個(gè)具有3個(gè)隱變量的 VAE 結(jié)構(gòu)示意圖,是對(duì)上面抽象描述的一個(gè)補(bǔ)充說明,不再贅述。

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???

    VAE 理論跟實(shí)際效果都非常驚艷,理論上涉及到的主要背景知識(shí)也比較多,包括:隱變量(Latent Variable Models)、變分推理(Variational Inference)、Reparameterization Trick 等。

    VAE是一個(gè)里程碑式的研究成果,倒不是因?yàn)樗且粋€(gè)效果多么好的生成模型,主要是提供了一個(gè)結(jié)合概率圖的思路來增強(qiáng)模型的魯棒性。后續(xù)有很多基于VAE的擴(kuò)展,包括infoVAE、betaVAE和factorVAE等。

    1.6 Adversarial AutoEncoder

    既然說到生成模型引入AutoEncoder,那必定也少不了將GAN的思路引入AutoEncoder[9],也取得了不錯(cuò)的效果。

    對(duì)抗自編碼器的網(wǎng)絡(luò)結(jié)構(gòu)主要分成兩大部分:自編碼部分(上半部分)、GAN判別網(wǎng)絡(luò)(下半部分)。整個(gè)框架也就是GAN和AutoEncoder框架二者的結(jié)合。訓(xùn)練過程分成兩個(gè)階段:首先是樣本重構(gòu)階段,通過梯度下降更新自編碼器encoder部分、以及decoder的參數(shù)、使得重構(gòu)損失函數(shù)最小化;然后是正則化約束階段,交替更新判別網(wǎng)絡(luò)參數(shù)和生成網(wǎng)絡(luò)(encoder部分)參數(shù)以此提高encoder部分混淆判別網(wǎng)絡(luò)的能力。

    一旦訓(xùn)練完畢,自編碼器的encoder部分便學(xué)習(xí)到了從樣本數(shù)據(jù)x到抽象特征z的映射關(guān)系。

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    ?

    2. 背景知識(shí)點(diǎn)

    2.1 KL散度

    KL 散度:https://blog.csdn.net/matrix_space/article/details/80550561?

    在信息論中,D(p||q) 表示用概率分布Q來擬合真實(shí)分布P時(shí),產(chǎn)生的信息損耗,其中P表示真實(shí)分布,Q表示P的擬合分布

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    2.2 變分推斷:用于近似計(jì)算后驗(yàn)分布P(Z|X)

    參考:變分推斷(Variational Inference)最新進(jìn)展簡(jiǎn)述

    變分推斷(Variational Inference, VI)是貝葉斯近似推斷方法中的一大類方法,將后驗(yàn)推斷問題巧妙地轉(zhuǎn)化為優(yōu)化問題進(jìn)行求解,相比另一大類方法馬爾可夫鏈蒙特卡洛方法(Markov Chain Monte Carlo, MCMC),VI 具有更好的收斂性和可擴(kuò)展性(scalability),更適合求解大規(guī)模近似推斷問題。

    當(dāng)前機(jī)器學(xué)習(xí)兩大熱門研究方向:深度隱變量模型(Deep Latent Variable Model, DLVM)和深度神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)不確定性(Predictive Uncertainty)的計(jì)算求解依賴于 VI,尤其是 Scalable VI。其中,DLVM 的一個(gè)典型代表是變分自編碼器(Variational Autoencoder, VAE),是一種主流的深度生成模型,廣泛應(yīng)用于圖像、語音甚至是文本的生成任務(wù)上;而預(yù)測(cè)不確定性的典型代表是貝葉斯神經(jīng)網(wǎng)絡(luò)(Bayesian Neural Network, BNN)。

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?變分推斷

    問題定義:

    原始目標(biāo)是:需要根據(jù)已有數(shù)據(jù)推斷需要的分布p;當(dāng)p不容易表達(dá),不能直接求解時(shí),可以嘗試用變分推斷的方法, 即,尋找容易表達(dá)和求解的分布q,當(dāng)q和p的差距很小的時(shí)候,q就可以作為p的近似分布,成為輸出結(jié)果了。在這個(gè)過程中,我們的關(guān)鍵點(diǎn)轉(zhuǎn)變了,從“求分布”的推斷問題,變成了“縮小距離”的優(yōu)化問題。

    考慮一個(gè)一般性的問題, x 是 n 維的觀測(cè)變量,z 是 m 維的隱變量,貝葉斯模型中需要計(jì)算后驗(yàn)分布,如下:?

    ? ? ? ? ? ? ? ? ? ?

    其中,p(z) 是先驗(yàn)分布,p(x|z) 是似然函數(shù), p(x)=∫p(z)p(x|z),稱為 evidence,通常 p(x) 是一個(gè)不可積的多重積分,導(dǎo)致后驗(yàn)分布 p(z|x) 無法獲得解析解,同時(shí)因?yàn)?p(x) 只與確定的觀測(cè)變量有關(guān),在計(jì)算時(shí)可認(rèn)為是一個(gè)常數(shù)。

    VI 假設(shè)后驗(yàn)分布用一個(gè)變分分布 q(z;θ) 來近似,通過構(gòu)造如下優(yōu)化問題,KL散度

    ? ? ? ? ? ? ??

    求解使得兩個(gè)分布距離最小的變分分布參數(shù) θ,從而得到近似后驗(yàn)分布。因?yàn)檎鎸?shí)后驗(yàn)分布是未知的,直接優(yōu)化公式(2)是一件比較有挑戰(zhàn)的事情,VI 巧妙地將其轉(zhuǎn)化為優(yōu)化 ELBO 的問題。

    2.3 Reparameterization Trick:對(duì)某一分布的數(shù)據(jù)進(jìn)行采樣

    Reparametrization tricks 重參數(shù)技巧

    在 VAE 中,隱變量z一般取高斯分布,即z=N(μ,σ2)=P(Z|X),然后從這個(gè)分布P(Z|X)中采樣,但采樣的過程本身是不可逆的,就導(dǎo)致整個(gè)過程無法反向傳播。我們已經(jīng)知道?P(Z|X)?是服從正態(tài)分布的,也知道均值和方差,那么如何產(chǎn)生數(shù)據(jù)呢?解決方法就是Reparametrization tricks重參數(shù)技巧,從正態(tài)分布P(Z|X)中采樣得到Z:

    首先,從均值為0、標(biāo)準(zhǔn)差為1的高斯分布中采樣,再放縮平移得到Z:

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    這樣,從?到z只涉及了線性操作(平移縮放),采樣操作在NN計(jì)算圖之外,這樣相當(dāng)于將采樣過程提前,而?對(duì)于NN來說只是一個(gè)常數(shù)。

    2.4?GAN生成對(duì)抗網(wǎng)絡(luò)

    GAN生成對(duì)抗網(wǎng)絡(luò):https://easyai.tech/ai-definition/gan/

    ?

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的自编码器(AE)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。