iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
AI & Data

ML From Scratch系列 第 21

[Day 21] Autoencoder — 背後理論

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230921/20152821lt7xThXcj3.png

Prerequisite

Unsupervised learning

無監督學習是一種機器學習方法,它不依賴標籤或人工指導,而是通過模型自行發現數據中的結構和模式。

在無監督學習中,算法的目標是從數據中找到隱藏的結構,如群集、主成分、或概率分佈,以便更好地理解數據、降維、特徵提取或生成新的數據樣本。

無監督學習的應用包括聚類、降維、生成模型等。

Internal Representation

Internal Representation 指的是在機器學習和人工智慧中,系統或模型內部使用的數據表達方式,這種表示方式通常以數值或向量的形式存在,有助於系統理解和處理輸入數據,以實現不同的任務,例如分類、生成或降維。

內部表示應該捕捉到輸入數據的重要特徵和結構,以便有效地完成所需的任務。

Goal

Autoencoder 是一種神經網絡架構,用於無監督學習和降維,通過將輸入數據壓縮成低維表示並再次還原成原始數據。

Background

Autoencoder(自編碼器)是一種深度學習模型,主要用於降維、特徵提取和生成數據。

它由兩部分組成:

  • 編碼器(Encoder)
  • 解碼器(Decoder)

Autoencoder的目標是學習一種壓縮表示,稱為編碼(encoding),將輸入數據轉換成一個低維度的代表,然後再將該代表還原為原始數據。

https://ithelp.ithome.com.tw/upload/images/20230921/2015282131ExBOqs8b.png

Autoencoder 是一種深度學習模型,主要用於降維、特徵提取和生成數據。它由兩個主要部分組成,分別是編碼器(Encoder)和解碼器(Decoder)。

編碼器的目標是將輸入數據 https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bx%7D 轉換成壓縮表示 https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bz%7D,這種表示通常比原始數據的維度低。這一過程可以表示為:

https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bz%7D%20%3D%20f(%5Cmathbf%7Bx%7D)%20

其中 https://chart.googleapis.com/chart?cht=tx&chl=f 是編碼器的函數。

解碼器的目標是將壓縮表示 https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bz%7D 還原為與原始數據 https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bx%7D 儘量相似的數據。這可以表示為:

https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bx%7D'%20%3D%20g(%5Cmathbf%7Bz%7D)%20

其中 https://chart.googleapis.com/chart?cht=tx&chl=g 是解碼器的函數。希望 https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bx%7D'https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bx%7D 盡可能相似,這樣模型才能正確地學習表示數據。

訓練自編碼器的目標是最小化重建誤差,通常使用均方誤差(MSE)或其他類型的損失函數。通過訓練,自編碼器學會了捕捉輸入數據中的主要特徵,同時降低了維度,這對於數據壓縮和降噪非常有用。

自編碼器還可以用於生成數據,通過在壓縮表示 https://chart.googleapis.com/chart?cht=tx&chl=%5Cmathbf%7Bz%7D 上加入噪聲,然後使用解碼器生成具有相似特徵的新數據。


其中 AutoEncoder 有以下幾種:

  1. 標準自編碼器(Standard Autoencoder)
    最基本的類型,由編碼器和解碼器組成,用於將輸入數據壓縮成低維度表示並還原它。它們通常用於降維和特徵學習。

  2. 變分自編碼器(Variational Autoencoder,VAE)
    VAE是一種生成型自編碼器,它不僅學習壓縮表示,還學習了潛在空間的統計分佈。這使得VAE能夠生成具有類似統計分佈的新數據,並且在生成過程中可以控制數據的特徵。

  3. 卷積自編碼器(Convolutional Autoencoder)
    使用卷積神經網絡(CNN)作為編碼器和解碼器的基礎結構,主要用於處理圖像數據。它們可以有效地捕捉圖像中的空間特徵。

  4. 遞歸自編碼器(Recurrent Autoencoder)
    使用遞歸神經網絡(RNN)或長短期記憶(LSTM)等循環神經網絡來處理序列數據,如時間序列或自然語言文本。它們在序列數據的特徵提取和生成方面非常有用。

  5. 去噪自編碼器(Denoising Autoencoder)
    去噪自編碼器的訓練過程涉及在輸入數據上引入噪聲,然後使用自編碼器恢復原始數據。這有助於自編碼器學習對噪聲魯棒的特徵表示。

  6. 稀疏自編碼器(Sparse Autoencoder)
    稀疏自編碼器強制編碼的表示是稀疏的,這意味著大多數元素為零。這種約束可以幫助自編碼器更好地學習數據中的重要特徵。

  7. 疊加自編碼器(Stacked Autoencoder)
    疊加自編碼器是多個自編碼器層的串聯,每一層都是一個自編碼器。它們可以用於學習更深層次的特徵表示,並在深度學習任務中取得良好的效果。


/images/emoticon/emoticon18.gif

下次就會進入到實做的部份!!!

Reference

歡迎更仔細閱讀以下相關內容以了解本篇知識


上一篇
[Day 20] Neural Network — 解決真實問題
下一篇
[Day 22] Autoencoder — 主題實作
系列文
ML From Scratch31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言