自編碼器 是什麼?
Autoencoder — 自編碼器 的完整解釋
自編碼器是一種神經網路,旨在學習輸入數據的壓縮表示(編碼),然後從該壓縮表示重建原始數據(解碼)。
容易混淆
自編碼器 vs 分類模型? 自編碼器:輸入什麼就盡量重建什麼 分類模型:輸入後輸出類別標籤 最關鍵的區別:前者學重建,後者學分類
自編碼器 vs PCA? 自編碼器:神經網路版壓縮器 PCA:線性降維方法 最關鍵的區別:PCA 是線性、自編碼器可以學非線性表示
自編碼器 vs 變分自編碼器? 自編碼器:只靠重建誤差學表徵 變分自編碼器:把潛在空間變成機率式生成模型 最關鍵的區別:VAE 不只重建,還強調可生成性
記住這句就好
先壓縮再還原,逼模型學資料的重點
實際案例
異常偵測 模型只學正常交易的重建方式,當奇怪資料進來時重建誤差變大,就能抓出異常
去雜訊圖片 帶雜訊的照片進去後,模型學會還原乾淨版本,適合影像前處理
算法與應用
重點 你要看什麼 為什麼重要 編碼器 把輸入壓成低維表示 保留關鍵資訊 瓶頸層 最小表示空間 逼模型不能死背 解碼器 把表示重建回輸入 檢查學到的表示是否有用
情境判斷
Q1:如果自編碼器對正常資料重建很好,對異常資料重建很差,這代表什麼? → 代表它學到了正常模式,異常樣本因為不符合規律而難以重建
Q2:如果模型只學會把輸入原封不動複製出來,這還有學到有用表示嗎? → 通常沒有,因為它可能只是記住輸入,沒有真正壓縮與抽象化
相關術語
常見問題
自編碼器一定是無監督學習嗎?
多半是,因為它通常不需要人工標籤,而是自己拿輸入當目標。
瓶頸層越小越好嗎?
不一定。太小會丟掉資訊,太大又可能學不出有效壓縮。
自編碼器能拿來做生成嗎?
普通自編碼器不擅長直接生成,若要生成通常會用 VAE 這類變體。