图像分类简单介绍-转
轉(zhuǎn)自:http://www.sohu.com/a/292203180_100099320? ? 方便以后自己查看。
文章發(fā)布于公號(hào)【數(shù)智物語(yǔ)】 (ID:decision_engine),關(guān)注公號(hào)不錯(cuò)過(guò)每一篇干貨。
轉(zhuǎn)自 | 有三AI(公眾號(hào)ID:yanyousan_ai) 作者 | 言有三圖像分類(lèi)是計(jì)算機(jī)視覺(jué)中最基礎(chǔ)的任務(wù),基本上深度學(xué)習(xí)模型的發(fā)展史就是圖像分類(lèi)任務(wù)提升的發(fā)展歷史,不過(guò)圖像分類(lèi)并不是那么簡(jiǎn)單,也沒(méi)有被完全解決。
01
什么是圖像分類(lèi)
圖像分類(lèi)是計(jì)算機(jī)視覺(jué)中最基礎(chǔ)的一個(gè)任務(wù),也是幾乎所有的基準(zhǔn)模型進(jìn)行比較的任務(wù)。從最開(kāi)始比較簡(jiǎn)單的10分類(lèi)的灰度圖像手寫(xiě)數(shù)字識(shí)別任務(wù)mnist,到后來(lái)更大一點(diǎn)的10分類(lèi)的 cifar10和100分類(lèi)的cifar100 任務(wù),到后來(lái)的imagenet 任務(wù),圖像分類(lèi)模型伴隨著數(shù)據(jù)集的增長(zhǎng),一步一步提升到了今天的水平。現(xiàn)在,在imagenet 這樣的超過(guò)1000萬(wàn)圖像,超過(guò)2萬(wàn)類(lèi)的數(shù)據(jù)集中,計(jì)算機(jī)的圖像分類(lèi)水準(zhǔn)已經(jīng)超過(guò)了人類(lèi)。
不過(guò),不要把圖像分類(lèi)任務(wù)想的過(guò)于簡(jiǎn)單。
圖像分類(lèi)顧名思義就是一個(gè)模式分類(lèi)問(wèn)題,它的目標(biāo)是將不同的圖像,劃分到不同的類(lèi)別,實(shí)現(xiàn)最小的分類(lèi)誤差。總體來(lái)說(shuō),對(duì)于單標(biāo)簽的圖像分類(lèi)問(wèn)題,它可以分為跨物種語(yǔ)義級(jí)別的圖像分類(lèi),子類(lèi)細(xì)粒度圖像分類(lèi),以及實(shí)例級(jí)圖像分類(lèi)三大類(lèi)別。
1.1
跨物種語(yǔ)義級(jí)別的圖像分類(lèi)
所謂跨物種語(yǔ)義級(jí)別的圖像分類(lèi),它是在不同物種的層次上識(shí)別不同類(lèi)別的對(duì)象,比較常見(jiàn)的包括如貓狗分類(lèi)等。這樣的圖像分類(lèi),各個(gè)類(lèi)別之間因?yàn)閷儆诓煌奈锓N或大類(lèi),往往具有較大的類(lèi)間方差,而類(lèi)內(nèi)則具有較小的類(lèi)內(nèi)誤差。
下面是cifar10 中的10個(gè)類(lèi)別的示意圖,這就是一個(gè)典型的例子。
cifar包含10個(gè)類(lèi)別,分別是airplane,automobile,bird,cat,deer,dog,frog,horse,ship,truck,其中airplane,automobile,ship,truck都是交通工具,bird,cat,deer,dog,frog,horse都是動(dòng)物,可以認(rèn)為是兩個(gè)大的品類(lèi)。而交通工具內(nèi)部,動(dòng)物內(nèi)部,都是完全不同的物種,這些都是語(yǔ)義上完全可以區(qū)分的對(duì)象,所以cifar10的分類(lèi)任務(wù),可以看作是一個(gè)跨物種語(yǔ)義級(jí)別的圖像分類(lèi)問(wèn)題。類(lèi)間方差大,類(lèi)內(nèi)方差小。
1.2
子類(lèi)細(xì)粒度圖像分類(lèi)
細(xì)粒度圖像分類(lèi),相對(duì)于跨物種的圖像分類(lèi),級(jí)別更低一些。它往往是同一個(gè)大類(lèi)中的子類(lèi)的分類(lèi),如不同鳥(niǎo)類(lèi)的分類(lèi),不同狗類(lèi)的分類(lèi),不同車(chē)型的分類(lèi)等。
下面以不同鳥(niǎo)類(lèi)的細(xì)粒度分類(lèi)任務(wù),加利福尼亞理工學(xué)院鳥(niǎo)類(lèi)數(shù)據(jù)庫(kù)-2011,即Caltech-UCSD Birds-200-2011為例。這是一個(gè)包含200類(lèi),11788張圖像的鳥(niǎo)類(lèi)數(shù)據(jù)集,同時(shí)每一張圖提供了15個(gè)局部區(qū)域位置,1個(gè)標(biāo)注框,還有語(yǔ)義級(jí)別的分割圖。在該數(shù)據(jù)集中,以woodpecker為例,總共包含6類(lèi),即American Three toed Woodpecker,Pileated Woodpecker,Red bellied Woodpecker,Red cockaded Woodpecker,Red headed Woodpecker,Downy Woodpecker,我們?nèi)∑渲袃深?lèi)各一張示意圖查看如圖。
從上圖可以看出,兩只鳥(niǎo)的紋理形狀都很像,要想?yún)^(qū)分只能靠頭部的顏色和紋理,所以要想訓(xùn)練出這樣的分類(lèi)器,就必須能夠讓分類(lèi)器識(shí)別到這些區(qū)域,這是比跨物種語(yǔ)義級(jí)別的圖像分類(lèi)更難的問(wèn)題。
1.3
實(shí)例級(jí)圖像分類(lèi)
如果我們要區(qū)分不同的個(gè)體,而不僅僅是物種類(lèi)或者子類(lèi),那就是一個(gè)識(shí)別問(wèn)題,或者說(shuō)是實(shí)例級(jí)別的圖像分類(lèi),最典型的任務(wù)就是人臉識(shí)別。
在人臉識(shí)別任務(wù)中,需要鑒別一個(gè)人的身份,從而完成考勤等任務(wù)。人臉識(shí)別一直是計(jì)算機(jī)視覺(jué)里面的重大課題,雖然經(jīng)歷了幾十年的發(fā)展,但仍然沒(méi)有被完全解決,它的難點(diǎn)在于遮擋,光照,大姿態(tài)等經(jīng)典難題,讀者可以參考更多資料去學(xué)習(xí)。
02
圖像分類(lèi)模型
圖像分類(lèi)任務(wù)從傳統(tǒng)的方法到基于深度學(xué)習(xí)的方法,經(jīng)歷了幾十年的發(fā)展。這里只關(guān)注于深度學(xué)習(xí)的進(jìn)展,下面重點(diǎn)講述幾個(gè)重要的節(jié)點(diǎn)。
2.1
MNIST與LeNet5
在計(jì)算機(jī)視覺(jué)分類(lèi)算法的發(fā)展中,MNIST 是首個(gè)具有通用學(xué)術(shù)意義的基準(zhǔn)。這是一個(gè)手寫(xiě)數(shù)字的分類(lèi)標(biāo)準(zhǔn),包含 60000 個(gè)訓(xùn)練數(shù)據(jù),10000 個(gè)測(cè)試數(shù)據(jù),圖像均為灰度圖,通用的版本大小為 28×28。
在上個(gè)世紀(jì)90年代末本世紀(jì)初,SVM and K-nearest neighbors方法被使用的比較多,以SVM為代表的方法,可以將MNIST分類(lèi)錯(cuò)誤率降低到了0.56%,彼時(shí)仍然超過(guò)以神經(jīng)網(wǎng)絡(luò)為代表的方法,即LeNet系列網(wǎng)絡(luò)。LeNet網(wǎng)絡(luò)誕生于1994年,后經(jīng)過(guò)多次的迭代才有了1998年的LeNet5,是為我們所廣泛知曉的版本。
這是一個(gè)經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò),它包含著一些重要的特性,這些特性仍然是現(xiàn)在CNN網(wǎng)絡(luò)的核心。
卷積層由卷積,池化,非線性激活函數(shù)構(gòu)成。從1998年至今,經(jīng)過(guò)20年的發(fā)展后,卷積神經(jīng)網(wǎng)絡(luò)依然遵循著這樣的設(shè)計(jì)思想。其中,卷積發(fā)展出了很多的變種,池化則逐漸被帶步長(zhǎng)的卷積完全替代,非線性激活函數(shù)更是演變出了很多的變種。
稀疏連接,也就是局部連接,這是以卷積神經(jīng)網(wǎng)絡(luò)為代表的技術(shù)能夠發(fā)展至今的最大前提。利用圖像的局部相似性,這一區(qū)別于傳統(tǒng)全連接的方式,推動(dòng)了整個(gè)神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展。
雖然LeNet5當(dāng)時(shí)的錯(cuò)誤率仍然停留在0.7%的水平,不如同時(shí)期最好的SVM方法,但隨著網(wǎng)絡(luò)結(jié)構(gòu)的發(fā)展,神經(jīng)網(wǎng)絡(luò)方法很快就超過(guò)了其他所有方法,錯(cuò)誤率也降低到了0.23%,甚至有的方法已經(jīng)達(dá)到了錯(cuò)誤率接近0的水平。
2.2
ImageNet與AlexNet
在本世紀(jì)的早期,雖然神經(jīng)網(wǎng)絡(luò)開(kāi)始有復(fù)蘇的跡象,但是受限于數(shù)據(jù)集的規(guī)模和硬件的發(fā)展,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和優(yōu)化仍然是非常困難的。MNIST和CIFAR數(shù)據(jù)集都只有60000張圖,這對(duì)于10分類(lèi)這樣的簡(jiǎn)單的任務(wù)來(lái)說(shuō),或許足夠,但是如果想在工業(yè)界落地更加復(fù)雜的圖像分類(lèi)任務(wù),仍然是遠(yuǎn)遠(yuǎn)不夠的。
后來(lái)在李飛飛等人數(shù)年時(shí)間的整理下,2009年,ImageNet數(shù)據(jù)集發(fā)布了,并且從2010年開(kāi)始每年舉辦一次ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽,即ILSVRC。ImageNet數(shù)據(jù)集總共有1400多萬(wàn)幅圖片,涵蓋2萬(wàn)多個(gè)類(lèi)別,在論文方法的比較中常用的是1000類(lèi)的基準(zhǔn)。
在ImageNet發(fā)布的早年里,仍然是以SVM和Boost為代表的分類(lèi)方法占據(jù)優(yōu)勢(shì),直到2012年AlexNet的出現(xiàn)。
AlexNet是第一個(gè)真正意義上的深度網(wǎng)絡(luò),與LeNet5的5層相比,它的層數(shù)增加了3層,網(wǎng)絡(luò)的參數(shù)量也大大增加,輸入也從28變成了224,同時(shí)GPU的面世,也使得深度學(xué)習(xí)從此進(jìn)行GPU為王的訓(xùn)練時(shí)代。
AlexNet有以下的特點(diǎn):
網(wǎng)絡(luò)比LeNet5更深,包括5個(gè)卷積層和3個(gè)全連接層。
使用Relu激活函數(shù),收斂很快,解決了Sigmoid在網(wǎng)絡(luò)較深時(shí)出現(xiàn)的梯度彌散問(wèn)題。
加入了Dropout層,防止過(guò)擬合。
使用了LRN歸一化層,對(duì)局部神經(jīng)元的活動(dòng)創(chuàng)建競(jìng)爭(zhēng)機(jī)制,抑制反饋較小的神經(jīng)元放大反應(yīng)大的神經(jīng)元,增強(qiáng)了模型的泛化能力。
使用裁剪翻轉(zhuǎn)等操作做數(shù)據(jù)增強(qiáng),增強(qiáng)了模型的泛化能力。預(yù)測(cè)時(shí)使用提取圖片四個(gè)角加中間五個(gè)位置并進(jìn)行左右翻轉(zhuǎn)一共十幅圖片的方法求取平均值,這也是后面刷比賽的基本使用技巧。
分塊訓(xùn)練,當(dāng)年的GPU計(jì)算能力沒(méi)有現(xiàn)在強(qiáng)大,AlexNet創(chuàng)新地將圖像分為上下兩塊分別訓(xùn)練,然后在全連接層合并在一起。
總體的數(shù)據(jù)參數(shù)大概為240M,遠(yuǎn)大于LeNet5。
2.3
分類(lèi)模型的逐年進(jìn)步
2013年ILSVRC分類(lèi)任務(wù)冠軍網(wǎng)絡(luò)是Clarifai,不過(guò)更為我們熟知的是zfnet。hinton的學(xué)生Zeiler和Fergus在研究中利用反卷積技術(shù)引入了神經(jīng)網(wǎng)絡(luò)的可視化,對(duì)網(wǎng)絡(luò)的中間特征層進(jìn)行了可視化,為研究人員檢驗(yàn)不同特征激活及其與輸入空間的關(guān)系成為了可能。在這個(gè)指導(dǎo)下對(duì)AlexNet網(wǎng)絡(luò)進(jìn)行了簡(jiǎn)單改進(jìn),包括使用了更小的卷積核和步長(zhǎng),將11x11的卷積核變成7x7的卷積核,將stride從4變成了2,性能超過(guò)了原始的AlexNet網(wǎng)絡(luò)。
2014年的冠亞軍網(wǎng)絡(luò)分別是GoogLeNet和VGGNet。
其中VGGNet包括16層和19層兩個(gè)版本,共包含參數(shù)約為550M。全部使用3×3的卷積核和2×2的最大池化核,簡(jiǎn)化了卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。VGGNet很好的展示了如何在先前網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)上通過(guò)簡(jiǎn)單地增加網(wǎng)絡(luò)層數(shù)和深度就可以提高網(wǎng)絡(luò)的性能。雖然簡(jiǎn)單,但是卻異常的有效,在今天,VGGNet仍然被很多的任務(wù)選為基準(zhǔn)模型。
GoogLeNet是來(lái)自于Google的Christian Szegedy等人提出的22層的網(wǎng)絡(luò),其top-5分類(lèi)錯(cuò)誤率只有6.7%。
GoogleNet的核心是Inception Module,它采用并行的方式。一個(gè)經(jīng)典的inception結(jié)構(gòu),包括有四個(gè)成分。1×1卷積,3×3卷積,5×5卷積,3×3最大池化,最后對(duì)四個(gè)成分運(yùn)算結(jié)果進(jìn)行通道上組合。這就是Inception Module的核心思想。通過(guò)多個(gè)卷積核提取圖像不同尺度的信息然后進(jìn)行融合,可以得到圖像更好的表征。自此,深度學(xué)習(xí)模型的分類(lèi)準(zhǔn)確率已經(jīng)達(dá)到了人類(lèi)的水平(5%~10%)。
與VGGNet相比,GoogleNet模型架構(gòu)在精心設(shè)計(jì)的Inception結(jié)構(gòu)下,模型更深又更小,計(jì)算效率更高。
2015年,ResNet獲得了分類(lèi)任務(wù)冠軍。它以3.57%的錯(cuò)誤率表現(xiàn)超過(guò)了人類(lèi)的識(shí)別水平,并以152層的網(wǎng)絡(luò)架構(gòu)創(chuàng)造了新的模型記錄。由于ResNet采用了跨層連接的方式,它成功的緩解了深層神經(jīng)網(wǎng)絡(luò)中的梯度消散問(wèn)題,為上千層的網(wǎng)絡(luò)訓(xùn)練提供了可能。
2016年依舊誕生了許多經(jīng)典的模型,包括贏得分類(lèi)比賽第二名的ResNeXt,101層的ResNeXt可以達(dá)到ResNet152的精確度,卻在復(fù)雜度上只有后者的一半,核心思想為分組卷積。即首先將輸入通道進(jìn)行分組,經(jīng)過(guò)若干并行分支的非線性變換,最后合并。
在ResNet基礎(chǔ)上,密集連接的DenseNet在前饋過(guò)程中將每一層與其他的層都連接起來(lái)。
對(duì)于每一層網(wǎng)絡(luò)來(lái)說(shuō),前面所有網(wǎng)絡(luò)的特征圖都被作為輸入,同時(shí)其特征圖也都被后面的網(wǎng)絡(luò)層作為輸入所利用。
DenseNet中的密集連接還可以緩解梯度消失的問(wèn)題,同時(shí)相比ResNet,可以更強(qiáng)化特征傳播和特征的復(fù)用,并減少了參數(shù)的數(shù)目。DenseNet相較于ResNet所需的內(nèi)存和計(jì)算資源更少,并達(dá)到更好的性能。
2017年,也是ILSVRC圖像分類(lèi)比賽的最后一年,SeNet獲得了冠軍。這個(gè)結(jié)構(gòu),僅僅使用了“特征重標(biāo)定”的策略來(lái)對(duì)特征進(jìn)行處理,通過(guò)學(xué)習(xí)獲取每個(gè)特征通道的重要程度,根據(jù)重要性去降低或者提升相應(yīng)的特征通道的權(quán)重。
至此,圖像分類(lèi)的比賽基本落幕,也接近算法的極限。但是,在實(shí)際的應(yīng)用中,卻面臨著比比賽中更加復(fù)雜和現(xiàn)實(shí)的問(wèn)題,需要大家不斷積累經(jīng)驗(yàn)。
03
總結(jié)
雖然基本的圖像分類(lèi)任務(wù),尤其是比賽趨近飽和,但是現(xiàn)實(shí)中的圖像任務(wù)仍然有很多的困難和挑戰(zhàn)。如類(lèi)別不均衡的分類(lèi)任務(wù),類(lèi)內(nèi)方差非常大的細(xì)粒度分類(lèi)任務(wù),以及包含無(wú)窮負(fù)樣本的分類(lèi)任務(wù)。
不是所有的分類(lèi)任務(wù),樣本的數(shù)量都是相同的,有很多任務(wù),類(lèi)別存在極大的不均衡問(wèn)題,比如邊緣檢測(cè)任務(wù)。圖像中的邊緣像素,與非邊緣像素,通常有3個(gè)數(shù)量級(jí)以上的差距,在這樣的情況下,要很好的完成圖像分類(lèi)任務(wù),必須在優(yōu)化目標(biāo)上進(jìn)行設(shè)計(jì)。
雖然前面我們說(shuō)過(guò)圖像分類(lèi)可以分為3大類(lèi),對(duì)于貓狗分類(lèi)這樣的語(yǔ)義級(jí)別的問(wèn)題,算法已經(jīng)達(dá)到或超越人類(lèi)專(zhuān)家水平,但是對(duì)于如何區(qū)分不同種類(lèi)的貓這樣的細(xì)粒度分類(lèi)問(wèn)題,算法僅僅在某些數(shù)據(jù)集上勉強(qiáng)能突破90%,遠(yuǎn)未超越人類(lèi)專(zhuān)家,還有非常大的發(fā)展空間。
另外前面所說(shuō)的分類(lèi),全部都是單標(biāo)簽分類(lèi)問(wèn)題,即每一個(gè)圖只對(duì)應(yīng)一個(gè)類(lèi)別,而很多的任務(wù),其實(shí)是多標(biāo)簽分類(lèi)問(wèn)題,一張圖可以對(duì)應(yīng)多個(gè)標(biāo)簽。多標(biāo)簽分類(lèi)問(wèn)題,通常有兩種解決方案,即轉(zhuǎn)換為多個(gè)單標(biāo)簽分類(lèi)問(wèn)題,或者直接聯(lián)合研究。前者,可以訓(xùn)練多個(gè)分類(lèi)器,來(lái)判斷該維度屬性的是否,損失函數(shù)常使用softmax loss。后者,則直接訓(xùn)練一個(gè)多標(biāo)簽的分類(lèi)器,所使用的標(biāo)簽為0,1,0,0…這樣的向量,使用hanmming距離等作為優(yōu)化目標(biāo)
總結(jié)
以上是生活随笔為你收集整理的图像分类简单介绍-转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 线性代数学习资料汇编
- 下一篇: 参考用-惯性导航系统简介(转载)