技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 【干貨】對(duì)抗自編碼器PyTorch手把手實(shí)戰(zhàn)系列——PyTorch實(shí)現(xiàn)自編碼器

【干貨】對(duì)抗自編碼器PyTorch手把手實(shí)戰(zhàn)系列——PyTorch實(shí)現(xiàn)自編碼器

時(shí)間:2018-05-11 17:46:12來源:網(wǎng)絡(luò)轉(zhuǎn)載

導(dǎo)語:?即使是非計(jì)算機(jī)行業(yè),大家也知道很多有名的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),比如CNN在處理圖像上非常厲害,RNN能夠建模序列數(shù)據(jù).然而CNN,RNN之類的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)本身,并不能用于執(zhí)行比如圖像的內(nèi)容和風(fēng)格分離,生成一個(gè)逼真的圖片,用少量的label信息來分類圖像,或者做數(shù)據(jù)壓縮等任務(wù).因?yàn)樯鲜鰩讉€(gè)任務(wù),都需要特殊的網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練算法.

即使是非計(jì)算機(jī)行業(yè),大家也知道很多有名的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),比如CNN在處理圖像上非常厲害,RNN能夠建模序列數(shù)據(jù).然而CNN,RNN之類的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)本身,并不能用于執(zhí)行比如圖像的內(nèi)容和風(fēng)格分離,生成一個(gè)逼真的圖片,用少量的label信息來分類圖像,或者做數(shù)據(jù)壓縮等任務(wù).因?yàn)樯鲜鰩讉€(gè)任務(wù),都需要特殊的網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練算法.

有沒有一個(gè)網(wǎng)絡(luò)結(jié)構(gòu),能夠把上述任務(wù)全搞定呢?顯然是有的,那就是對(duì)抗自編碼器AdversarialAutoencoder(AAE).在本文中,我們將構(gòu)建一個(gè)AAE,來壓縮數(shù)據(jù),分離圖像的內(nèi)容和風(fēng)格,用少量樣本來分類圖像,然后生成它們。

PyTorch實(shí)現(xiàn)自編碼器

首先我們先回顧一下什么是自編碼器,然后用PyTorch進(jìn)行簡單的實(shí)現(xiàn)。

1.自編碼器

如圖所示,自編碼器的輸入和輸出是一樣的,也就是說,它不需要監(jiān)督信息(label),它主要有兩部分構(gòu)成:

?編碼器(Encoder):輸入數(shù)據(jù)(可以是文本,圖像,視頻,語音),輸出latentcode,比如上圖,輸入數(shù)據(jù)是的一張圖像,輸出的是的隱層值h,或者稱之為latentcode,當(dāng)然h的大小你可以隨便設(shè)置.在這種設(shè)置下,encoder起到了壓縮圖片的作用,將一個(gè)圖片從變化成了,就像你用壓縮軟件(比如WinRAR)壓縮圖片一樣.如果我們把Encoder記做函數(shù)q,那么Encoder就是在做:

?解碼器(Decoder):輸入數(shù)據(jù)為上一步的輸出數(shù)據(jù)h,它努力把h重構(gòu)成x,上圖的例子中,Decoder需要把的重構(gòu)回的,并使得和原來的x約相似越好,就像你用壓縮然見解壓一個(gè)壓縮文件一樣.如果我們把Decoder記做函數(shù)p,那么Decoder就是在做:

這個(gè)模型似乎是一個(gè)天然的降維模型.但是,除了降維,Autoencoder還能干什么?

圖片降噪(ImageDenosiong),輸入嘈雜的圖像,Autoencoder可以生成清晰無噪聲的圖像.當(dāng)把數(shù)據(jù)輸入自編碼器后,我們可以強(qiáng)制讓自編碼器的隱層學(xué)習(xí)更魯棒的特征,而不是僅僅識(shí)別他們,這樣的自編碼器,在下圖左邊的圖上進(jìn)行訓(xùn)練,就可以把中間的噪聲數(shù)據(jù),重建成右邊的樣子。

語義哈希,這可以降低數(shù)據(jù)的維度,加速信息檢索,目前有非常的人在研究這一方向.

生成模型,比如本系列文章要介紹的AdversarialAutoencoder(AAE)

其他大量應(yīng)用

2.PyTorch實(shí)現(xiàn)

我們先從簡單的全連接網(wǎng)絡(luò)開始我們的第一部分.

這個(gè)Encoder包含的輸入層,兩層隱層,每層1000個(gè)節(jié)點(diǎn),一個(gè)輸出層層數(shù)為2

所以,整個(gè)模型是:

模型實(shí)現(xiàn)完成后,我們要準(zhǔn)備一下數(shù)據(jù):

我們選擇MSE損失函數(shù)來度量重構(gòu)出來的圖像與原來的圖像x的相似程度

接下來就可以實(shí)現(xiàn)訓(xùn)練步驟了:

可以看一下重建的圖像怎么樣:

我們可以觀察到,輸入的這張3的圖片,一些奇怪的地方唄去掉了(3的左上角).

接下來,讓我們看一下latentcode,它只有2維,我們可以隨便填一個(gè)值讓Decoder去生成圖片,比如我們認(rèn)為的令,讓后將它輸入到Decoder中:

這好像是個(gè)6的圖片,當(dāng)然也可能是0,不管怎么說,這不是一個(gè)清晰的數(shù)字圖片.這是因?yàn)镋ncoder的輸出并不能覆蓋整個(gè)2維空間(它的輸出分布有很多空白)。因此,如果我們輸入一些Decoder沒見過的值,我們會(huì)看到一下奇怪的輸出圖像。這可以通過在生成latentcode時(shí),將Encoder的輸出限制為隨機(jī)分布(比如,均值為0.0和標(biāo)準(zhǔn)偏差為2.0的正態(tài)分布)。AdversarialAutoencoder就是這么做到的,我們將在第2部分中看看它的實(shí)現(xiàn)。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:非同軸兩輪機(jī)器人的自平衡分...

下一篇:分享組態(tài)王與三菱PLC的通信應(yīng)...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)