系統(tǒng)框架:
其中損失網(wǎng)絡(luò)是在imgnet上預(yù)訓(xùn)練過的vgg16,訓(xùn)練過程中參數(shù)保持不變贷屎;
變換網(wǎng)絡(luò)fw是深度殘差網(wǎng)絡(luò)(deep residual cnn);
損失網(wǎng)絡(luò)對比生成網(wǎng)絡(luò)生成的圖片與每一幅訓(xùn)練集中的目標(biāo)圖片,
于是損失函數(shù)可表示為:
網(wǎng)絡(luò)細(xì)節(jié)的設(shè)計大體遵循DCGAN中的設(shè)計思路:
1.不使用pooling層艘虎,而是使用strided和fractionally strided卷積來做downsampling和upsampling唉侄,
2.使用了五個residual blocks
深度殘差網(wǎng)絡(luò)(resnet):理論上網(wǎng)絡(luò)深度越深能夠提供更好的特征表示,然而梯度彌散/爆炸成為訓(xùn)練深層次的網(wǎng)絡(luò)的障礙野建,導(dǎo)致無法收斂属划。有一些方法可以彌補,如歸一初始化贬墩,各層輸入歸一化榴嗅,使得可以收斂的網(wǎng)絡(luò)的深度提升為原來的十倍。然而陶舞,雖然收斂了嗽测,但網(wǎng)絡(luò)卻開始退化了,即增加網(wǎng)絡(luò)層數(shù)卻導(dǎo)致更大的誤差肿孵。深度殘差網(wǎng)絡(luò)采用的解決方法是讓網(wǎng)絡(luò)F(x)學(xué)習(xí)殘差y-x唠粥,基于的理論是至少讓誤差不會變得更大。
殘差連接可以幫助網(wǎng)絡(luò)學(xué)習(xí)到一致性(identity function)停做,而生成模型也要求結(jié)果圖像和生成圖像共享某些結(jié)構(gòu)晤愧,因而,殘差連接能夠更好地對應(yīng)DCGAN的生成模型蛉腌。
3.除了輸出層之外的所有的非residual blocks后面都跟著spatial batch normalization和ReLU的非線性激活函數(shù)官份。
4.輸出層使用一個scaled tanh來保證輸出值在[0, 255]內(nèi)只厘。
5.第一個和最后一個卷積層使用9×9的核,其他卷積層使用3×3的核舅巷。
損失函數(shù)構(gòu)建:
損失函數(shù)與gatys的定義類似羔味,具體有,
1. 感知損失并不是直接構(gòu)建在生成圖與目標(biāo)圖之間钠右,而是通過損失網(wǎng)絡(luò)的二者響應(yīng)之間
2.特征重構(gòu)損失(內(nèi)容損失):
3.風(fēng)格重構(gòu)損失:
結(jié)論:
與gatys的原文相比,最大的特點是快飒房!一次訓(xùn)練搁凸,終身搞定!(當(dāng)然訓(xùn)練的速度如狗屎一般慢)