時間:2018-05-11 17:46:12來源:網(wǎng)絡轉載
即使是非計算機行業(yè),大家也知道很多有名的神經(jīng)網(wǎng)絡結構,比如CNN在處理圖像上非常厲害,RNN能夠建模序列數(shù)據(jù).然而CNN,RNN之類的神經(jīng)網(wǎng)絡結構本身,并不能用于執(zhí)行比如圖像的內容和風格分離,生成一個逼真的圖片,用少量的label信息來分類圖像,或者做數(shù)據(jù)壓縮等任務.因為上述幾個任務,都需要特殊的網(wǎng)絡結構和訓練算法.
有沒有一個網(wǎng)絡結構,能夠把上述任務全搞定呢?顯然是有的,那就是對抗自編碼器AdversarialAutoencoder(AAE).在本文中,我們將構建一個AAE,來壓縮數(shù)據(jù),分離圖像的內容和風格,用少量樣本來分類圖像,然后生成它們。
PyTorch實現(xiàn)自編碼器
首先我們先回顧一下什么是自編碼器,然后用PyTorch進行簡單的實現(xiàn)。
1.自編碼器
如圖所示,自編碼器的輸入和輸出是一樣的,也就是說,它不需要監(jiān)督信息(label),它主要有兩部分構成:
?編碼器(Encoder):輸入數(shù)據(jù)(可以是文本,圖像,視頻,語音),輸出latentcode,比如上圖,輸入數(shù)據(jù)是的一張圖像,輸出的是的隱層值h,或者稱之為latentcode,當然h的大小你可以隨便設置.在這種設置下,encoder起到了壓縮圖片的作用,將一個圖片從變化成了,就像你用壓縮軟件(比如WinRAR)壓縮圖片一樣.如果我們把Encoder記做函數(shù)q,那么Encoder就是在做:
?解碼器(Decoder):輸入數(shù)據(jù)為上一步的輸出數(shù)據(jù)h,它努力把h重構成x,上圖的例子中,Decoder需要把的重構回的,并使得和原來的x約相似越好,就像你用壓縮然見解壓一個壓縮文件一樣.如果我們把Decoder記做函數(shù)p,那么Decoder就是在做:
這個模型似乎是一個天然的降維模型.但是,除了降維,Autoencoder還能干什么?
圖片降噪(ImageDenosiong),輸入嘈雜的圖像,Autoencoder可以生成清晰無噪聲的圖像.當把數(shù)據(jù)輸入自編碼器后,我們可以強制讓自編碼器的隱層學習更魯棒的特征,而不是僅僅識別他們,這樣的自編碼器,在下圖左邊的圖上進行訓練,就可以把中間的噪聲數(shù)據(jù),重建成右邊的樣子。
語義哈希,這可以降低數(shù)據(jù)的維度,加速信息檢索,目前有非常的人在研究這一方向.
生成模型,比如本系列文章要介紹的AdversarialAutoencoder(AAE)
其他大量應用
2.PyTorch實現(xiàn)
我們先從簡單的全連接網(wǎng)絡開始我們的第一部分.
這個Encoder包含的輸入層,兩層隱層,每層1000個節(jié)點,一個輸出層層數(shù)為2
所以,整個模型是:
模型實現(xiàn)完成后,我們要準備一下數(shù)據(jù):
我們選擇MSE損失函數(shù)來度量重構出來的圖像與原來的圖像x的相似程度
接下來就可以實現(xiàn)訓練步驟了:
可以看一下重建的圖像怎么樣:
我們可以觀察到,輸入的這張3的圖片,一些奇怪的地方唄去掉了(3的左上角).
接下來,讓我們看一下latentcode,它只有2維,我們可以隨便填一個值讓Decoder去生成圖片,比如我們認為的令,讓后將它輸入到Decoder中:
這好像是個6的圖片,當然也可能是0,不管怎么說,這不是一個清晰的數(shù)字圖片.這是因為Encoder的輸出并不能覆蓋整個2維空間(它的輸出分布有很多空白)。因此,如果我們輸入一些Decoder沒見過的值,我們會看到一下奇怪的輸出圖像。這可以通過在生成latentcode時,將Encoder的輸出限制為隨機分布(比如,均值為0.0和標準偏差為2.0的正態(tài)分布)。AdversarialAutoencoder就是這么做到的,我們將在第2部分中看看它的實現(xiàn)。
標簽:
傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為傳動網(wǎng)(surachana.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產(chǎn)品新聞
更多>2025-09-08
華為昇騰Atlas800iA2 910B服務器Deepsee...
2025-09-04
2025-09-03
2025-08-06
2025-07-08
2025-06-30