隨機編碼器

自編碼器(autoencoder)是神經網路的一種,經過訓練後能嘗試將輸入複製到輸出。該網路可以看作由兩部分組成:一個由函式h=f(x)表示的編碼器和一個生成重構的解碼器r=g(h)。

在自編碼器的基礎上,隨機編碼器的形成過程為:在編碼器和解碼器注入一些噪聲,使得它們的輸出是來自分布的採樣。

自編碼器

隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器

自編碼器本質上是一個前饋網路,可以使用與傳統前饋網路相同的損失函式和輸出單元。設計前饋網路的輸出單元和損失函式普遍策略是定義一個輸出分布 並最小化負對數似然 。在這種情況下, 是關於目標的向量(如類標)。

隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器

在自編碼器中, 既是輸入也是目標。然而,我們仍然可以使用與之前相同的架構。給定一個隱藏編碼 ,我們可以認為解碼器提供了一個條件分布 。接著我們根據最小化 來訓練自編碼器。 損失函式的具體形式視 的形式而定。

隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器

就傳統的前饋網路來說,如果 是實值的,那么我們通常使用線性輸出單元參數化高斯分布的均值。在這種情況下,負對數似然對應均方誤差準則。類似地,二值 對應於一個 Bernoulli 分布,其參數由 sigmoid 輸出單元確定的。而離散的 對應 softmax 分布,以此類推。在給定 的情況下,為了便於計算機率分布,輸出變數通常被視為是條件獨立的,但一些技術(如混合密度輸出)可以解決輸出相關的建模。

隨機編碼器結構

隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器

為了更徹底地與我們之前了解到的前饋網路相區別,我們也可以將編碼函式(encoding function) 的概念推廣為編碼分布 (encoding distribution) ,如圖 1中所示。

圖1 隨機自編碼器結構 圖1 隨機自編碼器結構
隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器

如圖1,為隨機自編碼器的結構。其中,編碼器和解碼器包括一些噪聲注入,而不是簡單的函式。這意味著可以將它們的輸出視為來自分布的採樣(對於編碼器是 ,對於解碼器是 。

隨機編碼器 隨機編碼器

任何潛變數模型 定義一個隨機編碼器

隨機編碼器 隨機編碼器

以及一個隨機解碼器

隨機編碼器 隨機編碼器
隨機編碼器 隨機編碼器

通常情況下, 編碼器和解碼器的分布沒有必要是與唯一一個聯合分布 相容的條件分布。在保證足夠的容量和樣本的情況下,將編碼器和解碼器作為去噪自編碼器訓練,能使它們漸近地相容。

相關詞條

熱門詞條

聯絡我們