Hvad er convolutional neurale netværk (CNN)?

Billede kredit:

Denne artikel er en del af Afmystificere AI, en serie af indlæg, at (forsøge at) ord så vidt jargon og myter omkring AI.

siden 1950 ‘ erne, de tidlige dage af kunstig intelligens, har computerforskere forsøgt at bygge computere, der kan give mening om visuelle data., I de efterfølgende årtier, feltet, der er blevet kendt som computer vision, så trinvise fremskridt. I 2012 tog computer vision et kvantespring, da en gruppe forskere fra University of Toronto udviklede en AI-model, der overgik de bedste billedgenkendelsesalgoritmer med en stor margin.AI-systemet, der blev kendt som ale .net (opkaldt efter dets hovedskaber, Ale.Kri .hevsky), vandt 2012 ImageNet computer vision contest med en fantastisk 85 procent nøjagtighed. Runner-up scorede en beskeden 74 procent på testen.,i hjertet af Ale .net var et konvolutionelt neuralt netværk (CNN), en specialiseret type kunstigt neuralt netværk, der groft efterligner det menneskelige synssystem. I de senere år er CNN ‘ er blevet afgørende for mange computersynsapplikationer. Her er hvad du behøver at vide om CNNs ‘ historie og arbejde.

En kort historie om convolutional neurale netværk

Convolutional neurale netværk, også kaldet ConvNets, først blev indført i 1980’erne af Yann LeCun, en postdoc datalogi-forsker., LeCun havde bygget på det arbejde, der blev udført af Kunihiko Fukushima, en japansk videnskabsmand, der et par år tidligere havde opfundet neocognitron, et meget grundlæggende billedgenkendelsesneuralt netværk.

Den tidlige version af CNNs, kaldet LeNet (efter LeCun), kunne genkende håndskrevne cifre. CNNs fandt et nichemarked inden for bank-og posttjenester og bank, hvor de læste postnumre på konvolutter og cifre på checks.

men på trods af deres opfindsomhed forblev ConvNets på sidelinjen for computersyn og kunstig intelligens, fordi de stod over for et alvorligt problem: de kunne ikke skalere., CNNs havde brug for en masse data og beregne ressourcer til at arbejde effektivt for store billeder. På det tidspunkt var teknikken kun anvendelig for billeder med lave opløsninger.

i 2012 viste Ale .net, at tiden måske var inde til at revidere deep learning, filialen af AI, der bruger flerlags neurale netværk. Tilgængeligheden af store datasæt, nemlig ImageNet datasæt med millioner af mærkede billeder, og langt beregne ressourcer aktiveret forskere til at skabe komplekse CNNs at kunne udføre computer vision opgaver, som tidligere var umuligt.

Hvordan fungerer CNNs?,

Konvolutionelle neurale netværk består af flere lag kunstige neuroner. Kunstige neuroner, en grov efterligning af deres biologiske modstykker, er matematiske funktioner, der beregner den vægtede sum af flere indgange og udgange en aktiveringsværdi.

struktur af en kunstig neuron, den grundlæggende komponent i kunstige neurale netværk (kilde: Wikipedia)

adfærd af hver neuron er defineret ved sin vægt., Når de fodres med Pi .elværdierne, udvælger de kunstige neuroner i en CNN forskellige visuelle funktioner.

Når du indtaster et billede i et Konvnet, genererer hvert af dets lag flere aktiveringskort. Aktiveringskort fremhæver de relevante funktioner i billedet. Hver af neuronerne tager en patch af Pi .els som input, multiplicerer deres farveværdier med sine vægte, opsummerer dem og kører dem gennem aktiveringsfunktionen.

det første (eller nederste) lag af CNN registrerer normalt grundlæggende funktioner såsom vandrette, lodrette og diagonale kanter., Udgangen af det første lag fodres som input af det næste lag, som ekstraherer mere komplekse funktioner, såsom hjørner og kombinationer af kanter. Når du bevæger dig dybere ind i det konvolutionelle neurale netværk, begynder lagene at registrere funktioner på højere niveau som objekter, ansigter og mere.

Hvert lag af det neurale netværk, vil udtrække specifikke funktioner fra den input-billede.,

operationen med at multiplicere pi .elværdier med vægte og opsummere dem kaldes “convolution” (deraf navnet convolutional neuralt netværk). En CNN er normalt sammensat af flere foldelag, men den indeholder også andre komponenter. Det sidste lag af en CNN er et klassifikationslag, der tager udgangen af det endelige konvolutionslag som input (husk, de højere konvolutionslag registrerer komplekse objekter).,

baseret på aktiveringskortet for det endelige konvolutionslag udsender klassificeringslaget et sæt konfidensresultater (værdier mellem 0 og 1), der angiver, hvor sandsynligt billedet hører til en “klasse.”For eksempel, hvis du har et Konvnet, der registrerer katte, hunde og heste, er udgangen af det sidste lag muligheden for, at inputbilledet indeholder et af disse dyr.,

Det øverste lag af CNN bestemmer klasse af billedet, der er baseret på funktioner, der udvindes af convolutional lag(kilde: http://www.deeplearningbook.org)

Uddannelse convolutional neurale netværk

En af de store udfordringer for at udvikle CNNs er justering af vægten af de enkelte neuroner til at udtrække de rigtige funktioner fra billeder. Processen med at justere disse vægte kaldes “træning” det neurale netværk.

i begyndelsen starter CNN med tilfældige vægte., Under træning giver udviklerne det neurale netværk et stort datasæt af billeder annoteret med deres tilsvarende klasser (kat, hund, hest osv.). ConvNet behandler hvert billede med sine tilfældige værdier og sammenligner derefter dets output med billedets korrekte etiket. Hvis netværkets output ikke stemmer overens med etiketten—hvilket sandsynligvis er tilfældet i begyndelsen af træningsprocessen—foretager det en lille justering af vægten af dets neuroner, så næste gang det ser det samme billede, vil dets output være lidt tættere på det rigtige svar.,

korrektionerne foretages ved hjælp af en teknik kaldet backpropagation (eller backprop). I det væsentlige optimerer backpropagation indstillingsprocessen og gør det lettere for netværket at beslutte, hvilke enheder der skal justeres i stedet for at foretage tilfældige korrektioner.

hvert løb af hele træningsdatasættet kaldes en “epoke.”ConvNet gennemgår flere epoker under træning og justerer sine vægte i små mængder. Efter hver epoke bliver det neurale netværk lidt bedre til at klassificere træningsbillederne., Efterhånden som CNN forbedres, bliver justeringerne af vægten mindre og mindre. På et tidspunkt “konvergerer netværket”, hvilket betyder, at det i det væsentlige bliver så godt som muligt.

efter træning af CNN bruger udviklerne et testdatasæt til at verificere dets nøjagtighed. Testdatasættet er et sæt mærkede billeder, der ikke var en del af træningsprocessen. Hvert billede køres gennem Konvnet, og output sammenlignes med den faktiske etiket på billedet. I det væsentlige evaluerer testdatasættet, hvor godt det neurale netværk er blevet til at klassificere billeder, det ikke har set før.,

Hvis en CNN scorer godt på sine træningsdata, men scorer dårligt på testdataene, siges det at være blevet “overfyldt.”Dette sker normalt, når der ikke er nok variation i træningsdataene, eller når ConvNet gennemgår for mange epoker på træningsdatasættet.

succesen med konvolutionelle neurale netværk skyldes i vid udstrækning tilgængeligheden af enorme billeddatasæt udviklet i det sidste årti. ImageNet, den konkurrence, der blev nævnt i begyndelsen af denne artikel, fik sin titel fra et navnebringende datasæt med mere end 14 millioner mærkede billeder., Der er andre mere specialiserede datasæt, såsom MNIST, en database med 70.000 billeder af håndskrevne cifre.

du behøver dog ikke at træne hvert konvolutionelt neuralt netværk på millioner af billeder. I mange tilfælde kan du bruge en forudbestemt model, såsom Ale .net eller Microsofts ResNet, og finjustere den til en anden mere specialiseret applikation. Denne proces kaldes transfer learning, hvor et trænet neuralt netværk omskoleres et mindre sæt nye eksempler.,

grænserne for konvolutionelle neurale netværk

På trods af deres magt og kompleksitet er konvolutionelle neurale netværk i det væsentlige mønstergenkendelsesmaskiner. De kan udnytte massive compute ressourcer til at opsnuse bittesmå og uanselige visuelle mønstre, der kan gå ubemærket hen til det menneskelige øje. Men når det kommer til at forstå betydningen af indholdet af billeder, udfører de dårligt.

overvej følgende billede. En veluddannet ConvNet vil fortælle dig, at det er billedet af en soldat, et barn og det amerikanske flag., Men en person kan give en lang beskrivelse af scenen og tale om militærtjeneste, ture i et fremmed land, følelsen af længsel efter hjemmet, glæden ved at genforene med familien osv. Kunstige neurale netværk har ingen forestilling om disse begreber.

Billede kredit:

Disse grænser bliver mere tydelig i praktiske anvendelser af convolutional neurale netværk. For eksempel er CNN ‘ er nu vidt brugt til at moderere indhold på sociale medienetværk., Men på trods af de store lagre af billeder og videoer, de er uddannet på, kæmper de stadig for at opdage og blokere upassende indhold. I et tilfælde forbød Facebook ‘ s indholdsmoderation AI billedet af en 30.000 år gammel statue som nøgenhed.

også neurale netværk begynder at bryde, så snart de bevæger sig lidt ud af deres kontekst. Flere undersøgelser har vist, at CNNs uddannet på ImageNet og andre populære datasæt, der undlader at registrere objekter, når de ser dem under forskellige lysforhold og fra nye vinkler.,

en nylig undersøgelse foretaget af forskere ved MIT-IBM AIATSON AI Lab fremhæver disse mangler. Det introducerer også ObjectNet, et datasæt, der bedre repræsenterer de forskellige nuancer af, hvordan objekter ses i det virkelige liv. CNN ‘ er udvikler ikke de mentale modeller, som mennesker har om forskellige objekter og deres evne til at forestille sig disse objekter i tidligere usete sammenhænge.

ImageNet vs virkelighed: I ImageNet (venstre kolonne) objekter er pænt placeret, i ideelle baggrund og lysforhold., I den virkelige verden er tingene messier (kilde: objectnet.dev)

et Andet problem med convolutional neurale netværk, er deres manglende evne til at forstå forbindelser mellem forskellige objekter. Overvej følgende billede, der er kendt som et “Bongard-problem”, opkaldt efter sin opfinder, den russiske computerforsker Mikhail Moiseevich Bongard. Bongard problemer giver dig to sæt billeder (seks til venstre og seks til højre), og du skal forklare nøgleforskellen mellem de to sæt., For eksempel, i eksemplet nedenfor, billeder i venstre sæt indeholder et objekt og billeder i højre sæt indeholder to objekter.

det er nemt for mennesker at drage sådanne konklusioner fra så små mængder prøver. Hvis jeg viser dig disse to sæt og derefter giver dig et nyt billede, kan du hurtigt beslutte, om det skal gå ind i venstre eller højre sæt.

Bongard problemer er let for mennesker at løse, men svært for computer vision-systemer., (Kilde: Harry Foundalis)

Men der er stadig ingen convolutional neurale netværk, der kan løse Bongard problemer med så få uddannelse eksempler. I en undersøgelse udført i 2016 uddannede AI-forskere en CNN på 20,000 Bongard-prøver og testede den på 10,000 mere. CNN ‘ s præstation var meget lavere end for gennemsnitlige mennesker.

de særlige forhold ved ConvNets gør dem også sårbare over for kontradiktoriske angreb, forstyrrelser i inputdata, der går upåagtet hen til det menneskelige øje, men påvirker adfærden hos neurale netværk., Kontradiktoriske angreb er blevet en vigtig kilde til bekymring som dyb læring og især CNNs er blevet en integreret del af mange kritiske applikationer såsom selvkørende biler.

Kontradiktorisk eksempel: Tilføjelse af en umærkelig lag af støj til denne panda billede forårsager en convolutional neurale netværk til at forveksle det med en gibbon.

betyder det, At Cnn ‘ er er ubrugelige?, På trods af grænserne for konvolutionelle neurale netværk er der imidlertid ingen tvivl om, at de har forårsaget en revolution inden for kunstig intelligens. I dag bruges CNNs i mange computersynsapplikationer som ansigtsgenkendelse, billedsøgning og redigering, augmented reality og meget mere. På nogle områder, såsom medicinsk billedbehandling, kan veluddannede Konvnets endda overgå menneskelige eksperter til at opdage relevante mønstre.,

som fremskridt i konvolutionelle neurale netværk viser, er vores resultater bemærkelsesværdige og nyttige, men vi er stadig meget langt fra at replikere nøglekomponenterne i menneskelig intelligens.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *