精品国产av一区二区三区,国产av一区二区三区,丰满少妇大乳高潮在线,9lporm自拍视频区九色

當前位置:首頁 > 最新資訊 > 客戶問答

什么是自動編碼器?

如果您之前閱讀過無監督學習技術,您可能會遇到“自動編碼器”一詞。自編碼器是開發無監督學習模型的主要方式之一。然而,究竟什么是自動編碼器?

簡而言之,自動編碼器通過接收數據、壓縮和編碼數據,然后從編碼表示中重構數據來進行操作。對模型進行訓練,直到損失最小化并且盡可能接近地再現數據。通過這個過程,自動編碼器可以學習數據的重要特征。雖然這是對自動編碼器的快速定義,但仔細研究自動編碼器并更好地了解它們的功能將是有益的。本文將努力揭開自編碼器的神秘面紗,解釋自編碼器的架構及其應用。

什么是自動編碼器?

自編碼器是神經網絡。神經網絡由多個層組成,自動編碼器的定義方面是輸入層包含與輸出層一樣多的信息。輸入層和輸出層具有完全相同數量的單元的原因是自動編碼器旨在復制輸入數據。它在分析數據并以無監督方式重建數據后輸出數據副本。

通過自動編碼器移動的數據不僅僅是從輸入直接映射到輸出,這意味著網絡不只是復制輸入數據。自動編碼器包含三個組件:壓縮數據的編碼(輸入)部分、處理壓縮數據(或瓶頸)的組件和解碼器(輸出)部分。當數據被輸入自動編碼器時,它會被編碼,然后壓縮到更小的尺寸。然后對網絡進行編碼/壓縮數據的訓練,并輸出該數據的重建。

那么為什么要訓練一個網絡來重建提供給它的數據呢?原因是網絡學習了輸入數據的“本質”或最重要的特征。訓練完網絡后,可以創建一個模型來合成相似的數據,并添加或減去某些目標特征。例如,您可以在顆粒狀圖像上訓練自動編碼器,然后使用經過訓練的模型從圖像中去除顆粒/噪聲。

自動編碼器架構

讓我們看一下自動編碼器的架構。我們將在這里討論自動編碼器的主要架構。我們將在下面的部分中討論這種通用架構的變體。

照片:Michela Massi 來自 Wikimedia Commons

如前所述,自動編碼器基本上可以分為三個不同的組件:編碼器、瓶頸和解碼器。

自編碼器的編碼器部分通常是一個前饋、密集連接的網絡。編碼層的目的是獲取輸入數據并將其壓縮為潛在空間表示,生成具有降維的數據的新表示。

代碼層或瓶頸處理數據的壓縮表示。瓶頸代碼經過精心設計,以確定觀察數據中最相關的部分,或者以另一種方式表示對數據重建最重要的數據特征。這里的目標是確定數據的哪些方面需要保留,哪些可以丟棄。瓶頸代碼需要平衡兩個不同的考慮:表示大小(表示的緊湊程度)和變量/特征相關性。瓶頸對網絡的權重和偏差執行逐元素激活。瓶頸層有時也稱為潛在表示或潛在變量。

解碼器層負責獲取壓縮數據并將其轉換回與原始未更改數據具有相同維度的表示。轉換是使用編碼器創建的潛在空間表示完成的。

自編碼器最基本的架構是前饋架構,其結構很像多層感知器中使用的單層感知器。與常規的前饋神經網絡非常相似,自動編碼器是通過使用反向傳播來訓練的。

自動編碼器的屬性

有各種類型的自動編碼器,但它們都具有將它們結合在一起的某些屬性。

自動編碼器自動學習。它們不需要標簽,如果提供足夠的數據,很容易讓自動編碼器在特定類型的輸入數據上達到高性能。

自動編碼器是特定于數據的。這意味著他們只能壓縮與自動編碼器已經訓練過的數據高度相似的數據。自動編碼器也是有損的,這意味著模型的輸出與輸入數據相比會下降。

在設計自動編碼器時,機器學習工程師需要注意四個不同的模型超參數:代碼大小、層數、每層節點和損失函數。

代碼大小決定了有多少節點開始網絡的中間部分,更少的節點壓縮更多的數據。在深度自動編碼器中,雖然層數可以是工程師認為合適的任何數量,但隨著編碼器的繼續,層中的節點數應該減少。同時,解碼器的情況正好相反,這意味著隨著解碼器層接近最后一層,每層的節點數應該增加。最后,自動編碼器的損失函數通常是二元交叉熵或均方誤差。二進制交叉熵適用于數據輸入值在 0 – 1 范圍內的情況。

自動編碼器類型

如上所述,存在經典自動編碼器架構的變體。讓我們來看看不同的自動編碼器架構。

照片:Michela Massi 來自 Wikimedia Commons,CC BY SA 4.0

雖然自動編碼器通常具有通過減少節點來壓縮數據的瓶頸,但稀疏自動編碼器是該典型操作格式的替代方案。在稀疏網絡中,隱藏層保持與編碼器和解碼器層相同的大小。相反,給定層內的激活會受到懲罰,設置它以便損失函數更好地捕捉輸入數據的統計特征。換句話說,雖然稀疏自動編碼器的隱藏層比傳統的自動編碼器有更多的單元,但在任何給定時間只有一定百分比的單元是活動的。最有影響的激活函數被保留,其他的被忽略,這個約束有助于網絡確定輸入數據中最顯著的特征。

收縮的

收縮自動編碼器旨在抵御數據中的微小變化,保持數據的一致表示。這是通過對損失函數施加懲罰來實現的。這種正則化技術基于雅可比矩陣的 Frobenius 范數,用于輸入編碼器激活。這種正則化技術的效果是模型被迫構建一個編碼,其中相似的輸入將具有相似的編碼。

卷積

卷積自動編碼器通過將數據分成多個小節,然后將這些小節轉換為簡單的信號來對輸入數據進行編碼,這些簡單的信號相加在一起以創建數據的新表示。與卷積神經網絡類似,卷積自動編碼器專門研究圖像數據的學習,它使用一個過濾器,逐段移動到整個圖像。編碼層生成的編碼可用于重建圖像、反映圖像或修改圖像的幾何形狀。一旦網絡學習了過濾器,就可以在任何足夠相似的輸入上使用它們來提取圖像的特征。

去噪

照片:MAL 來自 Wikimedia Commons,CC BY SA 3.0

去噪自動編碼器將噪聲引入編碼,導致編碼是原始輸入數據的損壞版本。這個損壞的數據版本用于訓練模型,但損失函數將輸出值與原始輸入進行比較,而不是損壞的輸入。目標是網絡將能夠復制圖像的原始、未損壞版本。通過將損壞的數據與原始數據進行比較,網絡可以了解數據的哪些特征最重要,哪些特征不重要/損壞。換句話說,為了讓模型對損壞的圖像進行去噪,它必須提取圖像數據的重要特征。

變分

變分自動編碼器通過對數據的潛在變量如何分布做出假設來運行。變分自動編碼器為訓練圖像/潛在屬性的不同特征生成概率分布。訓練時,編碼器為輸入圖像的不同特征創建潛在分布。

因為該模型將特征或圖像學習為高斯分布而不是離散值,所以它能夠用于生成新圖像。對高斯分布進行采樣以創建一個向量,該向量被輸入解碼網絡,解碼網絡根據該樣本向量渲染圖像。本質上,該模型學習了訓練圖像的共同特征,并為它們分配了它們發生的概率。然后可以使用概率分布對圖像進行逆向工程,生成與原始訓練圖像相似的新圖像。

在訓練網絡時,對編碼數據進行分析,識別模型輸出兩個向量,得出圖像的均值和標準差。基于這些值創建分布。這是針對不同的潛在狀態完成的。然后解碼器從相應的分布中抽取隨機樣本,并使用它們來重建網絡的初始輸入。

自動編碼器應用

自動編碼器可用于多種應用,但它們通常用于降維、數據去噪、特征提取、圖像生成、序列到序列預測和推薦系統等任務。

數據去噪是使用自動編碼器從圖像中去除顆粒/噪聲。同樣,自動編碼器可用于修復其他類型的圖像損壞,例如模糊圖像或圖像缺失部分。降維可以幫助高容量網絡學習圖像的有用特征,這意味著自動編碼器可用于增強其他類型神經網絡的訓練。使用自動編碼器進行特征提取也是如此,因為自動編碼器可用于識別其他訓練數據集的特征以訓練其他模型。

在圖像生成方面,自動編碼器可用于生成虛假的人類圖像或動畫角色,這在設計人臉識別系統或動畫的某些方面具有應用。

序列到序列預測模型可用于確定數據的時間結構,這意味著即使在序列中也可以使用自動編碼器生成下一個。因此,可以使用自動編碼器來生成視頻。最后,深度自動編碼器可用于通過拾取與用戶興趣相關的模式來創建推薦系統,編碼器分析用戶參與數據,解碼器創建適合已建立模式的推薦。

猜你喜歡