Network in Network-讀后筆記

author:min lin,qiang chen

個人的學習筆記,文中引用其它人的公開資料,如有冒犯請聯(lián)系偶。

摘要:

  1. 提出一個NIN(網(wǎng)絡中的網(wǎng)絡)的深度網(wǎng)絡結構用以增強模型在感知野在局部圖像塊的辨別力。
  1. 提出在卷積層使用非線性代替現(xiàn)有的線性模型。
  2. 使用一個由MLP組成的micro neural網(wǎng)絡作為非線性模型去掃描輸入以提取特征圖(feature map)
  3. deep NIN就是將micro neural以棧的形式組合而成。

作者說,Deep NIN的形式相比于傳統(tǒng)的卷積神經網(wǎng)絡來說不易過擬合,而且可以進行全局平均池化。

1.introduction

cnn由卷積層與池化層組成。
卷積層對下層的數(shù)據(jù)快來說是一個GLM(generalized linear model,廣義線性模型),作者認為廣義線性模型的抽象層次較低。作者認為“特征是不變的”,即相同概念下的變量特征是相同。GLM能夠獲取較好的抽象,當潛在概念的樣本是線性可分的時候。因此,作者認為cnn其實有一個假設就是潛在的概念是線性可分的。然而,相同概念的數(shù)據(jù)一般是存在于一個非線性的流形中,因此,捕捉真實數(shù)據(jù)的表示一般使用非線性模型。

作者使用一個MLP代替卷積層的線性卷積操作,作者之所以選擇是因為MLP是一個通用近似函數(shù)而且可由神經網(wǎng)絡使用反向傳播進行訓練。

由此產生的結構作者命名為mlpconv。


  1. 線性卷積層與mlpconv層都與receptive field相連接以用輸出特征向量
  2. mlpconv使用一個mlp連接input與output
  3. mlp被共享于所有的局部感受野。
  4. 特征映射被包含通過滑動mlp以cnn相同處理方式(掃描)
  5. 整個網(wǎng)絡結構作者給個名字叫“Network in Network”(好俗氣的名字,像村里的二丫一樣帶感,真是任性啊)

2.CNN

CNN一般由卷積層與空間池化層以棧的形式交替組成,卷積層通過使用非線性激活函數(shù)(如:rectifier,sigmoid,tanh)的線性組合產生特征圖。

i,j是像素索引,xij代表輸入補丁集中在位置(i,j),k用于索引的通道特性圖。

當潛在概念的實例是線性可分時,線性卷積用于抽取是足夠的,然而,好的抽象表示一般是高度非線性函數(shù)。在傳統(tǒng)cnn,這一點可以用超完備過濾的方式。即:增加過濾器,但增加過濾器會增加下層的計算負擔。

引入Maxout


maxout出現(xiàn)在ICML2013上,作者Goodfellow將maxout和dropout結合后,號稱在MNIST, CIFAR-10, CIFAR-100, SVHN這4個數(shù)據(jù)上都取得了start-of-art的識別率。

從論文中可以看出,maxout其實一種激發(fā)函數(shù)形式。通常情況下,如果激發(fā)函數(shù)采用sigmoid函數(shù)的話,在前向傳播過程中,隱含層節(jié)點的輸出表達式為:

其中W一般是2維的,這里表示取出的是第i列,下標i前的省略號表示對應第i列中的所有行。

如果是maxout激發(fā)函數(shù),則其隱含層節(jié)點的輸出表達式為:


這里的W是3維的,尺寸為d * m *k,

其中

d表示輸入層節(jié)點的個數(shù),

m表示隱含層節(jié)點的個數(shù),

k表示每個隱含層節(jié)點對應了k個”隱隱含層”節(jié)點,

這k個“隱隱含層”節(jié)點都是線性輸出的,而maxout的每個節(jié)點就是取這k個“隱隱含層”節(jié)點輸出值中最大的那個值。因為激發(fā)函數(shù)中有了max操作,所以整個maxout網(wǎng)絡也是一種非線性的變換。

因此當我們看到常規(guī)結構的神經網(wǎng)絡時,如果它使用了maxout激發(fā),則我們頭腦中應該自動將這個”隱隱含層”節(jié)點加入。

參考一個日文的maxout ppt 中的一頁ppt如下:


maxout的擬合能力是非常強的,它可以擬合任意的的凸函數(shù)。

最直觀的解釋就是任意的凸函數(shù)都可以由分段線性函數(shù)以任意精度擬合(學過高等數(shù)學應該能明白),

而maxout又是取k個隱隱含層節(jié)點的最大值,這些”隱隱含層"節(jié)點也是線性的,所以在不同的取值范圍下,最大值也可以看做是分段線性的(分段的個數(shù)與k值有關)。論文中的圖1如下(它表達的意思就是可以擬合任意凸函數(shù),當然也包括了ReLU了)


作者從數(shù)學的角度上也證明了這個結論,即只需2個maxout節(jié)點就可以擬合任意的凸函數(shù)了(相減),前提是“隱隱含層”節(jié)點的個數(shù)可以任意多,如下圖所示



maxout的一個假設是潛在概念的實例是位于輸入空間的凸集中。

3.Network in Network

3.1 MLP卷積層
徑向基函數(shù)與多層感知機是兩個通用近似函數(shù)。
作者認為,在不知道潛在目標的先驗分布時使用通用近似函數(shù)是比較好的方法。作者選擇MLP,其原因是:

  1. MLP與cnn相兼容
  1. MLP可自行深度化

計算公式:


網(wǎng)絡結構


計算過程見下面圖例中的NIN部分。


舉例子解釋

假設現(xiàn)在有一個3x3的輸入,用一個9維的向量x代表,卷積核大小也是3x3,也9維的向量w代表。

對于常規(guī)卷積層,直接x和w求卷積,然后relu一下就好了。
maxout,有k個的3x3的w(這里的k是自由設定的),分別卷積得到k個1x1的輸出,然后對這k個輸入求最大值
NIN,有k個3x3的w(這里的k也是自由設定的),分別卷積得到k個1x1的輸出,然后對它們都進行relu,然后再次對它們進行卷積,結果再relu。(這個過程,等效于一個小型的全連接網(wǎng)絡)

計算過程

常規(guī)卷積層,maxout,NIN:


總結

maxout和NIN都是對傳統(tǒng)conv+relu的改進。

maxout想表明它能夠擬合任何凸函數(shù),也就能夠擬合任何的激活函數(shù)(默認了激活函數(shù)都是凸的)

NIN想表明它不僅能夠擬合任何凸函數(shù),而且能夠擬合任何函數(shù),因為它本質上可以說是一個小型的全連接神經網(wǎng)絡

3.2 全局平均池化

傳統(tǒng)的cnn是在較低層使用卷積,如分類任務中,最后的卷積層所得feature map被矢量化進行全連接層,然后使用softmax 回歸進行分類。一般來說,在卷積的末端完成的卷積與傳統(tǒng)分類器的橋接。全連接階段易于過擬合,妨礙整個網(wǎng)絡的泛化能力,一般應有一些規(guī)則方法來處理過擬合。

Dropout


Dropout是hintion最近2年提出的,源于其文章Improving neural networks by preventing co-adaptation of feature detectors.中文大意為:通過阻止特征檢測器的共同作用來提高神經網(wǎng)絡的性能。

Dropout是指在模型訓練時隨機讓網(wǎng)絡某些隱含層節(jié)點的權重不工作,不工作的那些節(jié)點可以暫時認為不是網(wǎng)絡結構的一部分,但是將其權重保留下來(只是暫時不更新而已),因為下次樣本輸入時它又可以工作了(有點抽象,具體實現(xiàn)看后面的實驗部分)。

按照hinton的文章,他使用Dropout時訓練階段和測試階段做了如下操作:

在樣本的訓練階段,

沒有采用pre-training的網(wǎng)絡時(Dropout當然可以結合pre-training一起使用),hintion并不是像通常那樣對權值采用L2范數(shù)懲罰,而是對每個隱含節(jié)點的權值L2范數(shù)設置一個上限bound,

當訓練過程中如果該節(jié)點不滿足bound約束,則用該bound值對權值進行一個規(guī)范化操作(即同時除以該L2范數(shù)值),說是這樣可以讓權值更新初始的時候有個大的學習率供衰減,并且可以搜索更多的權值空間(沒理解)。

在模型的測試階段,使用“mean network(均值網(wǎng)絡)”來得到隱含層的輸出,其實就是在網(wǎng)絡前向傳播到輸出層前時隱含層節(jié)點的輸出值都要減半(如果dropout的比例為50%),其理由文章說了一些,可以去查看(沒理解)。

關于Dropout,文章中沒有給出任何數(shù)學解釋,Hintion的直觀解釋和理由如下:

  1. 由于每次用輸入網(wǎng)絡的樣本進行權值更新時,隱含節(jié)點都是以一定概率隨機出現(xiàn),因此不能保證每2個隱含節(jié)點每次都同時出現(xiàn),這樣權值的更新不再依賴于有固定關系隱含節(jié)點的共同作用,阻止了某些特征僅僅在其它特定特征下才有效果的情況。
  1. 可以將dropout看作是模型平均的一種。對于每次輸入到網(wǎng)絡中的樣本(可能是一個樣本,也可能是一個batch的樣本),其對應的網(wǎng)絡結構都是不同的,但所有的這些不同的網(wǎng)絡結構又同時share隱含節(jié)點的權值。這樣不同的樣本就對應不同的模型,是bagging的一種極端情況。個人感覺這個解釋稍微靠譜些,和bagging,boosting理論有點像,但又不完全相同。
  1. native bayes是dropout的一個特例。Native bayes有個錯誤的前提,即假設各個特征之間相互獨立,這樣在訓練樣本比較少的情況下,單獨對每個特征進行學習,測試時將所有的特征都相乘,且在實際應用時效果還不錯。而Droput每次不是訓練一個特征,而是一部分隱含層特征。
  1. 還有一個比較有意思的解釋是,Dropout類似于性別在生物進化中的角色,物種為了使適應不斷變化的環(huán)境,性別的出現(xiàn)有效的阻止了過擬合,即避免環(huán)境改變時物種可能面臨的滅亡。

介紹了半天,作者準備在全連接層做文章了,作者提出一個新的策略,名為“全局平均池化”,用來代替cnn中傳統(tǒng)的全連接層。

其思想為:在MLPconv的最后一層為每一個分類任務的相應種類生成一個特征映射。
作者說這樣有兩個優(yōu)點,

  1. 全局平均池化更原生的支持于卷積結構,通過加強特征映射與相應分(種)類的對應關系,因此,特征映射可以很容易地解釋為分類映射。
  2. 全局平均池化一層沒有需要優(yōu)化的參數(shù),因此在這一層可以避免過擬合。
  3. 全局平均池化匯總(求和)空間信息,因此其對空間變換是健壯的。

作者說,全局平均池化作為一個結構化正則化矩陣可以明確的用于加強特征映射到類別映射的信任度。

cnn的全連接層有什么問題,大家都在這里做文章?

印象中有一種說法是全連接層是簡單的將特征映射變成矢量按順序編排輸入到softmax回歸中,這種方法破壞了卷積層中提取特征時保留下來的位置信息。

具體的使用有待學習。To Be Continue...

3.3 Network In Network結構

全局的NIN結構就是一個棧式組合的MLPconv,然后,用全局平均池化替換全連接層,用MLPconv代替卷積操作,仍舊用子采樣分隔MLPconv

4 實驗

4.1 介紹

作者用四個數(shù)據(jù)集進行實驗。CIFAR-10/100,SVHN,MNIST。

網(wǎng)絡結構為:三層MLPconv+空間最大池化+下采樣+全局平均池化,除最后一個MLPconv層外,其余層使用dropout進行正則化。

訓練過程:手動設置參數(shù)--〉最小batch=128--〉初始化權重與學習率,重復進行,直到在訓練集上的準確率停止改善,并且學習率最終為初始值的百分之一。

4.2 CIFAR-10

CIFAR-10數(shù)據(jù)集由10個類別的近50k幅訓練和10k測試自然圖片組成,每一張圖片為RGB彩色,32x32大小。

作者使用相同于Maxout一文方法的全局對比度歸一化與ZCA白化。

每個MLPconv層的特征映射數(shù)量被設計成相同,使用驗證集進行兩個參數(shù)的調優(yōu)操作(局部感受野大小與權重衰減)。當兩個hyper-parameters是固定的,我們從頭開始重新訓練網(wǎng)絡訓練集和驗證集。

白化


白化是一種重要的預處理過程,其目的就是降低輸入數(shù)據(jù)的冗余性,使得經過白化處理的輸入數(shù)據(jù)具有如下性質:

  • (i) 特征之間相關性較低;
  • (ii) 所有特征具有相同的方差。

白化處理分PCA白化和ZCA白化,PCA白化保證數(shù)據(jù)各維度的方差為1,而ZCA白化保證數(shù)據(jù)各維度的方差相同。

PCA白化可以用于降維也可以去相關性,而ZCA白化主要用于去相關性,且盡量使白化后的數(shù)據(jù)接近原始輸入數(shù)據(jù)。

1.PCA白化

根據(jù)白化的兩個要求,我們首先是降低特征之間的相關性。

在PCA中,我們選取前K大的特征值的特征向量作為投影方向,如果K的大小為數(shù)據(jù)的維度n,把這K個特征向量組成選擇矩陣U(每一列為一個特征向量),

為旋轉后的數(shù)據(jù)。

如果K<n,就是PCA降維,如果K=n,則降低特征間相關性降低。

原始數(shù)據(jù)分布

PCA旋轉后數(shù)據(jù)分布

上圖顯示了原始數(shù)據(jù)和經過PCA旋轉之后的數(shù)據(jù),可以發(fā)現(xiàn)數(shù)據(jù)之間的相對位置都沒有改變,僅僅改變了數(shù)據(jù)的基,但這種方法就降低了數(shù)據(jù)之后的相關性。(原始數(shù)據(jù)的相關性為正,因為x1增加時,x2也增加;而處理之后的數(shù)據(jù)的相關性明顯降低)

第二個要求是每個輸入特征具有單位方差,以

直接使用作為縮放因子來縮放每個特征
,計算公式
,經過PCA白化處理的數(shù)據(jù)分布如下圖所示,此時的協(xié)方差矩陣為單位矩陣I。

PCA白化與ZCA白化對比
PCA白化

ZCA白化

2.ZCA白化

ZCA白化的定義為:

ZCA白化只是在PCA白化的基礎上做了一個旋轉操作,使得白化之后的數(shù)據(jù)更加的接近原始數(shù)據(jù)。

ZCA白化首先通過PCA去除了各個特征之間的相關性,然后是輸入特征具有單位方差,此時得到PCA白化后的處理結果,然后再把數(shù)據(jù)旋轉回去,得到ZCA白化的處理結果,感覺這個過程讓數(shù)據(jù)的特征之間有具有的一定的相關性,

下面實驗進行驗證。

在實驗中,我分別計算了原始數(shù)據(jù),旋轉后數(shù)據(jù),PCA白化以及ZCA白化的協(xié)方差矩陣,數(shù)據(jù)用的是UFLDL的實驗數(shù)據(jù),是個協(xié)方差矩陣分別為:

<---僅是分隔作用--->

從上面的4個協(xié)方差矩陣可以發(fā)現(xiàn),正如上面所述,旋轉之后降低了特征之間的相關性,rotate協(xié)方差矩陣的主對角線以外的值都接近零。

猜測ZCA白化后的數(shù)據(jù)的相關性會比PCA白化的要強,在該實驗室中表明好像感覺是對的,ZCA白化后主對角線以外的值的絕對值大于PCA白化后(今天看了下發(fā)現(xiàn)這個有問題),雖然這種比較可以忽略不計,應該他們的值都是非常的接近的。

3.PCA白化和ZCA白化的區(qū)別

PCA白化ZCA白化都降低了特征之間相關性較低,同時使得所有特征具有相同的方差。

  • PCA白化需要保證數(shù)據(jù)各維度的方差為1,ZCA白化只需保證方差相等。
  • PCA白化可進行降維也可以去相關性,而ZCA白化主要用于去相關性。
  • ZCA白化相比于PCA白化使得處理后的數(shù)據(jù)更加的接近原始數(shù)據(jù)。

4.正則化

實踐中需要實現(xiàn)PCA白化或ZCA白化時,有時一些特征值
在數(shù)值上接近于0,這樣在縮放步驟時我們除以

將導致除以一個接近0的值,這可能使數(shù)據(jù)上溢 (賦為大數(shù)值)或造成數(shù)值不穩(wěn)定。因而在實踐中,我們使用少量的正則化實現(xiàn)這個縮放過程,即在取平方根和倒數(shù)之前給特征值加上一個很小的常數(shù)



當x在區(qū)間 [-1,1] 上時, 一般取值為

參數(shù)


Deep Learning 優(yōu)化方法總結 By YuFeiGan 更新日期:2015-07-01

1.Stochastic Gradient Descent (SGD)

1.1 SGD的參數(shù)

在使用隨機梯度下降(SGD)的學習方法時,一般來說有以下幾個可供調節(jié)的參數(shù):

  • Learning Rate 學習率

  • Weight Decay 權值衰減

  • Momentum 動量

  • Learning Rate Decay 學習率衰減

    ps:
    再此之中只有第一的參數(shù)(Learning Rate)是必須的,其余部分都是為了提高自適應性的參數(shù),也就是說后3個參數(shù)不需要時可以設為0。

1.1.1 Learning Rate

學習率決定了權值更新的速度,設置得太大會使結果越過最優(yōu)值,太小會使下降速度過慢。
僅靠人為干預調整參數(shù)需要不斷修改學習率,因此后面3種參數(shù)都是基于自適應的思路提出的解決方案。

1.1.2 Weight decay

在實際運用中,為了避免模型的over-fitting,需要對cost function加入規(guī)范項。

Weight decay adds a penalty term to the error function.     

在SGD中我們加入 ?ηλWi 這一項來對cost function進行規(guī)范化。

這個公式的基本思路是減小不重要的參數(shù)對結果的影響,而有用的權重則不會受到Weight decay的影響,這種思路與Dropout的思路原理上十分相似。

Link 1

Link 2

大家都知道DNN常有overfiting的問題,有人會想到為何有些算法(比如DT/最近鄰等)在training data上很快達到100%,而NN卻需要不停訓練卻一直達不到。原因之一是相對訓練數(shù)據(jù)中模式,網(wǎng)絡參數(shù)過多且不加合理區(qū)分,導致判決邊界調諧到特定訓練數(shù)據(jù)上,并非表現(xiàn)一般特性。由于初始weight is small, neur執(zhí)行在線性范圍,隨著training,nonlinear才逐漸顯現(xiàn),decision boundary變彎。但gradient descent完成之前停止training則可避免overfiting。

其實在dropout被叫響之前,它有個哥們叫weight decay技術,對于非常多weight的NN,along with training,decay all weights。小權值網(wǎng)絡更適于做線性判別模型。weight decay具體公式有需要的可以找我。有人會問有價值的weight是不是也會decay。其實BP算法本質能對降低error function意義不大的weight變的越來越小,對于如此小的值,可以完全discard(是不是想起了dropout,呵)。而真正解決問題的weight不會隨便被decay。還有些其他本質我們后續(xù)再討論。

對于activation function的選擇是個技巧,但有規(guī)律可循。其實很多人忽視了sigmoid的2個參數(shù)gamma和phi,直接用“裸體的”sigmoid。想了解“穿著衣服的"sigmoid的可以再聯(lián)系我。如果有prior information,比如分布有GMD引起的,則gaussian形式的函數(shù)將是個好選擇(有沒有想到ReLU的曲線與sigmoid的曲線分布類似,至于對x<0的y限制為0的本質下回分解吧)。沒有這些prior時,有三個基本原則(但不是死的):非線性,saturability,連續(xù)光滑性(這點有待再探討)。nonlinear是提供deep NN比shallow NN強的計算能力的必要條件。saturability限制weight和activation function的上下邊界,因而是epoch可以有限。光滑連續(xù)性希望f和一階導在自變量范圍內有意義。

momentum的概念來自newton第一定律,在BP算法中引入momentum的目的是允許當誤差曲面中存在平坦區(qū)時,NN可以更快的速度學習。將隨機反向傳播中的學習規(guī)則修正為包含了之前k次權值更新量的alpha倍。具體公式表達有需要的可以找我。(是不是啟發(fā)你想到了adagrad/adadelta呢,其實看到公式后你更有啟發(fā),呵)。momentum的使用"平均化"了隨機學習這種weight的隨機更新,增加了穩(wěn)定性,在加快learning中甚至可以遠離常引起錯誤的平坦區(qū)。

誤差函數(shù)常采用cross entropy,是因為它本質上度量了概率分布間的"距離"。具體公式有需要的可以聯(lián)系我,一起討論。此外,如果想得到局部性強的分類器可以考慮閔科夫斯基誤差。是的,還有其他物理意義的誤差函數(shù),采用哪一種要看用來干什么了。

對于batch learning,online learning, random learning(據(jù)悉msra有更多標注語音但就用了2000小時語音訓練)仁者見仁智者見智,這也是為什么jeff dean設計DistBelief提供了Downpour和Sandblaster了。當training data巨大時,內存消耗很大(即使分布式的在內存中存的下但要考慮是否必要),工業(yè)界使用的NN常采用online或random協(xié)議。在batch learning中樣本的重復出現(xiàn)提供的信息同隨機情況下樣本的單次出現(xiàn)一樣多,而實際問題并不需要精確復制各個模式以及實際dataset常有高冗余度,batch learning比random learning慢。但不易嵌入到online learning的"二階技術"卻在某些問題上有其他優(yōu)勢。

對于DNN來說,BP層層計算很耗時。二階導數(shù)矩陣(Hesse陣)規(guī)模可能又很大。大家知道的擬合較好的方法,如LBFGS、共軛梯度法、變量度量法等,保持了較快的收斂速度。但值得一提的是,對Hesse陣的無偏近似方法Curvature Propagation可以參考ilya的論文哦。從此paper中也可理解下BP與Hesse的"秘密"。

大家都頭疼learningRate的選擇,其實這個與上述討論的多個方面有關系,例如NN的結構、activation function形式、momentum策略、decay方式、期望迭代的總次數(shù)、優(yōu)化的方式、期望目標分類器的表現(xiàn)等等。有一點,我們可以利用誤差的二階導數(shù)來確定learning rate。也可以利用二階信息對NN中unnecessary weight的消去做指導。

1.1.3 Learning Rate Decay

一種提高SGD尋優(yōu)能力的方法,具體做法是每次迭代減小學習率的大小。

在許多論文中,另一種比較常見的方法是迭代30-50次左右直接對學習率進行操作(η ← 0.5?η)

1.1.4 Momentum

靈感來自于牛頓第一定律,基本思路是為尋優(yōu)加入了“慣性”的影響,這樣一來,當誤差曲面中存在平坦區(qū)SGD可以一更快的速度學習。

注意:這里的表示方法并沒有統(tǒng)一的規(guī)定,這里只是其中一種

Link 1
Link 2-pdf
Link 3
Link 4-pdf

SGD優(yōu)缺點
實現(xiàn)簡單,當訓練樣本足夠多時優(yōu)化速度非常快
需要人為調整很多參數(shù),比如學習率,收斂準則等
Averaged Stochastic Gradient Descent (ASGD)
在SGD的基礎上計算了權值的平均值。
$$\bar{w}t=\frac{1}{t-t_0}\sum^t{i=t_0+1} w_t$$

ASGD的參數(shù)
在SGD的基礎上增加參數(shù)t0t0
學習率 ηη
參數(shù) t0t0
ASGD優(yōu)缺點
運算花費和second order stochastic gradient descent (2SGD)一樣小。
比SGD的訓練速度更為緩慢。
t0t0的設置十分困難
Link 1

  1. Conjugate Gradient(共軛梯度法)
    介于最速下降法與牛頓法之間的一個方法,它僅僅需要利用一階導數(shù)的信息,克服了GD方法收斂慢的特點。

Link 1

Limited-memory Broyden-Fletcher-Goldfarb-Shanno (LBFGS) (一種擬牛頓算法)
L-BFGS算法比較適合在大規(guī)模的數(shù)值計算中,具備牛頓法收斂速度快的特點,但不需要牛頓法那樣存儲Hesse矩陣,因此節(jié)省了大量的空間以及計算資源。

Link 1
Link 2
Link 3

應用分析
不同的優(yōu)化算法有不同的優(yōu)缺點,適合不同的場合:

LBFGS算法在參數(shù)的維度比較低(一般指小于10000維)時的效果要比SGD(隨機梯度下降)和CG(共軛梯度下降)效果好,特別是帶有convolution的模型。
針對高維的參數(shù)問題,CG的效果要比另2種好。也就是說一般情況下,SGD的效果要差一些,這種情況在使用GPU加速時情況一樣,即在GPU上使用LBFGS和CG時,優(yōu)化速度明顯加快,而SGD算法優(yōu)化速度提高很小。
在單核處理器上,LBFGS的優(yōu)勢主要是利用參數(shù)之間的2階近視特性來加速優(yōu)化,而CG則得得益于參數(shù)之間的共軛信息,需要計算器Hessian矩陣。


4.3 CIFAR-100

CIFAR-100數(shù)據(jù)庫中的圖片大小與格式與CIFAR-10相同,但是包含了100個分類。因此,C-100中每一分類的數(shù)據(jù)就是C-10的十分之一。對于CIFAR-100數(shù)據(jù)庫,作者沒有訓練超參數(shù),而是直接使用了CIFAR-10所訓練好的超參數(shù)直接進行訓練。模型與CIFAR-10的唯一區(qū)別就是最后一個MLPconv層的輸出為100個特征映射。作者訓練后得到的錯誤率為35.68%,作者聲稱已超越現(xiàn)存對手。見下圖。


4.4 街景門牌號

SVHN數(shù)據(jù)庫由630420個32x32的彩色圖片組成。分成訓練集、測試集和額外集。數(shù)據(jù)集的任務是用于分類定位圖片中心的數(shù)字。作者訓練和測試的過程與Goodfellow相同[心語:哇喳喳啊,Goodfellow的文章要看啊]。具體而言是,對于每一類類,從訓練集中選擇400個樣本,再從額外集中選擇200個樣本用于驗證,訓練集與和額外集中其余的樣本用于訓練,組成的驗證集僅僅用于超參的選擇,不會在訓練過程中使用。

作者仍舊采用Goodfellow等人的預處理過程,局部對比度正則化。其訓練模型的結構與參數(shù)與CIFAR-10的模型相似,三層MLPconv+全局平均池化。作者的模型達到了2.35%,比較結果見下圖。


4.5 MNIST

MNIST數(shù)據(jù)庫由0-9個數(shù)字的圖片組成,圖片大小為28x28,約有60k張訓練圖片和10k張測試圖片。作者仍舊使用CIFAR-10的模型進行訓練,只是將每個MLPconv層生成的特征映射數(shù)量減少[心語:md,減少多少啊!],減少的原因是MNIST與CIFAR-10相比較是一個簡單的數(shù)據(jù)庫,只需要較少的參數(shù)。作者測試其方法沒有使用數(shù)據(jù)集擴充(data augmentation),其結果如下圖。作者的模型所得測試誤差為0.47%,比當前最好的結果Conv with Maxout+Dropout略差。


4.6 全局平均池化作為正則化矩陣

從作者的使用角度來說,全局平均池化層的作用與全連接層相似,兩者都是將矢量化的特征映射進行線性變換。兩者區(qū)別在于其變換知識。對于全局平均池化來說,轉換矩陣被置于前面(/前綴)并且其塊對角元素是非零相同值,而全連接層可以有密集的轉換矩陣并且其值易于反向傳播優(yōu)化。為研究全局平均池化的正則效果,作者使用全局平均池化代替了全連接層,并且保持模型其它部分是相同的。兩個模型都使用CIFAR-10進行訓練,其結果對比如下圖。從圖中可以看出,全連接層without Dropout的是最差(高)的,而且作者的模型是最好(少)的。作者給出的結論是全連接層容易過擬合


作者進一步研究全局平均池化是否與傳統(tǒng)的cnn具有相同的正則能力。作者實現(xiàn)一個hinton所說的傳統(tǒng)cnn模型,其由三個卷積層和一個局部連接層組成。局部連接層產生16個特征映射并被輸入到with dropout的全連接層中。為公平起見,作者將局部連接層的特征映射由16減至10,這樣與其所提出的模型一致(在作者全局平均池化模式中,每個類中只有一個特征映射被允許),通過用全局平均池化代替dropout+fully connection layer,作者創(chuàng)建了一個等價的帶有全局平均池化的網(wǎng)絡模型。

經過訓練,傳統(tǒng)cnn模型(沒有dropout的)誤差率為17.56%,增加dropout的cnn為15.99%[此值非作者實驗得出,是hinton文章所述],作者所用的,即替換后的模型其誤差率為16.46%,比傳統(tǒng)cnn減少了百分之一。作者認為,其結果比dropout要差(高)一些,是因為全局平均池化層對線性卷積的要求比較高(demanding,苛刻)

4.7 可視化of NIN

作者將最后一個MLPconv層中的特征映射顯式的執(zhí)行為類別的置信圖,通過全局平均池化方法(只得到唯一的一個強烈的局部感受野模型)。作者抽取并直接顯示了用于CIFAR10上的模型中最后一層MLPconv的特征映射(圖),見下圖。

作者認為可視化再次說明了NIN的效果,NIN模型通過使用MLPconv可以收到一個更為強烈的局部感受野模型,全局平均池化可以提高

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容