【Pytorch神经网络理论篇】 22 自编码神经网络:概述+变分+条件变分自编码神经网络
1 無監(jiān)督學習模型的概述
在監(jiān)督訓練中,模型能根據(jù)預測結果與標簽差值來計算損失,并向損失最小的方向進行收斂。
在無監(jiān)督訓練中,無法通過樣本標簽為模型權重指定收斂方向,這就要求模型必須有自我監(jiān)督的功能。
1.1 典型的兩個神經網(wǎng)絡模型
比較典型的兩個神經網(wǎng)絡是自編碼神經網(wǎng)絡和對抗神經網(wǎng)絡:
①自編碼神經網(wǎng)絡:把數(shù)據(jù)當作標簽來指定收斂方向。
②對抗神經網(wǎng)絡:一般會使用兩個或多個子模型同時進行訓練,利用多個模型之間的關系來達到互相監(jiān)督的效果。
2 自編碼神經網(wǎng)絡
自編碼是一種以重構輸入信號為目標的神經網(wǎng)絡。無監(jiān)督學習領域中的一種,可以自動從無標注的數(shù)據(jù)中學習特征。
2.1 自編碼神經網(wǎng)絡的結構
自編碼由3個神經網(wǎng)絡層組成:輸入層、隱意層和輸出民,其中,輸入層的樣本也會充當輸出層的標簽角色,即這個神經網(wǎng)絡就是個盡可能復現(xiàn)輸入信號的神經網(wǎng)絡。
- 從輸入層高維特征樣本到低維特征的過程稱為編碼,經網(wǎng)絡稱為編碼器;
- 從隱藏層低維特征到高維特征樣本的過程稱為解碼,實現(xiàn)這部分功能的速稱為解碼器。
2.2 自編碼神經網(wǎng)絡的計算過程
自編碼神經網(wǎng)路本質上是一種輸出和輸入相等的模型。簡單的自編碼神經網(wǎng)絡結構可以用一個3層的全連接神經網(wǎng)絡表示。
2.2.1 簡單闡述自編碼神經網(wǎng)絡的計算
在上圖中,輸入層與輸出層的維度相同,中間層是編碼器的輸出結果,輸出層也可以理解成解碼器的輸出結果。編碼器負責將編入的原始數(shù)據(jù)編碼轉換至中間的低維數(shù)據(jù),解碼器負責將低維度數(shù)據(jù)解碼回原始輸入,實現(xiàn)加密解密的過程。
在訓練過程中,用真始的輸入數(shù)據(jù)與重構的解碼數(shù)據(jù)一起執(zhí)行MSE計算,將該計算結果作為損失值來指導模型的收斂方向
自編碼神經網(wǎng)絡要求輸出盡可能等于輸入,并且它的隱藏層必須滿足一定的稀疏性,通過將隱藏層中后一層比前一層神經元數(shù)量少的方式來實現(xiàn)稀疏效果。這相當于的隱藏層對輸入進行壓縮,并在輸出層中解壓縮,在整個過程會去失信息,但訓練能夠使丟失的信息盡量少,最大化地保留其主要特征。
2.3 自編碼神經網(wǎng)絡的作用與意義
輸入的數(shù)據(jù)在網(wǎng)絡模型中會經過一系列特征變換,在輸出時還會與輸入時一樣。雖然這種模型對單個祥本沒有意義,但對整體樣本集卻很有價值。可以很好地學習到該數(shù)據(jù)集中樣本的分布情況,既能將數(shù)據(jù)集進行壓縮,實現(xiàn)提取數(shù)據(jù)主成分的功熊,又能與數(shù)據(jù)集的特征擬擬合,實現(xiàn)生成模擬數(shù)據(jù)的功能。
經過變換過程的中間狀態(tài)可以輸出比原始數(shù)據(jù)更好的特征描述,這使得自編碼有較強的特征學習能力,因此常利用其中間狀態(tài)的處理結果來進行AI任務的擬合。
2.3.1 自編碼與PCA算法
在無監(jiān)督學習中,常見形式是訓練一個編碼器將原始數(shù)據(jù)集編碼為一個固定長度的向量,這個向量要保留原始數(shù)據(jù)盡可能多的重要信息。它通過訓練所形成的自動編碼器可以捕捉代表輸入數(shù)據(jù)的最主要因素,找到可以代表原信息的主要成分。(如果自編碼中的激活函數(shù)使用了線性函數(shù),就是PCA模型了。)
2.3.2 自編碼與深度學習
編碼器的概念在深度學習模型中應用非常廣泛,例如,目標識別、語義分割中的骨干網(wǎng)模型,可以理解為一個編碼器模型。在分類任務中,輸出層之前的網(wǎng)絡結構可以理解為一個獨立的編碼器模型。
2.3.3 自編碼神經網(wǎng)絡的種類
在基本的自編碼之上,又衍生出了一些性能更好的自編碼神經網(wǎng)絡,例如變分自編碼神經網(wǎng)絡、條件變分自編碼神經網(wǎng)絡等。它們的輸入和輸出不再單純地著眼于單個樣本,而是針對整個樣本的分布進行自編碼擬合,具有更好的泛化能力。
3 變分自編碼神經網(wǎng)絡
變分自編碼神經網(wǎng)絡學習的是樣本的規(guī)律,該神經網(wǎng)絡不但具有重構樣本的功能,而且具有仿照樣本的功能。
3.1?變分自編碼神經網(wǎng)絡的解碼與編碼過程
變分自編碼神經網(wǎng)絡,在編碼過程中改變了樣本的分布(變分可理解為改變分布),學習樣本的規(guī)律就是學習樣本的分布。假設我們知道樣本的分布函數(shù),就可以從這個函數(shù)中隨便取出一個樣本,然后進行網(wǎng)絡解碼層前向傳導,生成一個新的樣本。
3.2?變分自編碼神經網(wǎng)絡的奧秘
為了得到樣本的分布函數(shù),模型的訓練目的將是通過增加一個約束項將編碼器生成為服從高斯分布的數(shù)據(jù)集,按照高斯分布均值與方差規(guī)則任意取相關的數(shù)據(jù),并將該數(shù)據(jù)輸入解碼器還原成樣本。
4 條件變分自編碼神經網(wǎng)絡
4.1?變分自編碼神經網(wǎng)絡的問題
變分自編碼神經網(wǎng)絡雖然可以生成一個樣本,但是只能輸出與輸入圖片相同類別的樣本。確切地說,我們并不知道生成的樣本屬于哪個類別。
4.2?條件變分自編碼神經網(wǎng)絡的作用
條件變分自編碼神經網(wǎng)絳在變分自編碼神經網(wǎng)絡的基礎上進行了優(yōu)化,可以讓模型按照指定的類別生成樣本。
4.3?條件變分自編碼神經網(wǎng)絡的實現(xiàn)
條件變分自編碼神經網(wǎng)絡在變分自編碼神經網(wǎng)絡的基礎上只進行了一處改動:在訓練測試時,加入一個標簽向量((one-hot類型)。
4.4?條件變分自編碼神經網(wǎng)絡的原理
給變分自編碼神經網(wǎng)絡加了一個條件,讓網(wǎng)絡學習圖片分布時加入了標簽因素,這樣可以按照標簽的數(shù)值來生成指定的圖片。
總結
以上是生活随笔為你收集整理的【Pytorch神经网络理论篇】 22 自编码神经网络:概述+变分+条件变分自编码神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爬虫实战学习笔记_4 网络请求urlli
- 下一篇: 【Pytorch神经网络理论篇】 31