I dette innlegget vil jeg diskutere vanlig brukte arkitekturer for convolutional nettverk. Som du vil se, nesten alle CNN arkitekturer følger samme generelle design prinsipper for suksessivt å anvende convolutional lag til inngang, og med jevne mellomrom downsampling den romlige dimensjoner, mens økende antall-funksjonen kart.,

Mens den klassiske nettarkitekturer ble består rett og slett av stablet convolutional lag, moderne arkitektur utforske nye og innovative måter for å bygge convolutional lag på en måte som gir mulighet for mer effektiv læring. Nesten alle av disse arkitekturer er basert på en repeterbar enhet som brukes over hele nettverk.

Disse arkitekturer tjene som generelle retningslinjer for design som maskinlæring utøvere vil da tilpasse seg løse ulike computer vision oppgaver., Disse arkitekturer tjene som rike har extractors som kan brukes for bilde klassifisering, objekt deteksjon, bilde segmentering, og mange andre, mer avanserte oppgaver.

Klassisk nettarkitekturer (inkludert for historiske formål).

  • LeNet-5
  • AlexNet
  • VGG 16

Moderne nettarkitekturer

  • Starten
  • ResNet
  • ResNeXt
  • DenseNet

LeNet-5

Yann Lecun er LeNet-5-modellen ble utviklet i 1998 for å identifisere håndskrevne tall for zip kode anerkjennelse i postgangen., Denne banebrytende modell i stor grad innført convolutional nevrale nettverk som vi kjenner det i dag.

Arkitektur

Convolutional lag bruke et delsett av forrige lag er kanaler for hvert filter for å redusere beregning og tvinge en pause på symmetri i nettverket. Den subsampling lag bruker en form for gjennomsnitt pooling.

Parametre: 60,000

Papir: Gradient-basert læring som anvendes for å dokumentere anerkjennelse

AlexNet

AlexNet ble utviklet av Alex Krizhevsky et al. i 2012 for å konkurrere i ImageNet konkurranse., Den generelle arkitekturen er ganske lik LeNet-5, selv om denne modellen er betydelig større. Suksessen til denne modellen (som tok første plass i 2012 ImageNet konkurranse) overbevist om at mye av computer vision samfunnet til å ta en alvorlig titt på dyp læring for computer vision oppgaver.

Arkitektur

Parametre: 60 millioner kroner

Papir: ImageNet Klassifisering med Dype Convolutional Nevrale Nettverk

VGG-16

VGG nettverk, som ble innført i 2014, og tilbyr en dypere ennå enklere variant av convolutional strukturer som er diskutert ovenfor., På den tiden av sin introduksjon, denne modellen ble ansett for å være svært dypt.

Arkitektur

Parametre: 138 millioner kroner

Papir: Meget Dypt Convolutional Nettverk for Large-Scale Image Anerkjennelse

Inception (GoogLeNet)

I 2014, forskere på Google introduserte Starten nettverk som tok første plass i 2014 ImageNet konkurranse for klassifisering og deteksjon utfordringer.

modellen består av en grunndel referert til som en «Starten celle» som vi utføre en rekke convolutions på ulike skalaer og deretter aggregerer resultatene., For å lagre beregningen, 1×1 convolutions er brukt til å redusere inngangskanal dybde. For hver celle, vi lærer et sett av 1×1, 3×3, 5 × 5 filtre som kan lære for å trekke ut funksjoner på ulike skalaer fra inngangen. Maks pooling er også brukt, men med «samme» padding for å bevare dimensjoner, slik at utskriften kan være riktig sammensatt.

Disse forskere publisert en oppfølging papir som er innført mer effektive alternativer til den opprinnelige Starten celle., Convolutions med stor romlig filtre (for eksempel 5×5 eller 7×7) er gunstig i forhold til sin ekspressivitet og evne til å trekke ut funksjoner på en større skala, men beregningen er uforholdsmessig dyre. Forskerne påpekte at et 5×5 ferdige kan være billigere representert ved to stablet 3×3 filtre.

Mens en $5 \ganger 5 \ganger c$ filter krever $25 c$ parametre, to $3 \ganger 3 \ganger c$ filtre krever bare $18c$ parametere. For å mest nøyaktig representere en 5×5-filter, bør vi ikke bruke noen ikke-lineære aktiveringer mellom de to 3×3 lag., Men, det ble oppdaget at «lineær aktivering var alltid dårligere til å bruke rettet lineære enheter i alle stadier av primtallsfaktorisering.»

Det ble også vist at 3×3 convolutions kunne bli ytterligere deconstructed i påfølgende 3×1 og 1×3 convolutions.

Generalisere denne innsikten, kan vi mer effektivt beregne en $n \ganger n$ ferdige som $1 \ganger n$ ferdige etterfulgt av en $n \ganger 1$ ferdige.

Arkitektur

for å forbedre den generelle nettverksytelse, to aux utganger er lagt over hele nettverk., Det ble senere oppdaget at de tidligste aux-utgang hadde ingen merkbar effekt på den endelige kvaliteten på nettverket. Tillegg av ekstra utganger primært dratt slutten ytelse av modellen, som samler seg på en litt bedre verdi enn samme nettverk arkitektur uten ekstra gren. Det antas tillegg av ekstra utganger hadde en regularizing effekt på nettverket.

En revidert, dypere versjon av Starten nettverk som tar seg av mer effektiv Starten celler er vist nedenfor.,

Parametre: 5 millioner kroner (V1) og 23 millioner kroner (V3)

Papers:

  • Gå dypere med convolutions
  • Dette er Starten Arkitektur for Computer Vision

ResNet

Dypt gjenværende nettverk ble en banebrytende idé som muliggjorde utviklingen av mye dypere nettverk (hundrevis av lag i motsetning til flere titalls lag).

det er et allment akseptert prinsipp at dypere nettverk er i stand til å lære mer komplekse funksjoner, og en fremstilling av de innspill som bør føre til bedre ytelse., Men mange forskere observert at å legge til flere lag til slutt hadde en negativ effekt på den endelige ytelsen. Dette problemet var ikke intuitivt forventet, som forklart av forfatterne nedenfor.

La oss se på et grunnere arkitektur og dens dypere kollega som legger til flere lag på det. Det finnes en løsning med bygging til dypere modell: lagt lag identitet kartlegging, og de andre lagene er kopiert fra den lærde grunnere modell., Eksistensen av dette bygget løsning indikerer at en dypere modellen skal produsere noe høyere opplæring feil grunnere enn sin motpart. Men forsøk viser at vår nåværende solvers på hånd er i stand til å finne løsninger som er relativt bra eller bedre enn de bygget løsning (eller ute av stand til å gjøre det mulig tid).,

Dette fenomenet er referert til av forfatterne som nedbrytning problem – samband til det faktum at selv om bedre parameter initialisering teknikker og batch normalisering gi rom for dypere nettverk til å møtes, de ofte møtes på et høyere feilrate enn sine grunnere kolleger. I limit, er det bare å stable flere lag brytes modellen er optimal ytelse.,

forfatterne foreslår et middel til denne forringelsen problemet med å innføre rester av blokker i noe som mellomliggende lag av en blokk lære en gjenværende funksjon med referanse til blokk-inngang. Du kan tenke på dette gjenværende funksjon som en videreutvikling trinn der vi lærer hvordan vi skal justere input funksjon kartet for høyere kvalitet funksjoner. Dette er sammenlignet med en «vanlig» – nettverket der hvert lag er forventet å lære nye og distinkt funksjon kart., I tilfelle at ingen avgrensning er nødvendig, det mellomliggende lag kan lære å gradvis justere sine vekter mot null, slik at det gjenværende blokkere representerer en identitet funksjon.

Merk: Det ble senere oppdaget at en liten endring til det opprinnelige foreslåtte enheten har bedre ytelse ved mer effektivt slik at graderinger overføres gjennom nettverket under trening.,

Bredt gjenværende nettverk
Selv om den opprinnelige ResNet papir fokusert på å skape et nettverk arkitektur for å aktivere dypere strukturer ved å redusere nedbrytning problem, andre forskere har siden påpekte at økt nettverk bredde (kanal dybde) kan være en mer effektiv måte å utvide den samlede kapasitet på nettverket.

Arkitektur

Hver farget blokker av lagene representerer en rekke convolutions av samme dimensjon., Den mapping-funksjonen er periodisk downsampled av strided ferdige ledsaget av en økning i kanal dybde for å bevare den tid kompleksitet per lag. Stiplede linjer angir gjenværende tilkoblinger som vi prosjektet innspill via en 1×1 sett automatisk til å samsvare med målene på den nye blokken.

diagrammet ovenfor synliggjør ResNet 34 arkitektur., For ResNet 50 modell, er vi bare erstatte hver to lag gjenværende blokk med tre lag med flaskehals blokk som bruker 1×1 convolutions å redusere og deretter gjenopprette den kanalen dybde, noe som åpner for en redusert computational legg ved beregning av 3×3 ferdige.,

Parametre: 25 mill (ResNet 50)

Papers:

  • Dypt Gjenværende Læring for Bilde Anerkjennelse
  • Identitet Kartlegginger i Dyp Gjenværende Nettverk
  • Bredt Gjenværende Nettverk

ResNeXt arkitektur er en forlengelse av den dype gjenværende nettverk, som erstatter den standard gjenværende blokk med en som bruker en «split-transform-flett» – strategi (dvs. forgrenet stier i en celle) som brukes i Starten modeller., Ganske enkelt, snarere enn å utføre convolutions over hele inngang funksjonen kartet, blokkere innspill er projisert inn i en serie av lavere (kanal) dimensjonale representasjoner som vi separat bruke et par convolutional filtre før sammenslåing av resultatene.

Denne ideen er ganske lik gruppe convolutions, som var en idé som ble foreslått i den AlexNet papir som en måte å dele den ferdige beregning over to Gpuer. Snarere enn å opprette filtre med full kanal dybde av-inngang, av-inngang er delt kanal-messig i grupper med hvert som vist nedenfor.,

Det ble oppdaget at du bruker gruppert convolutions førte til en grad av spesialisering blant grupper der til separate grupper som er fokusert på ulike kjennetegn ved inngangen bilde.

ResNeXt papir refererer til antall avdelinger eller grupper som cardinality av ResNeXt celle og utfører en rekke eksperimenter for å forstå den relative ytelsen gevinster mellom øke cardinality, dybde og bredde av nettverket. Forsøkene viser at økende cardinality er mer effektive i å nytte modellen ytelse enn å øke bredden eller dybden av nettverket., Forsøkene tyder også på at «gjenværende tilkoblinger er nyttig for optimalisering, mens samlet transformasjoner er (nyttig for) sterkere representasjoner.»

Arkitektur

ResNeXt arkitektur rett og slett mimicks den ResNet modeller, skifte ResNet blokker for ResNeXt blokk.

Papir: Aggregert Gjenværende Transformasjoner for Dyp Nevrale Nettverk

DenseNet

ideen bak tett convolutional nettverk er enkel: det kan være nyttig å referere har kart fra tidligere i nettverket., Dermed kan hvert lag er funksjonen kartet er satt til inngangen av hver suksessive lag i en tett blokk. Dette gjør at senere-lag i nettverket for å direkte utnytte funksjonene fra tidligere lag, oppmuntre funksjonen gjenbruk i nettverket. Forfatterne staten, «slå sammen har-kart lært av forskjellige lag øker variasjonen i input av etterfølgende lag og forbedrer effektiviteten.»

Når jeg først kom over denne modellen, jeg skjønte at det ville ha et absurd antall parametere for å støtte den tette forbindelser mellom lagene., Imidlertid, fordi nettverket er i stand til å direkte ved hjelp av noen tidligere har kart, forfatterne fant at de kunne arbeide med svært liten utgang kanal dypet (dvs. 12 filtre per lag), vesentlig redusere det totale antallet parametre som trengs. Forfatterne refererer til antall filtre som brukes i hver convolutional laget som en «vekst», $k$, siden hvert lag vil ha $k$ mer tv enn de siste, og som et resultat av samlet opp og slå sammen alle tidligere lag til inngang).,

Når sammenlignet med ResNet modeller, DenseNets er rapportert å oppnå bedre resultater med mindre kompleksitet.

Arkitektur

For et flertall av eksperimenter i papir, forfatterne etterlignet den generelle ResNet modell arkitektur, er det bare å bytte i tett blokk som gjentatte enhet.

Parametere:

  • 0,8 millioner (DenseNet-100, k=12)
  • 15.,3 millioner kroner (DenseNet-250, k=24)
  • 40 millioner kroner (DenseNet-190, k=40)

Papir: Tett Koblet Convolutional Nettverk
Video: CVPR 2017 Best Paper Award: Tett Koblet Convolutional Nettverk

Mer å lese