生成型神经网络
Python微信訂餐小程序課程視頻
https://edu.csdn.net/course/detail/36074
Python實戰(zhàn)量化交易理財系統(tǒng)
https://edu.csdn.net/course/detail/35475
最簡單的X->Y****映射
讀書時代課本上的函數(shù)其實就是我們最早接觸關(guān)于“映射”的概念,f(x)以“某種邏輯”將橫坐標(biāo)軸上的值映射到縱坐標(biāo)軸。后來學(xué)習(xí)編程之后接觸了函數(shù)(或者叫方法)的概念,它以“某種邏輯”將函數(shù)輸入映射成輸出,映射邏輯就是函數(shù)本身的實現(xiàn)過程。映射就是將若干輸入以某種邏輯轉(zhuǎn)換成若干輸出,課本上的函數(shù)是這樣,編程中的函數(shù)是這樣,深度學(xué)習(xí)中神經(jīng)網(wǎng)絡(luò)同樣是這樣。
圖1 映射關(guān)系
最簡單的映射邏輯是線性映射,類似f(x)=wx + b這樣,它的函數(shù)圖像是一條直線,其中w和b是映射過程用到的參數(shù)。高中數(shù)學(xué)中的拋物線f(x)=axx + bx +c 是一種比線性映射更復(fù)雜的映射關(guān)系,同樣a、b、c是該映射過程要用到的參數(shù)。 這里不管是w還是abc這樣的參數(shù),同樣存在于神經(jīng)網(wǎng)絡(luò)這種高復(fù)雜度的映射過程之中,事實上,我們完全可以將神經(jīng)網(wǎng)絡(luò)類比為我們更為熟悉的直線、拋物線結(jié)構(gòu)。
與我們讀書學(xué)習(xí)直線、拋物線不同的是,書本中直線、拋物線函數(shù)的參數(shù)大部分時候都是已知的,而神經(jīng)網(wǎng)絡(luò)中的參數(shù)是未知的,或者說不是最優(yōu)的,我們需要使用已知的樣本(輸入/輸出)去擬合網(wǎng)絡(luò),從而得出最優(yōu)的參數(shù)值,然后將擬合(學(xué)習(xí))到的參數(shù)應(yīng)用到新數(shù)據(jù)中(只有輸入),擬合的這個過程叫做“訓(xùn)練模型”或者“學(xué)習(xí)”。
圖2 線性映射與神經(jīng)網(wǎng)絡(luò)類比
神經(jīng)網(wǎng)絡(luò)的輸入輸出
前面說到映射過程有輸入和輸出,同樣神經(jīng)網(wǎng)絡(luò)也有輸入和輸出。就計算機(jī)視覺領(lǐng)域相關(guān)任務(wù)來講,有圖像分類網(wǎng)絡(luò),有目標(biāo)檢測、分割等網(wǎng)絡(luò),也有專門用于圖像特征提取的網(wǎng)絡(luò),這些網(wǎng)絡(luò)的輸入基本都是圖片,輸出要么是分類概率值,要么是跟目標(biāo)有關(guān)的像素坐標(biāo)值,或者是高維特征向量值,這些輸出有一個共同的特點,都屬于數(shù)字類輸出,就像我們剛接觸機(jī)器學(xué)習(xí)時預(yù)測房價的案例,算法輸出是房價,也是數(shù)字類型。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-UcsbkcRx-1648228598434)(https://img2022.cnblogs.com/blog/104032/202203/104032-20220325165609074-1035807282.png)]
圖3 普通網(wǎng)絡(luò)的輸入輸出
那么神經(jīng)網(wǎng)絡(luò)是否還有更復(fù)雜的輸出格式呢?答案是有,神經(jīng)網(wǎng)絡(luò)可以輸出更高維的數(shù)據(jù)結(jié)構(gòu),比如圖片。雖然嚴(yán)格來講,圖片也是由數(shù)字組成,但是為了與前面提到的簡單輸出類型區(qū)分,我們可以將輸出圖片的這類神經(jīng)網(wǎng)絡(luò)稱為“生成型網(wǎng)絡(luò)”。顧名思義,生成型網(wǎng)絡(luò)的特點是可以生成類似圖片這種直觀結(jié)果(或者類似網(wǎng)絡(luò)輸入那種更高維數(shù)據(jù))。
圖4 生成型網(wǎng)絡(luò)的輸入輸出(舉例)
生成型網(wǎng)絡(luò)的訓(xùn)練方式一般比較特別,大部分都是無監(jiān)督學(xué)習(xí),也就是事先無需對樣本做人工標(biāo)注。事實上,了解生成型網(wǎng)絡(luò)是我們熟悉無監(jiān)督學(xué)習(xí)的一種非常好的途徑。
生成型網(wǎng)絡(luò)的實現(xiàn)方式常見有兩種,一個是AutoEncoder,翻譯成中文叫“自編碼器”,基本原理就是將輸入圖片先編碼,生成一個特征表達(dá),然后再基于該特征重新解碼生成原來的輸入圖片,編碼和解碼是兩個獨(dú)立的環(huán)節(jié),訓(xùn)練的時候合并、使用的時候拆開再交叉組合。前幾年非常火的AI換臉就是基于AutoEncoder實現(xiàn)的,代碼非常簡單,之前的一篇文章對它有非常詳細(xì)的介紹。另一個是GAN,全稱Generative Adversarial Networks,翻譯成中文是“生成對抗型網(wǎng)絡(luò)”,它也是由兩部分組成,一個負(fù)責(zé)生成一張圖片,一個負(fù)責(zé)對圖片進(jìn)行分類(判斷真假),訓(xùn)練的時候一起訓(xùn)練,使用的時候只用前面的生成網(wǎng)絡(luò)。GAN也是本篇文章后面介紹的重點內(nèi)容。
GAN****生成對抗型網(wǎng)絡(luò)工作原理
首先要明確地是,最原始的GAN是2014年提出來的,它可以基于一個無任何標(biāo)注的圖片樣本集,生成類似風(fēng)格的全新圖片,就像一個畫家,看了一些示例后,可以畫出類似風(fēng)格的畫。2014年提出來的GAN結(jié)構(gòu)相對簡單,也存在一些缺陷,比如生成的圖片分辨率太低、網(wǎng)絡(luò)訓(xùn)練很難收斂。后面有人陸陸續(xù)續(xù)提出了各種改進(jìn)版本的GAN(變種),雖然各方面都有所調(diào)整,但是整體思想仍然沿用第一版,這里也是介紹最原始GAN網(wǎng)絡(luò)的工作原理。
GAN網(wǎng)絡(luò)主要由兩子網(wǎng)絡(luò)組成,一個學(xué)名叫Generative Network(顧名思義,生成網(wǎng)絡(luò)),輸入隨機(jī)數(shù),輸出一張固定尺寸的圖片(比如64*64大小),另一個學(xué)名叫Discriminative Network(顧名思義,辨別網(wǎng)絡(luò)),輸入前一個網(wǎng)絡(luò)生成的圖片以及訓(xùn)練樣本集中的圖片,輸出真和假(生成的為假、樣本集中的為真)。如果單獨(dú)分開來看,這兩沒什么特別的,一個負(fù)責(zé)生成圖片、一個負(fù)責(zé)判別真假。但是,GAN高妙之處就在于這兩在訓(xùn)練過程中并不是獨(dú)立的。我們先來看下GAN的結(jié)構(gòu):
圖5 GAN網(wǎng)絡(luò)結(jié)構(gòu)
上面顯示的GAN網(wǎng)絡(luò)結(jié)構(gòu)其實非常簡單,但是只看這張圖的人可能會有一個疑問?訓(xùn)練樣本集只作為辨別網(wǎng)絡(luò)(Discriminative network,簡稱D)的輸入并參與訓(xùn)練,它是怎樣對生成網(wǎng)絡(luò)(Generative network,簡稱G)起到作用的?答案在GAN的訓(xùn)練過程中,GAN的訓(xùn)練方式主要可以歸納成3個要點:
1、將G的輸出作為D的輸入,并以False標(biāo)簽來訓(xùn)練D網(wǎng)絡(luò),更新D網(wǎng)絡(luò)的參數(shù),讓D知道什么是假的;
2、將訓(xùn)練樣本集輸入D,并以True標(biāo)簽來訓(xùn)練D網(wǎng)絡(luò),更新D網(wǎng)絡(luò)的參數(shù),讓D知道什么是真的;
3、將D的參數(shù)凍結(jié),再將D和G兩個網(wǎng)絡(luò)串起來,G的輸出還是作為D的輸入,但是這次以True標(biāo)簽來訓(xùn)練整個組合網(wǎng)絡(luò)。由于D的參數(shù)已經(jīng)凍結(jié),所以整個訓(xùn)練過程只會更新前面G網(wǎng)絡(luò)的參數(shù),讓G知道如何生成看起來像“真的”圖片。
上面的過程1和過程2讓D越來越聰明,知道什么是真的、什么是假的。過程3讓G也越來越聰明,知道如何調(diào)整自己的參數(shù),才能讓生成的圖片更能欺騙D。隨著上面的過程不斷反復(fù),G不斷的更新自己的參數(shù),雖然輸入的一直是隨機(jī)數(shù),但是輸出的圖片卻越來越像訓(xùn)練樣本集中的圖片,到此完成了對G的訓(xùn)練。下面用圖來說明上面的過程:
GAN**(變種網(wǎng)絡(luò))可以解決哪些任務(wù)?**
基于GAN思想的生成型網(wǎng)絡(luò)有很多應(yīng)用,比如素材生成,當(dāng)你已經(jīng)有一定數(shù)量的圖片樣本后,你可以利用GAN生成更多類似但完全不同的圖片,提升樣本庫的豐富性。目前比較成熟的風(fēng)格遷移(style transfer)也用到了GAN思想,可以將一張手機(jī)拍攝的自然風(fēng)景圖片轉(zhuǎn)換成山水畫、卡通畫風(fēng)格。下面是利用Pro-GAN網(wǎng)絡(luò)生成的圖公路像素材,剛開始生成的圖像模糊,隨著訓(xùn)練時間增加,生成的圖像越來越清晰、并且能夠保持與已有樣本集一致的風(fēng)格。
總結(jié)
- 上一篇: 广东工业大学电子工艺实习报告书(双路输出
- 下一篇: 长图预警,全网最全的23个免费无背景PN