Wat zijn convolutionele neurale netwerken (CNN)?

0 Comments
Image credit:

Dit artikel maakt deel uit van het Demystifying AI, een reeks berichten die (proberen) het jargon en de mythen rondom AI disambigueren.sinds de jaren vijftig, de begintijd van kunstmatige intelligentie, proberen computerwetenschappers computers te bouwen die visuele gegevens kunnen begrijpen., In de daaropvolgende decennia, het veld, dat bekend is geworden als computer vision, zag incrementele vooruitgang. In 2012 nam computer vision een kwantumsprong toen een groep onderzoekers van de Universiteit van Toronto een AI-model ontwikkelde dat de beste beeldherkenningsalgoritmen met een grote marge overtrof.

het AI-systeem, dat bekend werd als AlexNet (vernoemd naar de hoofdontwerper, Alex Krizhevsky), won de ImageNet computer vision contest 2012 met een verbazingwekkende nauwkeurigheid van 85 procent. De runner-up scoorde een bescheiden 74 procent op de test.,het hart van het AlexNet was een convolutioneel neuraal netwerk (CNN), een gespecialiseerd type kunstmatig neuraal netwerk dat ruwweg het menselijk zichtsysteem nabootst. In de afgelopen jaren, CNNs zijn cruciaal geworden voor veel computer vision toepassingen. Dit is wat je moet weten over de geschiedenis en werking van CNNs.

een korte geschiedenis van convolutionele neurale netwerken

convolutionele neurale netwerken, ook wel ConvNets genoemd, werden voor het eerst geïntroduceerd in de jaren 1980 door Yann LeCun, een postdoctoraal computerwetenschapper., LeCun had voortgebouwd op het werk van Kunihiko Fukushima, een Japanse wetenschapper die een paar jaar eerder het neocognitron had uitgevonden, een zeer basaal neuraal netwerk voor beeldherkenning.

de vroege versie van CNNs, genaamd LeNet (naar LeCun), kon handgeschreven cijfers herkennen. CNNs vond een nichemarkt in het bankwezen en de postdiensten en het bankwezen, waar ze lezen postcodes op enveloppen en cijfers op controles.

maar ondanks hun vindingrijkheid bleven ConvNets aan de zijlijn van computervisie en kunstmatige intelligentie omdat ze een ernstig probleem hadden: ze konden niet opschalen., CNNs had veel data en rekenbronnen nodig om efficiënt te kunnen werken voor grote afbeeldingen. Op dat moment was de techniek alleen van toepassing op beelden met lage resoluties.in 2012 toonde AlexNet aan dat het misschien tijd was om deep learning opnieuw te bekijken, de tak van AI die gebruik maakt van neurale netwerken met meerdere lagen. De beschikbaarheid van grote sets van gegevens, namelijk de ImageNet-dataset met miljoenen gelabelde afbeeldingen, en enorme rekenmiddelen stelde onderzoekers in staat om complexe CNNs te creëren die computervisietaken konden uitvoeren die voorheen onmogelijk waren.

Hoe werkt CNNs?,

convolutionele neurale netwerken bestaan uit meerdere lagen kunstmatige neuronen. Kunstmatige neuronen, een ruwe imitatie van hun biologische tegenhangers, zijn wiskundige functies die de gewogen som van meerdere inputs en outputs een activeringswaarde berekenen.

de structuur van een kunstmatig neuron, de basiscomponent van kunstmatige neurale netwerken (Bron: Wikipedia)

het gedrag van elk neuron wordt bepaald door zijn gewicht., Wanneer gevoed met de pixelwaarden, kiezen de kunstmatige neuronen van een CNN verschillende visuele kenmerken uit.

wanneer u een afbeelding invoert in een ConvNet, genereert elk van de lagen verschillende activatiekaarten. Activatiekaarten markeren de relevante functies van de afbeelding. Elk van de neuronen neemt een stukje pixels als input, vermenigvuldigt hun kleurwaarden met zijn gewichten, somt ze op, en voert ze door de activeringsfunctie.

de eerste (of onderste) laag van de CNN detecteert gewoonlijk basiskenmerken zoals horizontale, verticale en diagonale randen., De uitvoer van de eerste laag wordt gevoed als invoer van de volgende laag, die complexere functies, zoals hoeken en combinaties van randen extraheert. Naarmate je dieper in het convolutionele neurale netwerk gaat, beginnen de lagen functies op hoger niveau te detecteren, zoals objecten, gezichten en meer.

elke laag van het neurale netwerk zal specifieke kenmerken uit de invoerafbeelding halen.,

de bewerking van het vermenigvuldigen van pixelwaarden met gewichten en het optellen ervan wordt” convolutional neural network ” genoemd (vandaar de naam convolutional neural network). Een CNN bestaat meestal uit meerdere convolutielagen, maar bevat ook andere componenten. De laatste laag van een CNN is een classificatielaag, die de uitvoer van de laatste convolutielaag als invoer neemt (onthoud dat de hogere convolutielagen complexe objecten detecteren).,

Op basis van de activeringsafbeelding van de uiteindelijke convolutielaag voert de classificatielaag een reeks betrouwbaarheidscores uit (waarden tussen 0 en 1) die aangeven hoe waarschijnlijk het is dat de afbeelding tot een ” – klasse behoort.”Bijvoorbeeld, als je een ConvNet hebt dat katten, honden en paarden detecteert, is de output van de laatste laag de mogelijkheid dat de invoerafbeelding een van die dieren bevat.,

de bovenste laag van De CNN bepaalt de klasse van de afbeelding op basis van kenmerken gewonnen door convolutional lagen(bron: http://www.deeplearningbook.org)

de Opleiding van de convolutional neurale netwerken

Eén van de grote uitdagingen van de ontwikkeling van CNNs is het aanpassen van de gewichten van de individuele neuronen op te halen de juiste functies van beelden. Het proces van het aanpassen van deze gewichten wordt “training” het neurale netwerk genoemd.

in het begin begint de CNN met willekeurige gewichten., Tijdens de training voorzien de ontwikkelaars het neurale netwerk van een grote dataset van afbeeldingen geannoteerd met hun bijbehorende klassen (kat, hond, paard, enz.). Het ConvNet verwerkt elke afbeelding met zijn willekeurige waarden en vergelijkt vervolgens de uitvoer met het juiste label van de afbeelding. Als de output van het netwerk niet overeenkomt met het label—wat waarschijnlijk het geval is bij het begin van het trainingsproces—maakt het een kleine aanpassing aan de gewichten van zijn neuronen, zodat de volgende keer dat het hetzelfde beeld ziet, zijn output een beetje dichter bij het juiste antwoord zal zijn.,

De correcties worden gemaakt door middel van een techniek genaamd backpropagatie (of backprop). In wezen optimaliseert backpropagation het tuning proces en maakt het gemakkelijker voor het netwerk om te beslissen welke eenheden aan te passen in plaats van het maken van willekeurige correcties.

elke run van de gehele trainingsdataset wordt een “epoch” genoemd.”Het ConvNet doorloopt verschillende tijdperken tijdens de training, waarbij de gewichten in kleine hoeveelheden worden aangepast. Na elk tijdperk, het neurale netwerk wordt een beetje beter in het classificeren van de training beelden., Naarmate de CNN verbetert, worden de aanpassingen aan de gewichten steeds kleiner. Op een gegeven moment, het netwerk “convergeert,” wat betekent dat het in wezen wordt zo goed als het kan.

na het trainen van de CNN gebruiken de ontwikkelaars een testdataset om de nauwkeurigheid ervan te controleren. De testdataset is een set gelabelde afbeeldingen die geen deel uitmaken van het trainingsproces. Elke afbeelding wordt door het ConvNet uitgevoerd en de uitvoer wordt vergeleken met het eigenlijke label van de afbeelding. In wezen evalueert de testdataset hoe goed het neurale netwerk is geworden in het classificeren van beelden die het nog niet eerder heeft gezien.,

als een CNN goed scoort op zijn trainingsgegevens, maar slecht op de testgegevens, wordt gezegd dat hij “overbevist” is.”Dit gebeurt meestal als er niet genoeg variatie in de trainingsgegevens is of als het ConvNet te veel tijdperken op de trainingsdataset doorloopt.

het succes van convolutionele neurale netwerken is grotendeels te danken aan de beschikbaarheid van enorme beelddatasets die in het afgelopen decennium zijn ontwikkeld. ImageNet, de wedstrijd die aan het begin van dit artikel wordt genoemd, kreeg zijn titel van een namesake dataset met meer dan 14 miljoen gelabelde afbeeldingen., Er zijn andere meer gespecialiseerde datasets, zoals de MNIST, een database van 70.000 afbeeldingen van handgeschreven cijfers.

u hoeft echter niet elk convolutioneel neuraal netwerk op miljoenen afbeeldingen te trainen. In veel gevallen kunt u een voorgetraind model, zoals de AlexNet of Microsoft ‘ s ResNet, en finetune het voor een andere meer gespecialiseerde toepassing. Dit proces heet transfer learning, waarbij een getraind neuraal netwerk wordt omgeschoold een kleinere reeks nieuwe voorbeelden.,

de grenzen van convolutionele neurale netwerken

ondanks hun kracht en complexiteit zijn convolutionele neurale netwerken in wezen patroonherkenningsmachines. Ze kunnen enorme rekenmiddelen gebruiken om kleine en onopvallende visuele patronen uit te zoeken die onopgemerkt zouden kunnen blijven voor het menselijk oog. Maar als het gaat om het begrijpen van de Betekenis van de inhoud van beelden, presteren ze slecht.

overweeg de volgende afbeelding. Een goed getraind ConvNet zal je vertellen dat het het beeld is van een soldaat, een kind en de Amerikaanse vlag., Maar een persoon kan een lange beschrijving van de scène geven en praten over militaire dienst, reizen in een vreemd land, het gevoel van verlangen naar huis, de vreugde van hereniging met het gezin, enz. Kunstmatige neurale netwerken hebben geen idee van die Concepten.

Image credit:

deze limieten worden duidelijker in praktische toepassingen van convolutionele neurale netwerken. Bijvoorbeeld, CNNs worden nu op grote schaal gebruikt om inhoud te matigen op sociale media netwerken., Maar ondanks de enorme repositories van afbeeldingen en video ‘ s waar ze op getraind zijn, hebben ze nog steeds moeite om ongepaste inhoud te detecteren en te blokkeren. In één geval verbood Facebook ‘ s content-moderation AI de foto van een 30.000 jaar oud standbeeld als naaktheid.

ook beginnen neurale netwerken te breken zodra ze een beetje uit hun context gaan. Verschillende studies hebben aangetoond dat CNNs getraind op ImageNet en andere populaire datasets objecten niet detecteren wanneer ze ze onder verschillende lichtomstandigheden en vanuit nieuwe invalshoeken zien.,een recente studie van onderzoekers van het mit-IBM Watson AI Lab wijst op deze tekortkomingen. Het introduceert ook ObjectNet, een dataset die beter de verschillende nuances weergeeft van hoe objecten in het echte leven worden gezien. CNN ‘ s ontwikkelen niet de mentale modellen die mensen hebben over verschillende objecten en hun vermogen om die objecten voor te stellen in eerder ongeziene contexten.

ImageNet vs reality: in ImageNet (linkerkolom) zijn objecten netjes gepositioneerd, onder ideale achtergrond-en lichtomstandigheden., In de echte wereld zijn de dingen rommeliger (bron: objectnet.dev)

een ander probleem met convolutionele neurale netwerken is hun onvermogen om de relaties tussen verschillende objecten te begrijpen. Denk aan het volgende beeld, dat bekend staat als een” Bongard probleem”, vernoemd naar de uitvinder, de Russische computerwetenschapper Mikhail Moiseevich Bongard. Bongard problemen presenteren je met twee sets van beelden (zes aan de linkerkant en zes aan de rechterkant), en je moet het belangrijkste verschil tussen de twee sets uit te leggen., Bijvoorbeeld, in het voorbeeld hieronder, afbeeldingen in de linker set bevat een object en afbeeldingen in de rechter set bevatten twee objecten.

Het is gemakkelijk voor mensen om zulke conclusies te trekken uit zulke kleine hoeveelheden monsters. Als ik je deze twee sets laat zien en je dan een nieuwe afbeelding geef, zul je snel kunnen beslissen of het in de linker of rechter set moet gaan.

Bongard problemen zijn gemakkelijk op te lossen voor mensen, maar moeilijk voor computer vision systemen., (Bron: Harry Foundalis)

maar er is nog steeds geen convolutioneel neuraal netwerk dat Bongard problemen kan oplossen met zo weinig trainingsvoorbeelden. In een studie uitgevoerd in 2016, AI onderzoekers getraind een CNN op 20.000 Bongard monsters en getest op 10.000 meer. De prestaties van de CNN waren veel lager dan die van de gemiddelde mens.

de eigenaardigheden van ConvNets maken ze ook kwetsbaar voor agressariële aanvallen, verstoringen in invoergegevens die onopgemerkt blijven voor het menselijk oog, maar het gedrag van neurale netwerken beïnvloeden., Agressarial attacks zijn uitgegroeid tot een belangrijke bron van zorg als deep learning en vooral CNNs zijn uitgegroeid tot een integraal onderdeel van vele kritische toepassingen, zoals zelfrijdende auto ‘ s.

contradictoir voorbeeld: Het toevoegen van een onmerkbare laag ruis aan deze panda afbeelding zorgt ervoor dat een convolutioneel neuraal netwerk het verwart met een gibbon.

betekent dit dat CNNs nutteloos zijn?, Ondanks de grenzen van convolutionele neurale netwerken, is het niet te ontkennen dat ze een revolutie in kunstmatige intelligentie hebben veroorzaakt. Tegenwoordig worden CNNs gebruikt in veel computer vision-toepassingen, zoals gezichtsherkenning, zoeken en bewerken van afbeeldingen, augmented reality en meer. Op sommige gebieden, zoals medische beeldverwerking, kunnen goed opgeleide ConvNets zelfs beter presteren dan menselijke experts in het detecteren van relevante patronen.,

zoals vooruitgang in convolutionele neurale netwerken laat zien, zijn onze prestaties Opmerkelijk en nuttig, maar we zijn nog ver verwijderd van het repliceren van de belangrijkste componenten van menselijke intelligentie.


Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *