INTRODUKSJON:
Convolutional Neural Network (CNN eller ConvNet) er en klasse av dype nevrale nettverk som hovedsakelig brukes til å gjøre bildegjenkjenning, bildeklassifisering, objektdeteksjon, etc.
fremskrittene I Datasyn med Dyp Læring har blitt konstruert og perfeksjonert med tiden, først og fremst over en bestemt algoritme — et Innviklet Nevralt Nettverk.
Google bruker den til bildesøk, Facebook For deres automatiske merkingsalgoritmer, Amazon for deres produktanbefalinger, og listen fortsetter og fortsetter …
med HJELP AV CNN kan du gjøre mange kule ting som, jeg har laget en håndskrevet siffergjenkjenningsmodell som forutsier sifferet i bildet med 98.82% nøyaktighet.
Bonus:
kode -> https://github.com/UPPERCASEGUY/CNN-implementation
Du kan også lage dine kule modeller med liten hjelp i begreper om CNN. Denne bloggen vil begynne å bygge konseptene dine om CNNs, og du er god til å gå!
INNVIKLEDE NEVRALE NETTVERK:
bildeklassifisering er oppgaven med å ta et inngangsbilde og sende ut en klasse eller en sannsynlighet for klasser som best beskriver bildet. I CNN tar vi et bilde som inngang, legger vekt på de ulike aspektene/funksjonene i bildet og kan skille en fra en annen. Forbehandlingen som kreves I CNN, er mye mindre sammenlignet med andre klassifiseringsalgoritmer.
ARKITEKTUR:
Datamaskiner kan ikke se ting som vi gjør, for datamaskiner er bildet bare en matrise.
EN CNN har vanligvis tre lag: et convolutional lag, pooling lag, og fullt tilkoblet lag.
Convolutional lag:
jeg er ganske sikker på at du har kommet over ordet ‘convolution’ i livet ditt før, og her er det meningen endres ikke. Ja! du har rett, dette laget handler om convolving objekter på hverandre. Konvolusjonslaget er kjernebyggesteinen TIL CNN. Den bærer hoveddelen av nettverkets beregningsorientert belastning.
hovedmålet med konvolusjon er å trekke ut funksjoner som kanter, farger, hjørner fra inngangen. Når vi går dypere inn i nettverket, begynner nettverket å identifisere mer komplekse funksjoner som former,sifre, ansiktsdeler også.
dette laget utfører et prikkprodukt mellom to matriser, hvor en matrise(kjent som filter/kjerne)er settet med lærbare parametere, og den andre matrisen er den begrensede delen av bildet.
hvis bildet ER RGB, vil filteret ha mindre høyde og bredde sammenlignet med bildet, men det vil ha samme dybde (høyde x bredde x 3) som i bildet.
for RGB-bilder kan den innviklede delen visualiseres som følger:
på slutten av konvolusjonsprosessen har vi en utvalgt matrise som har mindre parametere(dimensjoner) enn det faktiske bildet, samt tydeligere funksjoner enn den faktiske. Så, nå vil vi jobbe med vår utvalgte matrise fra nå av.
Sammenslåing Lag:
dette laget er utelukkende for å redusere beregningskraften som kreves for å behandle dataene. Det gjøres ved å redusere dimensjonene til den utvalgte matrisen enda mer. I dette laget prøver vi å trekke ut de dominerende egenskapene fra en begrenset mengde nabolag. La oss gjøre det klart ved å ta et eksempel.
den oransje matrisen er vår utvalgte matrise, den brune er en pooling kernel, og vi får vår blå matrise som utgang etter pooling er ferdig. Så, her hva vi gjør er å ta maksimalt blant alle tallene som er i pooling regionen og skiftende pooling regionen hver gang for å behandle et annet nabolag av matrisen.
det finnes to typer pooling teknikker: GJENNOMSNITTLIG pooling og MAX-pooling.
forskjellen mellom disse to er, I GJENNOMSNITT-pooling, tar vi gjennomsnittet av alle verdiene for pooling region og I MAX-pooling, tar vi bare maksimum blant alle verdiene som ligger inne i pooling region.
Så, etter å ha samlet lag, har vi en matrise som inneholder hovedtrekk i bildet, og denne matrisen har enda mindre dimensjoner, noe som vil hjelpe mye i neste trinn.
fullt tilkoblet lag:
Til nå har Vi Ikke gjort noe med å klassifisere forskjellige bilder.
Herfra skal vi faktisk gjøre klassifiseringsprosessen.
Nå som vi har konvertert vårt inngangsbilde til en egnet form for vår multi-Level fullt tilkoblet arkitektur, skal vi flate bildet i en kolonnevektor. Den flattede utgangen blir matet til et fremovergående nevralt nettverk og backpropagation brukt på hver iterasjon av trening. Over en rekke epoker kan modellen skille mellom dominerende og visse lavnivåfunksjoner i bilder og klassifisere dem.
SAMMENDRAG:
- Gi inngangsbildet til konvolusjonslag.
- Ta konvolusjon med utvalgte kernel/filtre.
- Bruk samlingslag for å redusere dimensjonene.
- Legg til disse lagene flere ganger.
- Flat ut utdata og mat inn i et fullt tilkoblet lag.
- tren nå modellen med backpropagation ved hjelp av logistisk regresjon.
Og du har laget ditt convolutional nevrale nettverk.