1. 程式人生 > >16、【李巨集毅機器學習(2017)】Unsupervised Learning: Deep Auto-encoder(無監督學習:深度自動編碼器)

16、【李巨集毅機器學習(2017)】Unsupervised Learning: Deep Auto-encoder(無監督學習:深度自動編碼器)

本篇部落格將介紹無監督學習演算法中的 Deep Auto-encoder。

目錄

Deep Auto-encoder

輸入28*28維度的影象畫素,由NN encoder輸出code,code的維度往往小於784,但我們並不知道code的資訊,因此再新增一個NN encoder,以code為輸入,經過NN decoder輸出儘可能與最早的輸入相似的結果。
這裡寫圖片描述

巧妙的是,NN encoder和NN decoder獨自存在的時候都無法學習,但是二者結合在一起就產生了所謂的Deep Auto-encoder。(如圖,NN encoder和NN decoder中的W矩陣未必是要轉置關係)。
這裡寫圖片描述

Deep Auto-encoder的降維作用

訓練出整個Deep Auto-encoder後可以輸出code(相當於降維的輸出)。
這裡寫圖片描述

Auto-encoder – Text Retrieval

Auto-encoder有個常用的用處就是文章檢索,比如google輸入關鍵字會輸出檢索的文章,大致的思路(Vector Space Model)是將文章表示成向量,然後根據檢索的詞向量與文章向量的相似度輸出結果。將文章表示成向量常用的方法就是Bag-of-word,以全部的詞彙為維度,文章中有出現的詞彙計為1。
這裡寫圖片描述

但是簡單的Bag-of-word方法並沒有考慮到詞彙同義詞等難以捕捉的資訊,因此現在使用Auto-encoder進行文章轉換向量。
這裡寫圖片描述

Auto- encoder for CNN

Auto-encode的思路不止可以使用full-connected神經網路實現,還可以通過CNN來實現。
這裡寫圖片描述

deconvolution的過程本質上也是一種convolution。

這裡寫圖片描述

Auto-encoder – Pre-training DNN

Auto-encode可以和監督學習的方法結合,用來Pre-train DNN。現在的target是將28*28維度的資料降維到10維的資料,
這裡寫圖片描述

Decoder

如上所述,encoder可以用來降維,decoder則可以用來生成影象。