深度神經網絡——什么是自動編碼器?

自動編碼器

自動編碼器(Autoencoders)是無監督學習領域中一種重要的神經網絡架構,它們主要用于數據壓縮和特征學習。

  1. 自動編碼器的定義
    自動編碼器是一種無監督機器學習算法,它通過反向傳播進行訓練,目標值被設置為與輸入值相等。其核心目標是對輸入數據進行壓縮,轉換成一個更小的表示形式,如果需要原始數據,可以從壓縮后的數據中重建。

  2. 自動編碼器的組成
    自動編碼器由三個主要部分組成:

    • 編碼器(Encoder):負責將輸入數據壓縮成低維表示形式,即潛在空間(latent space)表示。
    • 潛在空間(Code或Bottleneck):表示壓縮后的數據,該數據隨后被送入解碼器。
    • 解碼器(Decoder):負責將編碼后的表示重建成原始數據維度,重建的數據是對原始輸入的一個有損近似。
  3. 自動編碼器的工作流程

    • 數據首先被輸入到自動編碼器中。
    • 編碼器將數據編碼并壓縮成較小的潛在表示。
    • 然后,解碼器學習如何從這個壓縮的表示中重建原始數據。
  4. 訓練目的
    訓練自動編碼器的目的不單是復制輸入數據,而是讓網絡學習輸入數據的本質特征。通過最小化損失函數,網絡學習到如何從壓縮表示中有效地重建數據。

  5. 應用場景

    • 圖像去噪:自動編碼器可以被訓練來識別并去除圖像中的噪聲。
    • 數據降維:自動編碼器用于降低數據的維度,同時盡可能保留重要信息。
    • 特征提取:自動編碼器可以提取數據中的關鍵特征,這些特征可以用于其他機器學習任務。
    • 圖像上色:將黑白圖像轉換為彩色圖像。
    • 水印去除:從圖像或視頻中去除不需要的對象或水印。
  6. 為何使用自動編碼器
    與主成分分析(PCA)等傳統技術相比,自動編碼器能夠學習非線性轉換,可以利用非線性激活函數和多層結構。此外,自動編碼器可以使用卷積層來學習圖像、視頻和序列數據,這比PCA更有效。

  7. 自動編碼器的類型

    • 卷積自動編碼器(Convolutional Autoencoders):適用于圖像數據,可以用于圖像重建、上色等。
    • 稀疏自動編碼器(Sparse Autoencoders):通過懲罰隱藏層的激活來引入信息瓶頸。
    • 深度自動編碼器(Deep Autoencoders):由多層編碼和解碼網絡組成,可以學習更復雜的數據表示。
    • 合同自動編碼器(Contractive Autoencoders):通過懲罰隱藏層激活相對于輸入的大幅度變化來幫助網絡編碼未標記的訓練數據。

自動編碼器架構

先來看看 自動編碼器的架構。 :

自動編碼器的架構可以概括為三個核心組件:編碼器、瓶頸(或潛在空間),以及解碼器:

  1. 編碼器(Encoder)
    編碼器是自動編碼器的輸入部分,通常由前饋、密集連接的網絡層組成。它的任務是接收原始輸入數據,并通過一系列的變換,將其轉換成一個低維的內部表示。這個過程涉及到數據壓縮,目的是提取輸入數據中的關鍵特征,并將其編碼到一個較小的潛在空間中。

  2. 瓶頸(Bottleneck)
    瓶頸層,也稱為潛在表示或潛在變量,是自動編碼器中編碼過程的結果。這一層捕捉了輸入數據的壓縮表示,它包含了重建原始數據所必需的最重要信息。瓶頸層的設計至關重要,因為它需要決定哪些數據特征是信息豐富且需要保留的,哪些是可以丟棄的。瓶頸層通過逐元素的激活函數處理網絡的權重和偏差,以實現這種壓縮和特征選擇。

  3. 解碼器(Decoder)
    解碼器是自動編碼器的輸出部分,它的任務是將瓶頸層的壓縮表示重新轉換成原始數據的高維表示。解碼器通常由一系列解壓縮的層組成,這些層逐步增加數據的維度,直到達到與原始輸入數據相同的維度。解碼器的目標是從潛在空間表示中重建數據,盡可能地恢復輸入數據的原始特征和結構。

自動編碼器的訓練通常采用反向傳播算法,這是一種監督學習技術,用于最小化輸入數據和重建數據之間的差異,通常通過損失函數來衡量。損失函數的常見選擇包括均方誤差(MSE)或二元交叉熵(Binary Cross-Entropy, BCE),具體取決于數據的性質和范圍。

自動編碼器的屬性

自動編碼器有多種類型,但它們都具有將它們結合在一起的某些屬性。自動編碼器自動學習。 它們不需要標簽,如果給定足夠的數據,很容易讓自動編碼器在特定類型的輸入數據上達到高性能。自動編碼器是特定于數據的。 這意味著它們只能壓縮與自動編碼器已經訓練過的數據高度相似的數據。 自動編碼器也是有損的,這意味著模型的輸出與輸入數據相比將會降低。
在設計自動編碼器時,機器學習工程師需要注意四個不同的模型超參數:代碼大小、層數、每層節點和損失函數。
代碼大小決定了有多少節點開始網絡的中間部分,節點越少,數據壓縮得越多。 在深度自動編碼器中,雖然層數可以是工程師認為合適的任何數量,但層中的節點數應該隨著編碼器的繼續而減少。 同時,解碼器中的情況正好相反,這意味著隨著解碼器層接近最后一層,每層的節點數量應該增加。 最后,自動編碼器的損失函數通常是二進制交叉熵或均方誤差。 二元交叉熵適用于數據輸入值在 0 – 1 范圍內的情況。

自動編碼器類型

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

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

收縮性

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

卷積

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

去噪

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

變分

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

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

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

自動編碼器應用

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

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

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17314.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17314.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【夏之以寒-Kafka專欄 02】什么情況下會發生 QueueFullException?

作者名稱:夏之以寒 作者簡介:專注于Java和大數據領域,致力于探索技術的邊界,分享前沿的實踐和洞見 文章專欄:夏之以寒-kafka專欄 專欄介紹:本專欄旨在以淺顯易懂的方式介紹Kafka的基本概念、核心組件和使用…

2023山東ICPC省賽Problem B.建筑公司(拓撲排序)

2023 山東 I C P C 省賽 P r o b l e m B . 建筑公司 \Huge{2023山東ICPC省賽Problem B.建筑公司} 2023山東ICPC省賽ProblemB.建筑公司 文章目錄 題意思路標程 比賽鏈接:Dashboard - The 13th Shandong ICPC Provincial Collegiate Programming Contest - Codeforce…

OWASP top10--SQL注入(三、手工注入)

目錄 access數據庫 手工注入過程: 猜解數據庫表名 猜解數據庫表名里面的字段 猜解字段內容 SQL注入中的高級查詢 mssql數據庫 手工注入過程: sa權限 ?編輯dbowner權限 public權限 mysql數據庫 1、對服務器文件進行讀寫操作(前提條件) 需要知…

文刻創作ai工具官網免費工具

文刻創作ai工具官網免費工具 Docshttps://iimenvrieak.feishu.cn/docx/O0UedptjbonN4UxyEy7cPlZknYc 文刻是一種可以幫助用戶進行創作的AI工具。 它使用自然語言處理和機器學習技術,可以生成文章、故事、詩歌等文本內容。 用戶可以通過輸入一些關鍵詞或指定一定的…

浙江大學數據結構MOOC-課后習題-第七講-圖4 哈利·波特的考試

題目匯總 浙江大學數據結構MOOC-課后習題-拼題A-代碼分享-2024 題目描述 代碼展示 照著教程視頻來的&#xff0c;沒啥好說的捏 #include <cstdlib> #include <iostream>#define MAXSIZE 100 #define IFINITY 65535 typedef int vertex; typedef int weightType;/…

為什么大部分新手做抖音小店賺不到錢?

大家好&#xff0c;我是噴火龍。 今天來給大家聊聊&#xff0c;為什么大部分新手做抖店賺不到錢&#xff1f; 不知道大家想過這個問題沒有&#xff0c;可能有些人把賺不到錢的原因歸結于市場、或者平臺、又或者運營技術以及做店經驗。 但我覺得這些都不是重點&#xff0c;重…

FFmpeg 使用文檔介紹二:命令行選項

關于FFmpeg的細節描述可以參考:FFmpeg 使用文檔介紹一:細節描述和流選擇 命令行選項 所有數值選項,除非另有說明,都接受一個表示數字的字符串作為輸入,該字符串后面可以跟一個國際單位制(SI)的單位前綴,例如:‘K’(千)、‘M’(兆)或’G’(吉)。 如果將i附加到S…

爬蟲實戰教程:深入解析配樂網站爬取1000首MP3

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、引言 二、實戰前準備 1. 選擇目標網站 2. 分析網頁結構 三、爬蟲工作流程詳解 1. 發…

高質量軟件開發的全面指南(MIT-6.031)

首先&#xff0c;通過靜態檢查&#xff08;Static Checking&#xff09;和動態檢查&#xff08;Dynamic Checking&#xff09;了解類型和變量的使用規則&#xff0c;學習如何編寫文檔和注釋來記錄假設和方法&#xff08;Assumptions and Methods&#xff09;。詳細內容請見&…

Curator Framework如何寫單元測試

概述 使用curator framework框架去操作zookeeper時&#xff0c;我們知道因其的方法風格是那種流式的編寫風格&#xff0c;所以我們在寫單元測試的時候要把鏈接zookeeper的操作給mock掉&#xff0c;那么著實是不太好寫單測。不過好在curator framework有一個專門用于測試的模塊…

誠心分享!主食凍干橫向對比:希喂、愛立方、K9等誰最值得入手?

主食凍干到底有必要喂嗎&#xff1f;七年鏟齡鏟屎官告訴你&#xff0c;是真的很有必要喂&#xff01; 這些年隨著寵物經濟的發展、科學養寵的普及&#xff0c;現在養貓不僅局限在讓貓吃飽就行&#xff0c;更多人開始關注到貓的飲食健康。大量的實際喂養案例證明了&#xff0c;傳…

第2章 物理層

王道學習 考綱內容 &#xff08;一&#xff09;通信基礎 信道、信號、帶寬、碼元、波特、速率、信源與信宿等基本概念&#xff1b; 奈奎斯特定理與香農定理&#xff1b;編碼與調制&#xff1b; 電路交換、報文交換與分組交換&#xff1b;數…

接口響應斷言-json

json認識JSONPath源碼類學習/json串的解析拓展學習 目的&#xff1a;數據返回值校驗測試 json認識 json是什么-是一種數據交換格式&#xff0c;舉例平時看到的json圖2&#xff0c;在使用中查看不方便&#xff0c;會有格式轉化的平臺&#xff0c;json格式的展示 JSON在線視圖…

推薦二輪電動車儀表盤藍牙主芯片方案-HS6621CGC

隨著國內二輪電動車的火熱開啟&#xff0c;電動車的智能化程度越來越高&#xff1b;電動車的智能操控需求也越來越高&#xff0c;現在介紹藍牙控制面板的一些功能&#xff1b;例如&#xff1a;定位&#xff08;GNSS&#xff09;&#xff0c;設防&#xff0c;實時上報數據&#…

rocketmq跨版本升級方案參考—— 筑夢之路

這篇文章寫的比較好&#xff0c;可以作為參考&#xff0c;抽空再來按照這個思路進行實踐實驗。 https://www.cnblogs.com/zhyg/p/10132598.html 對于rocketmq和kafka如何選擇&#xff0c;可閱讀搭建項目 Kafka 和 RocketMQ 你選哪個&#xff1f;

什么是光柵化?

一、 什么是光柵化? 光柵化作用是將幾何數據變換后轉換為像素呈現在顯示設備上的一個過程。幾何數據轉換為像素&#xff0c; 本質是坐標變換、幾何離散化&#xff0c;如下&#xff1a; 其中包含了坐標變換和幾何離散化&#xff1a; 二、光柵化完成了什么 3D中&#xff0c;物…

element-ui 實現輸入框下拉樹組件(2024-05-23)

用element-ui的 el-input&#xff0c;el-tree&#xff0c;el-popover組件組合封裝 import url("//unpkg.com/element-ui2.15.14/lib/theme-chalk/index.css"); <script src"//unpkg.com/vue2/dist/vue.js"></script> <script src"//…

棗莊高防服務器如何實現全球覆蓋?

利用 棗莊高防服務器如何實現全球覆蓋&#xff1f; 嗨&#xff0c;親愛的讀者們&#xff01;今天我們將帶你探索如何利用棗莊高防服務器實現全球覆蓋&#xff0c;讓你的網站在世界各地都能穩定快速地訪問。而我們這次推薦的服務器商是萊卡云&#xff08;Lcayun&#xff09;&am…

C數據結構:二叉樹

目錄 二叉樹的數據結構 前序遍歷 中序遍歷 后序遍歷 二叉樹的創建 二叉樹的銷毀 二叉樹的節點個數 二叉樹葉子節點個數 二叉樹第K層節點個數 二叉樹的查找 層序遍歷 判斷二叉樹是否為完全二叉樹 完整代碼 二叉樹的數據結構 typedef char BTDataType; typedef str…

使用numpy手寫一個神經網絡

本文主要包含以下內容&#xff1a; 推導神經網絡的誤差反向傳播過程使用numpy編寫簡單的神經網絡&#xff0c;并使用iris數據集和california_housing數據集分別進行分類和回歸任務&#xff0c;最終將訓練過程可視化。 1. BP算法的推導過程 1.1 導入 前向傳播和反向傳播的總體…