1.無監督學習網絡
無監督學習和監督學習是機器學習的兩個方向,監督學習主要適用於已經標註好的數據集(如mnist分類問題),無監督學習則是但願計算機完成複雜的標註任務,簡單的解釋就是——教機器本身學習,它常見的應用場景有:從龐大的樣本集合中選出一些具備表明性的加以標註用於分類器的訓練、將全部樣本自動分爲不一樣的類別,再由人類對這些類別進行標註、在無類別信息的狀況下,尋找好的特徵。機器學習
2.Auto-Encoders函數
Auto-Encoders一大重要應用就是生成數據集,新手瞭解VAE通常都從生成mnist數據集開始,對於生成mnist的一個網絡模型,Auto-Encoders與傳統FNN或者CNN的區別在於它的輸入維度與輸出維度相同,且中間有一個neck層用於降維或升維,通過這樣一個操做能夠保持輸入數據的語義相關性。學習
下圖是隻有一個包含兩個神經元的隱藏層以及包含3個神經元的輸出層的自編碼器,輸出是在設法重建輸入,損失函數是重建損失編碼
在Auto-Encoders的訓練過程當中,最經常使用的Loss function有均方偏差和交叉熵,其中,交叉熵損失函數更加適用於二進制的輸入數據。.net
3.Auto-Encoders的變種code
常常拿來和Auto-Encoder比較的一個數據降維的方法叫PCAblog
PCA的原理請見如下連接:http://www.javashuo.com/article/p-cjkvrihl-ne.htmlget
Auto-Encoders的一個變種叫Denoising AutoEncoders,它是爲了防止模型對像素值的單純記憶產生的,經過加入一些噪聲讓網絡模型在混亂的數據中發現它們真實的語義特徵;還有一個變種叫作Dropout AutoEncoders,和監督學習神經網絡中的dropout層道理相同,經過阻止部分神經元的激活來防止網絡過擬合(可能會記住一些噪聲特徵,而沒法提取真實的特徵)io
Adversarial AutoEncoders是比較有名的一個,在自編碼過程當中,一個比較常見的問題就是生成的數據老是偏向於某一方向分佈,而不符合咱們平時接觸的任何一種分佈(均勻分佈、正太分佈、高斯分佈等),爲了解決這個問題,adversarial autoencoders經過加入一個「鑑別器」來對數據進行篩選,從而保證網絡輸出數據的質量。