WEBVTT

00:00.540 --> 00:04.740
Hallo en welkom terug bij de cursus over Deep Learning vandaag, we hebben het over

00:04.740 --> 00:10.670
Max pooling en er komen een aantal zeer opwindende dia's aan en zelfs een speciale verrassing helemaal aan het einde van de tutorial.

00:10.890 --> 00:12.030
Dus laten we beginnen.

00:12.360 --> 00:15.660
De eerste vraag is: wat is pooling en waarom hebben we het nodig?

00:15.960 --> 00:19.580
Om die vraag te beantwoorden, laten we eens kijken naar deze afbeeldingen op deze drie afbeeldingen.

00:19.590 --> 00:20.660
We hebben een jachtluipaard.

00:20.670 --> 00:23.580
In feite is het exact dezelfde cheeta op de eerste afbeelding.

00:23.580 --> 00:29.520
De afbeelding is goed gepositioneerd en de cheeta kijkt je recht aan op de tweede afbeelding.

00:29.520 --> 00:32.310
Het is een beetje gedraaid en de derde afbeelding is een beetje platgedrukt.

00:32.640 --> 00:39.960
Het punt hier is dat we willen dat het neurale netwerk de cheeta in elk van deze afbeeldingen

00:39.960 --> 00:41.030
kan herkennen.

00:41.310 --> 00:43.170
In feite is dit slechts één cheeta.

00:43.170 --> 00:45.030
Wat als we veel verschillende cheeta's hebben?

00:45.030 --> 00:45.840
Hier is een jachtluipaard.

00:46.110 --> 00:47.070
Hier is een jachtluipaard.

00:47.280 --> 00:51.300
Hier is nog een jachtluipaard, zijn ashira, zijn jachtluipaard, en hier is een jachtluipaard.

00:51.510 --> 00:55.680
En we willen dat het neurale netwerk al die jaren als scheerders herkent.

00:56.130 --> 01:01.710
En hoe kan het dat doen als ze allemaal in verschillende richtingen kijken?

01:01.710 --> 01:04.050
Ze bevinden zich allemaal in verschillende delen van de afbeelding.

01:04.050 --> 01:06.990
Het is alsof hun gezichten zich in verschillende delen van de afbeelding bevinden.

01:06.990 --> 01:11.250
Iemand aan de rechterkant, iemand in de linkerhoek, iemand in het midden, ze zijn allemaal

01:11.250 --> 01:12.180
een beetje anders.

01:12.540 --> 01:14.210
De textuur is een beetje anders.

01:14.220 --> 01:16.140
De verlichting is wat anders.

01:16.140 --> 01:17.370
Er zijn veel kleine verschillen.

01:17.370 --> 01:23.130
En als het neurale netwerk bijvoorbeeld naar precies een bepaald kenmerk zoekt, is een onderscheidend kenmerk

01:23.130 --> 01:31.380
van de cheeta de tranen die op zijn gezicht uit de ogen of de sjiieten komen, de schaduwen die op tranen lijken, de

01:31.380 --> 01:35.910
textuur van het patroon dat gaat van zijn ogen naar beneden.

01:36.150 --> 01:37.760
Het zit aan de zijkanten van zijn neus.

01:37.770 --> 01:38.460
Het lijken tranen.

01:38.460 --> 01:40.590
Dat is een onderscheidend kenmerk van de cheeta.

01:40.800 --> 01:48.600
Maar als het op zoek is naar dat kenmerk, dat het leert van bepaalde cheeta's op een exacte locatie of een exacte

01:48.600 --> 01:53.040
vorm of vorm of textuur, zal het deze andere cheeta's nooit vinden.

01:53.370 --> 02:01.830
We moeten er dus voor zorgen dat ons neurale netwerk een zogenaamde ruimtelijke invariantie heeft, wat betekent

02:01.830 --> 02:06.360
dat het niet uitmaakt waar de kenmerken zich bevinden.

02:06.690 --> 02:13.110
Niet zozeer in welk deel van de afbeelding, want daar hebben we een beetje rekening mee gehouden met

02:13.110 --> 02:16.410
onze kaart, met onze armen, met onze convolutionele daar.

02:16.710 --> 02:23.340
Maar het maakt niet uit of de features een beetje gekanteld zijn, als de features een beetje anders

02:23.340 --> 02:30.150
van structuur zijn, als de features wat dichterbij zijn, features wat verder uit elkaar staan ten opzichte van elkaar.

02:30.160 --> 02:37.140
Dus als de functie zelf een beetje vervormd is, moet ons neurale netwerk een zekere mate van flexibiliteit hebben om die

02:37.290 --> 02:39.660
functie nog steeds te kunnen vinden.

02:39.900 --> 02:41.940
En dat is waar poolen om draait.

02:42.600 --> 02:44.670
Laten we dus eens kijken hoe pooling werkt.

02:45.060 --> 02:46.080
Hier is onze functiekaart.

02:46.080 --> 02:52.410
Dus we hebben onze convolutie al gedaan en we hebben dat deel voltooid en nu werken we met de convolutie daar.

02:52.560 --> 02:53.820
Nu gaan we pooling toepassen.

02:53.820 --> 02:54.630
Dus hoe werkt het?

02:54.630 --> 02:56.100
We gaan max pooling toepassen.

02:56.640 --> 03:00.750
Er zijn verschillende soorten politieke spelers, gemiddelde pooling, maximale pooling, wat pooling.

03:00.900 --> 03:03.300
En die zullen we tegen het einde van de citral becommentariëren.

03:03.450 --> 03:05.010
Maar voor nu passen we alleen max pooling toe.

03:05.010 --> 03:09.630
Dus we nemen zo'n doos van twee bij twee pixels.

03:09.960 --> 03:12.270
En nogmaals, het hoeft niet twee aan twee te zijn.

03:12.270 --> 03:13.470
U kunt elk formaat doos kiezen.

03:13.470 --> 03:18.810
En nogmaals, we zullen daar commentaar op geven in de richting van een redactioneel commentaar en je plaatst het in de

03:19.140 --> 03:21.870
linkerbovenhoek en je vindt de maximale waarde in dat vak.

03:21.870 --> 03:26.010
En dan noteer je alleen die waarde en negeer je de andere drie.

03:26.190 --> 03:27.840
Dus in je box heb je vier waarden.

03:27.840 --> 03:31.350
Je negeert er drie, je houdt er maar één van het maximum, dat is in dit geval één.

03:31.680 --> 03:34.590
Dan verplaats je je box een stap naar rechts.

03:34.590 --> 03:35.910
Je selecteert de pas nogmaals.

03:36.090 --> 03:41.010
Dus hier selecteren we een straight van twee en dat is wat je normaal gesproken selecteert.

03:41.010 --> 03:42.750
U kunt een rechte kiezen, u kunt selecteren.

03:42.870 --> 03:44.340
Er zijn dus overlappende dozen.

03:44.340 --> 03:47.910
Je kunt elke soort zwerver selecteren die je leuk vindt, zelfs drie als je wilt.

03:48.690 --> 03:52.200
Maar we selecteren hier Australië van twee en dat is wat vaak wordt gebruikt.

03:52.320 --> 03:53.880
En dan herhaal je het proces herhalen.

03:53.880 --> 03:55.770
Je hebt hier het maximum genoteerd.

03:55.770 --> 03:59.790
Als je oversteekt en het maakt niet uit, ga je gewoon door met waar je mee bezig bent.

03:59.970 --> 04:02.760
Hier noteer je dus nog steeds het maximum.

04:02.850 --> 04:04.500
Nul hier.

04:04.500 --> 04:05.850
Het maximum was hier vier.

04:05.850 --> 04:07.230
Het maximum was tot hier.

04:07.230 --> 04:10.590
Het maximum was één nul één nul twee en toen één.

04:11.310 --> 04:13.920
Dus zoals je kunt zien, zijn er een paar dingen gebeurd.

04:13.920 --> 04:18.100
Allereerst hebben we de kenmerken toch goed kunnen behouden.

04:18.110 --> 04:23.670
Tot de maximale aantallen die ze vertegenwoordigen omdat we weten hoe de convolutionele ER werkt.

04:23.670 --> 04:28.590
We weten dat de maximale of de grote getallen in uw functiekaart aangeven waar u

04:28.590 --> 04:31.260
de meeste overeenkomst met een functie hebt gevonden.

04:31.560 --> 04:38.190
Maar door deze functies vervolgens te bundelen, zijn we in de eerste plaats 75 procent van de informatie kwijt.

04:38.190 --> 04:46.020
Dat is niet de functie, en dat zijn niet de belangrijkste dingen waar we naar uitkijken, omdat we drie van

04:46.230 --> 04:48.990
de vier pixels buiten beschouwing laten.

04:49.650 --> 04:51.090
Dus we houden maar vijfentwintig procent.

04:51.360 --> 04:59.910
En dan ook nog omdat we het maximum nemen van de pixels die we of de waarden die we hebben.

05:00.640 --> 05:04.090
We houden dus rekening met eventuele verstoringen.

05:04.120 --> 05:12.640
Dus bijvoorbeeld twee afbeeldingen waarin bijvoorbeeld de tranen van de bedrieger op de ogen in één afbeelding staan, een beetje naar links of een beetje naar links gedraaid en nog een,

05:12.640 --> 05:17.050
ze zijn een beetje en er zijn hoe ze zouden moeten zijn of hoe we

05:17.260 --> 05:22.080
het leuk vinden als we de ene als basis nemen en dan de andere, ze zijn --

05:22.120 --> 05:23.080
naar links draaien.

05:23.590 --> 05:26.490
De gepoolde functie zal precies hetzelfde zijn.

05:26.500 --> 05:32.440
Dus je kunt hier zien, als we het hebben over de tranen van de bedrieger, laten we zeggen dat dit de vier is en

05:32.560 --> 05:35.980
dit is waar het hier was, dan als het een beetje gedraaid was.

05:35.980 --> 05:37.890
Zo kwamen de vier bijvoorbeeld hier terecht.

05:38.260 --> 05:42.520
Als we de pooling doen, krijgen we nog steeds dezelfde pull-functiekaart.

05:43.000 --> 05:46.060
En dat is een beetje het principe erachter.

05:46.390 --> 05:48.760
Het is een heel grove uitleg.

05:48.760 --> 05:54.070
Nogmaals, intuïtieve verklaring, maar dat is het punt van trekken dat we nog steeds

05:54.070 --> 06:01.990
in staat zijn om de functies te behouden en bovendien rekening te houden met hun mogelijke ruimtelijke of textuur- of andere soorten vervormingen.

06:02.320 --> 06:05.730
En naast dat alles verkleinen we de omvang.

06:05.740 --> 06:07.300
Er is dus nog een voordeel.

06:07.310 --> 06:09.610
Dus we hebben de functies behouden.

06:09.850 --> 06:11.890
We introduceren ruimtelijke invariantie.

06:12.040 --> 06:18.730
We verkleinen de omvang met 75 procent, wat enorm is, wat ons echt gaat helpen op het gebied van

06:18.730 --> 06:19.300
verwerking.

06:19.660 --> 06:25.060
Een ander voordeel van pooling is dat we het aantal parameters verminderen.

06:25.060 --> 06:27.760
Dus we verminderen weer met 75 procent.

06:27.760 --> 06:32.170
We verminderen het aantal parameters dat naar onze laatste lagen van het neurale

06:32.500 --> 06:35.050
netwerk gaat en daarom voorkomen we overfitting.

06:35.200 --> 06:42.490
Het is een heel belangrijk voordeel van pooling dat we informatie verwijderen en dat is een goede zaak.

06:42.530 --> 06:50.620
Dat is maar goed ook, want op die manier kan ons model die informatie niet overfitten, vooral omdat die informatie

06:50.620 --> 06:52.300
dat niet is.

06:52.540 --> 06:57.070
En onthoud, zoals in het allereerste begin waar we het over hadden, zelfs voor mensen als mensen,

06:57.070 --> 07:02.170
is het belangrijk om precies de kenmerken te zien in plaats van al dat andere geluid dat in onze ogen komt.

07:02.680 --> 07:09.040
Hetzelfde geldt voor neurale netwerken door de onnodige, niet belangrijke informatie te negeren die we

07:09.040 --> 07:11.870
helpen bij het voorkomen van overfitting.

07:12.400 --> 07:13.000
Dus daar gaan we.

07:13.000 --> 07:14.530
Dat is waar pooling over gaat.

07:14.530 --> 07:19.630
En de vraag is natuurlijk waarom WiMAX-pooling?

07:19.630 --> 07:19.810
Rechts.

07:19.810 --> 07:21.580
Er zijn veel verschillende soorten poolen.

07:21.580 --> 07:23.620
En je weet waarom we door twee worden berecht.

07:23.620 --> 07:26.380
Waarom een grootte van twee bij twee pixels, veel van al deze dingen.

07:26.620 --> 07:33.910
En wat dat betreft wil ik u kennis laten maken met dit mooie onderzoeksartikel genaamd Evaluation of Pooling

07:33.910 --> 07:40.740
Operations in Convolutional Architectures for Object Recognition door Dominic Ashara van de Universiteit van Bonn.

07:41.050 --> 07:41.830
Daar is de link.

07:42.040 --> 07:47.490
En het mooie van dit papier is dat het heel, heel eenvoudig, heel duidelijk is.

07:47.500 --> 07:52.900
Dus als je nog nooit een onderzoekspaper hebt gelezen die je graag eens zou willen proberen, dan is dit een geweldige plek

07:52.900 --> 07:53.770
om te beginnen.

07:53.770 --> 07:54.370
Het is erg kort.

07:54.370 --> 07:56.560
Slechts 10 pagina's, zeer gemakkelijk te lezen.

07:56.920 --> 08:02.560
En plus, het extra voordeel is dat nu we convolutie en pooling hebben besproken, je helemaal op je gemak zult

08:02.560 --> 08:05.900
zijn met alles waar ze het over hebben in dit artikel.

08:05.900 --> 08:09.360
En jij, dit is een geweldige manier om je kennis daadwerkelijk te versterken.

08:09.370 --> 08:11.380
Dus ik raad je ten zeerste aan om dit papier te lezen.

08:11.780 --> 08:17.530
Ik neem 20 minuten om het te lezen en je kunt zelfs deel twee overslaan, dat gerelateerd werk wordt genoemd.

08:17.530 --> 08:22.840
Als het een beetje vergezocht of vervreemdend aanvoelt, lees dan niet dat deel rechtstreeks van Padawan naar deel

08:22.840 --> 08:23.440
drie gaat.

08:23.770 --> 08:29.500
En het enige dat u over dit artikel moet weten, is dat ze praten over een concept dat subsampling wordt genoemd.

08:30.460 --> 08:33.160
Will sub-sampling is in feite een gemiddelde pooling.

08:33.160 --> 08:37.330
Dus onthoud hoe we hier aan het praten waren, we namen het maximale.

08:37.340 --> 08:39.880
Dus in ons vierkant namen we de maximale waarde.

08:39.910 --> 08:44.680
Er is een concept dat gemiddelde pooling of wat pooling wordt genoemd, wat pooling omdat je slechts enkele van deze

08:44.680 --> 08:46.750
waarden de gemiddelde pooling of gemiddelde pooling verhoogt.

08:46.750 --> 08:53.350
Je haalt de gemiddelde waarde uit al deze en subsamples is een soort generalisatie van mean

08:53.350 --> 08:53.830
pooling.

08:53.830 --> 09:00.790
Het is een meer algemene benadering om het gemiddelde van deze waarden te nemen.

09:00.790 --> 09:05.260
En je kunt er wat meer over lezen in de krant, maar beschouw het anders maar als gemiddelde pooling als

09:05.260 --> 09:06.250
je die krant leest.

09:06.770 --> 09:09.580
En dus kunt u daar wat aanvullende informatie over dit onderwerp krijgen.

09:09.820 --> 09:12.280
En laten we nu een beetje samenvatten hoe we erin zijn beland.

09:12.280 --> 09:13.870
Dus daar is onze invoerafbeelding.

09:14.770 --> 09:18.910
Toen pasten we de convolutiebewerking toe en daar kregen we de convolutie.

09:18.940 --> 09:22.540
En nu naar elk van die functiekaarten die we krijgen.

09:22.540 --> 09:24.040
Daar hebben we de pooling toegepast.

09:24.160 --> 09:28.450
Dus we hebben deze twee stappen gedaan, convolutie en pooling.

09:28.720 --> 09:31.750
En nu gaan we iets heel leuks doen, iets spannends.

09:32.080 --> 09:34.390
We gaan hiermee experimenteren.

09:34.390 --> 09:44.590
Dit is dus een screenshot die ik heb gemaakt van een tool gemaakt door Adam Hartley van lang geleden toen hij aan de Ryerson University

09:44.590 --> 09:46.300
of Computer Science zat.

09:46.300 --> 09:50.920
En nu is hij bij Carnegie Mellon, denk ik, bezig met zijn Ph. D. en geweldig hulpmiddel.

09:50.920 --> 09:54.100
Dus laten we openen, laten we eens kijken, zodat je het kunt vinden.

09:54.100 --> 09:55.720
Je kunt het niet echt vinden via Google.

09:55.720 --> 09:57.430
Je moet de Yooralla kennen.

09:57.430 --> 09:59.440
Het is gewoon moeilijk te vinden.

09:59.440 --> 09:59.550
Zijn.

09:59.640 --> 10:00.840
Google, want hier is geen belasting.

10:01.180 --> 10:09.750
Kijk, we zijn gewoon de assistent Ryerson Dossie van dit jaar en dan dit spul daar en eigenlijk is dit precies

10:10.380 --> 10:11.940
wat we doen.

10:11.940 --> 10:12.630
Maar visualiseren.

10:12.650 --> 10:14.320
Dus hier moet je een nummer tekenen.

10:14.340 --> 10:21.290
Dus laten we zeggen dat ik nummer vier trek en deze tool zal het nummer vier hier plaatsen.

10:21.300 --> 10:24.080
Dat is uw afbeelding in onze eerste stap.

10:24.090 --> 10:26.100
Dan is dit de convolutiestap.

10:26.670 --> 10:27.020
Rechts.

10:27.030 --> 10:28.140
En dit is de stap van het poolen.

10:28.140 --> 10:30.310
En ook trekken wordt trouwens ook wel downsampling genoemd.

10:30.330 --> 10:36.300
Dus een downsampling van dezelfde dingen trekken, zodat je de toegepaste convolutie kunt zien, dan is het toegepaste pooling

10:36.300 --> 10:39.100
en kun je zien hoe het precies werkt.

10:39.100 --> 10:44.340
U kunt dus zien wat voor soort windingen het heeft toegepast of wat voor soort filters het heeft toegepast, hoe ze eruit

10:44.340 --> 10:44.820
zien.

10:44.820 --> 10:49.320
Je kunt zien naar welke functies op zoek is en dan is het van toepassing, pooling.

10:49.320 --> 10:50.580
Het wordt dus kleiner.

10:50.580 --> 10:53.160
En je kunt hier zien dat dit belangrijk is.

10:53.160 --> 10:53.310
Rechts?

10:53.320 --> 11:00.060
U kunt dus zien dat dit de betrokken afbeelding is en dat dit de gepoolde afbeelding is.

11:00.060 --> 11:01.730
En je kunt nog steeds dezelfde functies zien.

11:01.740 --> 11:04.020
Het is gewoon minder informatie, maar dezelfde functies.

11:04.020 --> 11:04.220
Rechts.

11:04.230 --> 11:05.760
De kenmerken blijven behouden.

11:05.790 --> 11:06.960
Dat is het belangrijkste.

11:08.190 --> 11:12.870
En bovendien, als, weet je, als ze alle vier een beetje naar de zijkant waren

11:13.140 --> 11:16.740
gedraaid, zou het nog steeds zeer vergelijkbare gepoolde lagen kunnen oppikken.

11:16.920 --> 11:18.500
En daarna heeft het meer lagen.

11:18.510 --> 11:19.730
Daar hebben we het nog niet over gehad.

11:19.740 --> 11:25.950
Dus dan heeft het hier nog een convolutionele, convolutionele laag, die we eigenlijk niet zullen hebben.

11:26.940 --> 11:30.420
En dan heeft het nog een poollaag, maar in feite herhaalt het gewoon hetzelfde proces.

11:30.820 --> 11:36.120
En daarna, dit is waar we het verderop in de cursus over zullen hebben: de volledig

11:36.120 --> 11:37.320
verbonden lagen enzovoort.

11:37.980 --> 11:39.810
Maar daar kun je zeker mee spelen.

11:39.820 --> 11:47.850
Dus als ik verwijder wat je leuk vindt als ik een zeven trek, zul je zien dat het je eigenlijk de gissingen vertelt.

11:47.850 --> 11:49.200
Het gokt dat dit een zeven is.

11:49.410 --> 11:52.520
En de tweede gok, de tweede kans is een drie.

11:52.950 --> 11:56.350
Dus je kunt een aantal uitdagende dingen tekenen en kijken of het ze kan oppakken.

11:56.370 --> 12:01.140
Dus laten we zeggen dat als ik iets teken dat op een nul lijkt, maar het is geen voltooide nul, het dan wordt

12:01.140 --> 12:01.420
opgepakt?

12:01.960 --> 12:03.650
Nee, deze keer niet opgepikt.

12:03.660 --> 12:06.080
Het lijkt op een negen, op de afbeelding.

12:06.090 --> 12:08.010
Wat als ik het leuk vind om zo te eindigen?

12:08.430 --> 12:11.130
Ze denkt nu dat het een nul of een negen is.

12:11.490 --> 12:14.420
En je kunt daar zien wat de nul of de negen oplicht.

12:14.430 --> 12:16.080
Maar we zullen het hebben over dat deel van de dart.

12:16.550 --> 12:19.770
Er is er nog één, laten we zeggen als acht.

12:19.790 --> 12:21.960
Ik denk dat het hier best moeilijk voor is.

12:22.440 --> 12:23.700
Geen acht gehaald.

12:23.700 --> 12:25.860
Dus je kunt zien dat dat in een acht gaat.

12:25.860 --> 12:31.020
En dan, zoals daarna, is het niet meer herkenbaar, het houdt op met logisch te zijn voor ons mensen.

12:31.440 --> 12:31.830
Rechts.

12:32.040 --> 12:34.140
Deze functies waarmee het werkt.

12:34.470 --> 12:38.370
Maar tegelijkertijd erkent het correct dat het een acht is.

12:38.820 --> 12:39.030
Ja.

12:39.060 --> 12:40.470
Speel daar dus zeker mee.

12:40.470 --> 12:43.230
Je kunt een smiley tekenen, kijken wat er dan gebeurt.

12:44.170 --> 12:50.000
Het lijkt op een drie voor deze tool, omdat de tool duidelijk alleen is getraind op cijfers

12:50.000 --> 12:53.120
van nul tot negen, dus het moet iets herkennen.

12:53.130 --> 12:59.870
Er zijn er van en het herkent dat een drie is zoals in het leven wanneer je iets ziet als

12:59.990 --> 13:05.660
een soort fruit dat je nog nooit eerder hebt gezien, zoals een custardappel of zoiets.

13:05.930 --> 13:12.260
En je denkt dat het is alsof het een peer is, omdat je er nog nooit eerder een hebt gezien.

13:12.270 --> 13:13.910
Je weet niet hoe je het moet classificeren.

13:13.920 --> 13:14.590
Hetzelfde hier.

13:14.600 --> 13:17.420
Dus het heeft niet echt getraind op de smileygezichten.

13:17.690 --> 13:20.030
En daarom stinkt het als een boom, als een drie.

13:20.390 --> 13:22.600
Dus ze denken dat het een zeer krachtig, krachtig hulpmiddel is.

13:22.610 --> 13:25.250
Het zal je helpen om ermee te spelen.

13:25.250 --> 13:33.590
Als je met je muis over een pixelpixel gaat, zie je waar de feature-detector was om die pixel op te pikken,

13:33.590 --> 13:37.400
zodat je kunt zien waar deze pixels vandaan komen.

13:37.400 --> 13:42.680
En ook zodat je kunt zien hoe het filter eruitzag alsof het door de afbeelding ging.

13:42.680 --> 13:44.420
Precies hoe we erover spraken, natuurlijk.

13:44.420 --> 13:47.300
En hier kun je zien dat je de pooling kunt zien.

13:47.300 --> 13:56.780
Je kunt zien dat het trekken gebeurt met het trekken met een kleine vierkante maat van twee bij twee.

13:57.020 --> 14:03.430
En je kunt zien dat het ook een rechttoe rechtaan is, net zoals we in de tutorial van vandaag hebben besproken.

14:03.860 --> 14:04.490
Daar ga je dan.

14:04.820 --> 14:05.930
Speel daar eens mee.

14:05.930 --> 14:09.120
En ik hoop dat je genoten hebt van de sessie van vandaag.

14:09.140 --> 14:10.440
Ik kijk ernaar uit om je de volgende keer te zien.

14:10.460 --> 14:12.440
En tot die tijd, geniet van deep learning.
