Convolutional Neurala Nätverk Modell Innovationer för Bilden Klassificering
Senast Uppdaterad den 5 juli 2019
En lätt Introduktion till Innovationer i LeNet, AlexNet, VGG, Starten, och ResNet Convolutional Neurala Nätverk.
Convolutional neurala nätverk består av två mycket enkla element, nämligen convolutional lager och pooling lager.
även om det är enkelt finns det nästan oändliga sätt att ordna dessa lager för ett visst datorseende problem.,
lyckligtvis finns det både vanliga mönster för att konfigurera dessa lager och arkitektoniska innovationer som du kan använda för att utveckla mycket djupa konvolutionella neurala nätverk. Att studera dessa arkitektoniska designbeslut som utvecklats för toppmoderna bildklassificeringsuppgifter kan ge både en motivering och intuition för hur du använder dessa mönster när du utformar dina egna djupa invecklade neurala nätverksmodeller.
i den här guiden kommer du att upptäcka de viktigaste arkitekturen milstolpar för användning av invecklade neurala nätverk för utmanande bildklassificeringsproblem.,
Efter att ha slutfört den här handledningen kommer du att veta:
- hur man mönstrar antalet filter och filterstorlekar när man implementerar konvolutionella neurala nätverk.
- hur man arrangerar invecklade och sammanslagna lager i ett enhetligt mönster för att utveckla välpresterande modeller.
- hur man använder startmodulen och restmodulen för att utveckla mycket djupare invecklade nätverk.
Starta ditt projekt med min nya bok Deep Learning for Computer Vision, inklusive steg-för-steg-handledning och Python-källkodsfilerna för alla exempel.
låt oss komma igång.,
- uppdatera Apr / 2019: korrigerad beskrivning av filterstorlekar för LeNet (tack Huang).
handledning Översikt
denna handledning är uppdelad i sex delar; de är:
- arkitektonisk Design för CNNs
- LeNet-5
- AlexNet
- vgg
- start och GoogLeNet
- Rest nätverk eller ResNet
arkitektonisk Design för CNNs
elementen i ett invecklat neuralt nätverk, såsom invecklade och sammanslagna lager, är relativt enkla att förstå.,
den utmanande delen av att använda konvolutionella neurala nätverk i praktiken är hur man utformar modellarkitekturer som bäst använder dessa enkla element.
ett användbart tillvägagångssätt för att lära sig hur man utformar effektiva konvolutionella neurala nätverksarkitekturer är att studera framgångsrika applikationer. Detta är särskilt enkel att göra på grund av den intensiva studier och tillämpning av CNNs genom 2012-2016 för ImageNet i Stor Skala Visuell Igenkänning Utmaning, eller ILSVRC., Denna utmaning resulterade i både den snabba utvecklingen i toppmoderna för mycket svåra datorvisionsuppgifter och utvecklingen av allmänna innovationer i arkitekturen av invecklade neurala nätverksmodeller.
Vi kommer att börja med LeNet-5 som ofta beskrivs som det första framgångsrika och viktiga tillämpningen av CNNs före ILSVRC, sedan titta på fyra olika vinnande arkitektoniska innovationer för convolutional neurala nätverk som utvecklats för ILSVRC, nämligen AlexNet, VGG, Starten, och ResNet.,
genom att förstå dessa milstolpemodeller och deras arkitektur eller arkitektoniska innovationer från en hög nivå, kommer du att utveckla både en uppskattning för användningen av dessa arkitektoniska element i moderna tillämpningar av CNN i datorseende, och kunna identifiera och välja arkitektur element som kan vara användbara i utformningen av dina egna modeller.
vill du ha resultat med djupt lärande för datorseende?
Ta min gratis 7-dagars e-postkraschkurs nu (med provkod).,
Klicka för att registrera dig och även få en gratis PDF ebook version av kursen.
ladda ner din gratis Mini-kurs
LeNet-5
kanske var den första allmänt kända och framgångsrika tillämpningen av konvolutionella neurala nätverk LeNet-5, beskriven av Yann LeCun, et al. i deras 1998 uppsats med titeln ”Gradient-Baserat Lärande Tillämpas på Dokument Erkännande” (hämta PDF).
systemet utvecklades för användning i ett handskriven teckenigenkänningsproblem och demonstrerades på mnist standarddataset, vilket uppnådde cirka 99.,2% klassificeringsnoggrannhet (eller en felfrekvens på 0,8%). Nätverket beskrevs sedan som den centrala tekniken i ett bredare system som kallas Graph Transformer Networks.
det är ett långt papper, och kanske den bästa delen att fokusera på är Avsnitt II. B. som beskriver lenet-5-arkitekturen. I avsnittet beskriver papperet nätverket som att ha sju lager med inmatnings gråskala bilder med formen 32×32, storleken på bilderna i mnist dataset.
modellen föreslår ett mönster av ett invecklat skikt följt av ett genomsnittligt sammanslagningsskikt, kallat ett undersamplingsskikt., Detta mönster upprepas två och en halv gånger innan utmatningsfunktionskartorna är platta och matas till ett antal fullt anslutna lager för tolkning och en slutlig förutsägelse. En bild av nätverksarkitekturen finns i papperet och återges nedan.
arkitekturen i LeNet-5 Convolutional Neural Network för handskriven teckenigenkänning (taget från 1998 års papper).,
mönstret av block av invecklade lager och sammanslagning lager grupperade tillsammans och upprepade förblir ett vanligt mönster vid utformning och användning av invecklade neurala nätverk idag, mer än tjugo år senare.
intressant använder arkitekturen ett litet antal filter som det första dolda skiktet, specifikt sex filter vardera med storleken 5×5 pixlar., Efter sammanslagning (kallas en subsampling skikt), en annan convolutional skikt har många fler filter, återigen med en mindre storlek men mindre än den tidigare convolutional skiktet, specifikt 16 filter Med En storlek på 5×5 pixlar, återigen följt av sammanslagning. Vid upprepning av dessa två block av konvolution och sammanslagningsskikt är trenden en ökning av antalet filter.
jämfört med moderna tillämpningar är antalet filter också litet, men trenden att öka antalet filter med nätets djup är också ett vanligt mönster i modern användning av tekniken.,
utplattningen av funktionskartor och tolkning och klassificering av de extraherade funktionerna genom fullt anslutna lager förblir också ett vanligt mönster idag. I modern terminologi kallas den sista delen av arkitekturen ofta klassificeraren, medan de invecklade och sammanslagningsskikten tidigare i modellen kallas funktionen extractor.
Vi kan sammanfatta de viktigaste aspekterna av arkitekturen som är relevanta i moderna modeller enligt följande:
- indatabilder med fast storlek.
- grupp convolutional och pooling lager i block.,
- upprepning av convolutional-pooling block i arkitekturen.
- öka antalet filter med nätverkets djup.
- distinkt funktion extraktion och klassificerings delar av arkitekturen.
AlexNet
det arbete som kanske kan krediteras med gnistor förnyat intresse för neurala nätverk och början av dominansen av djupt lärande i många datorseende applikationer var 2012 papper av Alex Krizhevsky, et al. titeln ”ImageNet Klassificering med Djupa Convolutional Neurala Nätverk.,”
papperet beskriver en modell som senare kallas ”AlexNet” utformad för att ta itu med ImageNet storskaliga visuella erkännande utmaning eller ILSVRC-2010 konkurrens för att klassificera fotografier av objekt i en av 1000 olika kategorier.
ILSVRC var en tävling som hölls från 2011 till 2016, utformad för att stimulera innovation inom datorseende. Innan utvecklingen av AlexNet ansågs uppgiften mycket svår och långt bortom förmågan hos moderna datorvisionsmetoder., AlexNet visade framgångsrikt förmågan hos den invecklade neurala nätverksmodellen i domänen och tände en eld som resulterade i många fler förbättringar och innovationer, många visade på samma ILSVRC-uppgift under efterföljande år. Mer allmänt visade papperet att det är möjligt att utveckla djupa och effektiva end-to-end-modeller för ett utmanande problem utan att använda oövervakade pretraining-tekniker som var populära vid den tiden.
viktigt i utformningen av AlexNet var en uppsättning metoder som var nya eller framgångsrika, men inte allmänt antagna vid den tiden., Nu har de blivit krav när man använder CNNs för bildklassificering.
AlexNet använde sig av den rektifierade linjära aktiveringsfunktionen, eller ReLU, som det icke-linjära efter varje invecklat skikt, istället för S-formade funktioner som den logistiska eller tanh som var vanliga fram till den punkten. En softmax-aktiveringsfunktion användes också i utgångsskiktet, nu en häftklammer för klassificering i flera klasser med neurala nätverk.,
den genomsnittliga sammanslagning som användes i LeNet-5 ersattes med en max sammanslagning metod, men i detta fall, överlappande sammanslagning konstaterades överträffa icke överlappande sammanslagning som vanligtvis används idag (t. ex. stride av sammanslagning är samma storlek som sammanslagning operation, t. ex. 2 av 2 pixlar). För att ta itu med överfittning användes den nyligen föreslagna dropout-metoden mellan de helt anslutna skikten i klassificeringsdelen av modellen för att förbättra generaliseringsfelet.
arkitekturen i AlexNet är djup och sträcker sig över några av de mönster som fastställts med LeNet-5., Bilden nedan, tagen från papperet, sammanfattar modellarkitekturen, i det här fallet delas upp i två rörledningar för att träna på tidens GPU-hårdvara.
arkitekturen i AlexNet Convolutional Neural Network för Objektfotoklassificering (taget från 2012 års papper).
modellen har fem invecklade lager i funktionsutvinningsdelen av modellen och tre helt anslutna lager i klassificeringsdelen av modellen.
Indatabilder fixerades till storleken 224×224 med tre färgkanaler., När det gäller antalet filter som används i varje convolutional skikt, mönstret för att öka antalet filter Med djup sett i LeNet var mestadels vidhäftat, i detta fall storlekarna: 96, 256, 384, 384 och 256. På samma sätt användes mönstret för att minska storleken på filtret (kärnan) med djup, från den mindre storleken på 11×11 och minska till 5×5 och sedan till 3×3 i de djupare skikten. Användning av små filter som 5×5 och 3×3 är nu normen.,
ett mönster av ett invecklat lager följt av sammanslagningsskikt användes i början och slutet av funktionsdetekteringsdelen av modellen. Intressant användes ett mönster av convolutional skikt följt omedelbart av ett andra convolutional skikt. Detta mönster har också blivit en modern standard.
modellen utbildades med dataförstoring, vilket artificiellt ökade storleken på träningsdatauppsättningen och gav modellen mer möjlighet att lära sig samma funktioner i olika riktningar.,
Vi kan sammanfatta de viktigaste aspekterna av arkitekturen som är relevanta i moderna modeller enligt följande:
- användning av Relu-aktiveringsfunktionen efter invecklade lager och softmax för utgångsskiktet.
- användning av Max Pooling istället för Genomsnittlig Pooling.
- användning av dropout regularisering mellan de fullt anslutna lagren.
- mönster av convolutional layer matas direkt till ett annat convolutional layer.
- användning av dataförstoring.,
vgg
utvecklingen av djupa konvolutionella neurala nätverk för datorseende uppgifter verkade vara lite av en mörk konst efter AlexNet.
Ett viktigt arbete som syftade till att standardisera arkitektur och design för djupt convolutional nätverk och utvecklats mycket djupare och bättre fungerande modeller i processen var för 2014 uppsats med titeln ”Mycket Djup Convolutional Nätverk för storskalig Bild Erkännande” av Karen Simonyan och Andrew Zisserman.
deras arkitektur kallas i allmänhet VGG efter namnet på deras lab, den visuella Geometry Group vid Oxford., Deras modell utvecklades och demonstrerades på sammailsvrc-tävlingen, i detta fall ILSVRC-2014-versionen av utmaningen.
den första viktiga skillnaden som har blivit en de facto-standard är användningen av ett stort antal små filter. Specifikt, filter med storleken 3×3 och 1×1 med steg av en, skiljer sig från de stora filter i LeNet-5 och de mindre men fortfarande relativt stora filter och stora steg av fyra i AlexNet.,
Max pooling lager används efter de flesta, men inte alla, invecklade lager, lära av exemplet i AlexNet, men alla pooling utförs med storleken 2×2 och samma steg, som också har blivit en de facto standard. Specifikt använder vgg-nätverken exempel på två, tre och till och med fyra konvolutionala lager staplade ihop innan ett max poolinglager används. Logiken var att staplade invecklade lager med mindre filter approximerar effekten av ett invecklat lager med ett större filter, t. ex., tre staplade invecklade lager med 3×3 Filter approximerar ett invecklat lager med ett 7×7 filter.
en annan viktig skillnad är det mycket stora antalet filter som används. Antalet filter ökar med modellens djup, men börjar vid ett relativt stort antal 64 och ökar genom 128, 256 och 512 filter i slutet av modellens extraktionsdel.
ett antal varianter av arkitekturen utvecklades och utvärderades, även om två hänvisas till oftast med tanke på deras prestanda och djup., De är namngivna för antalet lager: de är vgg-16 och vgg-19 för 16 respektive 19 lärda lager.
nedan är en tabell som tagits från papperet; notera de två längst till höger kolumner som anger konfigurationen (antal filter) som används i vgg-16 och vgg-19 versioner av arkitekturen.
arkitekturen i vgg Convolutional Neural Network för Objektfotoklassificering (taget från 2014-papperet).,
designbesluten i vgg-modellerna har blivit utgångspunkten för enkel och direkt användning av konvolutionella neurala nätverk i allmänhet.
slutligen var VGG-arbetet bland de första som släppte de värdefulla modellvikterna under en tillåtande licens som ledde till en trend bland forskare inom djupinlärning av datorseende. Detta har i sin tur lett till den tunga användningen av förutbildade modeller som vgg i överföringsinlärning som utgångspunkt för nya datorvisionsuppgifter.,
Vi kan sammanfatta de viktigaste aspekterna av arkitekturen som är relevanta i moderna modeller enligt följande:
- användning av mycket små invecklade filter, t.ex. 3×3 och 1×1 med ett steg av en.
- användning av max pooling med en storlek på 2×2 och en steg av samma dimensioner.
- vikten av att stapla sammanvecklade lager innan du använder ett sammanslagningslager för att definiera ett block.
- dramatisk upprepning av convolutional-pooling block mönster.
- utveckling av mycket djupa (16 och 19 lager) modeller.,
Tillkomst och GoogLeNet
Viktigt innovationer i användningen av convolutional lager föreslogs i 2015 papper av Christian Szegedy, et al. titeln ” går djupare med omvälvningar.”
i tidningen föreslår författarna en arkitektur kallad inception (eller inception v1 för att skilja den från tillägg) och en specifik modell som heter GoogLeNet som uppnådde toppresultat i 2014-versionen av ILSVRC-utmaningen.
den viktigaste innovationen på startmodellerna kallas startmodulen., Detta är ett block av parallella invecklade lager med olika storlek filter (t. ex. 1×1, 3×3, 5×5) och ett 3×3 max pooling-lager, vars resultat sedan sammanfogas. Nedan är ett exempel på startmodulen som tas från papperet.
exempel på den naiva Startmodulen (tagen från 2015 års papper).
ett problem med en naiv implementering av startmodellen är att antalet filter (djup eller kanaler) börjar bygga upp snabbt, särskilt när startmoduler staplas.,
utförande av varv med större filterstorlekar (t.ex. 3 och 5) kan vara beräkningsmässigt dyrt på ett stort antal filter. För att ta itu med detta används 1×1 konvolutionala lager för att minska antalet filter i inception-modellen. Specifikt före 3×3 och 5×5 convolutional skikten och efter poolningsskiktet. Bilden nedan tagen från papperet visar denna ändring till startmodulen.
exempel på Startmodulen med Dimensionsreducering (taget från 2015-papperet).,
ett andra viktigt designbeslut i startmodellen var att ansluta utgången på olika punkter i modellen. Detta uppnåddes genom att skapa små off-shoot-utdatanätverk från huvudnätet som utbildades för att göra en förutsägelse. Avsikten var att ge en ytterligare felsignal från klassificeringsuppgiften vid olika punkter i den djupa modellen för att ta itu med problemet med försvinnande gradienter. Dessa små utdatanätverk togs sedan bort efter träning.,
nedan visas en roterad version (vänster-till-höger för input-to-output) av arkitekturen i GoogLeNet-modellen tagen från papperet med hjälp av Startmodulerna från ingången till vänster till utdataklassificeringen till höger och de två ytterligare utdatanätverk som endast användes under träning.
arkitekturen för GoogLeNet-modellen som används under träning för Objektfotoklassificering (tagen från 2015 års papper).,
intressant nog användes överlappande maxpooling och en stor Genomsnittlig poolingoperation användes i slutet av funktionsutvinningsdelen av modellen före klassificeringsdelen av modellen.
Vi kan sammanfatta de viktigaste aspekterna av arkitekturen som är relevanta i moderna modeller enligt följande:
- utveckling och upprepning av Startmodulen.
- tung användning av 1×1-konvolutionen för att minska antalet kanaler.
- användning av felåterkoppling vid flera punkter i nätverket.
- utveckling av mycket djupa (22-lager) modeller.,
- användning av global Genomsnittlig sammanslagning för produktionen av modellen.
återstående nätverk eller ResNet
en slutlig viktig innovation i invecklade neurala nät som vi kommer att granska föreslogs av Kaiming He, et al. i deras 2016 uppsats med titeln ”Djupt Resterande Lärande för bildigenkänning.”
i tidningen föreslog författarna en mycket djup modell som heter ett kvarvarande nätverk, eller ResNet för kort, ett exempel på vilket uppnådde framgång på 2015-versionen av ILSVRC-utmaningen.
deras modell hade en imponerande 152 lager., Nyckeln till modelldesignen är tanken på resterande block som använder sig av genvägsanslutningar. Dessa är helt enkelt anslutningar i nätverksarkitekturen där ingången hålls som (ej viktad) och skickas vidare till ett djupare lager, t.ex. hoppar över nästa lager.
ett kvarstående block är ett mönster av två invecklade lager med Relu-Aktivering där utgången av blocket kombineras med ingången till blocket, t.ex. genvägsanslutningen. En projicerad version av den ingång som används via 1×1 om formen på ingången till blocket skiljer sig från utgången av blocket, så kallade 1×1 varv., Dessa kallas projicerade genvägsanslutningar, jämfört med de ovägda eller identitetsgenvägsanslutningarna.
författarna börjar med vad de kallar ett vanligt nätverk, vilket är ett vgg-inspirerat djupt invecklat neuralt nätverk med små filter (3×3), grupperade invecklade lager följt med ingen sammanslagning däremellan och en genomsnittlig sammanslagning i slutet av funktionsdetektordelen av modellen före det fullt anslutna utgångsskiktet med en softmax-aktiveringsfunktion.,
det vanliga nätverket ändras för att bli ett kvarvarande nätverk genom att lägga till genvägsanslutningar för att definiera restblock. Typiskt är formen på ingången för genvägsanslutningen samma storlek som utmatningen från restblocket.
bilden nedan togs från papperet och från vänster till höger jämför arkitekturen i en vgg-modell, en vanlig konvolutionsmodell och en version av den vanliga konvolutionen med restmoduler, kallad ett kvarvarande nätverk.,
arkitekturen i det kvarvarande nätverket för Objektfotoklassificering (taget från 2016 års papper).
Vi kan sammanfatta de viktigaste aspekterna av arkitekturen som är relevanta i moderna modeller enligt följande:
- användning av genvägsanslutningar.
- utveckling och upprepning av resterande block.
- utveckling av mycket djupa (152-lager) modeller.
Ytterligare läsning
det här avsnittet ger mer resurser om ämnet om du vill gå djupare.,
Papers
- Gradient-baserat lärande tillämpas på dokument erkännande, (PDF) 1998.
- ImageNet Klassificering med Djupa Convolutional Neurala Nätverk, 2012.
- mycket djupa Konvolutionella nätverk för storskalig bildigenkänning, 2014.
- gå djupare med varv, 2015.
- Deep Residual Learning for Image Recognition, 2016
API
- Keras Applications API
artiklar
- de 9 Deep Learning Papers du behöver veta om
- en enkel Guide till versionerna av Inception Network, 2018.,
- CNN Arkitekturer: LeNet, AlexNet, VGG, GoogLeNet ResNet och mer., 2017.
sammanfattning
i den här guiden upptäckte du de viktigaste arkitekturen milstolpar för användning av invecklade neurala nätverk för utmanande bildklassificering.
specifikt lärde du dig:
- hur man mönstrar antalet filter och filterstorlekar när man implementerar konvolutionella neurala nätverk.
- hur man arrangerar invecklade och sammanslagna lager i ett enhetligt mönster för att utveckla välpresterande modeller.,
- hur man använder startmodulen och restmodulen för att utveckla mycket djupare invecklade nätverk.
har du några frågor?
Ställ dina frågor i kommentarerna nedan och jag kommer att göra mitt bästa för att svara.
utveckla djupa inlärningsmodeller för Vision idag!
utveckla dina egna Visionsmodeller på några minuter
…,med bara några rader av python-kod
Upptäck hur i min nya Ebook:
djupt lärande för datorseende
det ger självstudier tutorials om ämnen som:
klassificering, objektdetektering (yolo och rcnn), ansiktsigenkänning (vggface och fasett), databeredning och mycket mer…
äntligen få djupt lärande till dina Visionsprojekt
hoppa över akademikerna. Bara Resultat.
se vad som finns inuti