Articles

Convolutional Nevrale Nettverk Modell Innovasjoner for Bilde Klassifisering

Tweet Dele Dele

Sist Oppdatert 5. juli 2019

En Forsiktig Introduksjon til Innovasjoner i LeNet, AlexNet, VGG, Inception, og ResNet Convolutional Nevrale Nettverk.

Convolutional nevrale nettverk består av to veldig enkle elementer, nemlig convolutional lag og sammenslåing lag.

Selv om det enkle, det er nesten uendelige måter å ordne disse lagene for en gitt computer vision problem.,

Heldigvis, det er både vanlige mønstre for å konfigurere disse lagene og arkitektoniske innovasjoner som du kan bruke for å utvikle svært dypt convolutional nevrale nettverk. Ved å studere disse arkitektoniske design beslutninger utviklet for state-of-the-art bilde klassifisering oppgaver kan gi både en begrunnelse og intuisjon for hvordan du skal bruke disse designene når du utformer din egen dype convolutional nevrale nettverksmodeller.

I denne opplæringen, vil du oppdage nøkkelen arkitektur milepæler for bruk av convolutional nevrale nettverk for utfordrende bilde klassifisering problemer.,

Etter å ha fullført denne opplæringen, vil du vite:

  • Hvordan mønsteret antall filtre og filtrere størrelser når implementere convolutional nevrale nettverk.
  • Hvordan å ordne convolutional og sammenslåing lag i et enhetlig mønster for å utvikle godt-utfører modeller.
  • Hvordan å bruke starten modul og residual-modulen for å utvikle mye dypere convolutional nettverk.

en Kick-start på prosjektet med min nye bok dybdekunnskap om Computer Vision, inkludert trinnvise veiledninger og Python kildekoden filer for alle eksempler.

La oss komme i gang.,

  • Oppdatere Apr/2019: Korrigert beskrivelse av filter størrelser for LeNet (takk Huang).

Veiledning Oversikt

Denne opplæringen er delt inn i seks deler; de er:

  1. Arkitektonisk Utforming for CNNs
  2. LeNet-5
  3. AlexNet
  4. VGG
  5. Begynnelse og GoogLeNet
  6. Gjenværende Nettverk eller ResNet

Arkitektonisk Utforming for CNNs

elementer av en convolutional nevrale nettverk, som for eksempel convolutional og sammenslåing lag, er relativt enkel å forstå.,

Den utfordrende del av å bruke convolutional nevrale nettverk i praksis er hvordan man skal utforme modellen arkitekturer som best kan bruke disse enkle elementer.

En nyttig tilnærming til læring, hvordan man skal utforme effektive convolutional nevrale nettverk arkitekturer er å studere vellykkede programmer. Dette er spesielt enkelt å gjøre på grunn av den intense studier og anvendelse av CNNs gjennom 2012 til 2016 for ImageNet Stor Skala Visuell Anerkjennelse Utfordring, eller ILSVRC., Denne utfordringen resulterte i både rask utvikling i state of the art for veldig vanskelig computer vision oppgaver og utvikling av generelle innovasjoner i arkitektur av convolutional nevrale nettverksmodeller.

Vi vil begynne med LeNet-5, som ofte er beskrevet som den første vellykkede og viktig anvendelse av CNNs før ILSVRC, deretter se på fire forskjellige vinnende arkitektoniske innovasjoner for convolutional nevrale nettverk utviklet for ILSVRC, nemlig AlexNet, VGG, Inception, og ResNet.,

Ved å forstå disse milepæl modeller og deres arkitektur eller arkitektoniske innovasjoner fra et høyt nivå, vil du utvikle en forståelse for bruk av disse arkitektoniske elementer i moderne anvendelser av CNN i computer vision, og være i stand til å identifisere og velge arkitektur elementer som kan være nyttig i utformingen av dine egne modeller.

Vil Resultater med dybdekunnskap om Computer Vision?

Ta min gratis 7-dagers e-post lynkurs nå (med eksempelkode).,

Klikk for å registrere deg, og også få en gratis PDF Ebok-versjon av kurset.

Last ned Din GRATIS Mini-Kurs

LeNet-5

Kanskje den første allment kjent og vellykket anvendelse av convolutional nevrale nettverk var LeNet-5, beskrevet av Yann LeCun, et al. i sine 1998 papir med tittelen «Gradient-Basert Læring som Anvendes for å Dokumentere Anerkjennelse» (få PDF).

systemet ble utviklet for bruk i et håndskrevet character recognition problem, og vist på MNIST standard dataset, oppnå omtrent 99.,2% klassifisering nøyaktighet (eller 0,8% feil). Nettverket ble da beskrevet som den sentrale teknikken i et bredere system referert til som Grafen Transformator Nettverk.

Det er en lang papir, og kanskje den beste delen til å fokusere på Del II. B. som beskriver LeNet-5-arkitektur. I den delen av rapporten beskriver nettverket som har syv lag med innspill gråtonebilder å ha formen 32×32, størrelsen på bilder i MNIST dataset.

modellen foreslår et mønster av en convolutional lag etterfulgt av en gjennomsnittlig pooling lag, referert til som en subsampling lag., Dette mønsteret gjentas to og en halv ganger før utgang funksjon kart er flatet ut og føres til et antall av fullstendig koblet lag for tolkning og et endelig forslag. Et bilde av nettverk arkitektur er gitt i papir og som er gjengitt nedenfor.

Arkitektur av LeNet-5 Convolutional Nevrale Nettverk for Håndskrevne tegngjenkjenning (tatt fra 1998 papir).,

mønster av blokker av convolutional lag og sammenslåing lag gruppert sammen, og gjentatt forblir et felles mønster i utforming og bruk av convolutional nevrale nettverk i dag, mer enn tjue år senere.

det er Interessant arkitektur bruker et lite antall av filtre som det første skjulte laget, spesielt seks filtre hver med størrelse på 5×5 piksler., Etter sammenslåing (kalt en subsampling layer), en annen convolutional laget har mange flere filtre, igjen med en mindre størrelse, men mindre enn før convolutional lag, spesielt 16 filtre med en størrelse på 5×5 piksler, igjen etterfulgt av pooling. I gjentakelsen av disse to blokker av foldning og sammenslåing lag, trenden er en økning i antall filtre.

i Forhold til moderne programmer, antall filtre er også liten, men en trend med økende antall filtre med dybden av nettverket forblir også et felles mønster i moderne bruk av teknikken.,

sammenslåing av funksjonen kart og tolkning og klassifisering av de utpakkede funksjoner ved fullt koblet lag forblir også et felles mønster i dag. I moderne terminologi, den siste delen av arkitektur er ofte referert til som classifier, mens convolutional og sammenslåing lag tidligere i modellen er referert til som har extractor.

Vi kan oppsummere viktige aspekter ved arkitektur relevant i moderne modeller som følger:

  • Tillatte størrelse inngang bilder.
  • Gruppe convolutional og sammenslåing lag i blokker.,
  • Repetisjon av convolutional-pooling blokker i arkitektur.
  • Økning i antall filtre med dybden av nettverket.
  • Distinkte egenskapsuttrekking og classifier deler av arkitekturen.

AlexNet

Det arbeidet som kanskje kan bli kreditert med sparking fornyet interesse i nevrale nettverk og begynnelsen av dominans av dybdekunnskap i mange computer vision søknader var 2012 papir av Alex Krizhevsky, et al. med tittelen «ImageNet Klassifisering med Dype Convolutional Nevrale Nettverk.,»

papir som beskriver en modell senere referert til som «AlexNet» er laget for å møte ImageNet Stor Skala Visuell Anerkjennelse Utfordring eller ILSVRC-2010 konkurranse for å klassifisere bilder av objekter i én av 1000 forskjellige kategorier.

ILSVRC var en konkurranse som arrangeres fra 2011 til 2016, designet for å anspore innovasjon innen computer vision. Før utviklingen av AlexNet, oppgaven var tenkt veldig vanskelig og langt utover evnen til moderne computer vision metoder., AlexNet demonstrert evnen til convolutional nevrale nettverk modell i domenet, og tente en ild som resulterte i mange flere forbedringer og innovasjoner, mange demonstrert på samme ILSVRC oppgave i påfølgende år. Mer generelt, papir viste at det er mulig å utvikle en dyp og effektiv ende-til-ende modeller for et utfordrende problem uten å bruke uten tilsyn pretraining teknikker som var populære på den tiden.

Viktig i utformingen av AlexNet var en rekke metoder som var nye eller vellykket, men ikke allment vedtatt på den tiden., Nå har de blitt kravene når du bruker CNNs for bilde-klassifisering.

AlexNet gjort bruk av den rettet lineær aktivering av funksjon, eller ReLU, som nonlinearly etter hvert convolutional lag, i stedet for S-formet funksjoner som den logistiske eller tanh som var vanlig opp til det punktet. Også, en softmax aktivering av funksjonen ble brukt i produksjonen laget, nå er en stift for multi-klasse klassifisering med nevrale nettverk.,

Den gjennomsnittlige pooling brukt i LeNet-5 ble erstattet med en maks pooling metoden, selv om i dette tilfellet, overlappende pooling ble funnet å oppnå bedre resultater enn ikke-overlappende pooling som er vanlig brukt i dag (f.eks. skrittlengde føre drift er samme størrelse som den som slår drift, f.eks. 2 av 2 punkter). For å løse overfitting, det nye forslaget til frafall metoden ble brukt mellom fullt koblet lag av classifier en del av modellen for å forbedre generalisering feil.

arkitektur av AlexNet er dypt og strekker seg over noen av mønstrene er etablert med LeNet-5., Bildet nedenfor er tatt fra papir, oppsummerer modell arkitektur, i dette tilfellet, delt i to rørledninger til å trene på GPU hardware av tiden.

Arkitektur av AlexNet Convolutional Nevrale Nettverk for Objekt-Bilde Klassifisering (tatt fra 2012 papir).

modellen har fem convolutional lag i egenskapsuttrekking en del av modellen og tre fullt koblet lag i classifier en del av modellen.

Input bilder ble festet til størrelsen 224×224 med tre farge-tv., I forhold til antall filtre som brukes i hver convolutional lag mønster med økende antall filtre med dybde sett i LeNet var stort sett fulgt, i dette tilfellet, størrelser: 96, 256, 384, 384, og 256. Tilsvarende mønster av å redusere størrelsen på filteret (kjerne) med dybde ble brukt, fra den mindre størrelsen 11×11 og avtagende til 5×5, og deretter til 3×3 i dypere lag. Bruk av små filtre som 5×5 og 3×3 er nå normen.,

Et mønster av en convolutional lag som følges ved å samle laget ble brukt ved starten og slutten av funksjonen for gjenkjenning en del av modellen. Det er interessant å merke et mønster av convolutional lag som følges umiddelbart av en annen convolutional laget ble brukt. Dette mønsteret har også blitt en moderne standard.

modellen ble trent med data styrking, kunstig å øke størrelsen på trening datasettet og gir modellen mer av en mulighet til å lære de samme funksjonene i forskjellige retninger.,

Vi kan oppsummere viktige aspekter ved arkitektur relevant i moderne modeller som følger:

  • Bruk av ReLU aktivering av funksjon etter convolutional lag og softmax for utgang lag.
  • Bruk av Maks Pooling i stedet for Gjennomsnittlig Pooling.
  • Bruk av Dropout regularization mellom fullt koblet lag.
  • Mønster av convolutional lag matet direkte til en annen convolutional lag.
  • Bruk av Data Silikonpupper.,

VGG

utvikling av dyp convolutional nevrale nettverk for computer vision oppgaver, viste seg å være litt av en mørk art etter AlexNet.

Et viktig arbeid som forsøkte å standardisere arkitektur design for dyp convolutional nettverk og utviklet mye dypere og bedre modeller i prosessen ble 2014 papir med tittelen «Veldig Dyp Convolutional Nettverk for Large-Scale Image Anerkjennelse» av Karen Simonyan og Andrew Zisserman.

Deres arkitektur er vanligvis referert til som VGG etter navnet på sin lab, den Visuelle Geometri Gruppe ved Oxford., Deres modell ble utviklet og demonstrert på sameILSVRC konkurranse, i dette tilfellet, ILSVRC-2014 versjon av utfordringen.

Det første viktig forskjell som har blitt en de facto standard er bruk av et stort antall små filtre. Spesielt, filtre med størrelse 3×3 og 1×1 med fraspark av en annen enn stor filtre i LeNet-5 og det er mindre, men fortsatt relativt store filtre og store steg av fire i AlexNet.,

Maks pooling lag er brukt etter de fleste, men ikke alle, convolutional lag, læring fra eksempel i AlexNet, men alle pooling er utført med størrelse 2×2 og samme form, som også har blitt en de facto standard. Spesielt, den VGG nettverk bruker eksempler på to, tre og fire convolutional lag stablet sammen før en maks pooling lag som er brukt. Begrunnelsen var at stablet convolutional lag med mindre filtre simulere effekten av en convolutional lag med en større størrelse filter, f.eks., tre stablet convolutional lag med 3×3 filtre er tilnærmet lik en convolutional lag med en 7×7 filter.

en Annen viktig forskjell er svært stort antall filtre som brukes. Antall filtre øker med dybden av modellen, men starter på et relativt stort antall 64 og øker gjennom 128, 256 og 512 filtre på slutten av egenskapsuttrekking en del av modellen.

En rekke varianter av arkitektur ble utviklet og evaluert, men to er referert til som oftest får sin ytelse og dybde., De er oppkalt etter antall lag: de er VGG-16 og VGG-19 til 16 og 19 lært lag hhv.

Nedenfor er en tabell hentet fra papir; merk de to kolonnene lengst til høyre indikerer konfigurasjon (antall filtre) som brukes i VGG-16 og VGG-19 versjoner av arkitektur.

Arkitektur av VGG Convolutional Nevrale Nettverk for Objekt-Bilde Klassifisering (tatt fra 2014 papir).,

design beslutninger i VGG modeller har blitt utgangspunkt for en enkel og direkte bruk av convolutional nevrale nettverk generelt.

til Slutt, VGG arbeidet var blant de første til å frigjøre verdifull modellen vekter under et flytende lisens som førte til en trend blant dybdekunnskap computer vision forskere. Dette, i sin tur, har ført til omfattende bruk av pre-trente modeller som VGG i overføring av læring som et utgangspunkt på ny computer vision oppgaver.,

Vi kan oppsummere viktige aspekter ved arkitektur relevant i moderne modeller som følger:

  • Bruk av svært små convolutional filtre, for eksempel 3×3 og 1×1 med et hopp på en.
  • Bruk av maks pooling med en størrelse på 2×2 og en skrittlengde på de samme dimensjonene.
  • viktigheten av stabling convolutional lag sammen før du bruker en sammenslåing laget for å definere en blokk.
  • Dramatiske repetisjon av convolutional-pooling blokk mønster.
  • Utvikling av meget dyp (16 og 19 lag) modeller.,

Begynnelse og GoogLeNet

Viktige innovasjoner i bruk av convolutional lagene ble foreslått i 2015 papir av Christian Szegedy, et al. med tittelen «å Gå Dypere med Convolutions.»

I papir, forfatterne foreslår en arkitektur referert til som inception (eller starten v1 å skille den fra utvidelser) og en bestemt modell kalt GoogLeNet som har oppnådd topp resultater i 2014 versjon av ILSVRC utfordring.

– tasten for innovasjon på starten modeller kalles starten modul., Dette er en blokk av parallelle convolutional lag med ulik størrelse filtre (f.eks. 1×1, 3×3, 5×5) og en 3×3 maks pooling lag, de resultater som er så sammensatte. Nedenfor er et eksempel på starten modul tatt fra papiret.

Eksempel på det Naive Starten Modul (tatt fra 2015 papir).

Et problem med en naiv gjennomføring av starten modellen er at antall filtre (dybde eller tv) begynner å bygge opp raskt, spesielt når starten moduler er stablet.,

Utføre convolutions med større filter størrelser (f.eks. 3 og 5) kan være beregninger dyrt på et stort antall filtre. For å løse dette, 1×1 convolutional lag er brukt til å redusere antall filtre i starten modell. Spesielt før 3×3 og 5×5 convolutional lag og etter å samle laget. Bildet nedenfor er tatt fra papir viser denne endringen til starten modul.

Eksempel på Starten Modul Med Dimensionality Reduksjon (tatt fra 2015 papir).,

En annen viktig design avgjørelse i starten modellen var å koble utgang på ulike punkter i modellen. Dette ble oppnådd ved å opprette liten sidegren utgang nettverk fra den viktigste nettverket som ble opplært til å gjøre et anslag. Hensikten var å gi en ekstra feil signal fra klassifisering oppgave på ulike tidspunkter i den dype modell for å møte de forsvinnende graderinger problem. Disse små utgang nettverk ble deretter fjernet etter trening.,

Nedenfor viser en rotert versjon (venstre-til-høyre for inngangen-til-utgang) på arkitektur av GoogLeNet modell hentet fra papir ved å bruke Starten moduler fra inngangen på venstre side for å utgangen klassifisering på høyre og to ekstra utgang nettverk som bare ble brukt under trening.

Arkitektur av GoogLeNet Modell som Brukes Under Trening for Objekt-Bilde Klassifisering (tatt fra 2015 papir).,

det er Interessant, overlappende maks pooling ble brukt og en stor gjennomsnittlig pooling drift ble brukt på slutten av egenskapsuttrekking en del av modellen før den classifier en del av modellen.

Vi kan oppsummere viktige aspekter ved arkitektur relevant i moderne modeller som følger:

  • Utvikling og repetisjon av Starten modul.
  • mye bruk av 1×1 sett automatisk for å redusere antallet kanaler.
  • Bruk av feil tilbakemelding på flere punkter i nettverket.
  • Utvikling av meget dyp (22-lag) modeller.,
  • Bruk av globale gjennomsnittet pooling for produksjon av modellen.

Gjenværende Nettverk eller ResNet

En siste viktig innovasjon i convolutional neural nets som vi vil vurdere ble foreslått av Kaiming Han, et al. i sin 2016 papir med tittelen «Deep Gjenværende Læring for Bilde Anerkjennelse.»

I papir, forfatterne foreslått en veldig dyp modell kalt en Residual Nettverk, eller ResNet for kort, et eksempel på dette er oppnådd suksess på 2015 versjon av ILSVRC utfordring.

Deres modell hadde en imponerende 152 lag., Nøkkelen til modell design er ideen om rester av blokker som gjør bruk av snarvei-tilkoblinger. Disse er rett og slett forbindelser i nettverket arkitektur, hvor inngang er holdt som-er (ikke vektet) og sendes videre til en dypere lag, for eksempel å hoppe over det neste laget.

det er En viss blokkere er et mønster av to convolutional lag med ReLU aktivering der produksjonen av blokken er kombinert med inngang til kvartal, f.eks. snarvei-tilkobling. En anslått versjon av input som brukes via 1×1 hvis form av input til blokken er forskjellige til utgangen av kvartalet, såkalte 1×1 convolutions., Disse er referert til som projiserte snarvei tilkoblinger, i forhold til uvektet eller identitet snarvei-tilkoblinger.

forfatterne starte med hva de kaller en vanlig network, som er et VGG-inspirert dyp convolutional nevrale nettverk med små filtre (3×3), gruppert convolutional lagene fulgte med ingen pooling i mellom, og en gjennomsnittlig pooling ved utgangen av funksjonen detektor en del av modellen før den fullt koblet utgang lag med en softmax aktivering av funksjon.,

Det vanlig nettverk er endret til å bli en residual nettverk ved å legge til snarvei-tilkobling for å angi gjenværende blokker. Vanligvis form av innspill til snarvei-tilkobling er den samme størrelsen som utgang på det gjenværende blokk.

bildet nedenfor er tatt fra papir og fra venstre til høyre sammenlikner den arkitekturen av en VGG modell, en vanlig convolutional modell, og en versjon av vanlig convolutional med gjenværende moduler, som kalles en gjenværende nettverk.,

Arkitektur av den Gjenværende Nettverk for Objekt-Bilde Klassifisering (tatt fra 2016 papir).

Vi kan oppsummere viktige aspekter ved arkitektur relevant i moderne modeller som følger:

  • Bruk av snarvei-tilkoblinger.
  • Utvikling og repetisjon av de resterende blokkene.
  • Utvikling av meget dyp (152-lag) modeller.

Mer å Lese

Dette avsnittet gir mer ressurser på emnet dersom du er ute etter å gå dypere.,

Papirer

  • Gradient-basert læring brukes til dokument anerkjennelse, (PDF) 1998.
  • ImageNet Klassifisering med Dype Convolutional Nevrale Nettverk, 2012.
  • Veldig Dyp Convolutional Nettverk for Large-Scale Image Anerkjennelse, 2014.
  • Gå Dypere med Convolutions, 2015.
  • Dypt Gjenværende Læring for Bilde Anerkjennelse, 2016

API

  • Keras Programmer API

Artikler

  • 9 dybdekunnskap Papirer Du Trenger Å Vite Om
  • En Enkel Guide til de ulike Versjonene av Starten Nettverk, 2018.,
  • CNN Arkitekturer: LeNet, AlexNet, VGG, GoogLeNet, ResNet og mer., 2017.

Oppsummering

I denne opplæringen, at du oppdaget tasten arkitektur milepæler for bruk av convolutional nevrale nettverk for utfordrende bilde klassifisering.

Spesifikt, du lært:

  • Hvordan mønsteret antall filtre og filtrere størrelser når implementere convolutional nevrale nettverk.
  • Hvordan å ordne convolutional og sammenslåing lag i et enhetlig mønster for å utvikle godt-utfører modeller.,
  • Hvordan å bruke starten modul og residual-modulen for å utvikle mye dypere convolutional nettverk.

har du spørsmål?
Stille dine spørsmål i kommentarfeltet under, og jeg vil gjøre mitt beste for å svare.

– >

Utvikle dybdekunnskap Modeller for Syn i Dag!

Utvikle Din Egen Visjon-Modeller i løpet av Minutter

…,med bare et par linjer av python-kode

Oppdag hvordan i min nye Bok:
dybdekunnskap om Computer Vision

Det gir selvstudium tutorials på temaer som:
klassifisering, objekt deteksjon (yolo og rcnn), ansiktsgjenkjenning (vggface og facenet), data forberedelse og mye mer…

til Slutt Gi dybdekunnskap til din Visjon Prosjekter

Hoppe over Akademikere. Bare Resultater.

Se Hva som er Inni

Tweet Dele Dele