WEBVTT

00:00.580 --> 00:05.530
Hallo en welkom terug bij de cursus over diep leren in de oefening van vandaag, we hebben het

00:05.530 --> 00:06.310
over gradiëntafdaling.

00:06.760 --> 00:13.240
Wat we eerder hebben geleerd, was dat om een neuraal netwerk te laten leren, back-propagatie

00:13.240 --> 00:14.260
moet gebeuren.

00:14.260 --> 00:22.930
En dat is wanneer de fout, het verschil of de som van de gekwadrateerde verschillen tussen Y hat en Y terug wordt

00:23.140 --> 00:28.040
gepropageerd door het neurale netwerk en de gewichten dienovereenkomstig worden aangepast.

00:28.390 --> 00:34.020
Dat hebben we dus gezien en vandaag gaan we precies leren hoe deze gewichten worden afgesteld.

00:34.300 --> 00:35.040
Dus laten we eens kijken.

00:36.010 --> 00:44.470
Dit is onze zeer eenvoudige versie van het neurale netwerk Perceptron of een enkel hun voeten naar voren neuraal netwerk.

00:44.710 --> 00:51.620
En wat we hier kunnen zien, is dit hele proces in actie waar we enige inputwaarde hebben.

00:51.910 --> 00:53.350
Dan moeten we wachten.

00:53.860 --> 00:56.950
Dan wordt een activeringsfunctie toegepast.

00:56.950 --> 00:59.800
We hebben witte hoeden en dan vergelijken we het met de werkelijke waarde.

00:59.800 --> 01:01.370
We berekenen de kostenfunctie.

01:01.750 --> 01:05.130
Dus hoe kunnen we de kostenfunctie minimaliseren?

01:05.290 --> 01:07.270
Wat kunnen we eraan doen?

01:07.300 --> 01:14.680
Welnu, een benadering om het te doen is een benadering met brute kracht, waarbij we gewoon heel veel verschillende mogelijke gewichten nemen

01:14.680 --> 01:18.160
en ernaar kijken en zien welke het beste werkt.

01:18.160 --> 01:22.990
En wat we doen is, bijvoorbeeld, proberen voor, laten we zeggen, duizend gewichten en

01:23.230 --> 01:27.640
we zouden het proberen dat zoiets zou krijgen voor de kostenfunctie.

01:27.650 --> 01:32.740
En dit is een grafiek van op de Y-as, je hebt de functionele verticale as van de kosten.

01:32.740 --> 01:34.480
Op de horizontale as heb je Y-hoed.

01:34.750 --> 01:39.080
En omdat je kunt zien dat de formule is wat min Y een vierkant had.

01:39.130 --> 01:41.470
Dit is hoe de kostenfunctie eruit zou zien, zoiets.

01:42.510 --> 01:46.900
En eigenlijk zou je zien dat de beste hier is.

01:47.820 --> 01:53.150
Dus zeer eenvoudige, zeer intuïtieve benadering, waarom niet deze brute force-methode gebruiken?

01:53.160 --> 02:01.590
Waarom niet gewoon duizend verschillende kosten uitproberen voor duizend verschillende parameters of invoer voor gewichten en kijken welke het

02:01.590 --> 02:02.960
beste werkt?

02:02.970 --> 02:03.990
Zo vind je de beste.

02:04.320 --> 02:07.440
Nou, als je maar één manier hebt om te optimaliseren, zou dit kunnen werken.

02:07.680 --> 02:14.100
Maar als je het aantal gewichten verhoogt, het aantal synapsen in je netwerk vergroot, moet je de vloek

02:14.100 --> 02:16.140
van dimensionaliteit onder ogen zien.

02:16.500 --> 02:18.480
En wat is dan de oorzaak van dimensionaliteit?

02:19.380 --> 02:24.300
De beste manier om dit te beschrijven of uit te leggen, is door gewoon naar een praktisch voorbeeld te kijken.

02:24.540 --> 02:30.420
Dus onthoud dit voorbeeld dat we hadden toen we het hadden over hoe neurale netwerken

02:30.420 --> 02:36.690
eigenlijk werken, waar we een neuraal netwerk aan het bouwen of runnen waren voor een evaluatie van eigendommen.

02:37.020 --> 02:40.350
Dus zo zag het eruit toen het al was opgeleid.

02:40.680 --> 02:44.160
Nou, als het niet is getraind, voordat het is getraind, voordat we weten welke.

02:44.280 --> 02:45.060
Wat zijn de gewichten?

02:45.450 --> 02:53.550
Het eigenlijke neurale netwerk ziet er zo uit omdat we al deze verschillende mogelijke synapsen hebben en we nog steeds de

02:53.550 --> 02:54.840
gewichten moeten trainen.

02:55.150 --> 02:57.190
En hier hebben we in totaal 25 gewichten.

02:57.190 --> 03:01.460
Dus vier keer vijf aan het begin, plus vijf van het Hitlerisme zonder Butler.

03:01.590 --> 03:03.120
In totaal vijfentwintig gewichten.

03:03.540 --> 03:12.540
En laten we eens kijken hoe we mogelijk vijfentwintig brute kracht kunnen gebruiken, wat hier een heel eenvoudig neuraal netwerk is.

03:12.540 --> 03:14.250
Heel eenvoudig, slechts één verborgen laag.

03:14.520 --> 03:20.910
En hoe kunnen we ons met brute kracht een weg banen door een neuraal netwerk van deze omvang.

03:21.270 --> 03:24.050
Wel, er zijn enkele eenvoudige wiskundige berekeningen.

03:24.300 --> 03:25.830
We hebben 25 gewichten.

03:25.860 --> 03:30.030
Dus als we duizend combinaties hebben die we gaan testen voor elk gewicht,

03:30.030 --> 03:34.710
is het totale aantal combinaties duizend tot de macht van vijfentwintig of duizend of tien

03:34.710 --> 03:36.780
tot de vijf verschillende Palestijnse combinaties.

03:37.680 --> 03:46.590
Laten we nu eens kijken hoe Sunway vanaf juni 2016 de snelste supercomputer ter wereld achterlicht.

03:47.280 --> 03:49.590
Hoe zou zij dit probleem aanpakken?

03:49.620 --> 03:49.790
Rechts.

03:49.810 --> 03:52.200
Dus Sunway Tiku licht.

03:52.530 --> 03:58.670
Het lijkt erop dat dit een heel groot gebouw is voor deze ene supercomputer.

03:58.950 --> 04:04.320
En het kreeg het Guinness World Record als snelste supercomputer.

04:05.070 --> 04:12.570
Op dit moment is het de snelste supercomputer ter wereld en het Sunway-achterlicht kan werken met een snelheid

04:12.570 --> 04:13.440
van 93.

04:13.590 --> 04:22.890
Pede-flops zijn een flop, staat voor drijvende bewerking per seconde, dus het kan drieënnegentig tot de macht keer 10 tot

04:23.310 --> 04:27.840
de macht van 15 drijvende bewerkingen per seconde doen.

04:27.990 --> 04:32.070
Zo snel is het in vergelijking.

04:32.370 --> 04:37.880
Gemiddelde computers op dit moment, ze houden van iets meer dan enkele gigaflops enzovoort.

04:38.100 --> 04:43.980
Dus zoals een soort van die reeksen die veel minder zijn dan Taihu Sunway of Light.

04:44.280 --> 04:47.640
Dus plotseling is daglicht in de voorhoede van de technologie.

04:48.210 --> 04:58.260
En laten we hypothetisch zeggen dat het één test kan doen, één combinatie voor ons neurale netwerk op één

04:58.260 --> 05:01.230
diskette en één zwevende operatie.

05:01.590 --> 05:03.180
Dat is niet mogelijk.

05:03.180 --> 05:08.790
Dat is niet praktisch, omdat je meerdere zwevende bewerkingen nodig hebt om een enkel gewicht in je neurale netwerk

05:08.790 --> 05:09.420
te testen.

05:09.430 --> 05:11.190
Maar laten we het eens een voorsprong geven.

05:11.200 --> 05:15.000
Laten we zeggen dat het het kan in een ideale wereld.

05:15.000 --> 05:17.340
Het kan dat in één drijvende operatie.

05:17.340 --> 05:19.650
Het kan één test per één drijvende verrichting doen.

05:20.040 --> 05:26.490
Dat betekent dat het nog steeds 10 tot de macht van slechts vijf nodig heeft, gedeeld

05:26.490 --> 05:33.790
door drieënnegentig keer ongeveer 15 seconden om al die tests met brute kracht door dat netwerk uit te voeren.

05:34.020 --> 05:37.950
Dus dat betekent één of ongeveer tien tot de macht van 58 seconden.

05:37.950 --> 05:41.640
En dat is hetzelfde als tien tot de macht van 50 jaar.

05:42.030 --> 05:48.120
Dat is een enorm aantal dat langer is dan het universum heeft bestaan.

05:48.120 --> 05:52.800
En dat gaat zeker niet alleen omdat dit aantal zo enorm groot is.

05:52.800 --> 05:58.600
Het gaat gewoon absoluut niet voor ons werken in onze optimalisatie.

05:59.040 --> 05:59.820
Dus daar gaan we.

06:00.060 --> 06:05.370
Dit is een nee, zelfs niet op 's werelds snelste supercomputer, het Sunway-achterlicht.

06:05.370 --> 06:07.560
We moeten dus op een andere manier komen.

06:07.560 --> 06:09.930
Hoe gaan we het optimale gewicht vinden?

06:10.260 --> 06:13.500
Trouwens, ons neurale netwerk was heel eenvoudig.

06:13.500 --> 06:20.130
Hoe zit het als de neurale netwerken er ongeveer zo uitzien of zelfs groter dan dat, ja, dan zal het

06:20.130 --> 06:21.960
gewoon helemaal niet gebeuren, nooit.

06:22.710 --> 06:26.100
Dus de methode waar we naar gaan kijken, wordt gradiëntafdaling genoemd.

06:26.100 --> 06:27.980
En misschien heb je er al van gehoord.

06:28.470 --> 06:30.630
Zo niet, dan zoeken we uit wat het nu is.

06:30.640 --> 06:41.940
Dus daar is onze kostenfunctie en nu gaan we kijken hoe we een snellere manier kunnen vinden om de.

06:41.990 --> 06:46.900
Beste optie, dus laten we zeggen dat we ergens beginnen, je moet ergens

06:47.270 --> 06:56.570
beginnen, dus we beginnen daar en vanaf dat punt in de linkerbovenhoek, wat gaan we doen is kijken naar de hoek van onze

06:56.570 --> 06:58.550
kostenfunctie op dat moment.

06:58.550 --> 07:01.790
Dus we gaan gewoon in principe dat is wat gradiënt wordt genoemd, omdat je moet differentiëren.

07:02.000 --> 07:03.800
We gaan niet naar de wiskundige vergelijkingen kijken.

07:04.100 --> 07:08.990
Aan het einde van de volgende lezing zullen we enkele tips geven over extra lezen.

07:09.680 --> 07:16.910
Maar eigenlijk hoef je alleen maar te differentiëren, erachter te komen wat de helling in dat specifieke punt is en erachter te komen

07:16.910 --> 07:19.190
of de helling positief of negatief is.

07:19.190 --> 07:23.890
Als de als de helling negatief is, zoals in dit geval, betekent dit dat je bergafwaarts gaat.

07:23.900 --> 07:26.990
Dus naar rechts is bergafwaarts, naar links is bergop.

07:27.200 --> 07:29.090
En vanaf daar betekent het dat je moet gaan.

07:29.090 --> 07:29.630
Rechts.

07:29.650 --> 07:31.250
In principe moet je bergafwaarts.

07:31.520 --> 07:32.750
En dat is wat we gaan doen.

07:32.990 --> 07:35.100
Vrouw doet een stap, toch?

07:35.360 --> 07:37.370
De bal rolt weer naar beneden.

07:37.370 --> 07:38.090
Hetzelfde.

07:38.240 --> 07:39.500
Je berekent de helling.

07:39.500 --> 07:44.930
Dit de helling af is positief, wat betekent dat rechts bergop is, links is bergafwaarts, en je

07:44.930 --> 07:51.560
moet naar links en je rolt de bal naar beneden en opnieuw, je berekent de helling en je bent helemaal de bal.

07:51.560 --> 07:51.890
Rechts.

07:53.120 --> 07:53.430
Daar ga je.

07:53.460 --> 08:02.990
Dus zo vind je in eenvoudige bewoordingen, zo vind je de beste gewichten, de beste situatie die de

08:02.990 --> 08:04.280
kostenfunctie minimaliseert.

08:04.460 --> 08:08.750
Het zal natuurlijk niet zo zijn dat het rollen van een bal een erg zigzaggende benadering zal zijn.

08:08.750 --> 08:14.870
Maar het is gemakkelijker te onthouden of het is leuker om het te zien als een bal die aan het rollen is.

08:14.870 --> 08:19.700
Maar in werkelijkheid, ja, je zult gewoon zijn alsof een stapsgewijze benadering een zigzaggende

08:19.700 --> 08:20.420
methode wordt.

08:21.920 --> 08:22.220
Ja.

08:22.220 --> 08:24.970
En er zijn ook veel andere elementen.

08:24.980 --> 08:35.030
Er zijn dingen als, bijvoorbeeld, waarom, waarom gaat het naar beneden, waarom gaat het niet graag over de streep.

08:35.030 --> 08:40.400
Dus het had eruit kunnen springen, naar boven gegaan in plaats van naar beneden en dat soort dingen.

08:40.400 --> 08:41.900
Er zijn dus parameters die u kunt aanpassen.

08:41.900 --> 08:45.500
En nogmaals, we zullen vermelden waar u daar meer over kunt vinden.

08:45.500 --> 08:47.420
En bovendien hebben we dit in de praktische toepassing.

08:47.630 --> 08:51.680
Maar in de eenvoudigste intuïtieve benadering is dit wat er gebeurt.

08:51.680 --> 08:56.630
We komen tot op de bodem door te begrijpen welke kant we op moeten.

08:56.630 --> 09:01.850
In plaats van met brute kracht door duizenden en duizenden en miljoenen en

09:01.850 --> 09:08.840
miljarden en quadriljoenen combinaties te gaan, kunnen we gewoon elke keer kijken waar waar is, welke kant het afloopt.

09:08.840 --> 09:11.330
Dus alsof je je voorstelt dat je op een heuvel staat.

09:11.570 --> 09:13.730
Welke kant voelt het dat het naar beneden gaat?

09:13.730 --> 09:17.810
En welke kant het ook opgaat en je blijft maar zo lopen, je doet graag vijftig

09:17.810 --> 09:19.340
stappen en dan begin je weer.

09:19.340 --> 09:20.720
OK, welke kant gaat het naar beneden.

09:20.990 --> 09:21.380
Op deze manier.

09:21.410 --> 09:23.180
Oké, neem nu vijftig stappen of minder.

09:23.180 --> 09:27.760
Neem op die manier 40 stappen, zodat het steeds minder wordt naarmate je dichterbij komt.

09:28.430 --> 09:32.660
Dus hier is een voorbeeld van gradiëntafdaling toegepast in een tweedimensionale ruimte.

09:32.660 --> 09:35.270
Dus dat was een eendimensionaal voorbeeld.

09:36.500 --> 09:40.130
Hier hebben we een tweedimensionale ruimte voor de gradiëntafdaling.

09:40.160 --> 09:44.870
Zoals je kunt zien, komt het dichter bij het minimum en dit wordt ook

09:44.870 --> 09:49.070
wel gradiëntafdaling genoemd omdat je afdaalt naar het minimum van de kostenfunctie.

09:49.550 --> 09:53.150
En tot slot, hier is een gradiëntafdaling toegepast in drie dimensies.

09:53.330 --> 09:54.350
Dit is hoe het eruit ziet.

09:54.350 --> 09:59.090
Als je op twee dimensies hebt geprojecteerd, kun je zien dat het zich een weg baant naar het minimum.

09:59.600 --> 10:00.050
Dus daar gaan we.

10:00.050 --> 10:02.410
Dat was gradiëntafdaling in naast de deur.

10:02.420 --> 10:06.530
We zullen het hebben over stochastische gradiëntafdaling in het vervolg van deze tutorial.

10:06.860 --> 10:09.590
En ik kijk ernaar uit om je daar te zien tot de volgende keer.

10:09.590 --> 10:10.580
Geniet van diep leren.
