1.無監督學習
無監督學習和監督學習是機器學習的兩個方向,監督學習主要適用於已經標注好的數據集(如mnist分類問題),無監督學習則是希望計算機完成復雜的標注任務,簡單的解釋就是——教機器自己學習,它常見的應用場景有:從龐大的樣本集合中選出一些具有代表性的加以標注用於分類器的訓練、將所有樣本自動分為不同的類別,再由人類對這些類別進行標注、在無類別信息的情況下,尋找好的特征。
2.Auto-Encoders
Auto-Encoders一大重要應用就是生成數據集,新手了解VAE一般都從生成mnist數據集開始,對於生成mnist的一個網絡模型,Auto-Encoders與傳統FNN或者CNN的區別在於它的輸入維度與輸出維度相同,且中間有一個neck層用於降維或升維,經過這樣一個操作可以保持輸入數據的語義相關性。
下圖是只有一個包含兩個神經元的隱藏層以及包含3個神經元的輸出層的自編碼器,輸出是在設法重建輸入,損失函數是重建損失

在Auto-Encoders的訓練過程中,最常用的Loss function有均方誤差和交叉熵,其中,交叉熵損失函數更加適用於二進制的輸入數據。
3.Auto-Encoders的變種
經常拿來和Auto-Encoder比較的一個數據降維的方法叫PCA
PCA的原理請見以下鏈接:https://blog.csdn.net/program_developer/article/details/80632779
Auto-Encoders的一個變種叫Denoising AutoEncoders,它是為了防止模型對像素值的單純記憶產生的,通過加入一些噪聲讓網絡模型在混亂的數據中發現它們真實的語義特征;還有一個變種叫做Dropout AutoEncoders,和監督學習神經網絡中的dropout層道理相同,通過阻止部分神經元的激活來防止網絡過擬合(可能會記住一些噪聲特征,而無法提取真實的特征)
Adversarial AutoEncoders是比較有名的一個,在自編碼過程中,一個比較常見的問題就是生成的數據總是偏向於某一方向分布,而不符合我們平時接觸的任何一種分布(均勻分布、正太分布、高斯分布等),為了解決這個問題,adversarial autoencoders通過加入一個“鑒別器”來對數據進行篩選,從而保證網絡輸出數據的質量。
