WEBVTT

00:01.020 --> 00:01.800
Hallo en welkom terug.

00:01.900 --> 00:06.320
Bij deep learning hebben we het vandaag natuurlijk over stochastische gradiëntafdaling.

00:07.110 --> 00:14.400
Eerder leerden we over gradiëntafdaling en kwamen we erachter dat het een zeer efficiënte methode is om ons

00:14.400 --> 00:19.250
optimalisatieprobleem op te lossen waarbij we proberen de kostenfunctie te minimaliseren.

00:19.470 --> 00:28.950
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

00:29.430 --> 00:30.660
op te lossen.

00:30.930 --> 00:37.440
En het helpt echt om dingen te versnellen omdat we kunnen zien welke weg het bergafwaarts is en we kunnen gewoon die

00:37.440 --> 00:41.180
kant op gaan en stappen nemen en sneller tot het minimum komen.

00:41.520 --> 00:49.950
Maar het probleem met de stick met gradiëntafdaling is dat deze methode vereist dat de kostenfunctie convex

00:49.950 --> 00:50.850
is.

00:50.970 --> 00:55.230
En zoals je hier kunt zien, hebben we specifiek gekozen voor een convexe kostenfunctie.

00:55.230 --> 01:02.160
Convex betekent in feite dat de functie lijkt op wat we nu zien, dat hij slechts

01:02.370 --> 01:08.970
in één richting convex is en dat hij in wezen één globaal minimum heeft.

01:09.180 --> 01:10.780
En dat is degene die we gaan vinden.

01:11.520 --> 01:13.980
Maar wat als onze functie niet convex is?

01:13.980 --> 01:15.650
Wat als onze kostenfunctie niet correct is?

01:16.320 --> 01:17.520
Wat als het er ongeveer zo uitziet?

01:17.910 --> 01:19.380
Nou, ten eerste, hoe kon dat gebeuren?

01:19.770 --> 01:27.420
Nou, dat zou kunnen gebeuren, want als we allereerst een kostenfunctie kiezen, die niet het kwadraat verschil is tussen witte

01:27.420 --> 01:33.960
hoeden en waarom, of als we de kostenfunctie kiezen, wat zo is, maar dan in een

01:33.960 --> 01:38.880
multidimensionale ruimte, het kan zelfs veranderen in iets dat niet convex is.

01:39.630 --> 01:44.490
En wat zou er in dit geval gebeuren als we gewoon probeerden onze normale gradiëntafdalingsmethode toe te passen?

01:45.000 --> 01:46.200
Zoiets zou kunnen gebeuren.

01:46.380 --> 01:51.150
We zouden een lokaal minimum van de kostenfunctie kunnen vinden in plaats van de globale.

01:51.180 --> 01:54.420
Dus deze was de beste en we vonden de verkeerde.

01:54.630 --> 01:57.660
En daarom hebben we niet de juiste gewichten.

01:57.660 --> 01:59.630
We hebben geen geoptimaliseerd neuraal netwerk.

02:00.180 --> 02:02.200
We hebben een ondermaats neuraal netwerk.

02:02.430 --> 02:04.200
En wat doen we in dit geval?

02:04.560 --> 02:09.960
Welnu, het antwoord hier is stochastische gradiëntafdaling.

02:09.960 --> 02:15.050
En het blijkt dat de sarcastische gradiëntafdaling niet vereist dat de kostenfunctie convex is.

02:15.270 --> 02:20.100
Laten we dus eens kijken naar de twee verschillen tussen de normale gradiëntafdaling waar we het over hadden

02:20.100 --> 02:21.270
en de stochastische gradiënten.

02:21.750 --> 02:27.530
Dus normale gradiëntafdaling is wanneer we al onze rijen nemen, we pluggen ze in ons neurale netwerk.

02:27.570 --> 02:33.270
En nogmaals, hier hebben we het neurale netwerk meerdere keren gekopieerd, maar de rijen worden elke

02:33.270 --> 02:35.740
keer aangesloten op datzelfde neurale netwerk.

02:35.910 --> 02:38.840
Dus er is maar één jaar oud en dit is alleen voor visualisatiedoeleinden.

02:39.180 --> 02:42.990
En als we ze eenmaal hebben aangesloten, hebben we onze kostenfunctie berekend op basis van de

02:42.990 --> 02:46.920
formule aan de rechterkant en kijkend naar de grafiek onderaan, en dan passen we de gewichten aan.

02:47.310 --> 02:53.850
Dan wordt dit de gradiëntafdalingsmethode genoemd, of het is ook de juiste term is de

02:53.850 --> 02:54.410
batch-gradiëntafdalingsmethode.

02:54.420 --> 03:01.890
Dus we nemen de hele batch van ons monster, we passen het toe en dan stellen we dat de stochastische

03:01.890 --> 03:04.140
gradiëntafdalingsmethode hier een beetje anders is.

03:04.150 --> 03:05.880
We nemen de rijen één voor één.

03:05.880 --> 03:11.240
Dus we nemen deze rij, we beheren ons neurale netwerk, en dan passen we de gewichten aan.

03:11.910 --> 03:16.050
Dan gaan we naar de tweede rij, we nemen de tweede rij, we runnen ons neurale netwerk.

03:16.440 --> 03:19.560
We kijken naar de kostenfunctie en dan passen we de gewichten weer aan.

03:20.040 --> 03:21.960
En dan nemen we nog een artikel drie.

03:22.620 --> 03:23.700
Wij beheren ons neurale netwerk.

03:23.700 --> 03:24.660
We kijken naar de kostenfunctie.

03:24.660 --> 03:25.130
We zijn gewoon.

03:25.360 --> 03:32.250
Dus eigenlijk kijken we hoe we de gewichten na elke rij aanpassen in plaats van alles samen te doen

03:32.250 --> 03:35.850
en dan gewoon twee verschillende benaderingen af te wegen.

03:36.060 --> 03:39.630
En nu gaan we de twee gewoon naast elkaar vergelijken.

03:39.640 --> 03:40.550
Dus hier zijn ze.

03:40.560 --> 03:42.530
Dit is hoe u ze visueel kunt onthouden.

03:42.810 --> 03:48.990
Dus je hebt de batch-gradiëntafdaling waarbij je de gewichten aanpast nadat je ze hebt uitgevoerd, nadat je alle rijen in je

03:48.990 --> 03:54.930
neurale netwerk hebt uitgevoerd, en dan pas je in feite de gewichten aan en voer je het hele ding opnieuw

03:54.930 --> 03:59.100
uit , iteratie, iteratie, iteratie in de stochastische gradiëntafdalingsmethode, je rent één rij

03:59.100 --> 04:04.740
tegelijk en je bent alleen de gewichten, weet je, gewoon een manier om de gewichten aan te passen

04:04.740 --> 04:07.320
en dan doe je alles opnieuw en opnieuw.

04:07.680 --> 04:10.610
En dat heet deze Cassegrain-afdalingsmethode.

04:11.130 --> 04:19.200
De belangrijkste twee verschillen zijn dat de stochastische gradiënt-afdalingsmethode u helpt het probleem te vermijden

04:19.200 --> 04:28.220
waarbij u die lokale extremen of lokale minima vindt in plaats van het algemene algemene globale minimum.

04:28.890 --> 04:35.460
En de reden daarvoor is in eenvoudige bewoordingen dat de SAGD of de stochastische gradiëntafdalingsmethode veel grotere fluctuaties

04:35.460 --> 04:38.130
heeft omdat het zich die kan veroorloven.

04:38.130 --> 04:43.620
Het doet één iteratie of één rij tegelijk, en daarom zijn de fluctuaties veel groter en

04:43.620 --> 04:49.350
is het veel waarschijnlijker dat het globale minimum wordt gevonden in plaats van alleen het lokale minimum.

04:49.350 --> 04:54.600
En het andere ding over de stochastische gradiëntafdaling, niets vergeleken met de batchgradiënt is dat het

04:55.470 --> 04:56.460
sneller is.

04:56.460 --> 04:59.370
Zoals de eerste indruk die je zou kunnen hebben is omdat het een.

04:59.420 --> 05:05.260
Stuk voor stuk is het langzamer, maar eigenlijk is het sneller omdat het niet alle gegevens

05:05.260 --> 05:12.410
in het geheugen hoeft te laden en te rennen en te wachten tot al die wegen allemaal tegelijk zijn afgelegd.

05:12.580 --> 05:14.130
Je kunt ze gewoon een voor een omdraaien.

05:14.140 --> 05:16.750
Dus het is een veel lichter algoritme dat in die zin veel sneller is.

05:16.750 --> 05:19.780
Het heeft dus veel meer.

05:20.080 --> 05:21.160
En dat is in die zin.

05:21.160 --> 05:25.070
Het heeft meer voordelen ten opzichte van de batch-gradiëntafdalingsmethode.

05:25.300 --> 05:31.060
Het belangrijkste voordeel van of de belangrijkste soort van soortgelijke sonde voor de batch-gradiënt-afdalingsmethode is

05:31.060 --> 05:37.180
dat het een deterministisch algoritme is in plaats van een stochastische gradiëntafdaling omdat het een sarcastisch

05:37.180 --> 05:43.420
algoritme is, wat betekent dat het willekeurig is en met de batch-gradiëntafdalingsmethode, zolang je hebt dezelfde

05:44.230 --> 05:49.720
startgewichten voor uw neurale netwerk, elke keer dat u de batch-gradiëntafdalingsmethode uitvoert, krijgt

05:50.680 --> 05:57.250
u dezelfde iteraties, dezelfde resultaten voor u, voor de manier waarop uw gewichten worden bijgewerkt voor de

05:57.250 --> 05:58.230
stochastische gradiëntafdalingsmethode.

05:58.240 --> 06:01.120
Dat krijg je niet omdat het een stochastische methode is.

06:01.120 --> 06:07.870
Je kiest je rollen mogelijk willekeurig en je werkt je neurale netwerk op een sarcastische manier bij.

06:07.870 --> 06:13.390
En daarom ga je gewoon elke keer dat je de categorie en de fatsoenlijke methode uitvoert, zelfs

06:13.390 --> 06:19.780
als je in het begin dezelfde gewichten hebt, je zult een ander proces hebben, een andere iteratie om daar te

06:19.780 --> 06:20.270
komen.

06:20.680 --> 06:25.270
Dus dat is in een notendop, wat stochastische gradiëntafdaling is.

06:26.020 --> 06:31.210
Er is ook een methode tussen de twee die de mini-batch gradiënt-afdalingsmethode wordt genoemd, waarbij je de twee

06:31.210 --> 06:38.680
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,

06:38.680 --> 06:40.440
misschien vijf, 10, 100 .

06:40.690 --> 06:44.980
Hoeveel regels u ook besluit in te stellen, u voert die regels uit met dat aantal rijen tegelijk.

06:45.160 --> 06:47.440
Dan werk je je gewichten en dubbele cijfers bij, enzovoort.

06:47.740 --> 06:50.110
En dat wordt de mini-batch gradiëntafdalingsmethode genoemd.

06:50.470 --> 06:56.560
Als je meer wilt weten over gradiëntafdaling, is er een geweldig artikel dat je kunt bekijken.

06:56.560 --> 07:04.870
Het heet A Neural Network in 13 Layers of Python Part two Gradient Descent door Andrew Trisk en de onderstaande

07:04.870 --> 07:05.740
links.

07:05.740 --> 07:08.230
Het staat op GitHub 15 artikel.

07:09.490 --> 07:12.310
Zeer goed geschreven, zeer in zeer eenvoudige bewoordingen.

07:12.820 --> 07:21.430
Het heeft een aantal interessante filosofische of gewoon interessante gedachten over hoe je gradiëntafdaling toepast, wat de

07:21.430 --> 07:28.090
voor- en nadelen zijn en hoe je dingen in bepaalde situaties moet doen.

07:28.090 --> 07:31.990
Dus hij heeft een aantal hele coole tips, trucs en hacks, heel gemakkelijk te lezen.

07:32.010 --> 07:33.360
Bekijk dat dus zeker eens.

07:33.640 --> 07:36.890
En nog een wat zwaarder leesvoer.

07:36.940 --> 07:42.280
Voor degenen onder u die van wiskunde houden, die tot op de bodem van de wiskunde

07:42.280 --> 07:48.160
y gradiëntafdaling in dat specifiek willen komen, wat zijn de formules die achternicht aandrijven en hoe wordt het berekend

07:48.160 --> 07:48.580
enzovoort.

07:49.150 --> 07:51.400
Bekijk het artikel of eigenlijk het boek.

07:51.550 --> 07:57.070
Het is een gratis online boek genaamd Neural Networks and Deep Learning van Michael Nielsen 2015.

07:57.070 --> 07:59.560
Het is gewoon in principe allemaal online.

07:59.560 --> 08:02.950
Je kunt je gang gaan en het daar en daar bekijken.

08:02.950 --> 08:06.810
Nogmaals, heel zachte introductie tot de wiskunde, maar dan voor Moeder Aarde.

08:07.180 --> 08:13.090
Maar de wiskunde is behoorlijk zwaar als je doorgaat, terwijl je het artikel leest.

08:13.540 --> 08:17.080
Maar tegelijkertijd krijg je er ook zin in.

08:17.290 --> 08:22.590
Ik denk dat hij een soort opwarmingshoofdstuk heeft waarin je eerst opwarmt voor de wiskunde en dan spring je erin.

08:22.600 --> 08:23.920
Dus interesse in wiskunde.

08:23.920 --> 08:27.160
Dan is dit het artikel om naar toe te gaan en daar gaan we.

08:27.170 --> 08:35.670
Dus dat is in een notendop, het verschil tussen Grandison en stochastische gradiëntafdaling en hoe de twee

08:35.680 --> 08:36.280
werken.

08:36.280 --> 08:39.100
En wat dat betreft, gaan we vandaag afronden.

08:39.100 --> 08:41.920
Citral, ik kijk ernaar uit je te zien bij de volgende.

08:41.920 --> 08:44.050
En tot die tijd, geniet van deep learning.
