Hva er convolutional nevrale nettverk (CNN)?

0 Comments
Bilde credit:

Denne artikkelen er en del av Demystifying AI, en serie innlegg som (prøve å) skille sjargong og mytene rundt AI.

Siden 1950-tallet, det tidlige dagene av kunstig intelligens, og datamaskinen forskere har prøvd å bygge datamaskiner som kan gjøre følelse av visuelle data., I de påfølgende tiår, feltet, som har blitt kjent som computer vision, så inkrementell fremskritt. I 2012, computer vision tok et kvantesprang når en gruppe forskere fra University of Toronto utviklet en AI-modellen som overgikk det beste bildet anerkjennelse algoritmer med en stor margin.

AI-system, som ble kjent som AlexNet (oppkalt etter sin viktigste skaperen, Alex Krizhevsky), vant i 2012 ImageNet computer vision konkurransen med en utrolig 85 prosent nøyaktighet. Runner-up scoret en beskjeden 74 prosent på testen.,

i hjertet av AlexNet var en convolutional neural network (CNN), en spesialisert type kunstige nevrale nettverk som omtrent etterligner human vision system. I de siste årene, CNNs har blitt viktig for mange computer vision-applikasjoner. Her er hva du trenger å vite om historien og arbeidet til CNNs.

En kort historie av convolutional nevrale nettverk

Convolutional nevrale nettverk, også kalt ConvNets, ble først introdusert i 1980-årene av Yann LeCun, en postdoctoral computer science forsker., LeCun hadde bygget på arbeid gjort av Kunihiko Fukushima, en Japansk forsker som noen få år tidligere, hadde oppfunnet det neocognitron, en svært grunnleggende image anerkjennelse nevrale nettverk.

Den tidlige versjonen av CNNs, kalt LeNet (etter LeCun), kunne gjenkjenne håndskrevne sifre. CNNs funnet en nisje i markedet innen bank-og posttjenester og banktjenester, der de leser zip-koder på konvolutter og tall på sjekker.

Men til tross for deres oppfinnsomhet, ConvNets holdt seg på sidelinjen av computer vision og kunstig intelligens fordi de overfor et alvorlig problem: De kan ikke skaleres., CNNs trengte en masse data og beregne ressurser til å jobbe effektivt for store bilder. På den tiden var teknikken bare gjelder for bilder med lav oppløsning.

I 2012, AlexNet viste at kanskje tiden kommet til å grave dypt læring, den gren av AI som bruker flerlags nevrale nettverk. Tilgjengeligheten av store sett av data, nemlig ImageNet dataset med millioner av merket bilder, og store beregne ressurser aktivert forskere til å lage komplekse CNNs som kan utføre computer vision oppgaver som tidligere var umulig.

Hvordan gjøre CNNs arbeid?,

Convolutional nevrale nettverkene består av flere lag av kunstig nevroner. Kunstig nevroner, en grov etterligning av deres biologiske kolleger, er matematiske funksjoner som kan regne ut den veide summen av flere inn-og utganger med en aktiverings-verdi.

strukturen av en kunstig nevron, den grunnleggende komponenten av kunstige nevrale nettverk (kilde: Wikipedia)

atferden til hvert neuron er definert av sin vekt., Når matet med pixel-verdier, den kunstige nevroner i en CNN plukke ut ulike visuelle funksjoner.

Når du legger inn et bilde i en ConvNet, hver av sine lag genererer flere aktivering kart. Aktivering kart markere de aktuelle funksjonene i bildet. Hver av nevroner tar en lapp av punkter som input, multipliserer sin farge verdier av sine vekter, oppsummerer dem opp, og kjører dem gjennom aktivering av funksjon.

Den første (eller bunnen) laget av CNN vanligvis oppdages grunnleggende funksjoner som horisontale, vertikale og diagonale kanter., Resultatet av den første lag trekkes inn som input i neste lag, som ekstrakter mer komplekse funksjoner, for eksempel hjørner og kombinasjoner av kantene. Som du beveger deg dypere inn i den convolutional nevrale nettverk, lag begynner å oppdage høyere nivå funksjoner som objekter, ansikter, og mer.

Hvert lag av det nevrale nettverket vil trekke ut bestemte funksjoner fra input-bildet.,

driften av å multiplisere pixel-verdier av vekter og summere dem er kalt «ferdige» (derav navnet convolutional nevrale nettverk). En CNN er vanligvis sammensatt av flere ferdige lag, men det inneholder også andre komponenter. Det endelige laget av en CNN er en klassifisering lag, som tar resultatet av den endelige ferdige lag som input (husk, jo høyere ferdige lag oppdage sammensatte objekter).,

Basert på aktivering kart over endelig ferdige lag, klassifisering lag utganger et sett av tillit score (verdier mellom 0 og 1) som angir hvor sannsynlig det er at bildet er å tilhøre en «klasse.»For eksempel, hvis du har en ConvNet som oppdager katter, hunder og hester, resultatet av det siste laget er muligheten for at input-bildet inneholder noen av disse dyrene.,

Det øverste laget av CNN bestemmer klasse av bildet basert på funksjoner som er hentet ut av convolutional lag(kilde: http://www.deeplearningbook.org)

Trening convolutional nevrale nettverk

En av de store utfordringene med å utvikle CNNs er å justere vektingen av de enkelte nervecellene til å trekke ut de riktige funksjonene fra bilder. Prosessen med å justere disse vektene kalles «trening» nevrale nettverk.

I begynnelsen, CNN starter med tilfeldige vekter., Under trening, utviklerne gi nevrale nettverk med en stor dataset av bilder forklart med sine respektive klasser (katt, hund, hest, osv.). Den ConvNet prosesser hvert bilde med sine tilfeldige verdier, og deretter sammenligner resultatet med bildet er riktige etiketten. Hvis nettverket er utgang, ikke samsvarer med etiketten—som trolig tilfellet på begynnelsen av trening prosess—det er en liten justering av vekter av sin nevroner, slik at neste gang det ser samme bilde, resultatet vil være litt nærmere det riktige svaret.,

korrigeringer er gjort gjennom en teknikk som kalles backpropagation (eller backprop). I hovedsak, backpropagation, optimaliserer tuning prosessen og gjør det lettere for nettverket, for å avgjøre hvilke enheter til å justere i stedet for å lage tilfeldige endringer.

Hver kjøring av hele opplæringen dataset som er kalt en «epoke.»Det ConvNet går gjennom flere epoker under trening, justere sin vekt i små mengder. Etter hver epoke, nevrale nettverk blir litt bedre på å klassifisere trening bilder., Som CNN forbedrer, de justeringer det gjør vektene blir mindre og mindre. På et tidspunkt, vil nettverket «konvergerer», som betyr at den egentlig blir så bra som det kan.

Etter trening CNN, utviklerne bruker en test for datasettet for å kontrollere nøyaktigheten. Testen datasett er et sett av merket bilder som ikke var en del av treningsprosessen. Hvert bilde er kjørt gjennom ConvNet, og resultatet er i forhold til den faktiske del av bildet. Hovedsak, test dataset evaluerer hvor godt det nevrale nettverket har blitt på å klassifisere bildene er det ikke har sett før.,

Hvis en CNN scorer bra på sin trening data, men scorer dårlig på testen data, kan det sies å ha vært «overfitted.»Dette skjer vanligvis når det ikke er nok variasjon i treningen data eller når ConvNet går gjennom mange epoker på trening dataset.

suksessen av convolutional nevrale nettverk er i stor grad på grunn av tilgjengeligheten av store bildet datasett som er utviklet i det siste tiåret. ImageNet, konkurransen er nevnt i begynnelsen av denne artikkelen, fikk sin tittel fra en navnebror dataset med mer enn 14 millioner merket bilder., Det er andre, mer spesialiserte datasett, for eksempel MNIST, en database på 70.000 bilder av håndskrevne tall.

Du trenger ikke, men trenger å trene hver convolutional nevrale nettverk på millioner av bilder. I mange tilfeller kan du bruke en pretrained modell, slik som AlexNet eller Microsofts ResNet, og finetune det for en annen, mer spesialisert program. Denne prosessen kalles å overføre læring, der en utdannet nevrale nettverk er retrained et mindre sett av nye eksempler.,

grensene for convolutional nevrale nettverk

til Tross for sin kraft og kompleksitet, convolutional nevrale nettverk er, i hovedsak, mønster-anerkjennelse maskiner. De kan utnytte massive beregne ressurser til å ferret ut små og lite iøynefallende visuelle mønstre som kan gå ubemerket for det menneskelige øyet. Men når det kommer til å forstå betydningen av innholdet i bildene, de gjør det dårlig.

Tenk deg følgende bilde. En godt trent ConvNet vil fortelle deg at det er bilde av en soldat, et barn og det Amerikanske flagget., Men en person kan gi en lang beskrivelse av scenen, og snakke om militærtjeneste, turer i et fremmed land, følelsen av hjemlengsel, gleden over å gjenforenes med familien, osv. Kunstige nevrale nettverk har ingen oppfatning av disse begrepene.

Bilde credit:

Disse grensene bli mer tydelig i praktiske anvendelser av convolutional nevrale nettverk. For eksempel, CNNs er nå mye brukt til å moderere innhold på sosiale medier., Men til tross for den store depoter av bilder og videoer de er opplært på, kan de fortsatt sliter med å oppdage og blokkere upassende innhold. I ett tilfelle, Facebook innhold-moderasjon AI utestengt bilde av en 30.000 år gammel statue som nakenhet.

Også, nevrale nettverk begynne å bryte så snart de beveger seg litt ut av sin sammenheng. Flere studier har vist at CNNs trent på ImageNet og andre populære datasett ikke klarer å oppdage objekter når de ser dem under ulike lysforhold og fra nye vinkler.,

En fersk undersøkelse utført av forskere ved MIT-IBM Watson AI Lab høydepunkter disse svakhetene. Det introduserer også ObjectNet, et dataset som bedre representerer de ulike nyansene av hvordan objektene er sett i det virkelige liv. CNNs ikke utvikle den mentale modeller som mennesker har om forskjellige objekter og deres evne til å forestille seg at disse objektene i tidligere usett sammenhenger.

ImageNet vs virkelighet: I ImageNet (venstre kolonne) gjenstander er pent plassert i ideelle bakgrunnen og lysforhold., I den virkelige verden, ting er messier (kilde: objectnet.dev)

et Annet problem med convolutional nevrale nettverk er deres manglende evne til å forstå forholdet mellom ulike objekter. Vurder følgende bildet, som er kjent som en «Bongard problem,» som er oppkalt etter dens oppfinner, russisk forsker Mikhail Moiseevich Bongard. Bongard problemer presentere deg med to sett av bilder (seks på venstre og seks på høyre side), og du må forklare den største forskjellen mellom de to settene., For eksempel, i eksempelet nedenfor, bilder i venstre settet inneholder ett objekt og bilder i riktig sett inneholder to objekter.

Det er lett for mennesker å trekke slike konklusjoner fra slike små mengder av prøver. Hvis jeg vise dere disse to settene og så gi deg med et nytt bilde, vil du være i stand til raskt avgjøre om det skal gå til venstre eller høyre satt.

Bongard problemer er lett for mennesker å løse, men vanskelig for computer vision systemer., (Kilde: Harry Foundalis)

Men det er fortsatt ingen convolutional nevrale nettverk som kan løse Bongard problemer med så få opplæring eksempler. I en studie utført i 2016, AI forskere trent en CNN på 20.000 Bongard prøver og testet det på 10.000 mer. CNN ‘ s opptreden var mye lavere enn for gjennomsnittet mennesker.

særegenheter av ConvNets også gjøre dem sårbare for alternative angrep, forstyrrelsene i input-data som går ubemerket av det menneskelige øye, men påvirker atferden av nevrale nettverk., Alternative angrep har blitt en stor kilde til bekymring så dypt læring og spesielt CNNs har blitt en integrert del av mange kritiske applikasjoner som selvkjørende biler.

Motstandere eksempel: hvis du Legger til en umerkelig lag av støy til dette panda bildet fører til en convolutional nevrale nettverk til å tro at det er en gibbon.

betyr dette at CNNs er ubrukelig?, Til tross for begrensningene av convolutional nevrale nettverk, men det er ingen tvil om at de har forårsaket en revolusjon innen kunstig intelligens. I dag, CNNs er brukt i mange computer vision-applikasjoner som for eksempel ansiktsgjenkjenning, bilde søk og redigering, augmented reality, og mer. I noen områder, som for eksempel medisinsk bildebehandling, veltrente ConvNets kanskje utkonkurrere menneskelige eksperter på å oppdage relevante mønstre.,

Som fremskritt i convolutional nevrale nettverk vis, våre prestasjoner er bemerkelsesverdig og nyttig, men vi er fremdeles langt fra å kopiere de viktigste komponentene av menneskelig intelligens.


Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *