- En snabb genomgång av de bästa artiklarna om bildklassificering under ett decennium för att få igång din inlärning av bildklassificering. datorseende
- 1998: LeNet
- 2012: AlexNet
- 2014: VGG
- 2014: GoogLeNet
- 2015: Batch Normalization
- 2015: ResNet
- 2016: Xception
- 2017: Xception uppnådde 79 % topp-1 noggrannhet och 94,5 % topp-5 noggrannhet på ImageNet, men det är bara 0,8 % respektive 0,4 % förbättring jämfört med föregående SOTA InceptionV3. Den marginella vinsten av ett nytt bildklassificeringsnätverk blir allt mindre, så forskarna börjar flytta sitt fokus till andra områden. MobileNet ledde en betydande satsning på bildklassificering i en resursbegränsad miljö. MobileNet-modulen från ”MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application”
- 2017: NASNet
- 2019: EfficientNet
- 2014: SPPNet
- 2016: DenseNet
- 2017: SENet
- 2017: ShuffleNet
- 2018: Bag of Tricks
- Slutsats
En snabb genomgång av de bästa artiklarna om bildklassificering under ett decennium för att få igång din inlärning av bildklassificering. datorseende
Datorseende är ett ämne för att omvandla bilder och videor till maskin-förståeliga signaler. Med dessa signaler kan programmerare vidare styra maskinens beteende baserat på denna förståelse på hög nivå. Bland många datorseendeuppgifter är bildklassificering en av de mest grundläggande uppgifterna. Den kan inte bara användas i många verkliga produkter som Google Photos taggning och AI-innehållsmoderering, utan öppnar också en dörr för många mer avancerade visionsuppgifter, t.ex. objektsdetektering och videoförståelse. På grund av de snabba förändringarna på detta område sedan Deep Learning fick sitt genombrott tycker nybörjare ofta att det är för överväldigande att lära sig det. Till skillnad från typiska programvaruteknikämnen finns det inte många bra böcker om bildklassificering med hjälp av DCNN, och det bästa sättet att förstå detta område är att läsa akademiska artiklar. Men vilka artiklar ska man läsa? Var ska jag börja? I den här artikeln kommer jag att presentera 10 bästa artiklar för nybörjare att läsa. Med dessa artiklar kan vi se hur detta område utvecklas och hur forskarna har tagit fram nya idéer baserat på tidigare forskningsresultat. Trots detta är det fortfarande till hjälp för dig att reda ut den stora bilden även om du redan har arbetat inom detta område ett tag. Låt oss börja.
1998: LeNet
Gradientbaserad inlärning tillämpad på dokumentigenkänning
Introducerat 1998, LeNet lägger grunden för framtida forskning om bildklassificering med hjälp av det neurala konvolutionsnätverket. Många klassiska CNN-tekniker, t.ex. pooling lager, fullt anslutna lager, utfyllnad och aktiveringslager, används för att extrahera egenskaper och göra en klassificering. Med en förlustfunktion för medelkvadratfel och 20 träningstillfällen kan detta nätverk uppnå en noggrannhet på 99,05 % i MNIST-testuppsättningen. Även efter 20 år följer många av de senaste klassificeringsnätverken fortfarande detta mönster i allmänhet.
2012: AlexNet
ImageNet Classification with Deep Convolutional Neural Networks
Och även om LeNet uppnådde ett bra resultat och visade CNN:s potential, men utvecklingen på detta område stagnerade under ett decennium på grund av begränsad datorkraft och datamängd. Det såg ut som om CNN bara kan lösa vissa enkla uppgifter som t.ex. sifferigenkänning, men för mer komplexa funktioner som ansikten och objekt var en HarrCascade- eller SIFT-funktionsextraktor med en SVM-klassificerare ett mer föredraget tillvägagångssätt.
Hursomhelst, i 2012 ImageNet Large Scale Visual Recognition Challenge, föreslog Alex Krizhevsky en CNN-baserad lösning för den här utmaningen och ökade drastiskt ImageNet-testuppsättningens topp-5-noggrannhet från 73,8 % till 84,7 %. Deras tillvägagångssätt ärver CNN-idén med flera lager från LeNet, men ökar CNN:s storlek avsevärt. Som du kan se i diagrammet ovan är ingången nu 224×224 jämfört med LeNets 32×32, och många konvolutionskärnor har 192 kanaler jämfört med LeNets 6. Även om konstruktionen inte förändras särskilt mycket, med hundratals fler gånger av parametrar, förbättrades nätverkets förmåga att fånga och representera komplexa egenskaper också hundratals gånger. För att träna en så stor modell använde Alex två GTX 580 GPU:er med 3 GB RAM för var och en, vilket var banbrytande för en trend med GPU-träning. Användningen av ReLU:s icke-linjäritet bidrog också till att minska beräkningskostnaden.
Förutom att ge nätverket många fler parametrar utforskade man också problemet med överanpassning som ett större nätverk medför genom att använda ett Dropout-skikt. Dess metod Local Response Normalization fick inte alltför stor popularitet efteråt men inspirerade andra viktiga normaliseringstekniker som BatchNorm för att bekämpa problemet med gradientmättnad. Sammanfattningsvis definierade AlexNet de facto ramverket för klassificeringsnätverk för de kommande tio åren: en kombination av konvolution, ReLu icke-linjär aktivering, MaxPooling och täta lager.
2014: VGG
Very Deep Convolutional Networks for Large-Scale Image Recognition
Med så stora framgångar med att använda CNN för visuellt erkännande, …exploderade hela forskarsamhället och alla började undersöka varför detta neurala nätverk fungerar så bra. I ”Visualizing and Understanding Convolutional Networks” från 2013 diskuterade Matthew Zeiler till exempel hur CNN plockar upp funktioner och visualiserade de mellanliggande representationerna. Och plötsligt började alla inse att CNN är framtiden för datorseende sedan 2014. Bland alla dessa omedelbara efterföljare är VGG-nätverket från Visual Geometry Group det mest iögonfallande. Det fick ett anmärkningsvärt resultat på 93,2 % topp-5 noggrannhet och 76,3 % topp-1 noggrannhet på ImageNet-testuppsättningen.
Följande AlexNets design har VGG-nätverket två stora uppdateringar: 1) VGG använde inte bara ett bredare nätverk som AlexNet utan också djupare. VGG-19 har 19 konvolutionslager, jämfört med 5 från AlexNet. 2) VGG visade också att några små 3×3 konvolutionsfilter kan ersätta ett enda 7×7- eller till och med 11×11-filter från AlexNet, vilket ger bättre prestanda samtidigt som beräkningskostnaden minskar. På grund av denna eleganta utformning blev VGG också det bakre nätverket för många banbrytande nätverk inom andra datorseende uppgifter, t.ex. FCN för semantisk segmentering och Faster R-CNN för objektsdetektering.
Med ett djupare nätverk blir gradientförsvinnande från back-propagation i flera lager ett större problem. För att hantera detta diskuterade VGG också vikten av förträning och viktinitialisering. Detta problem begränsar forskarna till att fortsätta att lägga till fler lager, annars kommer nätverket att bli riktigt svårt att konvergera. Men vi kommer att se en bättre lösning för detta efter två år.
2014: GoogLeNet
Going Deeper with Convolutions
Den här ändringen verkar naiv när det gäller innovation, men den har ett stort tekniskt värde eftersom det är första gången som forskare avslutar ett kanoniskt tillvägagångssätt för att justera nätverket för olika resursbegränsningar. Dessutom sammanfattade den på sätt och vis den ultimata lösningen för att förbättra neurala nätverk: bredare och högupplöst indata leder till bättre noggrannhet, tunnare och lågupplöst indata leder till sämre noggrannhet.
Senare under 2018 och 2019 släppte MobiletNet-teamet också ”MobileNetV2: Inverted Residuals and Linear Bottlenecks” och ”Searching for MobileNetV3”. I MobileNetV2 används en flaskhalsstruktur med inverterade rester. I MobileNetV3 började man söka efter den optimala arkitekturkombinationen med hjälp av tekniken Neural Architecture Search, som vi kommer att ta upp härnäst.
2017: NASNet
Learning Transferable Architectures for Scalable Image Recognition
Som bildklassificering för en resursbegränsad miljö är neuronal arkitektursökning ett annat område som uppstod runt 2017. Med ResNet, Inception och Xception verkar det som om vi nått en optimal nätverkstopologi som människor kan förstå och utforma, men tänk om det finns en bättre och mycket mer komplex kombination som vida överstiger den mänskliga fantasin? I en artikel från 2016 kallad ”Neural Architecture Search with Reinforcement Learning” föreslogs en idé om att söka den optimala kombinationen inom ett fördefinierat sökutrymme med hjälp av förstärkningsinlärning. Som vi vet är förstärkningsinlärning en metod för att hitta den bästa lösningen med ett tydligt mål och en tydlig belöning för sökagenten. Eftersom den här artikeln är begränsad av datorkraften diskuterades dock endast tillämpningen i ett litet CIFAR-dataset.
Med målet att hitta en optimal struktur för en stor datamängd som ImageNet skapade NASNet ett sökutrymme som är skräddarsytt för ImageNet. Man hoppas kunna utforma ett särskilt sökutrymme så att det sökresultat som söks på CIFAR också kan fungera bra på ImageNet. För det första utgår NASNet från att vanliga handgjorda moduler i bra nätverk som ResNet och Xception fortfarande är användbara vid sökning. Så i stället för att söka efter slumpmässiga anslutningar och operationer söker NASNet efter kombinationen av dessa moduler som redan har visat sig vara användbara i ImageNet. För det andra utförs den faktiska sökningen fortfarande på CIFAR-dataset med 32×32-upplösning, så NASNet söker endast efter moduler som inte påverkas av ingångsstorleken. För att få den andra punkten att fungera har NASNet fördefinierat två typer av modulmallar: Reduktion och Normal. En reduktionscell skulle kunna ha en reducerad funktionskarta jämfört med indata, och för en normal cell skulle den vara densamma.
Och även om NASNet har bättre mätvärden än manuellt utformade nätverk, lider det också av några nackdelar. Kostnaden för att söka efter en optimal struktur är mycket hög, vilket endast stora företag som Google och Facebook har råd med. Dessutom är den slutliga strukturen inte alltför meningsfull för människor, och därmed svårare att underhålla och förbättra i en produktionsmiljö. Senare under 2018 kommer ”MnasNet: Platform-Aware Neural Architecture Search for Mobile” utökar denna NASNet-idé ytterligare genom att begränsa söksteget med en fördefinierad kedjeblockstruktur. Genom att definiera en viktfaktor gav mNASNet också ett mer systematiskt sätt att söka efter en modell med specifika resursbegränsningar, i stället för att bara utvärdera baserat på FLOPs.
2019: EfficientNet
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
Under 2019 ser det ut som om det inte längre finns några spännande idéer för övervakad bildklassificering med CNN. En drastisk förändring av nätverksstrukturen ger oftast bara en liten förbättring av noggrannheten. Ännu värre är att när samma nätverk tillämpas på olika dataset och uppgifter verkar tidigare hävdade knep inte fungera, vilket ledde till kritik om huruvida dessa förbättringar bara är överanpassning på ImageNet-dataset. Å andra sidan finns det ett knep som aldrig misslyckas med våra förväntningar: att använda en högre inmatningsupplösning, lägga till fler kanaler för konvolutionslagren och lägga till fler lager. Även om det är en mycket brutal kraft verkar det som om det finns ett principiellt sätt att skala nätverket på begäran. MobileNetV1 föreslog på sätt och vis detta 2017, men fokus flyttades senare till en bättre nätverksdesign.
Efter NASNet och mNASNet insåg forskarna att även med hjälp av en dator ger en ändring av arkitekturen inte så stora fördelar. Så de börjar falla tillbaka på skalning av nätverket. EfficientNet bygger bara på detta antagande. Å ena sidan används den optimala byggstenen från mNASNet för att säkerställa en bra grund att börja med. Å andra sidan definieras tre parametrar alfa, beta och rho för att styra nätets djup, bredd och upplösning på motsvarande sätt. På så sätt kan ingenjörerna, även om de inte har en stor GPU-pool för att söka efter en optimal struktur, fortfarande förlita sig på dessa principiella parametrar för att ställa in nätverket utifrån sina olika krav. I slutändan gav EfficientNet åtta olika varianter med olika bredd-, djup- och upplösningsförhållanden och fick bra prestanda för både små och stora modeller. Med andra ord, om du vill ha hög noggrannhet ska du satsa på EfficientNet-B7 med 600×600 och 66M parametrar. Om du vill ha låg latenstid och en mindre modell ska du välja EfficientNet-B0 med 224×224 och 5,3 3M parametrar. Problemet är löst.
Om du läser färdigt ovanstående 10 artiklar bör du ha ett ganska bra grepp om historien om bildklassificering med CNN. Om du vill fortsätta att lära dig detta område har jag också listat några andra intressanta artiklar att läsa. Även om de inte ingår i topp-10-listan är alla dessa artiklar kända inom sitt eget område och har inspirerat många andra forskare i världen.
2014: SPPNet
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
SPPNet lånar idén om funktionspyramider från traditionell utvinning av funktioner för datorseende. Denna pyramid bildar en påse med ord av funktioner med olika skalor, vilket gör att den kan anpassa sig till olika inmatningsstorlekar och göra sig av med det fullt sammankopplade lagret med fast storlek. Den här idén har också inspirerat ASPP-modulen i DeepLab och FPN för objektdetektering.
2016: DenseNet
Densely Connected Convolutional Networks
DenseNet från Cornell utvidgar idén från ResNet ytterligare. Det ger inte bara hoppförbindelser mellan lagren utan har också hoppförbindelser från alla tidigare lager.
2017: SENet
Squeeze-and-Excitation Networks
Nätverket Xception visade att korrelation mellan kanaler inte har så mycket att göra med rumslig korrelation. Som mästare i den senaste ImageNet-tävlingen utformade SENet dock ett Squeeze-and-Excitation-nätverk och berättade en annan historia. SE-blocket pressar först alla kanaler till färre kanaler med hjälp av global pooling, tillämpar en fullt ansluten transformation och ”exciterar” dem sedan tillbaka till det ursprungliga antalet kanaler med hjälp av ett annat fullt anslutet lager. Så i huvudsak hjälpte FC-skiktet nätverket att lära sig uppmärksamhet på den ingående funktionskartan.
2017: ShuffleNet
ShuffleNet: Ett extremt effektivt konvolutionellt neuralt nätverk för mobila enheter
ShuffleNet bygger på MobileNetV2:s inverterade flaskhalsmodul och anser att punktvis konvolution i djupvis separerbar konvolution offrar noggrannhet i utbyte mot mindre beräkning. För att kompensera för detta har ShuffleNet lagt till ytterligare en kanalomvandlingsoperation för att se till att punktvis konvolution inte alltid tillämpas på samma ”punkt”. Och i ShuffleNetV2 utökas denna mekanism för kanalomblandning ytterligare till en ResNet-identitetsmappningsgren också, så att en del av identitetsfunktionen också kommer att användas för omblandning.
2018: Bag of Tricks
Bag of Tricks for Image Classification with Convolutional Neural Networks
Bag of Tricks fokuserar på vanliga trick som används inom bildklassificering. Den fungerar som en bra referens för ingenjörer när de behöver förbättra benchmarkprestanda. Intressant nog kan dessa knep, t.ex. mixup augmentation och cosine learning rate, ibland ge mycket bättre förbättringar än en ny nätverksarkitektur.
Slutsats
Med lanseringen av EfficientNet ser det ut som om ImageNet-klassificeringsbenchmark kommer till ett slut. Med den befintliga metoden för djupinlärning kommer det aldrig att komma en dag då vi kan nå 99,999 % noggrannhet på ImageNet om inte ett annat paradigmskifte sker. Därför tittar forskarna aktivt på nya områden, t.ex. självövervakad eller halvövervakad inlärning för storskalig visuell igenkänning. Under tiden, med de befintliga metoderna, blev det mer en fråga för ingenjörer och entreprenörer att hitta en verklig tillämpning av denna icke-perfekta teknik. I framtiden kommer jag också att skriva en undersökning för att analysera dessa verkliga datorseendetillämpningar som drivs av bildklassificering, så håll ögonen öppna! Om du tycker att det finns andra viktiga artiklar att läsa för bildklassificering, lämna en kommentar nedan och låt oss veta.
Originally published at http://yanjia.li on July 31, 2020
- Y. Lecun, L. Bottou, Y. Bengio, P. Haffner, Gradient-based Learning Applied to Document Recognition
- Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, ImageNet Classification with Deep Convolutional Neural Networks
- Karen Simonyan, Andrew Zisserman, Very Deep Convolutional Networks for Large-Scale Image Recognition
- Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, Going Deeper with Convolutions
- Sergey Ioffe, Christian Szegedy, Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Deep Residual Learning for Image Recognition
- François Chollet, Xception: Deep Learning with Depthwise Separable Convolutions
- Andrew G. Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetto, Hartwig Adam, MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application
- Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le, Learning Transferable Architectures for Scalable Image Recognition
- Mingxing Tan, Quoc V. Le, EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
- Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
- Gao Huang, Zhuang Liu, Laurens van der Maaten, Kilian Q. Weinberger, Densely Connected Convolutional Networks
- Jie Hu, Li Shen, Samuel Albanie, Gang Sun, Enhua Wu, Squeeze-and-Excitation Networks
- Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun, ShuffleNet: Ett extremt effektivt konvolutionellt neuralt nätverk för mobila enheter
- Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li, Bag of Tricks for Image Classification with Convolutional Neural Networks