自編碼器:
自編碼器是用于無監督學習,高效編碼的神經網路,自動編碼器的目的就在于,學習一組資料的編碼,通常用于資料的降維,自編碼是一種無監督的演算法,網路分為:輸入層,隱藏層(編碼層),解碼層,該網路的目的在于重構輸入,使其隱藏層的資料表示更加好,利用了反向傳播,將輸入值和目標值設定一樣,就可以不斷的進行迭代訓練,

自編碼的學習目標就在于使h(x)≈x,自編碼是屬于神經網路一類的,但是他和PCA也緊密相關:
- 它和PCA都屬于無監督的學習演算法
- 她要最小化和PCA一樣的目標函式
- 他是一種神經網路
- 這種神經網路的目標輸出就是輸入
自編碼器的分類:
一:欠完備自編碼
- 香草自編碼
- 多層自編碼
- 卷積自編碼CAE
二:正則編碼器
- 稀疏自編碼
- 去噪自編碼DAE
- 收縮自編碼
三:變分自編碼VAE
自編碼器分為兩個部分:
編碼器:h = f(x)
解碼器:r = g(h)
也就是說整個自編碼器可以由:r = g(h(x))來描述,其中輸出r與原始的輸入是相近的
最后我們希望得到的是有用的h,如果這個h比輸入的x維度要小,那么這種自編碼就叫做欠完備自編碼,它們的代價公式就可以是用均方誤差:

因此,非線性的編碼器,和非線性的解碼器,就可以捕捉到相比較PCA更加有用的資訊,在這里,隱含層維數(1024)小于輸入維數(10000),則稱這個編碼器是有損的,通過這個約束,來迫使神經網路來學習資料的壓縮表征,
網路結構:![]()
多層自編碼:
這個就很好理解了,將隱藏層的層數加深:
網路結構為: ![]()
卷積自編碼就更簡單了,無非就是將原本的神經網路層,替換成卷積神經網路
自動編碼器其實就是非常簡單的神經結構,它們大體上是一種壓縮形式,類似于使用MP3壓縮音頻檔案或使用jpeg壓縮影像檔案,

自動編碼器與主成分分析(PCA)密切相關,事實上,如果自動編碼器使用的激活函式在每一層中都是線性的,那么瓶頸處存在的潛在變數(網路中最小的層,即代碼)將直接對應(PCA/主成分分析)的主要組件,通常,自動編碼器中使用的激活函式是非線性的,典型的激活函式是ReLU(整流線性函式)和sigmoid/S函式,
網路背后的數學原理理解起來相對容易,從本質上看,可以把網路分成兩個部分:編碼器和解碼器,

編碼器函式用?表示,該函式將原始資料X映射到潛在空間F中(潛在空間F位于瓶頸處),解碼器函式用ψ表示,該函式將瓶頸處的潛在空間F映射到輸出函式,此處的輸出函式與輸入函式相同,因此,我們基本上是在一些概括的非線性壓縮之后重建原始影像,
編碼網路可以用激活函式傳遞的標準神經網路函式表示,其中z是潛在維度,
相似地,解碼網路可以用相同的方式表示,但需要使用不同的權重、偏差和潛在的激活函式,

隨后就可以利用這些網路函式來撰寫損失函式,我們會利用這個損失函式通過標準的反向傳播程式來訓練神經網路,
![]()
由于輸入和輸出的是相同的影像,神經網路的訓練程序并不是監督學習或無監督學習,我們通常將這個程序稱為自我監督學習,自動編碼器的目的是選擇編碼器和解碼器函式,這樣就可以用最少的資訊來編碼影像,使其可以在另一側重新生成,
如果在瓶頸層中使用的節點太少,重新創建影像的能力將受到限制,導致重新生成的影像模糊或者和原影像差別很大,如果使用的節點太多,那么就沒必要壓縮了,
自動編碼機可以進行權值共享,即解碼器和編碼器的權值彼此互為轉置,這樣可以加快網路學習的速度,因為訓練引數的數量減少了,但同時降低了網路的靈活程度,
自動編碼機的一個非常好的應用是降維,而且自動編碼機能產生比 PCA 更好的結果,自動編碼機也可用于特征提取、檔案檢索、分類和例外檢測,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/384133.html
標籤:AI
