CNN系列:AlexNet: 用深度卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)(ImageNet的分類(ImageNet Classification with Deep Convolutional Neural Net...

譯者按: 祖師爺Hinton 帶領(lǐng)的小組經(jīng)典之作,深度學(xué)習(xí)開(kāi)山祖師 Hinton率領(lǐng)的谷歌團(tuán)隊(duì)多次奪冠 ,主力成員為 hinton 在多倫多大學(xué)的學(xué)生? Alex Krizhevsky? ,?Ilya Sutskever? ,? 因此他們的解決方案也叫alexnet? , 這篇文章是hinton大神團(tuán)隊(duì)的代表性之作,CNN (卷積神經(jīng)網(wǎng)絡(luò))已經(jīng)成為圖像識(shí)別處理的標(biāo)準(zhǔn),alexnet作為CNN的代表性方案基礎(chǔ),開(kāi)創(chuàng)性的GPU計(jì)算卷積 , 仿生視覺(jué)細(xì)胞的局部感受野等手段解決了圖像處理的難題, 和同期的VGG、ResNet、GoogleNet等比肩,使得圖像識(shí)別成為了人工智能的最成功領(lǐng)域。


ImageNet是一個(gè)計(jì)算機(jī)視覺(jué)系統(tǒng)識(shí)別項(xiàng)目,締造者為斯坦福大學(xué)教授李飛飛 ,是目前圖像識(shí)別最大的數(shù)據(jù)庫(kù)。是美國(guó)斯坦福的計(jì)算機(jī)科學(xué)家,模擬人類的識(shí)別系統(tǒng)建立的。能夠從圖片識(shí)別物體。ImageNetLSVRC圖像識(shí)別大賽素有國(guó)際“計(jì)算機(jī)視覺(jué)奧林匹克“之稱。數(shù)據(jù)集包含大約1000多萬(wàn)張各種圖片,被分為1000個(gè)分類,參賽者訓(xùn)練分類器,在測(cè)試數(shù)據(jù)上取得最高辨識(shí)正確率者為優(yōu)勝。



作者 :

University of Toronto? 多倫多大學(xué):

Alex Krizhevsky? ? ?Ilya Sutskever? ? Geoffrey E. Hinton


摘要

我們訓(xùn)練了一個(gè)大型深度卷積神經(jīng)網(wǎng)絡(luò)來(lái)將ImageNet LSVRC-2010競(jìng)賽的120萬(wàn)高分辨率的圖像分到1000不同的類別中。在測(cè)試數(shù)據(jù)上,我們得到了top-1 37.5%, top-5 17.0%的錯(cuò)誤率,這個(gè)結(jié)果比目前的最好結(jié)果好很多。這個(gè)神經(jīng)網(wǎng)絡(luò)有6000萬(wàn)參數(shù)和650000個(gè)神經(jīng)元,包含5個(gè)卷積層(某些卷積層后面帶有池化層)和3個(gè)全連接層,最后是一個(gè)1000維的softmax。為了訓(xùn)練的更快,我們使用了非飽和神經(jīng)元并對(duì)卷積操作進(jìn)行了非常有效的GPU實(shí)現(xiàn)。為了減少全連接層的過(guò)擬合,我們采用了一個(gè)最近開(kāi)發(fā)的名為dropout的正則化方法,結(jié)果證明是非常有效的。我們也使用這個(gè)模型的一個(gè)變種參加了ILSVRC-2012競(jìng)賽,贏得了冠軍并且與第二名?top-5 26.2%的錯(cuò)誤率相比,我們?nèi)〉昧藅op-5 15.3%的錯(cuò)誤率。

1 引言

當(dāng)前的目標(biāo)識(shí)別方法基本上都使用了機(jī)器學(xué)習(xí)方法。為了提高目標(biāo)識(shí)別的性能,我們可以收集更大的數(shù)據(jù)集,學(xué)習(xí)更強(qiáng)大的模型,使用更好的技術(shù)來(lái)防止過(guò)擬合。直到最近,標(biāo)注圖像的數(shù)據(jù)集都相對(duì)較小--在幾萬(wàn)張圖像的數(shù)量級(jí)上(例如,NORB[16],Caltech-101/256 [8, 9]和CIFAR-10/100 [12])。簡(jiǎn)單的識(shí)別任務(wù)在這樣大小的數(shù)據(jù)集上可以被解決的相當(dāng)好,尤其是如果通過(guò)標(biāo)簽保留變換進(jìn)行數(shù)據(jù)增強(qiáng)的情況下。例如,目前在MNIST數(shù)字識(shí)別任務(wù)上(<0.3%)的最好準(zhǔn)確率已經(jīng)接近了人類水平[4]。但真實(shí)環(huán)境中的對(duì)象表現(xiàn)出了相當(dāng)大的可變性,因此為了學(xué)習(xí)識(shí)別它們,有必要使用更大的訓(xùn)練數(shù)據(jù)集。實(shí)際上,小圖像數(shù)據(jù)集的缺點(diǎn)已經(jīng)被廣泛認(rèn)識(shí)到(例如,Pinto et al. [21]),但收集上百萬(wàn)圖像的標(biāo)注數(shù)據(jù)僅在最近才變得的可能。新的更大的數(shù)據(jù)集包括LabelMe [23],它包含了數(shù)十萬(wàn)張完全分割的圖像,ImageNet [6],它包含了22000個(gè)類別上的超過(guò)1500萬(wàn)張標(biāo)注的高分辨率的圖像。

為了從數(shù)百萬(wàn)張圖像中學(xué)習(xí)幾千個(gè)對(duì)象,我們需要一個(gè)有很強(qiáng)學(xué)習(xí)能力的模型。然而對(duì)象識(shí)別任務(wù)的巨大復(fù)雜性意味著這個(gè)問(wèn)題不能被指定,即使通過(guò)像ImageNet這樣的大數(shù)據(jù)集,因此我們的模型應(yīng)該也有許多先驗(yàn)知識(shí)來(lái)補(bǔ)償我們所沒(méi)有的數(shù)據(jù)。卷積神經(jīng)網(wǎng)絡(luò)(CNNs)構(gòu)成了一個(gè)這樣的模型[16, 11, 13, 18, 15, 22, 26]。它們的能力可以通過(guò)改變它們的廣度和深度來(lái)控制,它們也可以對(duì)圖像的本質(zhì)進(jìn)行強(qiáng)大且通常正確的假設(shè)(也就是說(shuō),統(tǒng)計(jì)的穩(wěn)定性和像素依賴的局部性)。因此,與具有層次大小相似的標(biāo)準(zhǔn)前饋神經(jīng)網(wǎng)絡(luò),CNNs有更少的連接和參數(shù),因此它們更容易訓(xùn)練,而它們理論上的最佳性能可能僅比標(biāo)準(zhǔn)前饋神經(jīng)網(wǎng)絡(luò)差一點(diǎn)。

盡管CNN具有引人注目的質(zhì)量,盡管它們的局部架構(gòu)相當(dāng)有效,但將它們大規(guī)模的應(yīng)用到到高分辨率圖像中仍然是極其昂貴的。幸運(yùn)的是,目前的GPU,搭配了高度優(yōu)化的2D卷積實(shí)現(xiàn),強(qiáng)大到足夠促進(jìn)有趣地大量CNN的訓(xùn)練,最近的數(shù)據(jù)集例如ImageNet包含足夠的標(biāo)注樣本來(lái)訓(xùn)練這樣的模型而沒(méi)有嚴(yán)重的過(guò)擬合。

本文具體的貢獻(xiàn)如下:我們?cè)贗LSVRC-2010和ILSVRC-2012[2]的ImageNet子集上訓(xùn)練了到目前為止最大的神經(jīng)網(wǎng)絡(luò)之一,并取得了迄今為止在這些數(shù)據(jù)集上報(bào)道過(guò)的最好結(jié)果。我們編寫(xiě)了高度優(yōu)化的2D卷積GPU實(shí)現(xiàn)以及訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)內(nèi)部的所有其它操作,我們把它公開(kāi)了。我們的網(wǎng)絡(luò)包含許多新的不尋常的特性,這些特性提高了神經(jīng)網(wǎng)絡(luò)的性能并減少了訓(xùn)練時(shí)間,詳見(jiàn)第三節(jié)。即使使用了120萬(wàn)標(biāo)注的訓(xùn)練樣本,我們的網(wǎng)絡(luò)尺寸仍然使過(guò)擬合成為一個(gè)明顯的問(wèn)題,因此我們使用了一些有效的技術(shù)來(lái)防止過(guò)擬合,詳見(jiàn)第四節(jié)。我們最終的網(wǎng)絡(luò)包含5個(gè)卷積層和3個(gè)全連接層,深度似乎是非常重要的:我們發(fā)現(xiàn)移除任何卷積層(每個(gè)卷積層包含的參數(shù)不超過(guò)模型參數(shù)的1%)都會(huì)導(dǎo)致更差的性能。

最后,網(wǎng)絡(luò)尺寸主要受限于目前GPU的內(nèi)存容量和我們能忍受的訓(xùn)練時(shí)間。我們的網(wǎng)絡(luò)在兩個(gè)GTX 580 3GB GPU上訓(xùn)練五六天。我們的所有實(shí)驗(yàn)表明我們的結(jié)果可以簡(jiǎn)單地通過(guò)等待更快的GPU和更大的可用數(shù)據(jù)集來(lái)提高。

2 數(shù)據(jù)集

ImageNet數(shù)據(jù)集有超過(guò)1500萬(wàn)的標(biāo)注高分辨率圖像,這些圖像屬于大約22000個(gè)類別。這些圖像是從網(wǎng)上收集的,使用了Amazon’s Mechanical Turk的眾包工具通過(guò)人工標(biāo)注的。從2010年起,作為Pascal視覺(jué)對(duì)象挑戰(zhàn)賽的一部分,每年都會(huì)舉辦ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽(ILSVRC)。ILSVRC使用ImageNet的一個(gè)子集,1000個(gè)類別每個(gè)類別大約1000張圖像。總計(jì),大約120萬(wàn)訓(xùn)練圖像,50000張驗(yàn)證圖像和15萬(wàn)測(cè)試圖像。

ILSVRC-2010是ILSVRC競(jìng)賽中唯一可以獲得測(cè)試集標(biāo)簽的版本,因此我們大多數(shù)實(shí)驗(yàn)都是在這個(gè)版本上運(yùn)行的。由于我們也使用我們的模型參加了ILSVRC-2012競(jìng)賽,因此在第六節(jié)我們也報(bào)告了模型在這個(gè)版本的數(shù)據(jù)集上的結(jié)果,這個(gè)版本的測(cè)試標(biāo)簽是不可獲得的。在ImageNet上,按照慣例報(bào)告兩個(gè)錯(cuò)誤率:top-1和top-5,top-5錯(cuò)誤率是指測(cè)試圖像的正確標(biāo)簽不在模型認(rèn)為的五個(gè)最可能的便簽之中。

ImageNet包含各種分辨率的圖像,而我們的系統(tǒng)要求不變的輸入維度。因此,我們將圖像進(jìn)行下采樣到固定的256×256分辨率。給定一個(gè)矩形圖像,我們首先縮放圖像短邊長(zhǎng)度為256,然后從結(jié)果圖像中裁剪中心的256×256大小的圖像塊。除了在訓(xùn)練集上對(duì)像素減去平均活躍度外,我們不對(duì)圖像做任何其它的預(yù)處理。因此我們?cè)谠嫉腞GB像素值(中心的)上訓(xùn)練我們的網(wǎng)絡(luò)。


3 架構(gòu)

我們的網(wǎng)絡(luò)架構(gòu)概括為圖2。它包含八個(gè)學(xué)習(xí)層--5個(gè)卷積層和3個(gè)全連接層。下面,我們將描述我們網(wǎng)絡(luò)結(jié)構(gòu)中的一些新奇的不尋常的特性。3.1-3.4小節(jié)按照我們對(duì)它們?cè)u(píng)估的重要性進(jìn)行排序,最重要的最有先。

3.1 ReLU非線性

將神經(jīng)元輸出f建模為輸入x的函數(shù)的標(biāo)準(zhǔn)方式是用f(x) = tanh(x)或f(x) = (1 + e?x)?1。考慮到梯度下降的訓(xùn)練時(shí)間,這些飽和的非線性比非飽和非線性f(x) = max(0,x)更慢。根據(jù)Nair和Hinton[20]的說(shuō)法,我們將這種非線性神經(jīng)元稱為修正線性單元(ReLU)。采用ReLU的深度卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間比等價(jià)的tanh單元要快幾倍。在圖1中,對(duì)于一個(gè)特定的四層卷積網(wǎng)絡(luò),在CIFAR-10數(shù)據(jù)集上達(dá)到25%的訓(xùn)練誤差所需要的迭代次數(shù)可以證實(shí)這一點(diǎn)。這幅圖表明,如果我們采用傳統(tǒng)的飽和神經(jīng)元模型,我們將不能在如此大的神經(jīng)網(wǎng)絡(luò)上實(shí)驗(yàn)該工作。


圖1:使用ReLU的四層卷積神經(jīng)網(wǎng)絡(luò)在CIFAR-10數(shù)據(jù)集上達(dá)到25%的訓(xùn)練誤差比使用tanh神經(jīng)元的等價(jià)網(wǎng)絡(luò)(虛線)快六倍。為了使訓(xùn)練盡可能快,每個(gè)網(wǎng)絡(luò)的學(xué)習(xí)率是單獨(dú)選擇的。沒(méi)有采用任何類型的正則化。影響的大小隨著網(wǎng)絡(luò)結(jié)構(gòu)的變化而變化,這一點(diǎn)已得到證實(shí),但使用ReLU的網(wǎng)絡(luò)都比等價(jià)的飽和神經(jīng)元快幾倍。

我們不是第一個(gè)考慮替代CNN中傳統(tǒng)神經(jīng)元模型的人。例如,Jarrett等人[11]聲稱非線性函數(shù)f(x) = |tanh(x)|與其對(duì)比度歸一化一起,然后是局部均值池化,在Caltech-101數(shù)據(jù)集上工作的非常好。然而,在這個(gè)數(shù)據(jù)集上主要的關(guān)注點(diǎn)是防止過(guò)擬合,因此他們觀測(cè)到的影響不同于我們使用ReLU擬合數(shù)據(jù)集時(shí)的加速能力。更快的學(xué)習(xí)對(duì)大型數(shù)據(jù)集上大型模型的性能有很大的影響。

3.2 多GPU訓(xùn)練

單個(gè)GTX580 GPU只有3G內(nèi)存,這限制了可以在GTX580上進(jìn)行訓(xùn)練的網(wǎng)絡(luò)最大尺寸。事實(shí)證明120萬(wàn)圖像用來(lái)進(jìn)行網(wǎng)絡(luò)訓(xùn)練是足夠的,但網(wǎng)絡(luò)太大因此不能在單個(gè)GPU上進(jìn)行訓(xùn)練。因此我們將網(wǎng)絡(luò)分布在兩個(gè)GPU上。目前的GPU非常適合跨GPU并行,因?yàn)樗鼈兛梢灾苯踊ハ嘧x寫(xiě)內(nèi)存,而不需要通過(guò)主機(jī)內(nèi)存。我們采用的并行方案基本上每個(gè)GPU放置一半的核(或神經(jīng)元),還有一個(gè)額外的技巧:只在某些特定的層上進(jìn)行GPU通信。這意味著,例如,第3層的核會(huì)將第2層的所有核映射作為輸入。然而,第4層的核只將位于相同GPU上的第3層的核映射作為輸入。連接模式的選擇是一個(gè)交叉驗(yàn)證問(wèn)題,但這可以讓我們準(zhǔn)確地調(diào)整通信數(shù)量,直到它的計(jì)算量在可接受的范圍內(nèi)。

除了我們的列不是獨(dú)立的之外(看圖2),最終的架構(gòu)有點(diǎn)類似于Ciresan等人[5]采用的“columnar” CNN。與每個(gè)卷積層一半的核在單GPU上訓(xùn)練的網(wǎng)絡(luò)相比,這個(gè)方案降分別低了我們的top-1 1.7%,top-5 1.2%的錯(cuò)誤率。雙GPU網(wǎng)絡(luò)比單GPU網(wǎng)絡(luò)稍微減少了訓(xùn)練時(shí)間。



圖 2:我們CNN架構(gòu)圖解,明確描述了兩個(gè)GPU之間的責(zé)任。在圖的頂部,一個(gè)GPU運(yùn)行在部分層上,而在圖的底部,另一個(gè)GPU運(yùn)行在部分層上。GPU只在特定的層進(jìn)行通信。網(wǎng)絡(luò)的輸入是150,528維,網(wǎng)絡(luò)剩下層的神經(jīng)元數(shù)目分別是253,440–186,624–64,896–64,896–43,264–4096–4096–1000(8層)。

3.3 局部響應(yīng)歸一化

ReLU具有讓人滿意的特性,它不需要通過(guò)輸入歸一化來(lái)防止飽和。如果至少一些訓(xùn)練樣本對(duì)ReLU產(chǎn)生了正輸入,那么那個(gè)神經(jīng)元上將發(fā)生學(xué)習(xí)。然而,我們?nèi)匀话l(fā)現(xiàn)接下來(lái)的局部響應(yīng)歸一化有助于泛化。aix,yax,yi表示神經(jīng)元激活,通過(guò)在(x,y)(x,y)位置應(yīng)用核ii,然后應(yīng)用ReLU非線性來(lái)計(jì)算,響應(yīng)歸一化激活bix,ybx,yi通過(guò)下式給定:


求和運(yùn)算在n個(gè)“毗鄰的”核映射的同一位置上執(zhí)行,N是本層的卷積核數(shù)目。核映射的順序當(dāng)然是任意的,在訓(xùn)練開(kāi)始前確定。響應(yīng)歸一化的順序?qū)崿F(xiàn)了一種側(cè)抑制形式,靈感來(lái)自于真實(shí)神經(jīng)元中發(fā)現(xiàn)的類型,為使用不同核進(jìn)行神經(jīng)元輸出計(jì)算的較大活動(dòng)創(chuàng)造了競(jìng)爭(zhēng)。常量k,n,α,β是超參數(shù),它們的值通過(guò)驗(yàn)證集確定;我們?cè)O(shè)k=2,n=5,α=0.0001,β=0.75。我們?cè)谔囟ǖ膶邮褂玫腞eLU非線性之后應(yīng)用了這種歸一化(請(qǐng)看3.5小節(jié))。

這個(gè)方案與Jarrett等人[11]的局部對(duì)比度歸一化方案有一定的相似性,但我們更恰當(dāng)?shù)姆Q其為“亮度歸一化”,因此我們沒(méi)有減去均值。響應(yīng)歸一化分別減少了top-1 1.4%,top-5 1.2%的錯(cuò)誤率。我們也在CIFAR-10數(shù)據(jù)集上驗(yàn)證了這個(gè)方案的有效性:一個(gè)沒(méi)有歸一化的四層CNN取得了13%的錯(cuò)誤率,而使用歸一化取得了11%的錯(cuò)誤率。

3.4 重疊池化

CNN中的池化層歸納了同一核映射上相鄰組神經(jīng)元的輸出。習(xí)慣上,相鄰池化單元?dú)w納的區(qū)域是不重疊的(例如[17, 11, 4])。更確切的說(shuō),池化層可看作由池化單元網(wǎng)格組成,網(wǎng)格間距為ss個(gè)像素,每個(gè)網(wǎng)格歸納池化單元中心位置z×zz×z大小的鄰居。如果設(shè)置s=zs=z,我們會(huì)得到通常在CNN中采用的傳統(tǒng)局部池化。如果設(shè)置s

3.5 整體架構(gòu)

現(xiàn)在我們準(zhǔn)備描述我們的CNN的整體架構(gòu)。如圖2所示,我們的網(wǎng)絡(luò)包含8個(gè)帶權(quán)重的層;前5層是卷積層,剩下的3層是全連接層。最后一層全連接層的輸出是1000維softmax的輸入,softmax會(huì)產(chǎn)生1000類標(biāo)簽的分布。我們的網(wǎng)絡(luò)最大化多項(xiàng)邏輯回歸的目標(biāo),這等價(jià)于最大化預(yù)測(cè)分布下訓(xùn)練樣本正確標(biāo)簽的對(duì)數(shù)概率的均值。

第2,4,5卷積層的核只與位于同一GPU上的前一層的核映射相連接(看圖2)。第3卷積層的核與第2層的所有核映射相連。全連接層的神經(jīng)元與前一層的所有神經(jīng)元相連。第1,2卷積層之后是響應(yīng)歸一化層。3.4節(jié)描述的這種最大池化層在響應(yīng)歸一化層和第5卷積層之后。ReLU非線性應(yīng)用在每個(gè)卷積層和全連接層的輸出上。

第1卷積層使用96個(gè)核對(duì)224 × 224 × 3的輸入圖像進(jìn)行濾波,核大小為11 × 11 × 3,步長(zhǎng)是4個(gè)像素(核映射中相鄰神經(jīng)元感受野中心之間的距離)。第2卷積層使用用第1卷積層的輸出(響應(yīng)歸一化和池化)作為輸入,并使用256個(gè)核進(jìn)行濾波,核大小為5 × 5 × 48。第3,4,5卷積層互相連接,中間沒(méi)有接入池化層或歸一化層。第3卷積層有384個(gè)核,核大小為3 × 3 × 256,與第2卷積層的輸出(歸一化的,池化的)相連。第4卷積層有384個(gè)核,核大小為3 × 3 × 192,第5卷積層有256個(gè)核,核大小為3 × 3 × 192。每個(gè)全連接層有4096個(gè)神經(jīng)元。

4 減少過(guò)擬合

我們的神經(jīng)網(wǎng)絡(luò)架構(gòu)有6000萬(wàn)參數(shù)。盡管ILSVRC的1000類使每個(gè)訓(xùn)練樣本從圖像到標(biāo)簽的映射上強(qiáng)加了10比特的約束,但這不足以學(xué)習(xí)這么多的參數(shù)而沒(méi)有相當(dāng)大的過(guò)擬合。下面,我們會(huì)描述我們用來(lái)克服過(guò)擬合的兩種主要方式。

4.1 數(shù)據(jù)增強(qiáng)

圖像數(shù)據(jù)上最簡(jiǎn)單常用的用來(lái)減少過(guò)擬合的方法是使用標(biāo)簽保留變換(例如[25, 4, 5])來(lái)人工增大數(shù)據(jù)集。我們使用了兩種獨(dú)特的數(shù)據(jù)增強(qiáng)方式,這兩種方式都可以從原始圖像通過(guò)非常少的計(jì)算量產(chǎn)生變換的圖像,因此變換圖像不需要存儲(chǔ)在硬盤上。在我們的實(shí)現(xiàn)中,變換圖像通過(guò)CPU的Python代碼生成,而此時(shí)GPU正在訓(xùn)練前一批圖像。因此,實(shí)際上這些數(shù)據(jù)增強(qiáng)方案是計(jì)算免費(fèi)的。

第一種數(shù)據(jù)增強(qiáng)方式包括產(chǎn)生圖像變換和水平翻轉(zhuǎn)。我們從256×256圖像上通過(guò)隨機(jī)提取224 × 224的圖像塊實(shí)現(xiàn)了這種方式,然后在這些提取的圖像塊上進(jìn)行訓(xùn)練。這通過(guò)一個(gè)2048因子增大了我們的訓(xùn)練集,盡管最終的訓(xùn)練樣本是高度相關(guān)的。沒(méi)有這個(gè)方案,我們的網(wǎng)絡(luò)會(huì)有大量的過(guò)擬合,這會(huì)迫使我們使用更小的網(wǎng)絡(luò)。在測(cè)試時(shí),網(wǎng)絡(luò)會(huì)提取5個(gè)224 × 224的圖像塊(四個(gè)角上的圖像塊和中心的圖像塊)和它們的水平翻轉(zhuǎn)(因此總共10個(gè)圖像塊)進(jìn)行預(yù)測(cè),然后對(duì)網(wǎng)絡(luò)在10個(gè)圖像塊上的softmax層進(jìn)行平均。

第二種數(shù)據(jù)增強(qiáng)方式包括改變訓(xùn)練圖像的RGB通道的強(qiáng)度。具體地,我們?cè)谡麄€(gè)ImageNet訓(xùn)練集上對(duì)RGB像素值集合執(zhí)行PCA。對(duì)于每幅訓(xùn)練圖像,我們加上多倍找到的主成分,大小成正比的對(duì)應(yīng)特征值乘以一個(gè)隨機(jī)變量,隨機(jī)變量通過(guò)均值為0,標(biāo)準(zhǔn)差為0.1的高斯分布得到。因此對(duì)于每幅RGB圖像像素Ixy=[IRxy,IGxy,IBxy]TIxy=[IxyR,IxyG,IxyB]T,我們加上下面的數(shù)量:

[p1,p2,p3][α1λ1,α2λ2,α3λ3]T[p1,p2,p3][α1λ1,α2λ2,α3λ3]T

pipi,λiλi分別是RGB像素值3 × 3協(xié)方差矩陣的第ii個(gè)特征向量和特征值,αiαi是前面提到的隨機(jī)變量。對(duì)于某個(gè)訓(xùn)練圖像的所有像素,每個(gè)αiαi只獲取一次,直到圖像進(jìn)行下一次訓(xùn)練時(shí)才重新獲取。這個(gè)方案近似抓住了自然圖像的一個(gè)重要特性,即光照的顏色和強(qiáng)度發(fā)生變化時(shí),目標(biāo)身份是不變的。這個(gè)方案減少了top 1錯(cuò)誤率1%以上

4.2 失活(Dropout)

將許多不同模型的預(yù)測(cè)結(jié)合起來(lái)是降低測(cè)試誤差[1, 3]的一個(gè)非常成功的方法,但對(duì)于需要花費(fèi)幾天來(lái)訓(xùn)練的大型神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),這似乎太昂貴了。然而,有一個(gè)非常有效的模型結(jié)合版本,它只花費(fèi)兩倍的訓(xùn)練成本。這種最近引入的技術(shù),叫做“dropout”[10],它會(huì)以0.5的概率對(duì)每個(gè)隱層神經(jīng)元的輸出設(shè)為0。那些“失活的”的神經(jīng)元不再進(jìn)行前向傳播并且不參與反向傳播。因此每次輸入時(shí),神經(jīng)網(wǎng)絡(luò)會(huì)采樣一個(gè)不同的架構(gòu),但所有架構(gòu)共享權(quán)重。這個(gè)技術(shù)減少了復(fù)雜的神經(jīng)元互適應(yīng),因?yàn)橐粋€(gè)神經(jīng)元不能依賴特定的其它神經(jīng)元的存在。因此,神經(jīng)元被強(qiáng)迫學(xué)習(xí)更魯棒的特征,它在與許多不同的其它神經(jīng)元的隨機(jī)子集結(jié)合時(shí)是有用的。在測(cè)試時(shí),我們使用所有的神經(jīng)元但它們的輸出乘以0.5,對(duì)指數(shù)級(jí)的許多失活網(wǎng)絡(luò)的預(yù)測(cè)分布進(jìn)行幾何平均,這是一種合理的近似。

我們?cè)趫D2中的前兩個(gè)全連接層使用失活。如果沒(méi)有失活,我們的網(wǎng)絡(luò)表現(xiàn)出大量的過(guò)擬合。失活大致上使要求收斂的迭代次數(shù)翻了一倍。

5 學(xué)習(xí)細(xì)節(jié)

我們使用隨機(jī)梯度下降來(lái)訓(xùn)練我們的模型,樣本的batch size為128,動(dòng)量為0.9,權(quán)重衰減為0.0005。我們發(fā)現(xiàn)少量的權(quán)重衰減對(duì)于模型的學(xué)習(xí)是重要的。換句話說(shuō),權(quán)重衰減不僅僅是一個(gè)正則項(xiàng):它減少了模型的訓(xùn)練誤差。權(quán)重ww的更新規(guī)則是



i是迭代索引,vv是動(dòng)量變量,εε是學(xué)習(xí)率,??L?w|wi?Di??L?w|wi?Di是目標(biāo)函數(shù)對(duì)ww,在wiwi上的第ii批微分DiDi的平均。

我們使用均值為0,標(biāo)準(zhǔn)差為0.01的高斯分布對(duì)每一層的權(quán)重進(jìn)行初始化。我們?cè)诘?,4,5卷積層和全連接隱層將神經(jīng)元偏置初始化為常量1。這個(gè)初始化通過(guò)為ReLU提供正輸入加速了學(xué)習(xí)的早期階段。我們?cè)谑O碌膶訉⑸窠?jīng)元偏置初始化為0。

我們對(duì)所有的層使用相等的學(xué)習(xí)率,這個(gè)是在整個(gè)訓(xùn)練過(guò)程中我們手動(dòng)調(diào)整得到的。當(dāng)驗(yàn)證誤差在當(dāng)前的學(xué)習(xí)率下停止提供時(shí),我們遵循啟發(fā)式的方法將學(xué)習(xí)率除以10。學(xué)習(xí)率初始化為0.01,在訓(xùn)練停止之前降低三次。我們?cè)?20萬(wàn)圖像的訓(xùn)練數(shù)據(jù)集上訓(xùn)練神經(jīng)網(wǎng)絡(luò)大約90個(gè)循環(huán),在兩個(gè)NVIDIA GTX 580 3GB GPU上花費(fèi)了五到六天。

6 結(jié)果

我們?cè)贗LSVRC-2010上的結(jié)果概括為表1。我們的神經(jīng)網(wǎng)絡(luò)取得了top-1 37.5%,top-5 17.0%的錯(cuò)誤率。在ILSVRC-2010競(jìng)賽中最佳結(jié)果是top-1 47.1%,top-5 28.2%,使用的方法是對(duì)6個(gè)在不同特征上訓(xùn)練的稀疏編碼模型生成的預(yù)測(cè)進(jìn)行平均,從那時(shí)起已公布的最好結(jié)果是top-1 45.7%,top-5 25.7%,使用的方法是平均在Fisher向量(FV)上訓(xùn)練的兩個(gè)分類器的預(yù)測(cè)結(jié)果,F(xiàn)isher向量是通過(guò)兩種密集采樣特征計(jì)算得到的[24]。


表1:ILSVRC-2010測(cè)試集上的結(jié)果對(duì)比。斜體是其它人取得的最好結(jié)果。

我們也用我們的模型參加了ILSVRC-2012競(jìng)賽并在表2中報(bào)告了我們的結(jié)果。由于ILSVRC-2012的測(cè)試集標(biāo)簽不可以公開(kāi)得到,我們不能報(bào)告我們嘗試的所有模型的測(cè)試錯(cuò)誤率。在這段的其余部分,我們會(huì)使用驗(yàn)證誤差率和測(cè)試誤差率互換,因?yàn)樵谖覀兊膶?shí)驗(yàn)中它們的差別不會(huì)超過(guò)0.1%(看圖2)。本文中描述的CNN取得了top-5 18.2%的錯(cuò)誤率。五個(gè)類似的CNN預(yù)測(cè)的平均誤差率為16.4%。為了對(duì)ImageNet 2011秋季發(fā)布的整個(gè)數(shù)據(jù)集(1500萬(wàn)圖像,22000個(gè)類別)進(jìn)行分類,我們?cè)谧詈蟮某鼗瘜又笥幸粋€(gè)額外的第6卷積層,訓(xùn)練了一個(gè)CNN,然后在它上面進(jìn)行“fine-tuning”,在ILSVRC-2012取得了16.6%的錯(cuò)誤率。對(duì)在ImageNet 2011秋季發(fā)布的整個(gè)數(shù)據(jù)集上預(yù)訓(xùn)練的兩個(gè)CNN和前面提到的五個(gè)CNN的預(yù)測(cè)進(jìn)行平均得到了15.3%的錯(cuò)誤率。第二名的最好競(jìng)賽輸入取得了26.2%的錯(cuò)誤率,他的方法是對(duì)FV上訓(xùn)練的一些分類器的預(yù)測(cè)結(jié)果進(jìn)行平均,F(xiàn)V在不同類型密集采樣特征計(jì)算得到的。



表2:ILSVRC-2012驗(yàn)證集和測(cè)試集的誤差對(duì)比。斜線部分是其它人取得的最好的結(jié)果。帶星號(hào)的是“預(yù)訓(xùn)練的”對(duì)ImageNet 2011秋季數(shù)據(jù)集進(jìn)行分類的模型。更多細(xì)節(jié)請(qǐng)看第六節(jié)。

最后,我們也報(bào)告了我們?cè)贗mageNet 2009秋季數(shù)據(jù)集上的誤差率,ImageNet 2009秋季數(shù)據(jù)集有10,184個(gè)類,890萬(wàn)圖像。在這個(gè)數(shù)據(jù)集上我們按照慣例用一半的圖像來(lái)訓(xùn)練,一半的圖像來(lái)測(cè)試。由于沒(méi)有建立測(cè)試集,我們的數(shù)據(jù)集分割有必要不同于以前作者的數(shù)據(jù)集分割,但這對(duì)結(jié)果沒(méi)有明顯的影響。我們?cè)谶@個(gè)數(shù)據(jù)集上的的top-1和top-5錯(cuò)誤率是67.4%和40.9%,使用的是上面描述的在最后的池化層之后有一個(gè)額外的第6卷積層網(wǎng)絡(luò)。這個(gè)數(shù)據(jù)集上公開(kāi)可獲得的最好結(jié)果是78.1%和60.9%[19]。

6.1 定性評(píng)估

圖3顯示了網(wǎng)絡(luò)的兩個(gè)數(shù)據(jù)連接層學(xué)習(xí)到的卷積核。網(wǎng)絡(luò)學(xué)習(xí)到了大量的頻率核、方向選擇核,也學(xué)到了各種顏色點(diǎn)。注意兩個(gè)GPU表現(xiàn)出的專業(yè)化,3.5小節(jié)中描述的受限連接的結(jié)果。GPU 1上的核主要是沒(méi)有顏色的,而GPU 2上的核主要是針對(duì)顏色的。這種專業(yè)化在每次運(yùn)行時(shí)都會(huì)發(fā)生,并且是與任何特別的隨機(jī)權(quán)重初始化(以GPU的重新編號(hào)為模)無(wú)關(guān)的。


圖3:第一卷積層在224×224×3的輸入圖像上學(xué)習(xí)到的大小為11×11×3的96個(gè)卷積核。上面的48個(gè)核是在GPU 1上學(xué)習(xí)到的而下面的48個(gè)卷積核是在GPU 2上學(xué)習(xí)到的。更多細(xì)節(jié)請(qǐng)看6.1小節(jié)。

在圖4的左邊部分,我們通過(guò)在8張測(cè)試圖像上計(jì)算它的top-5預(yù)測(cè)定性地評(píng)估了網(wǎng)絡(luò)學(xué)習(xí)到的東西。注意即使是不在圖像中心的目標(biāo)也能被網(wǎng)絡(luò)識(shí)別,例如左上角的小蟲(chóng)。大多數(shù)的top-5標(biāo)簽似乎是合理的。例如,對(duì)于美洲豹來(lái)說(shuō),只有其它類型的貓被認(rèn)為是看似合理的標(biāo)簽。在某些案例(格柵,櫻桃)中,網(wǎng)絡(luò)在意的圖片焦點(diǎn)真的很含糊。


圖4:(左)8張ILSVRC-2010測(cè)試圖像和我們的模型認(rèn)為最可能的5個(gè)標(biāo)簽。每張圖像的下面是它的正確標(biāo)簽,正確標(biāo)簽的概率用紅條表示(如果正確標(biāo)簽在top 5中)。(右)第一列是5張ILSVRC-2010測(cè)試圖像。剩下的列展示了6張訓(xùn)練圖像,這些圖像在最后的隱藏層的特征向量與測(cè)試圖像的特征向量有最小的歐氏距離。


探索網(wǎng)絡(luò)可視化知識(shí)的另一種方式是思考最后的4096維隱藏層在圖像上得到的特征激活。如果兩幅圖像生成的特征激活向量之間有較小的歐式距離,我們可以認(rèn)為神經(jīng)網(wǎng)絡(luò)的更高層特征認(rèn)為它們是相似的。圖4表明根據(jù)這個(gè)度量標(biāo)準(zhǔn),測(cè)試集的5張圖像和訓(xùn)練集的6張圖像中的每一張都是最相似的。注意在像素級(jí)別,檢索到的訓(xùn)練圖像與第一列的查詢圖像在L2上通常是不接近的。例如,檢索的狗和大象似乎有很多姿態(tài)。我們?cè)谘a(bǔ)充材料中對(duì)更多的測(cè)試圖像呈現(xiàn)了這種結(jié)果。

通過(guò)兩個(gè)4096維實(shí)值向量間的歐氏距離來(lái)計(jì)算相似性是效率低下的,但通過(guò)訓(xùn)練一個(gè)自動(dòng)編碼器將這些向量壓縮為短二值編碼可以使其變得高效。這應(yīng)該會(huì)產(chǎn)生一種比將自動(dòng)編碼器應(yīng)用到原始像素上[14]更好的圖像檢索方法,自動(dòng)編碼器應(yīng)用到原始像素上的方法沒(méi)有使用圖像標(biāo)簽,因此會(huì)趨向于檢索與要檢索的圖像具有相似邊緣模式的圖像,無(wú)論它們是否是語(yǔ)義上相似。

7 探討

我們的結(jié)果表明一個(gè)大型深度卷積神經(jīng)網(wǎng)絡(luò)在一個(gè)具有高度挑戰(zhàn)性的數(shù)據(jù)集上使用純有監(jiān)督學(xué)習(xí)可以取得破紀(jì)錄的結(jié)果。值得注意的是,如果移除一個(gè)卷積層,我們的網(wǎng)絡(luò)性能會(huì)降低。例如,移除任何中間層都會(huì)引起網(wǎng)絡(luò)損失大約2%的top-1性能。因此深度對(duì)于實(shí)現(xiàn)我們的結(jié)果非常重要。

為了簡(jiǎn)化我們的實(shí)驗(yàn),我們沒(méi)有使用任何無(wú)監(jiān)督的預(yù)訓(xùn)練,盡管我們希望它會(huì)有所幫助,特別是在如果我們能獲得足夠的計(jì)算能力來(lái)顯著增加網(wǎng)絡(luò)的大小而標(biāo)注的數(shù)據(jù)量沒(méi)有對(duì)應(yīng)增加的情況下。到目前為止,我們的結(jié)果已經(jīng)提高了,因?yàn)槲覀兊木W(wǎng)絡(luò)更大、訓(xùn)練時(shí)間更長(zhǎng),但為了匹配人類視覺(jué)系統(tǒng)的下顳線(視覺(jué)專業(yè)術(shù)語(yǔ))我們?nèi)匀挥性S多數(shù)量級(jí)要達(dá)到。最后我們想在視頻序列上使用非常大的深度卷積網(wǎng)絡(luò),視頻序列的時(shí)序結(jié)構(gòu)會(huì)提供非常有幫助的信息,這些信息在靜態(tài)圖像上是缺失的或遠(yuǎn)不那么明顯。


參考文獻(xiàn):

[1] R.M.BellandY.Koren.Lessonsfromthenetflixprizechallenge.ACMSIGKDDExplorationsNewsletter, 9(2):75–79, 2007.

[2] A. Berg, J. Deng, and L. Fei-Fei. Large scale visual recognition challenge 2010. www.imagenet.org/challenges. 2010.

[3] L. Breiman. Random forests. Machine learning, 45(1):5–32, 2001.

[4] D. Cires ?an, U. Meier, and J. Schmidhuber. Multi-column deep neural networks for image classification. Arxiv preprint arXiv:1202.2745, 2012.

[5] D.C. Cires ?an, U. Meier, J. Masci, L.M. Gambardella, and J. Schmidhuber. High-performance neural networks for visual object classification. Arxiv preprint arXiv:1102.0183, 2011.

[6] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei. ImageNet: A Large-Scale Hierarchical Image Database. In CVPR09, 2009.

[7] J. Deng, A. Berg, S. Satheesh, H. Su, A. Khosla, and L. Fei-Fei. ILSVRC-2012, 2012. URL?http://www.image-net.org/challenges/LSVRC/2012/.

[8] L. Fei-Fei, R. Fergus, and P. Perona. Learning generative visual models from few training examples: An incremental bayesian approach tested on 101 object categories. Computer Vision and Image Understanding, 106(1):59–70, 2007.

[9] G. Griffin, A. Holub, and P. Perona. Caltech-256 object category dataset. Technical Report 7694, California Institute of Technology, 2007. URL?http://authors.library.caltech.edu/7694.

[10] G.E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R.R. Salakhutdinov. Improving neural networks by preventing co-adaptation of feature detectors. arXiv preprint arXiv:1207.0580, 2012.

[11] K. Jarrett, K. Kavukcuoglu, M. A. Ranzato, and Y. LeCun. What is the best multi-stage architecture for object recognition? In International Conference on Computer Vision, pages 2146–2153. IEEE, 2009.

[12] A. Krizhevsky. Learning multiple layers of features from tiny images. Master’s thesis, Department of Computer Science, University of Toronto, 2009.

[13] A. Krizhevsky. Convolutional deep belief networks on cifar-10. Unpublished manuscript, 2010.

[14] A. Krizhevsky and G.E. Hinton. Using very deep autoencoders for content-based image retrieval. In ESANN, 2011.

[15] Y. Le Cun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard, L.D. Jackel, et al. Handwritten digit recognition with a back-propagation network. In Advances in neural information processing systems, 1990.

[16] Y. LeCun, F.J. Huang, and L. Bottou. Learning methods for generic object recognition with invariance to pose and lighting. In Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on, volume 2, pages II–97. IEEE, 2004.

[17] Y. LeCun, K. Kavukcuoglu, and C. Farabet. Convolutional networks and applications in vision. In Circuits and Systems (ISCAS), Proceedings of 2010 IEEE International Symposium on, pages 253–256. IEEE, 2010.

[18] H. Lee, R. Grosse, R. Ranganath, and A.Y. Ng. Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations. In Proceedings of the 26th Annual International Conference on Machine Learning, pages 609–616. ACM, 2009.

[19] T. Mensink, J. Verbeek, F. Perronnin, and G. Csurka. Metric Learning for Large Scale Image Classification: Generalizing to New Classes at Near-Zero Cost. In ECCV - European Conference on Computer Vision, Florence, Italy, October 2012.

[20] V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In Proc. 27th International Conference on Machine Learning, 2010.

[21] N. Pinto, D.D. Cox, and J.J. DiCarlo. Why is real-world visual object recognition hard? PLoS computational biology, 4(1):e27, 2008.

[22] N. Pinto, D. Doukhan, J.J. DiCarlo, and D.D. Cox. A high-throughput screening approach to discovering good forms of biologically inspired visual representation. PLoS computational biology, 5(11):e1000579,2009.

[23] B.C. Russell, A. Torralba, K.P. Murphy, and W.T. Freeman. Labelme: a database and web-based tool for image annotation. International journal of computer vision, 77(1):157–173, 2008.

[24] J.Sa?nchezandF.Perronnin.High-dimensionalsignaturecompressionforlarge-scaleimageclassification. In Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on, pages 1665–1672. IEEE,2011.

[25] P.Y. Simard, D. Steinkraus, and J.C. Platt. Best practices for convolutional neural networks applied to visual document analysis. In Proceedings of the Seventh International Conference on Document Analysis and Recognition, volume 2, pages 958–962, 2003.

[26] S.C.Turaga,J.F.Murray,V.Jain,F.Roth,M.Helmstaedter,K.Briggman,W.Denk,andH.S.Seung.Convolutional networks can learn to generate affinity graphs for image segmentation. Neural Computation, 22(2):511–538, 2010.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,628評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,642評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,444評(píng)論 6 405
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 54,948評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,185評(píng)論 0 287
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,794評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,418評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,671評(píng)論 1 281
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,414評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,750評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容