Articles

Convolutional Neurale Netværk Model Innovationer for Billede-Klassifikation

Tweet Share Share

Sidst Opdateret den 5 juli 2019

En Blid Introduktion til den Nyskabelser i LeNet, AlexNet, VGG, Inception, og ResNet Convolutional Neurale Netværk.

Convolutional neurale netværk består af to meget enkle elementer, nemlig convolutional lag og pooling lag.

selvom det er enkelt, er der næsten uendelige måder at arrangere disse lag på for et givet computersynsproblem.,heldigvis er der både almindelige mønstre til konfiguration af disse lag og arkitektoniske innovationer, som du kan bruge til at udvikle meget dybe konvolutionelle neurale netværk. At studere disse arkitektoniske designbeslutninger udviklet til avancerede billedklassificeringsopgaver kan give både en begrundelse og intuition til, hvordan man bruger disse designs, når man designer dine egne dybe konvolutionelle neurale netværksmodeller.

i denne tutorial vil du opdage de vigtigste arkitekturmilepæle til brug af konvolutionelle neurale netværk til udfordrende billedklassificeringsproblemer.,

når du har gennemført denne tutorial, vil du vide:

  • sådan mønstre antallet af filtre og filterstørrelser, når du implementerer konvolutionelle neurale netværk.
  • Sådan arrangeres konvolutionelle og pooling lag i et ensartet mønster for at udvikle velpræsterende modeller.
  • Sådan bruges startmodulet og restmodulet til at udvikle meget dybere konvolutionelle netværk.Kick-start dit projekt med min nye bog Deep Learning For Computer Vision, herunder trin-for-trin tutorials og Python kildekode filer til alle eksempler.

    lad os komme i gang.,opdatering Apr/2019: korrigeret beskrivelse af filterstørrelser for LeNet (tak Huang).

Tutorial Oversigt

Denne tutorial er opdelt i seks dele; de er:

  1. Arkitektonisk Design i CNNs
  2. LeNet-5
  3. AlexNet
  4. VGG
  5. Start og GoogLeNet
  6. Resterende Netværk eller ResNet

Arkitektonisk Design i CNNs

elementer af en convolutional neurale netværk, som convolutional og samle lag, er relativt ligetil at forstå.,

den udfordrende del af at bruge konvolutionelle neurale netværk i praksis er, hvordan man designer modelarkitekturer, der bedst bruger disse enkle elementer.

en nyttig tilgang til at lære at designe effektive konvolutionelle neurale netværksarkitekturer er at studere vellykkede applikationer. Dette er især ligetil at gøre på grund af den intense undersøgelse og anvendelse af CNNs gennem 2012 til 2016 for ImageNet storskala visuel anerkendelse udfordring, eller ILSVRC., Denne udfordring resulterede i både den hurtige udvikling i den nyeste teknik til meget vanskelige computervisionsopgaver og udviklingen af generelle innovationer i arkitekturen af konvolutionelle neurale netværksmodeller.

Vi vil begynde med LeNet-5 der er ofte beskrevet som den første vellykkede og vigtig anvendelse af CNNs før ILSVRC, så kig på fire forskellige vindende arkitektoniske nyskabelser for convolutional neurale netværk, der er udviklet til ILSVRC, nemlig AlexNet, VGG, Inception, og ResNet.,

Ved at forstå disse milepæl modeller og deres arkitektur eller arkitektoniske nyskabelser fra et højt niveau, vil du udvikle både en forståelse for brugen af disse arkitektoniske elementer i moderne anvendelser af CNN i computer vision, og være i stand til at identificere og vælge arkitektur elementer, der kan være nyttigt i design af dine egne modeller.

vil du have resultater med dyb læring til computersyn?

Tag mit gratis 7-dages e-mail-crashkursus nu (med prøvekode).,

Klik for at tilmelde dig og også få en gratis PDF ebook version af kurset.

Download Din GRATIS Mini-Kursus

LeNet-5

Måske er den første, kendt og succesfuld anvendelse af convolutional neurale netværk blev LeNet-5, der er beskrevet af Yann LeCun, et al. i deres 1998 papir med titlen” Gradient-Based Learning Applied to Document Recognition ” (få PDF).

systemet blev udviklet til brug i et håndskrevet tegngenkendelsesproblem og demonstreret på MNIST-standarddatasættet, hvilket opnåede cirka 99.,2% klassificering nøjagtighed (eller en 0.8% fejlrate). Netværket blev derefter beskrevet som den centrale teknik i et bredere system kaldet Graph Transformer Net .orks.

det er et langt papir, og måske er den bedste del at fokusere på Afsnit II. B. der beskriver lenet-5-arkitekturen. I afsnittet beskriver papiret netværket som at have syv lag med input gråtonebilleder, der har formen 32.32, størrelsen på billeder i MNIST-datasættet.

modellen foreslår et mønster af et konvolutionslag efterfulgt af et gennemsnitligt poollag, der betegnes som et subsamplinglag., Dette mønster gentages to og en halv gang før output feature kortene er fladtrykt og føres til en række fuldt forbundne lag til fortolkning og en endelig forudsigelse. Et billede af netværksarkitekturen findes i papiret og gengives nedenfor.

Optimering af LeNet-5 Convolutional Neurale Netværk for Håndskrevne Character Recognition (taget fra 1998 papir).,

mønsteret af blokke af konvolutionelle lag og pooling lag grupperet sammen og gentaget forbliver et almindeligt mønster i design og brug af konvolutionelle neurale netværk i dag, mere end tyve år senere.

interessant nok bruger arkitekturen et lille antal filtre som det første skjulte lag, specifikt seks filtre hver med størrelsen 5 5 5 pi .els., Efter pooling (kaldet en subsampling lag), en anden convolutional lag har mange flere filtre, igen med en mindre størrelse, men mindre end den forudgående convolutional lag, specielt 16 filtre med en størrelse på 5×5 pixels, igen efterfulgt af pooling. I gentagelsen af disse to blokke af foldning og pooling lag er tendensen en stigning i antallet af filtre.

sammenlignet med moderne applikationer er antallet af filtre også lille, men tendensen med at øge antallet af filtre med dybden af netværket forbliver også et almindeligt mønster i moderne brug af teknikken.,

udfladningen af funktionskort og fortolkning og klassificering af de ekstraherede funktioner ved fuldt forbundne lag forbliver også et almindeligt mønster i dag. I moderne terminologi, den sidste del af arkitekturen omtales ofte som klassifikatoren, mens de sammenfaldende og pooling lag tidligere i modellen omtales som funktionen e .tractor.

Vi kan opsummere de vigtigste aspekter af arkitekturen, der er relevant i moderne modeller, som følger:

  • faste inputbilleder.
  • gruppe convolutional og pooling lag i blokke.,
  • gentagelse af convolutional-pooling blokke i arkitekturen.
  • stigning i antallet af filtre med dybden af netværket.
  • Distinct feature udvinding og klassifikator dele af arkitekturen.

AlexNet

Det arbejde, der måske kunne blive krediteret med gnister fornyet interesse i neurale netværk og begyndelsen af dominans af dyb læring i mange computer vision applikationer blev 2012-artikel af Alex Krizhevsky, et al. titlen ” ImageNet klassifikation med dybe Convolutional neurale netværk .,”

papiret beskriver en model senere benævnt” Ale .net ” designet til at løse ImageNet storstilet visuel anerkendelse udfordring eller ILSVRC-2010 konkurrence om klassificering af fotografier af objekter i en af 1.000 forskellige kategorier.

ILSVRC var en konkurrence, der blev afholdt fra 2011 til 2016, designet til at anspore innovation inden for computersyn. Før udviklingen af Ale .net blev opgaven tænkt meget vanskelig og langt ud over evnen til moderne computervisionsmetoder., Ale .net demonstrerede med succes evnen til den konvolutionelle neurale netværksmodel i domænet og tændte en brand, der resulterede i mange flere forbedringer og innovationer, mange demonstrerede på den samme ILSVRC-opgave i de efterfølgende år. Mere bredt viste papiret, at det er muligt at udvikle dybe og effektive ende-til-ende modeller til et udfordrende problem uden at bruge uovervåget pretraining teknikker, der var populære på det tidspunkt.

vigtigt i designet af Ale .net var en række metoder, der var nye eller vellykkede, men ikke bredt vedtaget på det tidspunkt., Nu er de blevet krav, når du bruger CNNs til billedklassificering.

Ale .net gjorde brug af den korrigerede lineære aktiveringsfunktion, eller ReLU, som det ikke-lineære efter hvert konvolutionslag, i stedet for S-formede funktioner såsom logistikken eller tanh, der var almindelige indtil dette punkt. En softma.-aktiveringsfunktion blev også brugt i outputlaget, nu en hæfteklamme til klassificering i flere klasser med neurale netværk.,

Den gennemsnitlige sammenlægning, der anvendes i LeNet-5 blev erstattet med en max pooling-metoden, men i dette tilfælde er overlappende sammenlægning blev fundet til at udkonkurrere ikke-overlappende med pooling, der er almindeligt anvendt i dag (fx skridtlængde til at samle funktionen er den samme størrelse som sammenlægning drift, fx 2 af 2 pixels). For at adressere overfitting blev den nyligt foreslåede frafaldsmetode brugt mellem de fuldt tilsluttede lag i klassificeringsdelen af modellen for at forbedre generaliseringsfejl.

arkitekturen i Ale .net er dyb og strækker sig over nogle af de mønstre, der er etableret med LeNet-5., Billedet nedenfor, taget fra papiret, opsummerer modelarkitekturen, i dette tilfælde opdelt i to rørledninger til at træne på datidens GPU-hard .are.

Arkitektur AlexNet Convolutional Neurale Netværk for Objekt Foto-Klassifikation (taget fra 2012-papir).

modellen har fem konvolutionelle lag i funktionen ekstraktion del af modellen og tre fuldt forbundne lag i klassifikatoren del af modellen.

Inputbilleder blev fastgjort til størrelsen 224.224 med tre farvekanaler., Med hensyn til antallet af filtre, der blev brugt i hvert konvolutionslag, blev mønsteret for at øge antallet af filtre med dybde set i LeNet for det meste overholdt, i dette tilfælde størrelserne: 96, 256, 384, 384 og 256. Tilsvarende blev mønsteret for at reducere filterets størrelse (kerne) med dybde anvendt, startende fra den mindre størrelse 11 11 11 og faldende til 5 5 5 og derefter til 3.3 i de dybere lag. Brug af små filtre som 5 5 5 og 3.3 er nu normen.,

et mønster af en convolutional lag efterfulgt af pooling lag blev anvendt i starten og slutningen af funktionen afsløring del af modellen. Interessant nok blev der anvendt et mønster af konvolutionslag efterfulgt straks af et andet konvolutionslag. Dette mønster er også blevet en moderne standard.

modellen blev trænet med dataforstørrelse, kunstigt øge størrelsen på træningsdatasættet og give modellen mere mulighed for at lære de samme funktioner i forskellige orienteringer.,

Vi kan opsummere de vigtigste aspekter af arkitekturen, der er relevant i moderne modeller, som følger:

  • brug af ReLU-aktiveringsfunktionen efter konvolutionelle lag og softma.for outputlaget.
  • brug af Ma.Pooling i stedet for Gennemsnitlig Pooling.
  • anvendelse af Dropout-regulering mellem de fuldt tilsluttede lag.
  • mønster af konvolutionslag fodret direkte til et andet konvolutionslag.
  • anvendelse af Dataforstørrelse.,

VGG

udviklingen af dybe konvolutionelle neurale netværk til computervisionsopgaver syntes at være lidt af en mørk kunst efter Ale .net.

Et vigtigt arbejde, der havde til formål at standardisere arkitektur design for dybt convolutional netværk og udviklet meget dybere og mere effektive modeller i processen var 2014 papir med titlen “Meget Dybt Convolutional Netværk for Stort Billede Anerkendelse” af Karen Simonyan og Andrew Zisserman.

deres arkitektur er generelt benævnt VGG efter navnet på deres laboratorium, den visuelle geometri gruppe på O .ford., Deres model blev udviklet og demonstreret på det sammeilsvrc-konkurrence, i dette tilfælde ILSVRC-2014-versionen af udfordringen.

den første vigtige forskel, der er blevet en de facto-standard, er brugen af et stort antal små filtre. Specifikt, filtre med størrelsen 3 x 3 og 1×1 med skridtlængde af én, der er forskellig fra den store mellemstore filtre i LeNet-5, og de mindre, men stadig relativt store filtre og stor skridtlængde af fire i AlexNet.,

Max samle lag er anvendt efter de fleste, men ikke alle, convolutional lag, lære af eksemplet i AlexNet, men alle pooling er udført med størrelsen 2×2 og det samme skridtlængde, at der også er blevet en de facto standard. Specifikt bruger VGG-netværkene eksempler på to, tre og endda fire sammenfaldende lag stablet sammen, før der bruges et maksimalt poolinglag. Begrundelsen var, at stablede konvolutionelle lag med mindre filtre tilnærmede effekten af et konvolutionelt lag med et større filter, f. eks., tre stablede convolutional lag med 3 3 3 filtre tilnærmes en convolutional lag med en 7 7 7 filter.

en anden vigtig forskel er det meget store antal anvendte filtre. Antallet af filtre stiger med dybden af modellen, selvom starter ved et relativt stort antal 64 og stiger gennem 128, 256 og 512 filtre i slutningen af funktionen ekstraktion del af modellen.

en række varianter af arkitekturen blev udviklet og evalueret, selvom to henvises til oftest i betragtning af deres ydeevne og dybde., De er opkaldt efter antallet af lag: de er VGG-16 og VGG-19 for henholdsvis 16 og 19 lærte lag.

nedenfor er en tabel taget fra papiret; bemærk de to yderste højre kolonner, der angiver konfigurationen (antal filtre), der bruges i VGG-16 og VGG-19 versionerne af arkitekturen.

Arkitektur VGG Convolutional Neurale Netværk for Objekt Foto-Klassifikation (taget fra 2014 papir).,

designbeslutningerne i VGG-modellerne er blevet udgangspunktet for enkel og direkte brug af konvolutionelle neurale netværk generelt.

endelig var VGG-arbejdet blandt de første til at frigive de værdifulde modelvægte under en permissiv licens, der førte til en tendens blandt deep learning computer vision forskere. Dette har igen ført til den tunge brug af forududdannede modeller som VGG i overførselslæring som udgangspunkt for nye computervisionsopgaver.,

Vi kan opsummere de vigtigste aspekter af den arkitektur, der er relevant i moderne modeller, som følger:

  • brug af meget små konvolutionsfiltre, f.eks. 3 3 3 og 1. 1 med et skridt på en.
  • anvendelse af Ma.pooling med en størrelse på 2 2 2 og et skridt af samme dimensioner.
  • vigtigheden af at stable sammenfaldende lag sammen, før du bruger et poollag til at definere en blok.
  • dramatisk gentagelse af det konvolutionelle poolingblokmønster.
  • udvikling af meget dybe (16 og 19 lag) modeller.,

Inception og GoogLeNet

vigtige innovationer i brugen af indviklede lag blev foreslået i 2015-papiret af Christian s .egedy, et al. titlen ” går dybere med vindinger.”

i papiret foreslår forfatterne en arkitektur kaldet inception (eller inception v1 for at differentiere den fra udvidelser) og en specifik model kaldet GoogLeNet, der opnåede topresultater i 2014-versionen af ILSVRC challenge.

den vigtigste innovation på inception-modellerne kaldes inception-modulet., Dette er en blok af parallelle konvolutionelle lag med filtre i forskellige størrelser (f. eks. 1×1, 3×3, 5×5) og et 3 3 3 mA.pooling lag, hvis resultater derefter sammenkædes. Nedenfor er et eksempel på startmodulet taget fra papiret.

eksempel på det Naive Startmodul (taget fra 2015-papiret).

et problem med en naiv implementering af inception-modellen er, at antallet af filtre (dybde eller kanaler) begynder at opbygges hurtigt, især når inception-moduler stables.,3 og 5) kan være beregningsmæssigt dyrt på et stort antal filtre. For at løse dette bruges 1 1 1 konvolutionelle lag til at reducere antallet af filtre i startmodellen. Specifikt før de sammenflettede 3 3 3-og 5.5-lag og efter sammenfletningslaget. Billedet nedenfor taget fra papiret viser denne ændring til inception-modulet.

eksempel på Startmodulet med Dimensionalitetsreduktion (taget fra 2015-papiret).,

en anden vigtig designbeslutning i startmodellen var at forbinde output på forskellige punkter i modellen. Dette blev opnået ved at oprette små off-shoot-outputnetværk fra hovednetværket, der blev trænet til at lave en forudsigelse. Hensigten var at give et yderligere fejlsignal fra klassificeringsopgaven på forskellige punkter i den dybe model for at løse problemet med forsvindende gradienter. Disse små outputnetværk blev derefter fjernet efter træning.,

Nedenfor viser et roteret version (fra venstre til højre for input-at-output) af arkitektur GoogLeNet model taget fra papiret ved hjælp af den indledende moduler fra input til venstre for at output-klassificering på højre og de to ekstra output netværk, som kun blev brugt under træningen.

arkitektur af GoogLeNet-modellen, der bruges under træning til klassificering af Objektfoto (taget fra 2015-papiret).,

interessant nok blev overlappende ma.pooling brugt, og en stor gennemsnitlig pooling operation blev brugt i slutningen af funktionen ekstraktion del af modellen før klassificeringsdelen af modellen.

Vi kan opsummere de vigtigste aspekter af arkitekturen, der er relevant i moderne modeller, som følger:

  • udvikling og gentagelse af Startmodulet.
  • kraftig brug af 1 1 1-foldningen for at reducere antallet af kanaler.
  • brug af fejlfeedback på flere punkter i netværket.
  • udvikling af meget dybe (22-lags) modeller.,
  • anvendelse af global gennemsnitlig pooling til output af modellen.

resterende netværk eller ResNet

en endelig vigtig innovation i konvolutionelle neurale net, som vi vil gennemgå, blev foreslået af Kaiming he, et al. i deres 2016-papir med titlen ” Deep Residual Learning for Image Recognition.”

i papiret foreslog forfatterne en meget dyb model kaldet et resterende netværk eller ResNet for kort, hvoraf et eksempel opnåede succes på 2015-versionen af ILSVRC-udfordringen.

deres model havde imponerende 152 lag., Nøglen til model design er ideen om resterende blokke, der gør brug af genvejsforbindelser. Dette er simpelthen forbindelser i netværksarkitekturen, hvor input holdes som det er (ikke vægtet) og overføres til et dybere lag, f.eks.

en resterende blok er et mønster af to konvolutionelle lag med ReLU-aktivering, hvor udgangen af blokken kombineres med indgangen til blokken, f.eks. genvejsforbindelsen. En projiceret version af input bruges via 1 1 1, hvis formen af input til blokken er forskellig fra output af blokken, såkaldte 1 1 1 vindinger., Disse kaldes projicerede genvejsforbindelser sammenlignet med de uvægtede eller identitetsgenvejsforbindelser.

forfatterne starte med, hvad de kalder et almindeligt netværk, som er en VGG-inspireret dybt convolutional neurale netværk med små filtre (3×3), grupperet convolutional lag, der blev fulgt på med ikke at samle i mellem, og et gennemsnit samle i slutningen af funktionen detektor del af modellen, før den er fuldt forbundet output lag med en softmax aktivering funktion.,

det almindelige netværk ændres til at blive et resterende netværk ved at tilføje genvejsforbindelser for at definere resterende blokke. Formen på indgangen til genvejsforbindelsen er typisk den samme størrelse som udgangen af den resterende blok.

billedet nedenfor blev taget fra papiret og fra venstre mod højre sammenligner arkitekturen for en VGG-model, en almindelig konvolutionel model og en version af den almindelige konvolutionelle med resterende moduler, kaldet et resterende netværk.,

arkitektur af det resterende netværk til klassificering af Objektfoto (taget fra 2016-papiret).

Vi kan opsummere de vigtigste aspekter af den arkitektur, der er relevant i moderne modeller, som følger:

  • brug af genvejsforbindelser.
  • udvikling og gentagelse af de resterende blokke.
  • udvikling af meget dybe (152-lags) modeller.

yderligere læsning

dette afsnit indeholder flere ressourcer om emnet, hvis du ønsker at gå dybere.,

Papers

  • Gradient-based learning applied to document recognition, (PDF) 1998.
  • ImageNet klassificering med dybe Convolutional neurale netværk, 2012.
  • meget dybe indviklede netværk til storskala billedgenkendelse, 2014.
  • går dybere med vindinger, 2015.
  • Dybt Resterende Læring for Billede Anerkendelse, 2016

API

  • Keras Applikationer API

Artikel

  • 9 Dybe Læring Papirer, Du har Brug for At Vide Om
  • En Simpel Guide til de Versioner af Starten Netværk, 2018.,CNN-arkitekturer: LeNet, ale .net, VGG, GoogLeNet, ResNet og meget mere., 2017.

resum.

i denne vejledning opdagede du de vigtigste arkitekturmilestones til brug af konvolutionelle neurale netværk til udfordrende billedklassificering.

specifikt lærte du:

  • hvordan man mønstre antallet af filtre og filterstørrelser, når man implementerer konvolutionelle neurale netværk.
  • Sådan arrangeres konvolutionelle og pooling lag i et ensartet mønster for at udvikle velpræsterende modeller.,
  • Sådan bruges startmodulet og restmodulet til at udvikle meget dybere konvolutionelle netværk.

har du spørgsmål?
stil dine spørgsmål i kommentarerne nedenfor, og jeg vil gøre mit bedste for at svare.

udvikle dybe læringsmodeller til Vision i dag!

udvikle dine egne Vision modeller i minutter

…,med bare et par linjer af python-kode

Oplev, hvordan i min nye e-Bog:
Dyb Læring for Computer Vision

Det giver self-undersøgelse tutorials om emner som:
klassificering, object detection (yolo og rcnn), ansigtsgenkendelse (vggface og facenet), data forberedelse og meget mere…

endelig bringe dyb læring til dine Vision projekter

Spring akademikere. Bare Resultater.

se hvad der er inde

t Seeeet Share Share