WEBVTT

00:00.480 --> 00:06.650
Hallo und willkommen zu diesem Tutorial. Jetzt werden wir diese zweite Funktion erstellen, um die Gewichte zu initialisieren.

00:06.840 --> 00:11.190
Und dieses wird verwendet, um ein optimales Lernen zu erreichen.

00:11.340 --> 00:13.160
Eigentlich diese Gewichte.

00:13.230 --> 00:21.960
Die zweite Funktion, die wir als Gewichtungsunterstrich bezeichnen, wird das Objekt und das

00:22.200 --> 00:26.020
neuronale Netzwerk als Argument verwenden.

00:26.220 --> 00:27.080
Das ist also alles.

00:27.090 --> 00:32.300
Und dann den Doppelpunkt und jetzt kommen wir in die Funktion, um zu definieren, was wir tun wollten.

00:32.580 --> 00:38.610
Grundsätzlich wollten wir also die Gewichte des neuen Netzwerks so initialisieren, dass wir

00:38.610 --> 00:39.920
optimal lernen.

00:40.080 --> 00:43.590
Das erscheint also nicht besonders intuitiv.

00:43.590 --> 00:46.740
Dies basiert auf Forschungsarbeiten und Experimenten.

00:46.740 --> 00:52.440
Wir werden die Gewichte auf eine bestimmte Weise initialisieren, die wir noch nicht gesehen haben, aber glauben Sie

00:52.440 --> 00:54.740
mir, dass dies den Lernprozess optimieren wird.

00:54.930 --> 01:00.760
Also haben wir nur implementiert, ohne zu verstehen, warum wir die Gewichte auf diese Weise initialisieren.

01:00.960 --> 01:06.390
Wir beginnen also mit einem Trick, der später verwendet wird, um zwischen

01:06.660 --> 01:13.260
der Faltung und der vollständigen Verbindung zu unterscheiden, weil Sie wissen, dass unsere KI Augen hat

01:13.260 --> 01:15.290
und daher einige Faltungsschichten.

01:15.330 --> 01:20.550
Natürlich wird es auch einige vollständig verbundene Schichten haben, und wir haben eine unterschiedliche Initialisierung

01:20.550 --> 01:23.550
der Gewichte für diese zwei Arten von Verbindungen.

01:23.820 --> 01:28.620
Wir werden also diesen Trick verwenden, um diese zwei Arten von Verbindungen zu trennen,

01:28.890 --> 01:34.160
und dann werden wir einige Bedingungen verwenden, um die unterschiedliche Initialisierung für jede dieser Verbindungen zu erhalten.

01:34.170 --> 01:40.410
Dieser Trick besteht also darin, eine neue Variable zu erstellen, die wir als Nachnamen bezeichnen, und die

01:40.410 --> 01:44.630
für ein Objekt aufgerufen wird, das das neuronale Netzwerk darstellt.

01:44.670 --> 01:47.140
Aber es ist ein Objekt, das wir später sehen werden.

01:47.430 --> 01:54.290
Und wir werden das spezielle Attribut von diesem

01:54.390 --> 02:01.570
Objekt erhalten, das Kolesnik mit doppelter Unterstreichung sein wird.

02:01.610 --> 02:03.100
Ein weiterer doppelter Unterstrich.

02:03.360 --> 02:10.500
Es ist also ein ziemlich hässlicher Trick, nach der Art der Verbindung unseres neuen Netzwerkobjekts zu suchen, aber das gibt uns genau

02:10.500 --> 02:12.100
das, was Sie wollen.

02:12.210 --> 02:15.300
Sie werden sehen, dass es Sinn machen wird, wenn wir unter Bedingungen beginnen.

02:15.540 --> 02:19.710
Übrigens können wir sie gerade jetzt aufhalten.

02:19.710 --> 02:26.170
Was wir jetzt tun werden, ist die erste Bedingung, die uns den ersten Fall bringen wird.

02:26.280 --> 02:34.770
Dies ist der Fall, wenn die Verbindung eine Faltung ist und diese Bedingung richtig geschrieben werden soll, wenn der Klassenname in Ordnung

02:35.010 --> 02:35.510
ist.

02:35.510 --> 02:45.180
Hier verwenden wir eine Methode, die find-Methode findet und inside, wenn sie für die Faltung in Anführungszeichen gesetzt wird.

02:45.300 --> 02:54.330
Wenn also der Klassenname gefunden werden kann, tun wir etwas anderes als ein Minus, was tatsächlich der Fall ist, wenn wir

02:54.540 --> 02:57.900
eine Faltung haben, weil Manasquan Nein bedeutet.

02:58.200 --> 03:03.360
In diesem Fall werden wir die Gewichte speziell initialisieren.

03:03.420 --> 03:07.830
Diese Bedingung bedeutet also, wenn wir eine Faltungsverbindung haben.

03:07.830 --> 03:13.910
In diesem Fall führen wir also eine bestimmte Initialisierung der Art und Weise durch, wie wir es wollen.

03:14.040 --> 03:17.930
Und so werden all die nicht intuitiven Dinge kommen.

03:18.060 --> 03:21.990
Wir beginnen mit dem Erstellen einer Variablen, die wir sie nennen werden.

03:22.180 --> 03:29.260
Und diese Form des Gerichts unterstreicht die Form der Gewichte in unserem

03:29.530 --> 03:31.310
neuen Netzwerk.

03:31.580 --> 03:35.800
Und so verwenden wir die Listenfunktion, um eine Liste zu erstellen.

03:35.930 --> 03:42.880
Und in das neuronale Netz werden wir das Gewicht einlegen, das das Gewicht des neuronalen Netzes sein

03:42.880 --> 03:43.500
wird.

03:43.570 --> 03:50.890
In der Faltungsverbindung und um die Form dieser Gewichtungen zu erhalten, verwenden wir ein

03:50.890 --> 03:59.670
anderes Attribut, nämlich Daten und dann die Größe. Sie erhalten die Form dieser Gewichtungen in der Faltungsverbindung.

03:59.680 --> 04:06.580
Nun enthält die Gewichtsform in einer Liste die Form der Gewichtungen und der Faltungsverbindungen unseres

04:06.880 --> 04:08.300
Netzwerks und.

04:08.460 --> 04:14.510
Also gut, dann haben wir die Gewichtsform, um die Gewichte dieser Faltungsverbindung zu initialisieren.

04:14.560 --> 04:16.650
Wir werden zwei Werte brauchen.

04:16.650 --> 04:22.920
Erstens ist das Produkt der ersten Dimension durch die zweite Nominierung durch diese dritte Dimension.

04:22.930 --> 04:27.960
Das ist es, was wir jetzt bekommen werden, und dann müssen wir auch die Nullstellen beim

04:27.960 --> 04:33.570
zweiten Mal und manchmal bei der dritten Dimension ermitteln. Dann werden wir diese beiden Werte in der

04:33.660 --> 04:35.660
Konkurrenz der Initialisierung verwenden Gewichte.

04:35.670 --> 04:37.920
Lasst uns das durch dieses erste Produkt machen.

04:37.920 --> 04:46.050
Wir nennen es Spaß und das wird dem Produkt gleich sein, und wir werden die Prod-Funktion verwenden,

04:46.050 --> 04:55.270
die eine Funktion von Nicht-Thai ist, die eine Abkürzung hat und so dass PRUD und Inside Prod eingeben, was wir

04:55.260 --> 04:56.680
wollen Produkt.

04:57.180 --> 05:02.590
Und wie wir gesagt haben, ist dies der Diamant und eine zwei und drei unserer Gewichtsform.

05:02.880 --> 05:10.430
Um dies zu erhalten, können wir eine Wellenform annehmen und die Indizes dieser drei Reihenmaschinen ermitteln.

05:10.500 --> 05:15.800
Und so haben wir Simonton eins bis 10 Zoll eingestellt und drei eingeschlossen.

05:16.020 --> 05:18.770
Also ein Dungeon für ausgeschlossen.

05:19.050 --> 05:24.230
Und so können wir es für die obere Grenze hier nicht bekommen.

05:24.440 --> 05:35.410
Also, das ist, was wir wollen. Gleich zum Spaß, als wir sagten, Fan, es wird das Produkt des Schadens in der

05:35.410 --> 05:39.650
Zeitdimension Null sein, den ich dreimal erwähnte.

05:39.730 --> 05:45.490
Und hier können wir von zwei eingeschlossenen zu vier ausgeschlossenen indexiert werden.

05:45.730 --> 05:52.110
Das wird also das Produkt aus Zeit und zwei und drei sein, und dann können wir es

05:52.180 --> 05:58.900
mit dem Design und der Null multiplizieren, auf die wir mit dem Nullschiff des Null-Index null zugreifen können.

05:59.230 --> 06:16.990
Zusammenfassend ist dies das einmalige Zweifache in drei, und knapp darunter haben wir in dreien unserer

06:16.990 --> 06:20.320
Gewichtskontrolllisten das Zehnfache.

06:20.320 --> 06:25.390
In Ordnung, also werden wir jetzt diese beiden Werte auffächern und

06:25.870 --> 06:33.280
auffächern, um mit der Initialisierung fortzufahren, da wir einen neuen Wert berechnen werden, da wir W-gebunden bezeichnen werden

06:33.280 --> 06:39.530
wir können mit einer Funktion und einem P von und damit als qr t erhalten.

06:39.520 --> 06:40.830
Zweitens wie vorher.

06:40.840 --> 06:46.710
Also die Quadratwurzel von 6 durch Auffächern geteilt.

06:46.820 --> 06:57.340
Fan in let Fan, dass wir dieses W hier unten haben, entspricht in gewisser Weise der Größe der Dutzend

06:57.340 --> 06:58.140
Gewichte.

06:58.240 --> 06:59.740
Und warum haben wir das verstanden?

06:59.740 --> 07:06.130
Wir wollten jetzt also zufällig Gewichte generieren, die umgekehrt proportional

07:06.130 --> 07:10.070
zur Größe des Tensors sind.

07:10.180 --> 07:18.580
Denn was wir jetzt tun, ist, unser neues Netzwerk zu nehmen und dann sein Gewicht zu gewinnen.

07:18.580 --> 07:25.260
Wenn Sie also weiterhin das Attribut weight verwenden, greifen Sie auf seine Daten zu, die der Tensor selbst ist.

07:26.100 --> 07:33.330
Und aus diesem Tensor von Gewichten werden wir einige zufällige Gewichtungen erzeugen, die umgekehrt

07:33.330 --> 07:37.110
proportional zur Größe der Tensorgewichte sind.

07:37.180 --> 07:45.520
Und so müssen wir in dieser einheitlichen Funktion jetzt eine untere Grenze setzen, die minus W-Grenze ist, und die

07:45.520 --> 07:49.090
obere Grenze, die plus W zurück sein wird.

07:49.750 --> 07:52.460
OK, das ist für die Gewichte.

07:52.510 --> 07:57.460
Und jetzt müssen wir die Voreingenommenheit und die guten Nachrichten für die Voreingenommenheit initialisieren.

07:57.460 --> 07:59.130
Es wird viel einfacher sein.

07:59.200 --> 08:07.650
Wir werden sie alle mit Nullen initialisieren, um diese Einkäufe zu erhalten, nehmen wir sie natürlich von unserem Modell,

08:08.070 --> 08:09.470
unserem neuen Netzwerk.

08:09.930 --> 08:15.790
Und dann ist das Attribut für die Verzerrung gleichermaßen mit dem Zugriff auf die Daten.

08:16.200 --> 08:23.430
Und dann werden wir eine Methode verwenden, die die Phil-Unterstreichungsmethode ist, die, wie Sie vielleicht vermutet haben, verwendet wird, um

08:23.580 --> 08:29.970
den Vorspannungs-Tensor gut mit Nullen mit den Regeln zu füllen, die wir angeben müssen, damit wir ihn hier

08:29.970 --> 08:31.600
mit Nullen füllen wollen.

08:31.700 --> 08:34.230
Deshalb setze ich hier Null.

08:34.560 --> 08:40.210
Um es zusammenzufassen, generieren wir einige zufällige Gewichte, die umgekehrt proportional zur Größe der Tensorgewichte

08:40.210 --> 08:43.860
sind, und wir haben das Gerät mit Nullen initialisiert.

08:43.860 --> 08:49.850
In Ordnung, das war also für die Aktion Initialisieren bei den Faltungsverbindungen.

08:49.880 --> 08:52.880
Jetzt müssen wir dasselbe für die vollständige Verbindung tun.

08:53.300 --> 09:01.470
Wir fügen also eine neue Bedingung hinzu, und wenn wir diesen Trick anwenden, verwenden wir den Namen der ersten Klasse, dh

09:01.470 --> 09:05.160
diese Variable, die die verschiedenen Namen der Verbindungen enthält.

09:05.160 --> 09:14.440
Wenn also der Klassenname derselbe ist, verwenden wir die find-Methode, bei der dieses Mal eine vollständige Verbindung in Anführungszeichen gesetzt wird, die eine

09:14.580 --> 09:19.050
klassische lineare Verbindung in einem klassischen künstlichen neuronalen Netzwerk darstellt.

09:19.390 --> 09:27.160
Der Name dafür ist linear und sagt, dass wir diesen Trick verwenden werden, um zu sagen, dass wir wollen,

09:27.160 --> 09:35.810
dass es anders als minus eins ist. Dies ist also das Ende der Klasse. Feines Leinen unterscheidet sich von minus eins,

09:35.810 --> 09:41.360
wenn die Verbindung besteht das gibt es, wenn wir eine klassische Verbindung haben.

09:41.360 --> 09:44.620
In diesem Fall also, wie werden wir die Gewichte initialisieren.

09:44.840 --> 09:47.260
Nun, es wird ziemlich dasselbe sein.

09:47.270 --> 09:54.020
Wir werden Whaleship Voivode einführen, das den ersten nicht löscht, weil wir entweder in diesem

09:54.050 --> 10:01.430
Fall oder in diesem Fall nicht so sein werden, also können wir das komplett rückgängig machen, dann

10:01.430 --> 10:08.600
werden wir einen Fan in Variable einführen was dieses Mal nicht gleich dem Produkt dieser drei Dimensionen

10:08.600 --> 10:09.440
ist.

10:09.650 --> 10:17.090
Aber eigentlich wird es diesmal gleich sein, wenn man nur eine davon erwähnt.

10:17.380 --> 10:23.870
Und das ist so, weil für die volle Verbindung weniger Verbindungen als bei einer Faltungsverbindung bestehen.

10:23.880 --> 10:29.970
Ist dies eine Intuitionsvorlesung am Ende und im CNN-Abschnitt wird weniger für eine vollständige

10:29.970 --> 10:32.640
Verbindung erwähnt als für eine Faltung.

10:32.640 --> 10:39.840
Im Grunde nehmen wir uns diese Zeit in einem Jahr und sagen dann, dass wir eine Fan-Out-Variable

10:39.840 --> 10:48.780
haben werden, die dann zur Berechnung von W verwendet wird. Grenzen und diese Fan-out-Dominanz wird Gewichte Form von Index 0

10:49.160 --> 10:49.890
sein.

10:49.890 --> 10:51.470
Das ist der Diamanten Null.

10:51.480 --> 10:55.290
Also gut zu GWB und es wird das gleiche sein.

10:55.470 --> 11:01.780
Es wird die Quadratwurzel von 6 sein, geteilt durch die beleidigende Summe und das herausfinden.

11:01.830 --> 11:04.660
Also los geht's.

11:04.880 --> 11:11.870
Und die gute Nachricht ist, dass es genau das Gleiche ist, wie zuvor. Wir verwenden die einheitliche

11:11.870 --> 11:20.990
Funktion für die Gewichte und die Füllfunktion für die Neigung, um die gleiche Art der Initialisierung zu erhalten, mit einem anderen Lüfter in

11:20.990 --> 11:24.440
und einem anderen Lüfter und daher anders .

11:24.560 --> 11:27.520
Das ist also das gleiche Prinzip, das ist die gleiche Idee.

11:27.530 --> 11:32.660
Das einzige, was sich hier ändert, ist, dass wir weniger Dominanz für die

11:32.780 --> 11:39.160
vollständige Verbindung haben und daher eine einfachere Berücksichtigung dieser Gewichtung der Gewichte hier zur Erzeugung dieser zufälligen Gewichtungen.

11:39.200 --> 11:45.210
Aber die gute Nachricht ist, dass es jetzt wirklich nicht nur diese Gewichte sind und dass sie sehr gut funktionieren.

11:45.380 --> 11:47.150
Aber jetzt haben wir zwei Werkzeuge.

11:47.330 --> 11:50.180
Und so sind wir bereit, das Gehirn zu bauen.

11:50.300 --> 11:51.280
Ich kann es kaum erwarten.

11:51.290 --> 11:53.500
Dies wird natürlich der aufregendste Teil sein.

11:53.510 --> 11:57.630
Dies war nur um uns aufzuwärmen und uns auf das große Ding vorzubereiten.

11:57.650 --> 11:59.990
Darum kümmern wir uns im nächsten Tutorial.

12:00.080 --> 12:02.590
Tatsächlich werden natürlich mehrere Tutorials benötigt.

12:02.690 --> 12:04.350
Wir fangen damit an, die Augen zu machen.

12:04.520 --> 12:10.040
Und denken Sie daran, wir werden eine Illustration hinzufügen, um die zeitlichen Eigenschaften der Eingabe zu lernen, und dann kümmern wir

12:10.040 --> 12:12.170
uns um den Schauspieler und den Kritiker.

12:12.170 --> 12:17.000
Und hier werden wir diese Funktion verwenden, um normalisierte Funktionen zu erzeugen.

12:17.120 --> 12:18.590
Ich kann es also kaum erwarten.

12:18.590 --> 12:20.630
Wir werden jetzt etwas sehr Mächtiges schaffen.

12:20.630 --> 12:22.510
Machen Sie sich also bereit.

12:22.790 --> 12:24.250
Bis dahin genießen Sie die KI.
