Vad är convolutional neurala nätverk (CNN)?
denna artikel är en del av Demystifying AI, en serie inlägg som (försök att) disambiguera jargong och myter kring AI.
sedan 1950-talet, de tidiga dagarna av artificiell intelligens, har Dataforskare försökt att bygga datorer som kan göra känsla av visuella data., Under de följande decennierna såg fältet, som har blivit känt som datorseende, stegvisa framsteg. I 2012 tog computer vision ett kvantsteg när en grupp forskare från University of Toronto utvecklade en AI-modell som överträffade de bästa bildigenkänningsalgoritmerna med stor marginal.
AI-systemet, som blev känt som AlexNet (uppkallat efter sin huvudskapare, Alex Krizhevsky), vann 2012 ImageNet computer vision contest med en fantastisk 85 procent noggrannhet. Tvåan gjorde en blygsam 74 procent på provet.,
i hjärtat av AlexNet var ett konvolutionalt neuralt nätverk (CNN), en specialiserad typ av artificiellt neuralt nätverk som ungefär efterliknar det mänskliga visionssystemet. Under de senaste åren, CNNs har blivit avgörande för många datorseende applikationer. Här är vad du behöver veta om CNNs historia och arbete.
en kort historia av konvolutionella neurala nätverk
Konvolutionella neurala nätverk, även kallade ConvNets, introducerades först på 1980-talet av Yann LeCun, en postdoktoral datavetenskapsforskare., LeCun hade byggt på det arbete som gjorts av Kunihiko Fukushima, en japansk forskare som några år tidigare hade uppfunnit neocognitron, ett mycket grundläggande bildigenkänning neuralt nätverk.
Den tidiga versionen av CNNs, som kallas LeNet (efter LeCun), kunde känna igen handskrivna siffror. CNNs hittade en nischmarknad inom bank-och posttjänster och bankverksamhet, där de läser postnummer på kuvert och siffror på kontroller.
men trots sin uppfinningsrikedom, ConvNets kvar på sidan av datorseende och artificiell intelligens eftersom de inför ett allvarligt problem: de kunde inte skala., CNNs behövde mycket data och beräkna resurser för att arbeta effektivt för stora bilder. Vid den tiden var tekniken endast tillämplig på bilder med låga upplösningar.
under 2012 visade AlexNet att det kanske var dags att återkomma till deep learning, grenen av AI som använder flera lager neurala nätverk. Tillgången till stora uppsättningar data, nämligen ImageNet dataset med miljontals märkta bilder, och stora datorresurser gjorde det möjligt för forskare att skapa komplexa CNNs som kunde utföra datorvisionsuppgifter som tidigare var omöjliga.
hur fungerar CNNs?,
Konvolutionella neurala nätverk består av flera lager av artificiella neuroner. Artificiella neuroner, en grov imitation av deras biologiska motsvarigheter, är matematiska funktioner som beräknar den viktade summan av flera ingångar och matar ut ett aktiveringsvärde.
beteendet hos varje neuron definieras av dess vikter., När de matas med pixelvärdena, plockar de artificiella neuronerna i en CNN ut olika visuella funktioner.
När du matar in en bild i en ConvNet genererar var och en av dess lager flera aktiveringskartor. Aktiveringskartor markerar de relevanta funktionerna i bilden. Var och en av neuronerna tar en patch av pixlar som ingång, multiplicerar deras färgvärden med dess vikter, summerar dem och kör dem genom aktiveringsfunktionen.
det första (eller nedre) skiktet i CNN upptäcker vanligtvis grundläggande funktioner som horisontella, vertikala och diagonala kanter., Utsignalen från det första skiktet matas som inmatning av nästa lager, vilket extraherar mer komplexa egenskaper, såsom hörn och kombinationer av kanter. När du flyttar djupare in i det konvolutionella neurala nätverket börjar lagren upptäcka funktioner på högre nivå som objekt, ansikten och mer.
funktionen att multiplicera pixelvärden med vikter och summera dem kallas ”convolution” (därav namnet convolutional neural network). En CNN består vanligtvis av flera faltningsskikt, men den innehåller också andra komponenter. Det slutliga skiktet av ett CNN är ett klassificeringsskikt, som tar utsignalen från det slutliga faltningsskiktet som ingång (kom ihåg att de högre faltningsskikten detekterar komplexa föremål).,
baserat på aktiveringskartan för det slutliga faltningsskiktet matar klassificeringsskiktet ut en uppsättning konfidenspoäng (värden mellan 0 och 1) som anger hur sannolikt bilden ska tillhöra en ”klass.”Till exempel, om du har en ConvNet som upptäcker katter, hundar och hästar, är utmatningen från det sista lagret möjligheten att inmatningsbilden innehåller något av dessa djur.,
Utbildning convolutional neurala nätverk
En av de stora utmaningarna i att utveckla CNNs är att justera vikten av de enskilda nervceller för att extrahera de rätta egenskaperna från bilder. Processen att justera dessa vikter kallas” träning ” det neurala nätverket.
i början börjar CNN med slumpmässiga vikter., Under träningen ger utvecklarna det neurala nätverket ett stort dataset av bilder som kommenteras med sina motsvarande klasser (katt, hund, häst etc.). ConvNet bearbetar varje bild med sina slumpmässiga värden och jämför sedan dess utgång med bildens korrekta etikett. Om nätverkets utgång inte matchar etiketten-vilket sannolikt är fallet i början av träningsprocessen—gör det en liten justering av dess neurons vikter så att nästa gång den ser samma bild, kommer utmatningen att vara lite närmare det rätta svaret.,
korrigeringarna görs genom en teknik som kallas backpropagation (eller backprop). I huvudsak optimerar backpropagation avstämningsprocessen och gör det lättare för nätverket att bestämma vilka enheter som ska justeras istället för att göra slumpmässiga korrigeringar.
varje körning av hela träningsdatauppsättningen kallas en ”epok”.”ConvNet går igenom flera epoker under träning och justerar dess vikter i små mängder. Efter varje epok blir det neurala nätverket lite bättre att klassificera träningsbilderna., När CNN förbättras blir justeringarna av vikterna mindre och mindre. Vid något tillfälle konvergerar nätverket, vilket betyder att det i huvudsak blir så bra som möjligt.
Efter att ha tränat CNN använder utvecklarna en testdatauppsättning för att verifiera dess noggrannhet. Testdatauppsättningen är en uppsättning märkta bilder som inte ingår i träningsprocessen. Varje bild körs genom ConvNet, och utmatningen jämförs med bildens faktiska etikett. I huvudsak utvärderar testdatauppsättningen hur bra det neurala nätverket har blivit vid klassificering av bilder som det inte har sett tidigare.,
om en CNN får bra resultat på sina träningsdata men får dåligt resultat på testdata, sägs det ha blivit ”överfört.”Detta händer vanligtvis när det inte finns tillräckligt med variation i träningsdata eller när ConvNet går igenom för många epoker på träningsdatauppsättningen.
framgången för konvolutionella neurala nätverk beror till stor del på tillgången på stora bilddataset som utvecklats under det senaste decenniet. ImageNet, tävlingen som nämns i början av denna artikel, fick sin titel från en namne dataset med mer än 14 miljoner märkta bilder., Det finns andra mer specialiserade datauppsättningar, såsom MNIST, en databas med 70 000 bilder av handskrivna siffror.
du behöver dock inte träna varje invecklat neuralt nätverk på miljontals bilder. I många fall kan du använda en pretrained modell, som AlexNet eller Microsofts ResNet, och finjustera den för en annan mer specialiserad tillämpning. Denna process kallas överföringsinlärning, där ett utbildat neuralt nätverk omskolas en mindre uppsättning nya exempel.,
gränserna för konvolutionella neurala nätverk
trots sin kraft och komplexitet är konvolutionella neurala nätverk i huvudsak mönsterigenkänningsmaskiner. De kan utnyttja massiva datorresurser för att fritera ut små och inkonsekventa visuella mönster som kan gå obemärkt för det mänskliga ögat. Men när det gäller att förstå betydelsen av innehållet i bilderna, utför de dåligt.
Tänk på följande bild. En välutbildad ConvNet kommer att berätta att det är bilden av en soldat, ett barn och den amerikanska flaggan., Men en person kan ge en lång beskrivning av scenen och prata om militärtjänst, turer i ett främmande land, känslan av längtan efter hemmet, glädjen att återförenas med familjen etc. Artificiella neurala nätverk har ingen uppfattning om dessa begrepp.
dessa gränser blir tydligare i praktiska tillämpningar av konvolutionella neurala nätverk. Till exempel, CNNs är nu allmänt används för att moderera innehåll på sociala medier nätverk., Men trots de stora repositorierna av bilder och videoklipp som de är utbildade på, kämpar de fortfarande för att upptäcka och blockera olämpligt innehåll. I ett fall förbjöd Facebook: s innehåll-moderation AI bilden av en 30 000-årig staty som nakenhet.
neurala nätverk börjar också bryta så snart de flyttar lite ur sitt sammanhang. Flera studier har visat att CNNs utbildad på ImageNet och andra populära serier misslyckas med att upptäcka objekt när de ser dem under olika ljusförhållanden och från nya vinklar.,
en ny studie av forskare vid MIT-IBM Watson AI Lab belyser dessa brister. Det introducerar också ObjectNet, en dataset som bättre representerar de olika nyanserna av hur objekt ses i det verkliga livet. CNNs utvecklar inte de mentala modeller som människor har om olika objekt och deras förmåga att föreställa sig dessa objekt i tidigare osynliga sammanhang.
ett annat problem med konvolutionella neurala nätverk är deras oförmåga att förstå relationerna mellan olika objekt. Tänk på följande bild, som är känd som ett ”Bongard-problem”, uppkallat efter sin uppfinnare, Rysk datavetare Mikhail Moiseevich Bongard. Bongard problem presentera dig med två uppsättningar av bilder (sex till vänster och sex till höger), och du måste förklara den viktigaste skillnaden mellan de två uppsättningarna., Till exempel i exemplet nedan innehåller bilder i den vänstra uppsättningen ett objekt och bilder i den högra uppsättningen innehåller två objekt.
det är lätt för människor att dra sådana slutsatser från sådana små mängder prover. Om jag visar dig dessa två uppsättningar och sedan ge dig en ny bild, kommer du att kunna snabbt avgöra om det ska gå in i vänster eller höger set.
men det finns fortfarande inget konvolutionellt neuralt nätverk som kan lösa Bongardproblem med så få träningsexempel. I en studie utförd i 2016 utbildade AI-forskare en CNN på 20,000 Bongard-prover och testade den på 10,000 mer. CNN: s prestanda var mycket lägre än för genomsnittliga människor.
ConvNets särdrag gör dem också sårbara för motståndarattacker, störningar i inmatningsdata som går obemärkt för det mänskliga ögat men påverkar neurala nätverkens beteende., Kontradiktoriska attacker har blivit en viktig källa till oro som djupt lärande och särskilt CNNs har blivit en integrerad del av många kritiska tillämpningar såsom självkörande bilar.
betyder det att CNNs är värdelösa?, Trots gränserna för konvolutionella neurala nätverk, men det finns ingen förneka att de har orsakat en revolution i artificiell intelligens. Idag, CNNs används i många datorseende program som ansiktsigenkänning, bildsökning och redigering, augmented reality, och mer. På vissa områden, t.ex. medicinsk bildbehandling, kan välutbildade Konvnetter till och med överträffa mänskliga experter för att upptäcka relevanta mönster.,
som framsteg i konvolutionella neurala nätverk visar är våra prestationer anmärkningsvärda och användbara, men vi är fortfarande väldigt långt ifrån att replikera nyckelkomponenterna i mänsklig intelligens.