<center> <img src = "https://i.imgur.com/N60pkEo.png"> </center> ## Prerequisite ### Unsupervised learning 無監督學習是一種機器學習方法,它不依賴標籤或人工指導,而是通過模型自行發現數據中的結構和模式。 在無監督學習中,算法的目標是從數據中找到隱藏的結構,如群集、主成分、或概率分佈,以便更好地理解數據、降維、特徵提取或生成新的數據樣本。 無監督學習的應用包括聚類、降維、生成模型等。 ### Internal Representation Internal Representation 指的是在機器學習和人工智慧中,系統或模型內部使用的數據表達方式,這種表示方式通常以數值或向量的形式存在,有助於系統理解和處理輸入數據,以實現不同的任務,例如分類、生成或降維。 內部表示應該捕捉到輸入數據的重要特徵和結構,以便有效地完成所需的任務。 ## Goal Autoencoder 是一種神經網絡架構,用於無監督學習和降維,通過將輸入數據壓縮成低維表示並再次還原成原始數據。 ## Background Autoencoder(自編碼器)是一種深度學習模型,主要用於降維、特徵提取和生成數據。 它由兩部分組成: - 編碼器(Encoder) - 解碼器(Decoder) Autoencoder的目標是學習一種壓縮表示,稱為編碼(encoding),將輸入數據轉換成一個低維度的代表,然後再將該代表還原為原始數據。  Autoencoder 是一種深度學習模型,主要用於降維、特徵提取和生成數據。它由兩個主要部分組成,分別是編碼器(Encoder)和解碼器(Decoder)。 編碼器的目標是將輸入數據 $\mathbf{x}$ 轉換成壓縮表示 $\mathbf{z}$,這種表示通常比原始數據的維度低。這一過程可以表示為: $$ \mathbf{z} = f(\mathbf{x}) $$ 其中 $f$ 是編碼器的函數。 解碼器的目標是將壓縮表示 $\mathbf{z}$ 還原為與原始數據 $\mathbf{x}$ 尽量相似的數據。這可以表示為: $$ \mathbf{x}' = g(\mathbf{z}) $$ 其中 $g$ 是解碼器的函數。希望 $\mathbf{x}'$ 和 $\mathbf{x}$ 盡可能相似,這樣模型才能正確地學習表示數據。 訓練自編碼器的目標是最小化重建誤差,通常使用均方誤差(MSE)或其他類型的損失函數。通過訓練,自編碼器學會了捕捉輸入數據中的主要特徵,同時降低了維度,這對於數據壓縮和降噪非常有用。 自編碼器還可以用於生成數據,通過在壓縮表示 $\mathbf{z}$ 上加入噪聲,然後使用解碼器生成具有相似特徵的新數據。 --- 其中 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)**: 疊加自編碼器是多個自編碼器層的串聯,每一層都是一個自編碼器。它們可以用於學習更深層次的特徵表示,並在深度學習任務中取得良好的效果。 ## Implementation ## From Scratch [Numpy-Variational-Autoencoder](https://github.com/danielkurniadi/Numpy-Variational-Autoencoder) ## More example [Labelled Faces in the Wild (LFW) Dataset](https://www.kaggle.com/datasets/jessicali9530/lfw-dataset) ## Reference 歡迎更仔細閱讀以下相關內容以了解本篇知識 - [AutoEncoder (一)-認識與理解](https://medium.com/ml-note/autoencoder-%E4%B8%80-%E8%AA%8D%E8%AD%98%E8%88%87%E7%90%86%E8%A7%A3-725854ab25e8) - [重新認識 AutoEncoder,以及訓練 Stacked AutoEncoder 的小技巧](https://medium.com/@elsalin0919/autoencoder-%E6%88%91%E5%B0%8D%E4%B8%8D%E8%B5%B7%E4%BD%A0%E4%B9%8B-%E9%87%8D%E6%96%B0%E8%AA%8D%E8%AD%98autoencoder-%E7%AC%AC%E4%B8%80%E7%AF%87-d970d1ad9971) - [Variational Autoencoders are Beautiful](https://www.compthree.com/blog/autoencoder/)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.