den här artikeln är en del av Demystifying AI, en serie inlägg som (försök) disambiguerar jargongen och myterna 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.,