多層自編碼器的微調

2021-07-10 21:51:54 字數 1763 閱讀 8931

多層自編碼器由多個稀疏自編碼器和乙個softmax分類器構成;(其中,每個稀疏自編碼器的權值可以利用無標籤訓練樣本得到, softmax分類器引數可由有標籤訓練樣本得到)多層自編碼器微調是指將多層自編碼器看做是乙個多層的神經網路,利用有標籤的訓練樣本集,對該神經網路的權值進行調整。

多層自編碼器的結構如圖1所示,它包含乙個具有2個隱藏層的棧式自編碼器和1個softmax模型;棧式自編碼器的最後乙個隱藏層的輸出作為softmax模型的輸入,softmax模型的輸出作為整個網路的輸出(輸出的是條件概率向量)。

圖1 多層自編碼器的結構

微調多層自編碼器的流程圖如圖2所示,該流程主要包括三部分:

(1)初始化待優化引數向量

(2)呼叫最優化函式,計算最優化引數向量

(3)得到最優化引數向量,可以轉換為網路各結構所對應的引數

其中,最小化代價函式主要利用minfunc函式,該優化函式格式如下:

可知,為了實現優化過程,最為關鍵問題就是編寫stackedaecost函式

圖2 多層自編碼器的微調流程

整個網路的引數stackedaetheta(列向量形式)由兩部分組成:softmax分類器引數向量+稀疏自編碼器引數向量;他們的初始化值由稀疏自編碼和softmax學習獲得:

多層網路的稀疏自編碼器部分如下圖所示

圖3 多層網路的稀疏自編碼器部分

單個樣本

多個樣本

單個樣本

多個樣本

該多層網路的代價函式完全按照softmax模型的代價函式計算,並加入正則項,但要注意,這裡加入的正則項必須要對整個網路的所有引數進行懲罰!

該模型的梯度計算與單獨使用softmxa模型的公式是相同的,即:

只不過這裡的x為softmax自編碼器最後一層的輸出h

(2)。

單個樣本

多個樣本

最後,將整個網路的梯度(softmaxthetagrad和stackgrad)存放在乙個列向量中

Tensorflow實戰之自編碼器與多層感知機

在無標註資料的情況下,則可利用無監督自編碼器來進行影象特徵的提取 自編碼器,即使用自身的高階特徵對自身進行編碼,簡單來說就是該網路訓練時,輸出等於輸入,使得中間層能夠學習組成影象的基本高階特徵,然後實現利用這些稀疏的高階特徵組合重構自己,所以其本質也是一種輸入輸出一致的神經網路。期望輸出與輸入一致 ...

自編碼器(AutoEncoder

本文講述自編碼器 auto encoder,下文簡稱ae 將按照以下的思路展開講解,力圖使得初學者能看懂其中要義。目錄如下 1.ae的基本原理 2.ae的用途 3.基於mnist資料集的ae的簡單python實現 ae,是神經網路模型的一種,是一種全連線網路模型,而且進行無監督學習,下圖是簡單的ae...

自編碼器簡介

autoencoder,中文譯名自編碼器。主要用於特徵提取,可以理解為一種基於神經網路的壓縮 降維演算法,和pca等類似。自編碼器為一種有損壓縮演算法,通過壓縮 編碼 獲得資料等抽象特徵,並可以通過解壓縮 解碼 將抽象特徵盡可能地還原成原始資料。因此,根據原ppt中對自編碼器 學習使用者高度抽象的特...