自編碼器(Autoencoder)是什麼?

自編碼器是一種神經網路,旨在學習輸入數據的壓縮表示(編碼),然後從該壓縮表示重建原始數據(解碼)。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

自編碼器(Autoencoder)是什麼? 深度學習資料處理

你想把一張圖片壓縮後再還原,模型能不能自己學怎麼壓? 你可以把自編碼器想成先壓縮、再重建的神經網路,它學的是資料的濃縮表示。 它常用來做降維、異常偵測與特徵學習。

你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。

容易混淆

自編碼器 vs 分類模型? 自編碼器:輸入什麼就盡量重建什麼 分類模型:輸入後輸出類別標籤 最關鍵的區別:前者學重建,後者學分類

自編碼器 vs PCA? 自編碼器:神經網路版壓縮器 PCA:線性降維方法 最關鍵的區別:PCA 是線性、自編碼器可以學非線性表示

自編碼器 vs 變分自編碼器? 自編碼器:只靠重建誤差學表徵 變分自編碼器:把潛在空間變成機率式生成模型 最關鍵的區別:VAE 不只重建,還強調可生成性

記住這句就好

先壓縮再還原,逼模型學資料的重點

實際案例

異常偵測 模型只學正常交易的重建方式,當奇怪資料進來時重建誤差變大,就能抓出異常

去雜訊圖片 帶雜訊的照片進去後,模型學會還原乾淨版本,適合影像前處理

算法與應用

重點 你要看什麼 為什麼重要
編碼器 把輸入壓成低維表示 保留關鍵資訊
瓶頸層 最小表示空間 逼模型不能死背
解碼器 把表示重建回輸入 檢查學到的表示是否有用

情境判斷

Q1:如果自編碼器對正常資料重建很好,對異常資料重建很差,這代表什麼? → 代表它學到了正常模式,異常樣本因為不符合規律而難以重建

Q2:如果模型只學會把輸入原封不動複製出來,這還有學到有用表示嗎? → 通常沒有,因為它可能只是記住輸入,沒有真正壓縮與抽象化

常見問題

自編碼器一定是無監督學習嗎?

多半是,因為它通常不需要人工標籤,而是自己拿輸入當目標。

瓶頸層越小越好嗎?

不一定。太小會丟掉資訊,太大又可能學不出有效壓縮。

自編碼器能拿來做生成嗎?

普通自編碼器不擅長直接生成,若要生成通常會用 VAE 這類變體。