Hallo en welkom terug bij de cursus over diep leren.
In de vorige tutorial hebben we ontdekt waar convolutionele neurale netwerken over gaan.
En vandaag gaan we in stap één convolutie duiken.
Dit is dus de convolutiefunctie.
Ik weet dat we proberen weg te blijven van wiskunde en dingen intuïtief te houden, maar ik kon het niet helpen, maar ik deel
deze formule voor je omdat het zo eenvoudig is.
Een convolutie is in feite een gecombineerde integratie van twee functies en het laat zien hoe de ene functie de andere wijzigt
of de vorm van de andere wijzigt.
En als je signaalverwerking of elektrotechniek hebt gedaan of een beroep hebt gedaan waar signaalverwerking
vereist is, zou je onvermijdelijk een conclusiefunctie zijn tegengekomen.
Het is behoorlijk populair.
Nu, nogmaals, we gaan de wiskunde licht houden of ze gescheiden houden.
En als je meer wilt weten over de wiskunde achter de convolutionele neurale netwerken, is
een geweldige aanvulling om te lezen Inleiding tot convolutionele neurale netwerken door Janson Wu, een professor aan de Nanjing University
in China.
Dit artikel is letterlijk dagen geleden gepubliceerd, zoals vijf of zes dagen geleden, en het is specifiek gericht
op mensen die beginnen met beginners die convolutionele neurale netwerken leren kennen.
Dus de wiskunde daar moet toegankelijk zijn.
Ik heb professor Tientsin Wu eigenlijk een e-mail gestuurd en hij zei dat zijn hele doel is om de complexe dingen op te lossen, zodat mensen die nieuw
zijn op dit gebied het kunnen begrijpen.
En hij zei ook dat hij wat materiaal beschikbaar heeft op zijn homepage.
Zo weinig in de URL.
Als je gewoon de laatste twee delen verwijdert en je gaat gewoon W. J. X naar dat deel, dat is zijn
startpagina.
En je zult in staat zijn om meer aanvullende tutorials en materialen te vinden die niet als papers zijn gepubliceerd.
Maar hij gebruikt ze in zijn tutorials.
Dus misschien vind je die handig.
Dus blader daar rond als je een inleiding wilt krijgen in de wiskunde achter convolutionele neurale
netwerken en een soort solide basis wilt bouwen rond dat gebied.
Maar we gaan verder en we gaan praten over de evolutie.
Dus wat is een revolutie in intuïtieve termen?
Hier aan de linkerkant?
We hebben een invoerafbeelding, zoals we hebben besproken.
Dat is hoe we naar afbeeldingen gaan kijken, alleen enen en nullen om dingen te vereenvoudigen.
En daar zie je de smiley.
Daar hebben we een functiedetector.
Dus feature detector is een drie bij drie matrix.
Moet het drie bij drie zijn?
Nee, dat doet het niet.
Alex Netto denkt zeven bij zeven te gebruiken.
En dan gebruikt een andere van die andere beroemde detectoren van vijf bij vijf kenmerken.
Ze kunnen verschillend zijn, maar meestal zie je dat er drie bij drie zijn en dat zijn redenen om ze drie bij drie
te maken.
We houden ons dus aan de afspraak om een detector met drie bij drie kenmerken te hebben.
Ook de functiedetectoren die dit worden genoemd, zijn belangrijke termen omdat u ze misschien tegenkomt.
Er zijn veel verschillende termen voor de functiedetector, maar de meest voorkomende zijn functiedetector.
Of je hoort het misschien kolonel genoemd worden of je hoort het filter genoemd worden.
In deze cursus gaan we ofwel een filter ofwel een functiedetector door elkaar gebruiken.
Maar houd er rekening mee dat het die namen heeft.
En een convolutiebewerking wordt aangeduid met een X in een cirkel, net zoals je in de formules eerder zag.
En hier gebeurt wat er gebeurt op een intuïtief niveau, alles of gewoon om erover te denken in termen van wat er feitelijk op de achtergrond
gebeurt in plaats van de wiskunde.
Nou, je neemt deze feature detector of filter en je zet het op je afbeelding zoals je links ziet.
Dus je bedekt bijvoorbeeld de, in dit geval, de linkerbovenhoek, de negen pixels in
de linkerbovenhoek, en je vermenigvuldigt in feite elke waarde met elke waarde.
Dus respectieve waarden.
Dus de bovenste nul bij de waarde linksboven bij de waarde linksboven, dan is het in feite positie nummer één één bij positie
nummer één positie bij een nummer of nul één één nul één nul twee bij nul twee enzovoort.
Dus alleen zijn element Y's vermenigvuldiging van deze matrices en dan tel je het resultaat op.
Dus in dit geval klopt er niets.
Dus het is altijd een nul bij nul nul bij één.
Het resultaat is dus nul.
Hier kun je zien dat een van hen overeenkwam, die aan de linkerkant overeenkwam.
En daarom hebben we hier een.
Niets kwam overeen, niets kwam overeen, niets kwam daar overeen.
We gaan door naar de volgende worp.
Dus en de stap waarmee we bewegen, dit hele filter wordt de stap genoemd.
Dus hier hebben we een zijde van één pixel.
Dus hier kun je weer iets zien dat overeenkomt met de rechterbenedenhoek, overeenkomt met de
pas, maar een onderste in het midden komt hier overeen, rechtsboven komt overeen, dan meet niets dat het rechte stuk
één is.
U kunt de stap wijzigen.
Je kunt er één, twee van maken.
Je kan het krijgen.
Drie, wat je maar wilt.
Uiteindelijk is degene die goed werkt meestal op twee.
Dus dat is waar mensen zich aan houden en we zullen het hebben over wat de stap is naar het einde van het
verhaal.
Dus hier zijn we aan het matchen.
Dus we houden het hier gewoon in de gaten.
Je kunt zien dat we een twee hebben omdat er twee bij elkaar passen, enzovoort, enzovoort.
Spoedig.
Daar gaan we.
Er is er nog een die overeenkwam.
Daar gaan we.
En ze waren klaar, dus wat hebben we gecreëerd, toch.
Een paar belangrijke dingen hier.
De afbeelding rechts heet een feature map, heeft ook meerdere termen.
Het kan ook wel eens worden genoemd, het kan de functie van Vold hebben.
Dus wanneer u een convolutie-operator op iets toepast, wordt het niet ingewikkeld.
Het wordt betrokken.
En soms heb ik, denk ik, mezelf op de verkeerde manier lief.
Maar het is de juiste term die erbij betrokken is.
Het is een oude functie of het kan ook de activeringskaart worden genoemd.
Maar we gaan het in deze cursus een feature map noemen, zodat het in elk van die dingen kan worden
genoemd.
En wat hebben we hier gedaan?
Zoals je kunt zien, hebben we de afbeelding verkleind.
Dat is nummer één.
En dat is het belangrijkste wat ik wilde zeggen over je input, beeld en de functie intact en de
pas.
Als je een Strider hebt, zie je de afbeelding iets verkleind.
Maar als je een rechte toevoeging aan de afbeelding hebt, zal deze meer verminderen.
Dus de feature-up wordt nog kleiner.
En dat is een zeer belangrijke functie van de functie.
De textuur van deze hele convolutiestap is om die afbeelding kleiner te maken, want dat zal
het gemakkelijker zijn om het te verwerken en het zal gewoon sneller zijn en.
Hij zal gewoon sneller zijn, want stel je voor, zoals hier hebben we een wat, een zeven bij zeven afbeelding, maar stel je
voor dat je een goede foto hebt, toch?
Of je hebt een afbeelding van 256 bij 256 pixels.
Dat is een enorm aantal pixels, 256 kwadraat of laten we zeggen dat je 300 bij 300 pixels hebt.
Zodat we niet in de war raken met de RGV 256.
Laten we zeggen dat we een afbeelding van 300 bij 300 hebben in termen van grootte en pixels.
Dan heb je driehonderd vierkante pixels.
Dat is een enorm aantal.
En daarom zal een functiedetectoren de grootte van het beeld verkleinen en daarom is een recht van twee
eigenlijk voordelig.
Maar dan is de vraag, verliezen we informatie?
Verliezen we informatie wanneer we de functiedetector toepassen?
Welnu, sommige informatie verliezen we natuurlijk, omdat we minder waarden in onze resulterende matrix hebben.
Maar tegelijkertijd is het doel van de kenmerkdetector om bepaalde kenmerken te detecteren, bepaalde delen van
het beeld die integraal zijn.
En dus, bijvoorbeeld, als je er zo over nadenkt, alsof de feature-detector een bepaald patroon
heeft.
Het hoogste getal in uw functiekaart is wanneer dat patroon overeenkomt.
In feite is het hoogste aantal dat u kunt krijgen, in een echt vereenvoudigd voorbeeld, wanneer de functie is dat deze
overeenkomt.
Precies.
En je kunt zien of die nummer vier we in onze functiekaart hebben.
Dat is precies.
Dus als je hier kijkt, is dat precies waar deze functiedetector, omdat er maar vier in
zitten, perfect bij elkaar passen.
Dus je kunt dit dit deel hier zien.
Dus de functie werd hier gedetecteerd en zoals we aan het begin van deze sectie hebben besproken.
Dat kenmerk is hoe we dingen zien, is hoe we dingen herkennen, we kijken niet naar elke pixel, om zo te zeggen, in
wat we zien op een afbeelding of in het echte leven.
We kijken niet naar alles.
We kijken naar kenmerken.
We kijken naar de neus, de hoed, de veer, de ogen of de kleine zwarte vlekken onder de ogen van de cheeta om
onderscheid te maken tussen een cheeta en een luipaard of de vorm van de trein.
We maken geen onderscheid tussen een bullet train, een normale trein enzovoort.
We kijken dus niet naar alles, we kijken naar features en dat is wat we behouden.
En dat is wat de feature map ons helpt te behouden.
Eigenlijk is dat wat het ons in staat stelt om alle onnodige dingen naar voren te halen en ons te ontdoen van
alle onnodige dingen die zelfs als mensen, we niet zoveel informatie verwerken die op een bepaald moment in je ogen komt, zoals
gigabytes aan informatie.
Als je naar elke stip kijkt, zo niet terabytes aan informatie die per seconde je ogen binnenkomt, en we
kunnen nog steeds verwerken omdat we ons ontdoen van wat niet nodig is, concentreren we ons alleen op de
belangrijke functies.
Functies zijn belangrijk voor ons en dat is precies wat de functiekaart doet.
Dus nu verder, dit is ons invoerbeeld.
En u maken wij een feature map.
Dus de voorste, laten we zeggen dat de voorste degene is die we zojuist hebben gemaakt.
Maar hoe komt het dan dat er veel van zijn, maar we maken meerdere feature maps omdat we verschillende filters
gebruiken.
Rechts.
En dat is nog een manier waarop we veel van de informatie bewaren.
We hebben dus niet slechts één feature map.
We zoeken naar bepaalde functies en dan of eigenlijk beslist het netwerk door middel van zijn training.
En dit is iets dat we tegen het einde van de sectie zullen bespreken.
Door zijn training beslist het welke functies belangrijk zijn voor bepaalde typen of bepaalde categorieën, en het zoekt
ernaar en zal daarom verschillende filters hebben.
En we zullen het nu hebben over filters.
Maar in principe pas je deze filters toe.
Dus om deze functiekaart te krijgen, heeft het een filter toegepast zoals we hebben gezien.
Maar om vervolgens deze functiekaart te krijgen en een ander filter toe te passen om deze functie te krijgen, past u
misschien een ander filter toe, enzovoort.
En dus maakt het eigenlijk gewoon deze functiekaarten.
En daarom vind ik persoonlijk de term feature detector beter dan filter.
Dus onthoud, hier hebben we dit filter, dat we ook een functiedetector kunnen noemen.
Nou, eigenlijk vind ik het woord feature-detector beter geschikt.
En de reden daarvoor is dat dat het doel is.
Rechts?
We willen niet gewoon, we willen niet gewoon ons imago uitfilteren.
Maar ook al is dat een geheel, dat is hetzelfde, alleen een kwestie van terminologie.
Maar eigenlijk willen we functies detecteren.
Oke.
In deze laag gaan we in deze functiekaart kijken waar we bepaalde objecten in de afbeelding hebben
gedetecteerd.
In deze feature map hebben we gedetecteerd waar bepaalde andere features zijn, waar een bepaalde feature OK
is.
En deze feature map hebben we gedetecteerd waar een bepaalde andere feature zich op de afbeelding bevindt.
Dat is dus wat we aan het doen zijn.
En laten we een paar voorbeelden bekijken.
Dus hier gebruiken we en dit is van GILBERG, hun documentatie.
Het is een gratis tool zoals verf.
En u kunt het gebruiken om uw afbeeldingen aan te passen of met uw afbeeldingen te werken.
Maar eigenlijk hebben ze enkele waardevolle voorbeelden in hun documentatie.
En hier hebben ze een foto van de Taj Mahal en kun je kiezen welk filter je wilt toepassen.
Dus als je dit programma downloadt en je uploadt er een foto in en dan kun
je een convolutiematrix starten en filters toepassen en je zult zien dat deze dingen, deze onderhandelaars, daadwerkelijk hebben
toegepast in beeldverwerking en ontwerp enzovoort.
Dus laten we eens kijken naar wat we krijgen, wat we krijgen.
Dus als we dit filter vijf toepassen in het midden van min één, min één, min één, min één, kun
je zien dat het de afbeelding verscherpt.
En ja.
Dus dit is vrij intuïtief als je erover nadenkt.
Dus vijf is de pixel, de hoofdpixel zoals in het midden van het filter of de feature-detector en dan
min één min één, min één, zoals je wilt, verkleint de pixels eromheen.
Het innerlijke in intuïtieve zin.
Dan heeft vervaging in feite dezelfde betekenis, geeft een gelijke betekenis aan alle pixels rond die in het midden, en
daarom combineert het ze samen en krijg je een vervaging, rand en handen.
Dus hier kun je die min één en één zien en dan krijg je nullen, toch.
Dus je hebt verwijderd om de pixels rond de middelste in het midden te verwijderen.
En je houdt deze alleen op een min één en het geeft je een voorsprong.
En deze is een beetje moeilijker om te begrijpen hoe het werkt, zoals waarschijnlijk moeilijker om er intuïtief over na te denken.
Rand detectie.
Rechts.
Dus deze is waarschijnlijk logischer, toch.
Je neemt de middelste, je verkleint de middelste.
De waarschijnlijk als de kracht van de middelste pixel.
En dan zoek je naar degenen die je zoekt, je vergroot de kracht van degenen om hen heen.
Dus die heb je daar.
Ja.
Dus dat geeft je een soort randdetectie en je kunt zien wat je daar krijgt en een andere baas.
Dus de sleutel hier is dat het asymmetrisch is en je kunt zien dat het beeld ook asymmetrisch wordt.
Dus je hebt zo'n soort gevoel dat het naar je toe steekt en dat is wat je krijgt als
je hier minpunten hebt.
En nogmaals, dit is erg, dit wordt nu een beetje technisch, maar we kunnen in ieder geval een
soort intuïtief begrip krijgen.
Laten we ze snel nog eens doornemen.
Er is dus verscherping, er is onscherpte, er is een rand en dus is er randdetectie.
Er is reliëf zo laag als je kunt zien.
Dit zijn geweldige voorbeelden van hetzelfde beeld.
Maar we krijgen feature maps, dus we gebruiken verschillende feature detectors om verschillende feature maps van dezelfde afbeelding
te krijgen.
En daarom hebben we nu veel van de vele versies van deze afbeelding waar we in elke versie hebben geprobeerd bepaalde dingen
te detecteren.
Deze voorwaarden zijn niet van toepassing op ons.
Ze zien eruit alsof reliëf waarschijnlijk niet op ons van toepassing is in termen van convolutionele neurale netwerken, maar
detecteren dat dat belangrijk is.
We willen de randen detecteren, verbeteren, waarschijnlijk niet vervagen, verscherpen.
Dus bepaalde dingen zoals edge-aanvallen zijn waarschijnlijk de belangrijkste voor ons soort werk.
En in termen van begrip, zoals computers, zullen ze voor zichzelf beslissen.
Ons neurale netwerk bepaalt zelf wat belangrijk is en wat niet.
En het zal waarschijnlijk niet eens herkenbaar zijn voor het menselijk oog.
U zult niet kunnen begrijpen wat die functies betekenen, maar de computer zal beslissen.
En dat is het mooie van neurale netwerken, dat ze zoveel verschillende dingen kunnen verwerken en begrijpen zonder zelfs maar die
intuïtie te hebben, zonder die verklaring te hebben waarom ze zullen begrijpen welke functies voor hen belangrijk zijn,
of we er nu een naam voor hebben of niet, dat dat een geheel is dat een irrelevante vraag
is voor hun kunstmatige neurale netwerk.
En mijn favoriet, hier is een afbeelding van Geoffrey Hinton, een volgeling van Geoffrey Hinton, die er doorheen
ging, een van deze filters.
Oke.
Dus dat brengt ons bij het einde van de tutorial van vandaag.
Ik hoop dat je het leuk vond om over convolutie te leren.
De belangrijkste conclusie is dat een convolutie met het primaire doel van een convolutie is om functies in uw afbeelding te vinden met
behulp van de functiedetector, ze in een functiekaart te plaatsen en door ze in een functiekaart te
plaatsen, behoudt het nog steeds de ruimtelijke relaties tussen pixels , wat erg belangrijk voor ons is, weet je, want als ze
helemaal door elkaar worden gegooid, dan zijn we het patroon kwijt.
En tegelijkertijd is het belangrijk om te begrijpen dat de functies die een neuraal netwerk
zal detecteren en gebruiken om bepaalde afbeeldingen en klassen te herkennen meestal niets voor mensen betekenen, maar desalniettemin werken
ze.
En dat is wat Convolutie is.
En ik kijk uit naar je volgende Turrill.
Geniet tot die tijd van deep learning.