我們先講講編碼器顽照,就比如我們拿手寫數(shù)字圖片无畔,我們輸入28*28維圖片,通過編碼器参袱,使其變成降維后的編碼(反應其某些特性)电谣,不過因為我們常常不知道這個code應該長什么樣,所以無法訓練抹蚀;我們也可以考慮輸入一個code剿牺,通過解碼器,輸出圖片环壤,但是這個單獨也無法訓練晒来,于是我們就考慮將2者結(jié)合起來一起訓練。
我們之前介紹過PCA郑现,我們要求最小化,我們就可以將x與權(quán)重矩陣W的乘積送到隱層湃崩,得到輸出c,再通過乘以W的轉(zhuǎn)置得到,我們使其最接近接箫,這無形中就是形成了編碼和解碼的部分攒读,隱層輸出就是我們要的code,因為隱層的維度比小辛友,也常常叫做瓶頸層
當然薄扁,我們的auto-encoder可以是deep的,我們要求前后對稱的層神經(jīng)元數(shù)量一樣废累,我們看PCA那個也許就會想邓梅,我們的auto-encoder也是對稱的矩陣是互為轉(zhuǎn)置的,的確九默,這可以省一半?yún)?shù)震放,但實際我們往往不管這些直接train.
以手寫數(shù)字為例宾毒,做了PCA降到30維驼修,我們的輸出圖片是比較模糊的殿遂,但是深層自動解碼就清晰多了
我們把784維PCA做到2維再還原,其2維分布是比較混雜的乙各,而深層解碼后分布是有較明顯界限的
我們可以看下自動解碼在文本搜索的應用墨礁,Vector Space Model,根據(jù)不同的文檔耳峦,創(chuàng)建不同的向量恩静,當我們要查詢的文檔,和目標文檔有較大相似度(算內(nèi)積)時蹲坷,輸出對應文檔
我們文檔向量采用bag-of-word即文檔有多少詞匯驶乾,這個向量就有多少維,然而這種處理并不能實現(xiàn)語義的分析循签,因為向量每個詞的維度是獨立的
比如我們處理將2000詞的向量處理成2維级乐,效果如右上,而我們通過LSA分成2維時县匠,并沒有很好的效果
我們自動編碼還可用于圖片相似搜索风科,但是用邁克爾杰克遜的一張圖片可能搜索到馬蹄鐵等詭異的東西
自動相似圖片搜索,我們可以采用深度學習乞旦,網(wǎng)絡足夠深贼穆,足夠多神經(jīng)元后,編碼解碼得到的圖片如圖
我們用多層網(wǎng)絡后兰粉,我們識別圖片就比較近似了故痊,起碼都是人= =
我們還可以用auto-encoder來預訓練DNN得參數(shù),使得DNN起始參數(shù)比較好亲桦,比如我們要訓練圖左側(cè)的神經(jīng)網(wǎng)絡崖蜜,我們會現(xiàn)在右側(cè)訓練784-100-784的encoder,然后留住w1固定(這里要注意的是客峭,784-1000的時候因為是升維豫领,我們可能需要引入L1正則使只能某幾維有輸出,否則可能直接就把784送過去舔琅,其他都是0)
再之后我們訓練784-1000-1000-1000的網(wǎng)絡等恐,使彼此接近,然后同理留出W2固定
我們訓練好各系數(shù)后备蚓,再用反向傳播课蔬,微調(diào)下各系數(shù)(因為各系數(shù)本身已經(jīng)很好了),我們以前經(jīng)常通過auto-encoder調(diào)各層參數(shù)郊尝,但是現(xiàn)在其實不用auto-encoder也能將參數(shù)調(diào)的很好了
我們自動解碼的衍生有De-noising auto-encoder二跋,其原理時,我們將輸入x加入噪聲變成x'流昏,然后使輸出和加噪聲前接近扎即,這樣我們訓練出的模型就具備了去噪聲的能力吞获。
還一個是Contractive auto-encoder,思維和上一個類似谚鄙,是當輸入改變時各拷,輸出變化比較小
老師還列舉了2個不是DNN的模型,有興趣自己查= =
我們知道CNN有卷積池化闷营,但是用auto-encoder怎么做呢烤黍,就是使用反池化,反卷積層使輸出和輸入接近
我們先講unpooling傻盟,我們都知道池化會將圖片縮小速蕊,比如4*4的圖片經(jīng)2*2池化后,就變成2*2娘赴,其中一種方法就是我們記住原來最大值的位置互例,反池化時將圖片擴大的同時,將對應位置設(shè)為池化值筝闹,其他置0媳叨。keras上面用的方法就是我們不記住原來的位置,直接將對應位置的池化值填4個位置
我們反卷積的過程實際上就是在做卷積关顷,比如下圖我們經(jīng)過權(quán)重紅綠藍將5維變成3維糊秆,然后想將三維變成5維,就將每個維度乘權(quán)重议双,有疊加的位置相加痘番,其實這個結(jié)果就和右側(cè)我們做卷積一樣(補上了0位)
我們之前說過encoder有其單獨用處,其實decoder也有單獨用處平痰,比如我們手寫數(shù)字汞舱,我們輸入不同的code就能得到不同的圖片,圖中是通過紅色方框區(qū)域等距取點得到的結(jié)果宗雇,我們?yōu)槭裁粗辉诩t色區(qū)域取呢昂芜,因為我們其他位置可能得不到圖片(如果你想得到圖片,就需要加上L2正則)
我們正則后赔蒲,就可以選擇大區(qū)域泌神,就有了新的圖片,而且能發(fā)現(xiàn)一定規(guī)律舞虱,做導游越來越瘦欢际,上到下越來越斜等等