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