??平時總是在跟蹤學(xué)習(xí)最新的文章,頂多在計算機(jī)視覺一個小的領(lǐng)域深挖幾年。但慢慢發(fā)現(xiàn)不管有多新,歸根結(jié)底還是對經(jīng)典論文的擴(kuò)展,經(jīng)典論文的很多開創(chuàng)性思想,值得好好學(xué)習(xí)。
??下面對計算機(jī)視覺的經(jīng)典論文進(jìn)行一些小小的總結(jié)。
卷積網(wǎng)絡(luò)
1.[vgg]Very Deep Convolutional Networks for Large-Scale Image Recognition
Author:Karen Simonyan & Andrew Zisserman(Oxford)
Solution:
證明了增加網(wǎng)絡(luò)層數(shù),可以提升神經(jīng)網(wǎng)絡(luò)性能。
Method:
-
小卷積核。采用連續(xù)的幾個3x3的卷積核代替AlexNet中的較大卷積核(11x11,7x7,5x5)。例如,使用2個3x3的卷積核代替AlexNet中1個5x5卷積核,如圖1所示。這樣對于同樣大小的感受野,2層的非線性強(qiáng)于1層,同時參數(shù)量也更少(2個3x3的卷積核的參數(shù)是18,1個5x5卷積核的參數(shù)是25)。圖1 2個3x3代替1個5x5
3個3x3卷積核可以來代替7x7卷積核的原理類似。
- multscale strategy 進(jìn)行訓(xùn)練和測試
訓(xùn)練時,由于vgg網(wǎng)絡(luò)的輸入是224x224,對尺寸不同的輸入圖像先resize再crop到224×224,理論上只需要將圖像最短的邊resize到大于等于224即可進(jìn)行crop。文章中設(shè)置了2種scale方式,第一種resize到256或384,第二種隨機(jī)resize到[256,512]之間。
測試階段使用了兩種預(yù)測方式:
使用multi-view crop,即測試時輸入的圖像和訓(xùn)練的圖像大小一樣,從resize之后的圖片,crop不同位置的塊,分別輸入訓(xùn)練好的網(wǎng)絡(luò),最后對softmax進(jìn)行平均。
使用dense evaluation,即將原圖直接送到網(wǎng)絡(luò)進(jìn)行預(yù)測,將最后的全連接層改為1x1的卷積,這樣最后可以得出一個預(yù)測的score map,再對結(jié)果求平均。
multi-view crop 效果好于dense evaluation。
2. [ResNet]Deep Residual Learning for Image Recognition
Author:何愷明、張祥雨、任少卿和孫劍(微軟研究院)
Solution:
- 解決了深度網(wǎng)絡(luò)的退化問題。當(dāng)網(wǎng)絡(luò)達(dá)到一定深度,已經(jīng)最優(yōu)化,那么再繼續(xù)增加深度時,模型訓(xùn)練誤差反而會提高。
- 解決了梯度爆炸/消失問題。之前的網(wǎng)絡(luò)都是通過增加網(wǎng)絡(luò)深度(層數(shù))來提高性能,但是在反向傳播過程中,對激活函數(shù)進(jìn)行求導(dǎo),如果此部分大于1,那么層數(shù)增多的時候,最終求出的梯度更新將以指數(shù)形式增加,即發(fā)生梯度爆炸,如果此部分小于1,那么隨著層數(shù)增多,求出的梯度更新信息將會以指數(shù)形式衰減,即發(fā)生了梯度消失,從而使得深度學(xué)習(xí)模型很難訓(xùn)練。(具體原因可以參考這篇博客)
Method:
-
Residual Block。在resnet中,學(xué)習(xí)的是殘差函數(shù)F(x) = H(x) – x,這樣其原始的學(xué)習(xí)特征是H(x)=F(x)+x。所以當(dāng)殘差F(x)=0時,此時堆積層僅僅做了恒等映射(即H(x)=x),至少網(wǎng)絡(luò)性能不會下降,但實(shí)際殘差不會為0,這也會使得堆積層在輸入特征基礎(chǔ)上學(xué)習(xí)到新的特征,從而擁有更好的性能。殘差學(xué)習(xí)的結(jié)構(gòu)如圖2所示。
圖2 residual block -
Global Average Pooling(不是本文的創(chuàng)新,但文中用到了這個方法?)。使用GAP來取代了最后的全連接層,直接實(shí)現(xiàn)了降維,極大減少了網(wǎng)絡(luò)的參數(shù),對整個網(wǎng)絡(luò)從結(jié)構(gòu)上做正則化防止過擬合,但卻降低了收斂速度。圖3中展示了全連接與全局均值池化的對比,例如最后的一層的數(shù)據(jù)是10個6x6的特征圖,全連接層是將10個6x6的特征圖flatten成一個1x360的特征向量,進(jìn)行全連接,輸出1x10,送入到softmax的分類中進(jìn)行計算,得參數(shù)量是360x360x10,參數(shù)量過大,從而造成計算量加大速度低和過擬合。相比較GAP是將每一張?zhí)卣鲌D計算所有像素點(diǎn)的均值,輸出一個數(shù)據(jù)值,這樣10 個特征圖就會輸出10個數(shù)據(jù)點(diǎn),將這些數(shù)據(jù)點(diǎn)組成一個1x10的特征向量,送入到softmax的分類中進(jìn)行計算,直接實(shí)現(xiàn)了降維,極大減少了網(wǎng)絡(luò)的參數(shù)。
圖3 全連接與全局均池化的差異對比
參考文獻(xiàn):https://zhuanlan.zhihu.com/p/31852747
GAN
1. [GAN]Generative Adversarial Network
Author:Ian J. Goodfellow, Jean Pouget-Abadie?, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair?, Aaron Courville, Yoshua Bengio?
Solution:
提出了一個通過對抗過程來評估生成模型的新框架。解決了:
- 深度生成模型(任務(wù)是學(xué)習(xí)概率密度并且生成數(shù)據(jù))在求解真實(shí)數(shù)據(jù)概率密度分布的過程中有很大難度,用最大似然估計和相關(guān)策略求解概率幾乎無法進(jìn)行。
- 將piecewise linear units用在生成模型上比較難
Method:
-
Adversarial nets。同時訓(xùn)練兩個模型:生成模型G用于估計數(shù)據(jù)分布,判別模型D來預(yù)測一個樣本是來自訓(xùn)練集(真實(shí)數(shù)據(jù)集)而非G的概率。對于G來說訓(xùn)練過程就是要使D判斷錯誤的可能性最大化。Adversarial nets框架如圖4所示。
圖4 網(wǎng)絡(luò)框架.png
其中,即G的輸入是噪聲z(符合特定分布),輸出假圖
,而
則是生成器G里待訓(xùn)練的權(quán)重集合;
即D的輸入是
(分為
和
),D判斷輸入的
是真是假的概率,輸出一個范圍在[0,1]之間的數(shù),
則是辨別器D里待訓(xùn)練的參數(shù)集合。我們希望希望相應(yīng)的
越大越好(接近1),而
越小越好(即D(G(z))接近0);G是希望
越大越好(即D(G(z))接近1。
Minimax two-player game(Loss)

表示真實(shí)樣本與假樣本的差異程度,對于生成器G來說,希望盡可能減小這個差異(min),對于判別器D來說希望能盡量拉大這個差異(max)。



