Hallo en welkom terug bij de cursus over Deep Learning vandaag, we zijn eindelijk bij stapnummer voor
volledige verbinding.
Dus waar gaat deze stap over?
In deze stap voegen we een heel kunstmatig neuraal netwerk toe aan ons convolutionele neurale netwerk.
Dus aan alle dingen die we tot nu toe hebben gedaan, namelijk convolutiepooling en afvlakking, voegen we
nu een geheel nieuwe toe.
En dan, daarachter, hoe intens is dat?
Dat is gewoon dat is iets dat zeker iets is.
En hier hebben we de invoerlaag.
We hebben daar een volledig aangesloten LAN-uitgang.
Trouwens, de volledig verbonden laag in kunstmatige neurale netwerken, we noemden ze verborgen lagen en hier noemen
we ze volledig verbonden de hunne omdat het verborgen lagen zijn.
Maar tegelijkertijd zijn het een specifieker type verborgen lagen.
Er zijn volledig verbonden lagen in kunstmatige neurale netwerken.
Verborgen lagen hoeven niet volledig verbonden te zijn, terwijl we in convolutionele neurale netwerken
volledig verbonden lagen gaan gebruiken.
En daarom worden ze over het algemeen volledig verbonden lagen genoemd.
En dus eigenlijk die hele kolom of vector met output die we hebben na het afvlakken, we geven het door aan de input
die we hier hebben geleerd.
We hebben een zeer vereenvoudigd voorbeeld alleen ter illustratie en wat het belangrijkste doel van het
kunstmatige neurale netwerk is, is om onze functies te combineren tot meer attributen die de klassen nog beter
voorspellen.
Dus we hebben al in onze vector van outputs, in de flattener en op de flattener resultaat van wat we echt hebben
gedaan.
We hebben een aantal kenmerken gecodeerd in de getallen in die vector en ze kunnen waarschijnlijk al redelijk
goed voorspellen wat Closs is waar we naar kijken, of het een hond of een kat is of dat het een tumor is of
niet, een tumor en spoedig.
Maar tegelijkertijd weten we dat we een structuur hebben die artificieel neuraal netwerk
wordt genoemd, die is ontworpen, die als doel heeft om te gaan met attributen en het bedenken of behandelen van
functies en het bedenken van nieuwe attributen en het combineren van attributen om zelfs dingen die we proberen te voorspellen beter
kunnen voorspellen.
En dat weten we uit de vorige delen.
Dus waarom zou je dat niet benutten?
En dat is precies wat hier het plan is.
Dus wat als we die waarden doorgeven aan een kunstmatig neuraal netwerk en het alles wat we doen nog verder
laten optimaliseren?
En dat gaan we dus doen.
Maar laten we een realistischer voorbeeld bekijken, want deze is iets te simpel.
Dus hier hebben we een beter uitziend kunstmatig neuraal netwerk waar we vijf attributen op de inputs hebben dan in het eerste
jaar, waar we zes neuronen hebben in de tweede of in de tweede volledig verbonden laag, we hebben acht neuronen en
dan we hebben twee uitgangen, één voor hond en één voor kat.
En dus een belangrijk ding om over te praten waar we het hier over hebben, is dat waarom we twee uitgangen hebben?
We zijn een beetje gewend om slechts één uitgang te hebben in onze kunstmatige neurale netwerken.
Welnu, één uitvoer is vier soorten wanneer u een numerieke waarde voorspelt, wanneer u een regressietype probleem uitvoert, maar
wanneer u classificatie uitvoert, hebt u een uitvoer per klasse nodig, behalve de uitzondering is wanneer je slechts
twee klassen hebt, zoals we hier twee klassen hebben, een hond en een
kat.
En we hadden gewoon één uitvoer kunnen maken en er een binaire uitvoer van kunnen maken en zeggen dat één een hond is en nul een
kat.
En dat had helemaal goed gekund.
En eigenlijk zie je Hadland dat doen in de praktische tutorials en zo zijn ze
gestructureerd.
Maar tegelijkertijd, als je meer dan twee categorieën hebt, bijvoorbeeld honden, katten en vogels, dan
moet je per categorie een neuron hebben.
En daarom gaan we in dit voorbeeld met twee categorieën oefenen, zodat we weten wat we kunnen
verwachten als we ooit meer dan twee categorieën hebben en dat zou hier gebeuren.
Dus we hebben al het grondwerk gedaan.
We hebben de evolutie gedaan, we hebben de pooling en de flatten gedaan.
En nu gaat de informatie door het kunstmatige neurale netwerk.
Dus laten we eens kijken hoe dat allemaal gebeurt.
Er gaat informatie door vanaf het allereerste begin, vanaf het moment dat het beeld is verwerkt en
vriendelijk, een betrokken blik, dan getrokken, afgeplat en vervolgens door kunstmatige neurale netwerken, alle vier
de stappen.
En dan wordt er een voorspelling gedaan.
En we zullen zo zien hoe dit gebeurt.
We zullen heel, heel interessant zijn.
Maar laten we nu maar zeggen dat er een voorspelling is gedaan en bijvoorbeeld 80 procent dat het een hond
is, maar het blijkt een kat te zijn en dan wordt er een fout berekend.
Een put, wat we vroeger een kostenfunctie noemden in een kunstmatig neuraal netwerk.
En we gebruiken daar de gekwadrateerde fout of vergroten illusionaire neurale netwerken.
Het wordt een verloren functie genoemd.
En daar gebruiken we een kruis-entropiefunctie voor.
En we zullen het hebben over kruis-entropie en kwadratische fouten.
In een aparte tutorial en hoe dat allemaal gebeurt, maar laten we voor nu zeggen dat we een verloren type functie
hebben die ons vertelt hoe goed ons netwerk presteert en we proberen die functie te optimaliseren,
optimaliseren en minimaliseren om ons netwerk te optimaliseren.
Dus we hebben de fouten berekend en dan wordt het terug gepropageerd via het netwerk, net zoals we
hadden in kunstmatige neurale netwerken, wordt het terug gepropageerd.
En hoewel sommige dingen in het netwerk zijn aangepast om de prestaties te helpen optimaliseren en de dingen die dat gewoon zijn, zijn, zoals
gewoonlijk, de gewichten in het kunstmatige neurale netwerk, delen van de blauwe lijnen die je
hier ziet, de synapsen.
Dan nog een ander ding dat is aangepast zijn de feature detectors.
We weten dus dat we op zoek zijn naar functies, maar wat als we op zoek zijn naar de verkeerde functies?
Wat als dit niet lukt omdat de functies niet kloppen?
En dus de kenmerkdetectoren, die herinneren die kleine matrices die we hadden?
Dat zijn de drie bij drie matrices.
Ze zijn aangepast zodat het de volgende keer misschien beter is en laten we eens kijken wat er gebeurt.
En natuurlijk, het is allemaal gedaan met veel wetenschap op de achtergrond van veel wiskunde.
En het is allemaal gedaan door middel van een geweldige gradiëntafdaling met achterwaartse voortplanting.
Dus het zijn allemaal niet zomaar willekeurige verstoringen.
Het is eigenlijk heel goed doordacht hoe het moet.
Maar niettemin worden de kenmerkdetectoren aangepast, de gewichten aangepast, en dit hele proces gebeurt
keer op keer, de fouten, terugpropagatie.
En dit gaat maar door en door.
En zo wordt ons netwerk geoptimaliseerd.
Zo traint ons netwerk op de data.
Dus het belangrijkste hier is dat de gegevens van het begin tot het
einde door het hele netwerk gaan.
Dan worden de fouten vergeleken, de fouten berekend, en dan wordt het weer doorgegeven.
Dus hetzelfde verhaal als bij kunstmatige neurale netwerken alleen wat langer vanwege dat gat voor de eerste drie stappen die
we al hadden.
En laten we nu eens kijken naar het interessante bij het echt interessante deel.
Hoe werken deze twee klassen omdat of hoe werken deze twee output-neuronen?
Want vroeger hadden we altijd een soort van één uitgangsneuron.
Wat gebeurt er als we er twee hebben?
Hoe verloopt een situatie van classificatie van afbeeldingen?
Laten we beginnen met het bovenste neuron.
We beginnen eerst met de hond.
Hoe hebben we het belangrijkste doel, wat we eerst moeten doen, is dat we moeten begrijpen welke gewichten we moeten
toewijzen aan al deze synapsen die verbinding maken met de hond, zodat we weten welke van de eerdere neuronen echt belangrijk zijn voor
de hond.
En laten we eens kijken hoe dat wordt gedaan.
Dus laten we hypothetisch zeggen dat we deze getallen in onze vorige laag hebben, eerder volledig verbonden met de laatste
volledig verbonden laag.
En nogmaals, deze cijfers kunnen van alles zijn.
Ze hoeven niet zo te zijn dat ze elk nummer kunnen zijn.
Maar omwille van het argument gaan we het erover eens zijn dat we specifiek kijken naar getallen tussen nul
en één.
Dus het is gemakkelijker voor ons om deze dingen te beargumenteren en te begrijpen.
En één betekent dat dat neuron er heel zeker van was dat het een bepaald kenmerk vond.
En nul zal betekenen dat dat neuron niet een functie heeft gevonden waarnaar hij op zoek is.
Dus aan het eind van de dag zijn deze neuronen net als al het andere aan deze linkerkant, het kijken naar
kenmerken op een afbeelding.
Dit is al heel erg verwerkt.
Maar het detecteert nog steeds een bepaald kenmerk, een combinatie van kenmerken op de afbeelding.
Vlak voordat we in de Convolve-stap kwamen, hadden we een soort herkenbare kenmerken in de pool-stap.
Ze zijn minder herkenbaar.
Dan worden ze nog minder herkenbaar, zichtbaar in het afgeplatte beeld, en dan worden ze gecombineerd
enzovoort.
Maar toch, hier hebben we het hier over, bepaalde functies die aanwezig zijn in de afbeelding of hun
combinaties.
Dus en een die is doorgegeven en dit is belangrijk, is tegelijkertijd doorgegeven aan zowel de hond
als de kat, aan beide output-neuronen.
Dus één betekent dat voor ons, voor ons argument, het betekent dat dit neuron aan het afvuren is, het detecteert heel snel
dat kenmerk dat, weet je, een wenkbrauw zou kunnen zijn.
Het kan deze wenkbrauw opnieuw detecteren, voor de eenvoud detecteert het deze wenkbrauw en communiceert dat naar het hondenneuron, naar
het kattenneuron dat zegt dat ik mijn wenkbrauw kan zien, ik kan mijn wenkbrauw zien
en dan is het aan de hond in de kattenneuron om te begrijpen wat dat voor hen betekent.
Rechts.
En in dit geval, welke neuronen worden geactiveerd?
Deze drie neuronen activeren de wenkbrauw.
En laten we zeggen dat de neus zegt, ik kan zien dat ik een grote neus kan zien en ik kan slappe oren zien.
Dus en dat zegt hij tegen de hond en tegen de kat en dan?
De hond.
En wat er dan gebeurt, is dat we weten dat dit een hond is.
Dus het hondenneuron weet dat.
Het antwoord is dat het eigenlijk een hond is, want uiteindelijk vergelijken we met de foto of het label op de foto en
we kennen de hond.
Dus eigenlijk gaan de hondenneuronen zeggen: aha, dus in dit geval zou ik getriggerd moeten worden.
Dit zijn dus.
Mijn neuronen vertellen dit signaal dat ze naar mij sturen naar de hond en de kat is eigenlijk
een indicatie voor mij dat het een hond is.
En tijdens deze vele herhalingen van dit gebeurt, zal de hond
vaak leren dat deze neuronen inderdaad worden geactiveerd wanneer de functie van een hond is.
Aan de andere kant zal het kattenneuron weten dat het geen kat is en het zal weten dat deze
visser aan het schieten is en dit neuron vertelt me dat het slappe oren, slappe oren, slappe
oren kan zien, maar tegelijkertijd is het geen kat.
Dus eigenlijk is dat voor mij een signaal dat ik dit neuron zou moeten negeren.
En hoe meer dat gebeurt, hoe meer het kattenneuron dit neuron over de slappe oren gaat
negeren.
En dus eigenlijk dat dat gehuil is door heel veel iteraties als dit vaak gebeurt.
Dit is dus slechts één voorbeeld.
Maar als dit vaak gebeurt, is het een misschien nul punt acht nul punt negen, misschien zal het soms
niet afgaan.
Maar over het algemeen licht dit neuron gemiddeld heel vaak op als het inderdaad een hond is.
Het hondenneuron zal meer belang gaan toekennen aan dit neuron.
En daar gaan we dan.
Dat is hoe we het gaan aanduiden.
We gaan zeggen dat deze drie neuronen, door dit iteratieve proces met vele, vele, vele, vele steekproeven
en vele, vele tijdperken, onthoud, dus steekproef is een rol in uw dataset.
Een tijdperk is wanneer je je hele dataset keer op keer doorloopt.
Er zijn heel veel iteraties.
Dit hondenneuron heeft geleerd dat dit wenkbrauwneuron en dit grote neusneuron en dit slappe oorneuron allemaal
erg goed lijken bij te dragen aan de classificatie van wat het zoekt en wat een hond is.
Zo werkt het dus.
En nogmaals, deze jaren en neus en wenkbrauwen, dat zijn zeer, zeer benaderende of zeer vergezochte voorbeelden, want in dit
stadium in dit hele convolutionele convolutionele neurale netwerk, is het een volledig onherkenbaar
wat ze zoeken.
Maar tegelijkertijd is het iets in de kenmerken van honden of katten of wat je ook classificeert.
En dan gaan we door naar de volgende.
Nu gaan we kijken naar het kattenneuron.
Maar deze gaan we onthouden dat deze gewichten zijn weet je, ze hebben we de hond uitgezocht.
Dus de hond negeert min of meer al deze andere neuronen, één, twee, drie, vier of
vijf.
Maar het besteedt echt aandacht aan wat deze drie neuronen nu zeggen.
Waar luistert de kat naar?
Nou, als het eigenlijk een kat is, toch.
Dit is dit is een voorbeeld van een situatie waarin het eigenlijk een kat is.
Dus je zult zien dat deze neuronen, nul punt negen nul punt negen en één, iets zeggen.
Ze zeggen iets tegen zowel de hond als de katten.
En dit is, nogmaals, belangrijk om te onthouden.
Dit uitgangssignaal gaat dus beide kanten op.
Het is hetzelfde, toch?
Het is één tegen de hond zeggend één, twee tegen de kat.
Maar dan is het aan de hond en de kat om te beslissen of ze rekening houden met dat signaal en ervan
leren of niet.
En zowel de hond als de kat kunnen zien dat dit een foto is.
Ik had hier een foto van een kat moeten plaatsen, maar stel je eigenlijk een foto van een kat voor.
Zowel de hond als de kat kunnen zien dat dit eigenlijk een kat is.
Dus eigenlijk is de hond als, oh, oké.
Dus deze snorharen en deze puntige driehoekige oren en dit kleine formaat, denk ik, of ik weet het niet.
Oh, misschien deze keer, je weet hoe katten deze dingen in hun ogen hebben.
Hun ogen zijn net klein.
Het zijn geen cirkels, het zijn lijnen of zoiets als kattenogen.
Eigenlijk deze kattenogen, ze werken absoluut niet voor mij.
Ze helpen me niet te voorspellen, want elke keer dat deze neuronen oplichten, is de voorspelling niet wat
ik zoek.
Aan de andere kant heeft de kat zoiets van, hmm, dat is interessant.
Elke keer als deze licht deze op of meestal licht hij op.
Het komt overeen met mijn verwachting.
Het komt overeen met wat ik zoek.
Oké, ik ga meer naar deze man luisteren dan naar deze, dit ene zelfde ding.
Elke keer dat het oplicht of meestal licht het op.
Ik krijg toevallig een goede. Ik word toevallig beloond voor mijn voorspelling omdat ik het goed heb.
Het is een kat.
Oké, dus ik ga meer naar hem luisteren.
Weet je, deze is nutteloos voor mij omdat hij niet echt, weet je, zoals hij is, hij steekt niet eens op.
Het is een kat, maar hij licht niet op.
Het tegenovergestelde gebeurt dus.
En deze ook, het is een kat, maar hij licht niet op.
Dus ik ga niet naar hem luisteren.
Maar deze, wanneer hij wanneer wat is dit?
De ogen, de kattenogen lichten op.
We kunnen zien dat ik kan zien dat het een kat is.
Het komt meestal overeen.
Dus daar ga ik van leren.
En ik ga vaker naar deze drie jongens luisteren.
Dus eigenlijk luistert de kat naar deze drie en negeert hij de andere vijf.
En zo leren deze laatste neuronen naar welke neuronen in de laatste volledig verbonden laag ze moeten luisteren.
Dus de output-neuronen leren welke van de volledig of welke van de laatste volledig zijn verbonden.
Het zijn neuronen om naar te luisteren, en dat is hoe ze begrijpen dat dit de manier is waarop
de functies door het netwerk worden gepropageerd en naar de uitvoer worden overgebracht.
En hoewel deze kenmerken natuurlijk niet zo veel betekenis voor hen hebben, zoals
slappe oren of snorharen, hebben ze toch een aantal onderscheidende kenmerken, ze zijn een onderscheidend kenmerk van die specifieke
klasse.
En zo wordt het netwerk getraind, want ook tijdens het onthouden, tijdens het
terugvermeerderingsproces, passen we ook de kenmerkdetectoren aan.
Dus als een functie nutteloos is voor de uitvoer, wordt deze waarschijnlijk genegeerd omdat dit niet over een of
twee verhalen gebeurt.
Dit gebeurt door duizenden en duizenden iteraties.
Dus na verloop van tijd zal een functie die nutteloos is voor het netwerk worden genegeerd en vervangen door
nuttige functies.
En dus aan het eind van de dag, in deze laatste laag neuronen, heb je waarschijnlijk
veel kenmerken of combinaties van kenmerken van de afbeelding die inderdaad representatief of beschrijvend zijn voor honden en katten.
En als je netwerk eenmaal is getraind, wordt het zo toegepast.
Dit is dus de volgende stap, alsof we ons netwerk al hebben getraind.
Zal dit dit jaar gebeuren?
Wat gebeurt er als dit netwerk wordt toegepast?
Dus laten we zeggen dat we een afbeelding van een hond doorgeven.
De waarden worden verspreid via een netwerk.
We krijgen bepaalde waarden.
En deze keer weten de honden- en de kattenneuronen het niet.
Ze hebben hier niet het beeld van de hond.
Ze weten niet dat het een hond of een kat is.
Ze hebben geen idee wat het is.
Maar ze hebben geleerd te luisteren naar wat hier getoond wordt.
Ze hebben geleerd naar de hond te luisteren en naar deze drie neuronen te luisteren.
Het kattenneuron luistert naar deze drie.
En dus kijkt het hondenneuron naar één, twee, drie en zegt: oh, deze zijn behoorlijk hoog.
Dus mijn kans is groot dat het de hond is.
Het kattenneuron kijkt naar deze drie en zegt: OK, deze is behoorlijk hoog, maar deze zijn behoorlijk
laag.
Interessant.
Dus mijn kans wordt nul komma nul vijf en en dan en dat is en daar krijg je je
voorspelling.
Dus dan is je eerste keuze voor dit neurale netwerk een hond.
Tweede keus is kat.
En dat is het zo'n beetje.
Dus het antwoord is hond.
En hetzelfde gebeurt als je een afbeelding van een kat doorgeeft, je krijgt nieuwe waarden en je kunt zien dat hoewel deze
hoger is, deze laag zijn.
En voor de kat, deze is hoger, deze is hoger, en deze is een beetje laag.
Dus de kans is hier misschien niet zo groot als voorheen.
Maar toch, je kunt zien dat het een kat is van 79 procent.
En daarom gaat het neurale netwerk stemmen dat het een kat is.
En dus zal het hele neurale netwerk concluderen dat het een kat is.
Stemmen is een term die voor deze jongens wordt gebruikt.
Dus deze neuronen in de laatste volledig verbonden laag mogen stemmen en dit zijn hun stemmen.
En nogmaals, we zijn alleen maar ter wille van het argument, en plaatsen hier waarden tussen nul en één.
Dit kunnen alle waarden zijn, maar ze mogen stemmen en dan zijn deze gewichten het belang van hun stem.
Dit zijn deze paarse gewichten, hoe het hondenneuron hun stemmen ziet, hoeveel belang het aan deze
neuronen en aan die stemmen toekent.
En dit is hoeveel belang het kattenneuron aan deze stemmen toekent, zijn de stemmen van deze neuronen.
En dus stemmen deze neuronen de hond in de katten op basis van hun geleerde gewichten.
Ze beslissen naar wie ze luisteren en dan doen ze hun voorspellingen en houden ze vast.
Neurale netwerk concludeert dat dit in dit geval een kat is.
En dan is dat en dan is dat je conclusie.
En zo krijg je beelden zoals deze waar je een cheeta hebt en dan heb je een cheeta met klauwen, weet je,
met een grote waarschijnlijkheid.
Dus dit is, weet je, de kans die het netwerk heeft voorspeld en deze zijn verloren
gegaan, maar deze bestaan nog steeds omdat ze nog steeds een kleine kans zijn dat andere neuronen ook
naar hun kiezers luisteren.
En ze zeggen, oh, misschien is het eigenlijk een luipaard en de kogeltrein, zeer, zeer waarschijnlijk.
Ik hoor een schaar.
Weet je, dit glas met één knop was heel dichtbij de tweede en daarna de trimester-stethoscoop
omdat je kon zien, zoals deze jongens, dit neuron, het schaarneuron, het neuron van de Output
Services, luisterend naar zijn kiezers.
En het had over het algemeen de overheersende stem, maar de handlers hadden ook een goed resultaat.
Dus daar gaan we.
Zo werkt de volledige verbinding en hoe dit allemaal samen uitpakt.
Ik hoop dat je de tutorial van vandaag leuk vond.
We gaan dit ook allemaal samenvatten in de samenvatting.
En ik zie je de volgende keer.
Geniet tot die tijd van deep learning.