Hallo en welkom terug bij de cursus over diep leren in de oefening van vandaag, we hebben het
over gradiëntafdaling.
Wat we eerder hebben geleerd, was dat om een neuraal netwerk te laten leren, back-propagatie
moet gebeuren.
En dat is wanneer de fout, het verschil of de som van de gekwadrateerde verschillen tussen Y hat en Y terug wordt
gepropageerd door het neurale netwerk en de gewichten dienovereenkomstig worden aangepast.
Dat hebben we dus gezien en vandaag gaan we precies leren hoe deze gewichten worden afgesteld.
Dus laten we eens kijken.
Dit is onze zeer eenvoudige versie van het neurale netwerk Perceptron of een enkel hun voeten naar voren neuraal netwerk.
En wat we hier kunnen zien, is dit hele proces in actie waar we enige inputwaarde hebben.
Dan moeten we wachten.
Dan wordt een activeringsfunctie toegepast.
We hebben witte hoeden en dan vergelijken we het met de werkelijke waarde.
We berekenen de kostenfunctie.
Dus hoe kunnen we de kostenfunctie minimaliseren?
Wat kunnen we eraan doen?
Welnu, een benadering om het te doen is een benadering met brute kracht, waarbij we gewoon heel veel verschillende mogelijke gewichten nemen
en ernaar kijken en zien welke het beste werkt.
En wat we doen is, bijvoorbeeld, proberen voor, laten we zeggen, duizend gewichten en
we zouden het proberen dat zoiets zou krijgen voor de kostenfunctie.
En dit is een grafiek van op de Y-as, je hebt de functionele verticale as van de kosten.
Op de horizontale as heb je Y-hoed.
En omdat je kunt zien dat de formule is wat min Y een vierkant had.
Dit is hoe de kostenfunctie eruit zou zien, zoiets.
En eigenlijk zou je zien dat de beste hier is.
Dus zeer eenvoudige, zeer intuïtieve benadering, waarom niet deze brute force-methode gebruiken?
Waarom niet gewoon duizend verschillende kosten uitproberen voor duizend verschillende parameters of invoer voor gewichten en kijken welke het
beste werkt?
Zo vind je de beste.
Nou, als je maar één manier hebt om te optimaliseren, zou dit kunnen werken.
Maar als je het aantal gewichten verhoogt, het aantal synapsen in je netwerk vergroot, moet je de vloek
van dimensionaliteit onder ogen zien.
En wat is dan de oorzaak van dimensionaliteit?
De beste manier om dit te beschrijven of uit te leggen, is door gewoon naar een praktisch voorbeeld te kijken.
Dus onthoud dit voorbeeld dat we hadden toen we het hadden over hoe neurale netwerken
eigenlijk werken, waar we een neuraal netwerk aan het bouwen of runnen waren voor een evaluatie van eigendommen.
Dus zo zag het eruit toen het al was opgeleid.
Nou, als het niet is getraind, voordat het is getraind, voordat we weten welke.
Wat zijn de gewichten?
Het eigenlijke neurale netwerk ziet er zo uit omdat we al deze verschillende mogelijke synapsen hebben en we nog steeds de
gewichten moeten trainen.
En hier hebben we in totaal 25 gewichten.
Dus vier keer vijf aan het begin, plus vijf van het Hitlerisme zonder Butler.
In totaal vijfentwintig gewichten.
En laten we eens kijken hoe we mogelijk vijfentwintig brute kracht kunnen gebruiken, wat hier een heel eenvoudig neuraal netwerk is.
Heel eenvoudig, slechts één verborgen laag.
En hoe kunnen we ons met brute kracht een weg banen door een neuraal netwerk van deze omvang.
Wel, er zijn enkele eenvoudige wiskundige berekeningen.
We hebben 25 gewichten.
Dus als we duizend combinaties hebben die we gaan testen voor elk gewicht,
is het totale aantal combinaties duizend tot de macht van vijfentwintig of duizend of tien
tot de vijf verschillende Palestijnse combinaties.
Laten we nu eens kijken hoe Sunway vanaf juni 2016 de snelste supercomputer ter wereld achterlicht.
Hoe zou zij dit probleem aanpakken?
Rechts.
Dus Sunway Tiku licht.
Het lijkt erop dat dit een heel groot gebouw is voor deze ene supercomputer.
En het kreeg het Guinness World Record als snelste supercomputer.
Op dit moment is het de snelste supercomputer ter wereld en het Sunway-achterlicht kan werken met een snelheid
van 93.
Pede-flops zijn een flop, staat voor drijvende bewerking per seconde, dus het kan drieënnegentig tot de macht keer 10 tot
de macht van 15 drijvende bewerkingen per seconde doen.
Zo snel is het in vergelijking.
Gemiddelde computers op dit moment, ze houden van iets meer dan enkele gigaflops enzovoort.
Dus zoals een soort van die reeksen die veel minder zijn dan Taihu Sunway of Light.
Dus plotseling is daglicht in de voorhoede van de technologie.
En laten we hypothetisch zeggen dat het één test kan doen, één combinatie voor ons neurale netwerk op één
diskette en één zwevende operatie.
Dat is niet mogelijk.
Dat is niet praktisch, omdat je meerdere zwevende bewerkingen nodig hebt om een enkel gewicht in je neurale netwerk
te testen.
Maar laten we het eens een voorsprong geven.
Laten we zeggen dat het het kan in een ideale wereld.
Het kan dat in één drijvende operatie.
Het kan één test per één drijvende verrichting doen.
Dat betekent dat het nog steeds 10 tot de macht van slechts vijf nodig heeft, gedeeld
door drieënnegentig keer ongeveer 15 seconden om al die tests met brute kracht door dat netwerk uit te voeren.
Dus dat betekent één of ongeveer tien tot de macht van 58 seconden.
En dat is hetzelfde als tien tot de macht van 50 jaar.
Dat is een enorm aantal dat langer is dan het universum heeft bestaan.
En dat gaat zeker niet alleen omdat dit aantal zo enorm groot is.
Het gaat gewoon absoluut niet voor ons werken in onze optimalisatie.
Dus daar gaan we.
Dit is een nee, zelfs niet op 's werelds snelste supercomputer, het Sunway-achterlicht.
We moeten dus op een andere manier komen.
Hoe gaan we het optimale gewicht vinden?
Trouwens, ons neurale netwerk was heel eenvoudig.
Hoe zit het als de neurale netwerken er ongeveer zo uitzien of zelfs groter dan dat, ja, dan zal het
gewoon helemaal niet gebeuren, nooit.
Dus de methode waar we naar gaan kijken, wordt gradiëntafdaling genoemd.
En misschien heb je er al van gehoord.
Zo niet, dan zoeken we uit wat het nu is.
Dus daar is onze kostenfunctie en nu gaan we kijken hoe we een snellere manier kunnen vinden om de.
Beste optie, dus laten we zeggen dat we ergens beginnen, je moet ergens
beginnen, dus we beginnen daar en vanaf dat punt in de linkerbovenhoek, wat gaan we doen is kijken naar de hoek van onze
kostenfunctie op dat moment.
Dus we gaan gewoon in principe dat is wat gradiënt wordt genoemd, omdat je moet differentiëren.
We gaan niet naar de wiskundige vergelijkingen kijken.
Aan het einde van de volgende lezing zullen we enkele tips geven over extra lezen.
Maar eigenlijk hoef je alleen maar te differentiëren, erachter te komen wat de helling in dat specifieke punt is en erachter te komen
of de helling positief of negatief is.
Als de als de helling negatief is, zoals in dit geval, betekent dit dat je bergafwaarts gaat.
Dus naar rechts is bergafwaarts, naar links is bergop.
En vanaf daar betekent het dat je moet gaan.
Rechts.
In principe moet je bergafwaarts.
En dat is wat we gaan doen.
Vrouw doet een stap, toch?
De bal rolt weer naar beneden.
Hetzelfde.
Je berekent de helling.
Dit de helling af is positief, wat betekent dat rechts bergop is, links is bergafwaarts, en je
moet naar links en je rolt de bal naar beneden en opnieuw, je berekent de helling en je bent helemaal de bal.
Rechts.
Daar ga je.
Dus zo vind je in eenvoudige bewoordingen, zo vind je de beste gewichten, de beste situatie die de
kostenfunctie minimaliseert.
Het zal natuurlijk niet zo zijn dat het rollen van een bal een erg zigzaggende benadering zal zijn.
Maar het is gemakkelijker te onthouden of het is leuker om het te zien als een bal die aan het rollen is.
Maar in werkelijkheid, ja, je zult gewoon zijn alsof een stapsgewijze benadering een zigzaggende
methode wordt.
Ja.
En er zijn ook veel andere elementen.
Er zijn dingen als, bijvoorbeeld, waarom, waarom gaat het naar beneden, waarom gaat het niet graag over de streep.
Dus het had eruit kunnen springen, naar boven gegaan in plaats van naar beneden en dat soort dingen.
Er zijn dus parameters die u kunt aanpassen.
En nogmaals, we zullen vermelden waar u daar meer over kunt vinden.
En bovendien hebben we dit in de praktische toepassing.
Maar in de eenvoudigste intuïtieve benadering is dit wat er gebeurt.
We komen tot op de bodem door te begrijpen welke kant we op moeten.
In plaats van met brute kracht door duizenden en duizenden en miljoenen en
miljarden en quadriljoenen combinaties te gaan, kunnen we gewoon elke keer kijken waar waar is, welke kant het afloopt.
Dus alsof je je voorstelt dat je op een heuvel staat.
Welke kant voelt het dat het naar beneden gaat?
En welke kant het ook opgaat en je blijft maar zo lopen, je doet graag vijftig
stappen en dan begin je weer.
OK, welke kant gaat het naar beneden.
Op deze manier.
Oké, neem nu vijftig stappen of minder.
Neem op die manier 40 stappen, zodat het steeds minder wordt naarmate je dichterbij komt.
Dus hier is een voorbeeld van gradiëntafdaling toegepast in een tweedimensionale ruimte.
Dus dat was een eendimensionaal voorbeeld.
Hier hebben we een tweedimensionale ruimte voor de gradiëntafdaling.
Zoals je kunt zien, komt het dichter bij het minimum en dit wordt ook
wel gradiëntafdaling genoemd omdat je afdaalt naar het minimum van de kostenfunctie.
En tot slot, hier is een gradiëntafdaling toegepast in drie dimensies.
Dit is hoe het eruit ziet.
Als je op twee dimensies hebt geprojecteerd, kun je zien dat het zich een weg baant naar het minimum.
Dus daar gaan we.
Dat was gradiëntafdaling in naast de deur.
We zullen het hebben over stochastische gradiëntafdaling in het vervolg van deze tutorial.
En ik kijk ernaar uit om je daar te zien tot de volgende keer.
Geniet van diep leren.