Hallo en welkom terug.
Bij deep learning hebben we het vandaag natuurlijk over stochastische gradiëntafdaling.
Eerder leerden we over gradiëntafdaling en kwamen we erachter dat het een zeer efficiënte methode is om ons
optimalisatieprobleem op te lossen waarbij we proberen de kostenfunctie te minimaliseren.
Het kost ons in feite van 10 tot de macht van 57 jaar om een probleem binnen enkele minuten of uren of binnen een dag of zo
op te lossen.
En het helpt echt om dingen te versnellen omdat we kunnen zien welke weg het bergafwaarts is en we kunnen gewoon die
kant op gaan en stappen nemen en sneller tot het minimum komen.
Maar het probleem met de stick met gradiëntafdaling is dat deze methode vereist dat de kostenfunctie convex
is.
En zoals je hier kunt zien, hebben we specifiek gekozen voor een convexe kostenfunctie.
Convex betekent in feite dat de functie lijkt op wat we nu zien, dat hij slechts
in één richting convex is en dat hij in wezen één globaal minimum heeft.
En dat is degene die we gaan vinden.
Maar wat als onze functie niet convex is?
Wat als onze kostenfunctie niet correct is?
Wat als het er ongeveer zo uitziet?
Nou, ten eerste, hoe kon dat gebeuren?
Nou, dat zou kunnen gebeuren, want als we allereerst een kostenfunctie kiezen, die niet het kwadraat verschil is tussen witte
hoeden en waarom, of als we de kostenfunctie kiezen, wat zo is, maar dan in een
multidimensionale ruimte, het kan zelfs veranderen in iets dat niet convex is.
En wat zou er in dit geval gebeuren als we gewoon probeerden onze normale gradiëntafdalingsmethode toe te passen?
Zoiets zou kunnen gebeuren.
We zouden een lokaal minimum van de kostenfunctie kunnen vinden in plaats van de globale.
Dus deze was de beste en we vonden de verkeerde.
En daarom hebben we niet de juiste gewichten.
We hebben geen geoptimaliseerd neuraal netwerk.
We hebben een ondermaats neuraal netwerk.
En wat doen we in dit geval?
Welnu, het antwoord hier is stochastische gradiëntafdaling.
En het blijkt dat de sarcastische gradiëntafdaling niet vereist dat de kostenfunctie convex is.
Laten we dus eens kijken naar de twee verschillen tussen de normale gradiëntafdaling waar we het over hadden
en de stochastische gradiënten.
Dus normale gradiëntafdaling is wanneer we al onze rijen nemen, we pluggen ze in ons neurale netwerk.
En nogmaals, hier hebben we het neurale netwerk meerdere keren gekopieerd, maar de rijen worden elke
keer aangesloten op datzelfde neurale netwerk.
Dus er is maar één jaar oud en dit is alleen voor visualisatiedoeleinden.
En als we ze eenmaal hebben aangesloten, hebben we onze kostenfunctie berekend op basis van de
formule aan de rechterkant en kijkend naar de grafiek onderaan, en dan passen we de gewichten aan.
Dan wordt dit de gradiëntafdalingsmethode genoemd, of het is ook de juiste term is de
batch-gradiëntafdalingsmethode.
Dus we nemen de hele batch van ons monster, we passen het toe en dan stellen we dat de stochastische
gradiëntafdalingsmethode hier een beetje anders is.
We nemen de rijen één voor één.
Dus we nemen deze rij, we beheren ons neurale netwerk, en dan passen we de gewichten aan.
Dan gaan we naar de tweede rij, we nemen de tweede rij, we runnen ons neurale netwerk.
We kijken naar de kostenfunctie en dan passen we de gewichten weer aan.
En dan nemen we nog een artikel drie.
Wij beheren ons neurale netwerk.
We kijken naar de kostenfunctie.
We zijn gewoon.
Dus eigenlijk kijken we hoe we de gewichten na elke rij aanpassen in plaats van alles samen te doen
en dan gewoon twee verschillende benaderingen af te wegen.
En nu gaan we de twee gewoon naast elkaar vergelijken.
Dus hier zijn ze.
Dit is hoe u ze visueel kunt onthouden.
Dus je hebt de batch-gradiëntafdaling waarbij je de gewichten aanpast nadat je ze hebt uitgevoerd, nadat je alle rijen in je
neurale netwerk hebt uitgevoerd, en dan pas je in feite de gewichten aan en voer je het hele ding opnieuw
uit , iteratie, iteratie, iteratie in de stochastische gradiëntafdalingsmethode, je rent één rij
tegelijk en je bent alleen de gewichten, weet je, gewoon een manier om de gewichten aan te passen
en dan doe je alles opnieuw en opnieuw.
En dat heet deze Cassegrain-afdalingsmethode.
De belangrijkste twee verschillen zijn dat de stochastische gradiënt-afdalingsmethode u helpt het probleem te vermijden
waarbij u die lokale extremen of lokale minima vindt in plaats van het algemene algemene globale minimum.
En de reden daarvoor is in eenvoudige bewoordingen dat de SAGD of de stochastische gradiëntafdalingsmethode veel grotere fluctuaties
heeft omdat het zich die kan veroorloven.
Het doet één iteratie of één rij tegelijk, en daarom zijn de fluctuaties veel groter en
is het veel waarschijnlijker dat het globale minimum wordt gevonden in plaats van alleen het lokale minimum.
En het andere ding over de stochastische gradiëntafdaling, niets vergeleken met de batchgradiënt is dat het
sneller is.
Zoals de eerste indruk die je zou kunnen hebben is omdat het een.
Stuk voor stuk is het langzamer, maar eigenlijk is het sneller omdat het niet alle gegevens
in het geheugen hoeft te laden en te rennen en te wachten tot al die wegen allemaal tegelijk zijn afgelegd.
Je kunt ze gewoon een voor een omdraaien.
Dus het is een veel lichter algoritme dat in die zin veel sneller is.
Het heeft dus veel meer.
En dat is in die zin.
Het heeft meer voordelen ten opzichte van de batch-gradiëntafdalingsmethode.
Het belangrijkste voordeel van of de belangrijkste soort van soortgelijke sonde voor de batch-gradiënt-afdalingsmethode is
dat het een deterministisch algoritme is in plaats van een stochastische gradiëntafdaling omdat het een sarcastisch
algoritme is, wat betekent dat het willekeurig is en met de batch-gradiëntafdalingsmethode, zolang je hebt dezelfde
startgewichten voor uw neurale netwerk, elke keer dat u de batch-gradiëntafdalingsmethode uitvoert, krijgt
u dezelfde iteraties, dezelfde resultaten voor u, voor de manier waarop uw gewichten worden bijgewerkt voor de
stochastische gradiëntafdalingsmethode.
Dat krijg je niet omdat het een stochastische methode is.
Je kiest je rollen mogelijk willekeurig en je werkt je neurale netwerk op een sarcastische manier bij.
En daarom ga je gewoon elke keer dat je de categorie en de fatsoenlijke methode uitvoert, zelfs
als je in het begin dezelfde gewichten hebt, je zult een ander proces hebben, een andere iteratie om daar te
komen.
Dus dat is in een notendop, wat stochastische gradiëntafdaling is.
Er is ook een methode tussen de twee die de mini-batch gradiënt-afdalingsmethode wordt genoemd, waarbij je de twee
combineert en je in feite uitvoert in plaats van een hele batch of één voor één uit te voeren, je voert batches van rijen uit,
misschien vijf, 10, 100 .
Hoeveel regels u ook besluit in te stellen, u voert die regels uit met dat aantal rijen tegelijk.
Dan werk je je gewichten en dubbele cijfers bij, enzovoort.
En dat wordt de mini-batch gradiëntafdalingsmethode genoemd.
Als je meer wilt weten over gradiëntafdaling, is er een geweldig artikel dat je kunt bekijken.
Het heet A Neural Network in 13 Layers of Python Part two Gradient Descent door Andrew Trisk en de onderstaande
links.
Het staat op GitHub 15 artikel.
Zeer goed geschreven, zeer in zeer eenvoudige bewoordingen.
Het heeft een aantal interessante filosofische of gewoon interessante gedachten over hoe je gradiëntafdaling toepast, wat de
voor- en nadelen zijn en hoe je dingen in bepaalde situaties moet doen.
Dus hij heeft een aantal hele coole tips, trucs en hacks, heel gemakkelijk te lezen.
Bekijk dat dus zeker eens.
En nog een wat zwaarder leesvoer.
Voor degenen onder u die van wiskunde houden, die tot op de bodem van de wiskunde
y gradiëntafdaling in dat specifiek willen komen, wat zijn de formules die achternicht aandrijven en hoe wordt het berekend
enzovoort.
Bekijk het artikel of eigenlijk het boek.
Het is een gratis online boek genaamd Neural Networks and Deep Learning van Michael Nielsen 2015.
Het is gewoon in principe allemaal online.
Je kunt je gang gaan en het daar en daar bekijken.
Nogmaals, heel zachte introductie tot de wiskunde, maar dan voor Moeder Aarde.
Maar de wiskunde is behoorlijk zwaar als je doorgaat, terwijl je het artikel leest.
Maar tegelijkertijd krijg je er ook zin in.
Ik denk dat hij een soort opwarmingshoofdstuk heeft waarin je eerst opwarmt voor de wiskunde en dan spring je erin.
Dus interesse in wiskunde.
Dan is dit het artikel om naar toe te gaan en daar gaan we.
Dus dat is in een notendop, het verschil tussen Grandison en stochastische gradiëntafdaling en hoe de twee
werken.
En wat dat betreft, gaan we vandaag afronden.
Citral, ik kijk ernaar uit je te zien bij de volgende.
En tot die tijd, geniet van deep learning.