了解自編碼器

2021-09-28 23:17:44 字數 2572 閱讀 2770

1.什麼是自編碼器?

自動編碼器是一種無監督的機器學習演算法,該演算法將影象作為輸入並使用較少的位數來重建它。這聽起來像是影象壓縮,但是自動編碼器和通用影象壓縮演算法之間的最大區別在於,在自動編碼器的情況下,壓縮是通過學習訓練資料集來實現的。當影象類似於所使用的訓練集時,雖然可以實現合理的壓縮,但是自動編碼器的通用影象壓縮器不佳;jpeg壓縮會做得更好。

自動編碼器在本質上類似於降維技術(例如主成分分析)。它們建立了乙個空間,在其中保留了資料的重要部分,而刪除了非必要(或嘈雜)部分。

自動編碼器分為兩部分:

乙個例子,以更好地理解該概念:

在上面的中,展示了一種香草自動編碼器-一種具有乙個隱藏層的2層自動編碼器。輸入和輸出層具有相同數量的神經元。我們將五個實數值輸入到自動編碼器中,該編碼器在瓶頸(中間層)處將其壓縮為三個實數值。解碼器使用這三個實數值,嘗試重構我們作為網路輸入提供的五個實數值。

實際上,在輸入和輸出之間存在大量隱藏層。

有多種自動編碼器,例如稀疏自動編碼器,變分自動編碼器和降噪自動編碼器。在這篇文章中,我們將學習去噪自動編碼器。

2.去噪自動編碼器

去噪自動編碼器背後的想法是學習對雜訊具有魯棒性的表示(潛在空間)。我們將雜訊新增到影象中,然後將此嘈雜的影象作為輸入輸入到我們的網路中。自動編碼器的編碼器部分將影象轉換為保留手寫數字但消除雜訊的不同空間。稍後我們將看到,原始影象是28 x 28 x 1影象,而轉換後的影象是7 x 7 x32。可以將7 x 7 x 32影象視為具有32個顏色通道的7 x 7影象。

使用tensorflow(python)了解自動編碼器。

1.什麼是自動編碼器?

自動編碼器是一種無監督的機器學習演算法,該演算法將影象作為輸入並使用較少的位數來重建它。這聽起來像是影象壓縮,但是自動編碼器和通用影象壓縮演算法之間的最大區別在於,在自動編碼器的情況下,壓縮是通過學習訓練資料集來實現的。當影象類似於所使用的訓練集時,雖然可以實現合理的壓縮,但是自動編碼器的通用影象壓縮器不佳;jpeg壓縮會做得更好。

自動編碼器在本質上類似於降維技術(例如主成分分析)。它們建立了乙個空間,在其中保留了資料的重要部分,而刪除了非必要(或嘈雜)部分。

自動編碼器分為兩部分

編碼器:這是網路中將輸入壓縮為更少位數的部分。這些較少位數表示的空間稱為「潛在空間」,而最大壓縮點稱為瓶頸。這些代表原始輸入的壓縮位統稱為輸入的「編碼」。

解碼器:這是網路中使用影象編碼重建輸入影象的部分。

讓我們看乙個例子,以更好地理解該概念。

自動編碼器

圖:2層自動編碼器

在上面的中,我們展示了一種香草自動編碼器-一種具有乙個隱藏層的2層自動編碼器。輸入和輸出層具有相同數量的神經元。我們將五個實數值輸入到自動編碼器中,該編碼器在瓶頸(中間層)處將其壓縮為三個實數值。解碼器使用這三個實數值,嘗試重構我們作為網路輸入提供的五個實數值。

實際上,在輸入和輸出之間存在大量隱藏層。

有多種自動編碼器,例如稀疏自動編碼器,變分自動編碼器和降噪自動編碼器。

2.去噪自動編碼器

去噪自動編碼器:

去噪自動編碼器背後的想法是學習對雜訊具有魯棒性的表示(潛在空間)。我們將雜訊新增到影象中,然後將此嘈雜的影象作為輸入輸入到我們的網路中。自動編碼器的編碼器部分將影象轉換為保留手寫數字但消除雜訊的不同空間。稍後我們將看到,原始影象是28 x 28 x 1影象,而轉換後的影象是7 x 7 x32。可以將7 x 7 x 32影象視為具有32個顏色通道的7 x 7影象。

然後,網路的解碼器部分會從此7 x 7 x 32影象中重建原始影象,瞧,雜訊消失了!這種魔術是如何發生的?

在訓練過程中,我們定義了乙個損失(成本函式)以最小化重建影象與原始無雜訊影象之間的差異。換句話說,我們學習了7 x 7 x 32的無雜訊空間。

去噪自動編碼器的實現:

構建網路:影象是尺寸為28 x 28 x的矩陣。我們將影象重新塑形為尺寸為28 x 28 x 1,將尺寸調整後的影象矩陣轉換為陣列,在0和1之間重新縮放,並將其作為輸入饋送到網路。編碼器將28 x 28 x 1影象轉換為7 x 7 x 32影象。您可以將此7 x 7 x 32影象視為1568(因為7 x 7 x 32 = 1568)維空間中的乙個點。1568維空間稱為瓶頸或潛在空間。該架構如下圖所示。

解碼器與編碼器完全相反。它將1568維向量轉換回28 x 28 x 1影象。我們稱此輸出影象為原始影象的「重建」。解碼器的結構如下所示。

自編碼器(AutoEncoder

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

自編碼器簡介

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

自編碼器(AutoEncoder)

自編碼器主要分為兩步 編碼 encoder 和解碼 decoder 編碼階段主要是將輸入資訊對映到低維度的空間 提取有用的特徵 解碼階段主要是為了還原輸入的結果。其中損失函式l用於度量輸出資訊與輸入資訊偏離的程度 正則自編碼器是在損失函式中加入對模型複雜度的懲罰項 根據損失函式的不同,自編碼器可以分...