WEBVTT

00:00.090 --> 00:00.923
Kursleiter: Hallo, meine

00:00.923 --> 00:03.870
Freunde, und willkommen zu einem neuen Anwendungsfall aus der Datenwissenschaft

00:03.870 --> 00:07.560
mit ChatGPT, der sich diesmal mit dem Thema Verstärkungslernen beschäftigt.

00:07.560 --> 00:09.420
Wir werden ChatGPT also gleich mitteilen,

00:09.420 --> 00:13.260
dass wir ein virtuelles selbstfahrendes Auto programmiert haben, das noch

00:13.260 --> 00:14.730
keine KI besitzt.

00:14.730 --> 00:19.020
Wir haben also gerade die Fähigkeit implementiert, sich vorwärts zu bewegen, links abzubiegen,

00:19.020 --> 00:21.300
rechts abzubiegen und anzuhalten.

00:21.300 --> 00:25.050
Und wir werden sagen, dass dieses selbstfahrende Auto belohnt

00:25.050 --> 00:27.540
wird, wenn es ein bestimmtes Ziel erreicht,

00:27.540 --> 00:30.420
und bestraft, wenn es sich von diesem Ziel entfernt

00:30.420 --> 00:33.360
oder auf Hindernisse trifft.

00:33.360 --> 00:35.460
Okay, und dann werden wir ChatGPT fragen,

00:35.460 --> 00:37.680
welches KI-Modell für das selbstfahrende

00:37.680 --> 00:40.020
Auto implementiert werden soll und wie.

00:40.020 --> 00:40.853
Ist das okay?

00:40.853 --> 00:41.686
Also machen wir es so.

00:41.686 --> 00:43.530
Ich werde hier einen neuen Chat eröffnen.

00:43.530 --> 00:45.637
Und im Inneren werden

00:45.637 --> 00:49.110
wir genau sagen: "Hey, ich habe ein virtuelles

00:49.110 --> 00:53.550
selbstfahrendes Auto programmiert, dessen

00:53.550 --> 00:57.000
Aktionen darin bestehen, vorwärts

00:57.000 --> 00:59.820
zu fahren, links abzubiegen,

00:59.820 --> 01:04.710
rechts abzubiegen und anzuhalten.

01:04.710 --> 01:08.370
Und dann wird dieses Auto belohnt,

01:08.370 --> 01:13.370
wenn es ein bestimmtes Ziel erreicht,

01:13.890 --> 01:16.080
und bestraft, wenn

01:16.080 --> 01:19.980
es sich weiter von diesem Ziel

01:19.980 --> 01:23.070
entfernt oder auf ein Hindernis

01:23.070 --> 01:28.070
stößt. Okay, jetzt lass uns gieriger sein.

01:28.650 --> 01:29.760
Ich wollte nur nach Empfehlungen

01:29.760 --> 01:31.530
fragen, wie man ein Verstärkungslernmodell für das

01:31.530 --> 01:34.110
selbstfahrende Auto erstellen kann, aber eigentlich wollte ich fragen,

01:34.110 --> 01:35.490
wie man es direkt erstellen kann.

01:35.490 --> 01:38.700
Warum nicht?

01:38.700 --> 01:39.533
Mal sehen, was ChatGPT alles kann.

01:39.533 --> 01:41.730
Ich frage also: "Kannst

01:41.730 --> 01:44.650
du mir bitte einen Python-Code

01:45.750 --> 01:49.230
schreiben und die besten Bibliotheken

01:49.230 --> 01:53.580
verwenden, um ein Verstärkungslernmodell zu

01:53.580 --> 01:58.580
erstellen, das die KI in diesem selbstfahrenden Auto

01:59.340 --> 02:01.770
implementiert? Na gut, die Frage ist ein

02:01.770 --> 02:06.750
bisschen gierig, aber man weiß ja nie.

02:08.010 --> 02:09.870
ChatGPT könnte uns genau das geben, was wir wollen.

02:09.870 --> 02:11.160
Versuchen wir es also,

02:11.160 --> 02:14.010
und wenn es Probleme gibt, werden wir ihm helfen.

02:14.010 --> 02:16.500
Okay, drücken wir die Eingabetaste und los geht's.

02:16.500 --> 02:17.340
Sicher, okay, das ist schon mal ein guter Anfang.

02:17.340 --> 02:20.670
"Ich kann Ihnen dabei helfen, ein Reinforcement-Learning-Modell

02:20.670 --> 02:22.477
für Ihr selbstfahrendes Auto in Python

02:22.477 --> 02:24.180
zu implementieren. Erstaunlich.

02:24.180 --> 02:25.230
"Hier ist ein Code, der zeigt, wie Sie

02:25.230 --> 02:26.700
die OpenAI Gym-Bibliothek verwenden können. Fantastisch.

02:26.700 --> 02:27.533
"Um ein Reinforcement-Learning-Modell

02:27.533 --> 02:29.730
für Ihr selbstfahrendes Auto zu trainieren. Okay, das ist wirklich erstaunlich, ich hätte nicht erwartet, dass ChatGPT

02:29.730 --> 02:30.960
das so einfach macht, und es macht Sinn,

02:30.960 --> 02:31.793
was es jetzt macht.

02:31.793 --> 02:33.180
Es initialisiert die Q-Tabelle, die Anzahl

02:33.180 --> 02:34.920
der Zustände, die Anzahl der Aktionen und eine Lernrate,

02:34.920 --> 02:36.330
die auf 0 initialisiert ist. 1, ein Abzinsungsfaktor

02:36.330 --> 02:40.050
von 0. 95.

02:40.050 --> 02:43.230
Das ist wirklich erstaunlich, ich bin voller Ehrfurcht.

02:43.230 --> 02:45.600
Die Erkundungsrate auf 0. 5, die maximale Anzahl der Episoden auf 1.000,

02:45.600 --> 02:47.670
die maximale Anzahl der Schritte pro Episoden

02:47.670 --> 02:49.920
auf 100.

02:49.920 --> 02:51.660
Dann wird das Q-Learning-Modell trainiert - erstaunlich.

02:51.660 --> 02:54.270
Ich werde ihn dann herausfordern, ein fortgeschritteneres Modell wie

02:54.270 --> 02:55.743
das tiefe Q-Learning-Modell

02:56.610 --> 02:58.950
oder das A3C zu implementieren, aber warten wir es ab.

02:58.950 --> 03:01.950
Sie implementiert alles von Grund auf mit der For-Schleife.

03:01.950 --> 03:04.770
Zunächst wird eine Aktion ausgewählt, dann wird der Schritt

03:04.770 --> 03:07.140
ausgeführt, bei dem die KI die Aktion ausführt,

03:07.140 --> 03:09.810
dann wird die Q-Tabelle aktualisiert und schließlich

03:09.810 --> 03:12.720
wird der Zustand auf den nächsten Tag gesetzt.

03:12.720 --> 03:16.380
Das ist wirklich der Prozess des Verstärkungslernens, der Q-Learning-Prozess,

03:16.380 --> 03:18.030
das ist erstaunlich.

03:18.030 --> 03:21.690
Dann wird sogar implementiert, wie man das Q-Learning-Modell

03:21.690 --> 03:25.410
testet, und schließlich wird die Umgebung geschlossen.

03:25.410 --> 03:26.243
Wow, das war wirklich erstaunlich.

03:26.243 --> 03:28.260
Okay, so viel habe ich nicht erwartet.

03:28.260 --> 03:30.510
Da es also so leicht war, sollten wir

03:30.510 --> 03:33.450
es noch mehr herausfordern, noch härter.

03:33.450 --> 03:36.960
Zuerst sagen wir natürlich: "Vielen Dank,

03:36.960 --> 03:39.780
das war wirklich hilfreich.

03:39.780 --> 03:41.430
Ich weiß jedoch

03:41.430 --> 03:43.080
bereits, wie man

03:43.080 --> 03:46.470
Q-Learning einsetzt.

03:46.470 --> 03:48.247
Könnten Sie also

03:48.247 --> 03:56.040
bitte dasselbe mit einem fortschrittlicheren

03:56.040 --> 03:59.700
Reinforcement-Learning-Modell

03:59.700 --> 04:04.260
wie z. B. Deep Q-learning tun? Oder noch besser: Lasst uns super gierig sein.

04:04.260 --> 04:06.210
"Ein modernes Modell des verstärkten Lernens. Okay, bist du bereit dafür?

04:06.210 --> 04:09.030
Jetzt geht's los.

04:09.030 --> 04:11.280
Und: "Gewiss. Er sagt immer: "Sicherlich. Das ist erstaunlich.

04:11.280 --> 04:16.280
"Hier finden Sie einige Codes, die zeigen, wie Sie die OpenAI-Baselines-Bibliothek

04:18.720 --> 04:25.297
verwenden können, um ein tiefes Q-Learning-Modell,

04:25.297 --> 04:30.297
DQN, für Ihr selbstfahrendes Auto zu trainieren. Und da sind wir wieder.

04:32.340 --> 04:33.420
Sie gibt uns den Code.

04:33.420 --> 04:34.980
Das ist wirklich erstaunlich.

04:34.980 --> 04:36.420
Also, ja, es verwendet jetzt die Wrap-DeepMind-Bibliothek

04:36.420 --> 04:37.800
aus der gemeinsamen Atari-Bibliothek der Basislinie,

04:37.800 --> 04:38.633
und es implementiert die KI wieder

04:38.633 --> 04:39.870
mit dem tiefen Q-Learning-Modell dieses Mal.

04:39.870 --> 04:42.180
Das ist wirklich, wirklich erstaunlich.

04:42.180 --> 04:44.760
"Dieser Code verwendet den DQN-Algorithmus, um ein tiefes Q-Learning-Modell für Ihr

04:44.760 --> 04:45.900
selbstfahrendes Auto zu trainieren.

04:45.900 --> 04:47.310
Das Modell lernt, in jedem Zustand die beste

04:47.310 --> 04:49.140
Maßnahme zu ergreifen, um die Belohnung zu maximieren.

04:49.140 --> 04:50.820
Wenn Sie ein fortschrittlicheres

04:50.820 --> 04:55.820
Reinforcement-Learning-Modell verwenden möchten, können Sie alternativ die OpenAI

04:57.300 --> 05:01.260
Spinning Up-Bibliothek nutzen, die Implementierungen von hochmodernen

05:01.260 --> 05:03.270
Reinforcement-Learning-Algorithmen

05:03.270 --> 05:05.040
bietet.

05:05.040 --> 05:07.117
Der folgende Code zeigt, wie Sie die Spinning

05:07.117 --> 05:09.450
Up-Bibliothek verwenden können, um ein PPO-Modell

05:09.450 --> 05:12.120
(proximal policy optimization) zu trainieren. In der Tat, das ist ein tolles Modell.

05:12.120 --> 05:15.450
"Für Ihr selbstfahrendes Auto. Und schon haben Sie wieder das Modell mit

05:15.450 --> 05:17.430
dem gesamten Code.

05:17.430 --> 05:20.460
Wow, was für eine Revolution, dieses ChatGPT.

05:20.460 --> 05:21.930
Im Ernst, ich bin wirklich beeindruckt.

05:21.930 --> 05:24.450
Genau, und schon haben Sie den Code.

05:24.450 --> 05:26.790
"Dieser Code verwendet den PPO-Algorithmus, um

05:26.790 --> 05:28.380
ein Reinforcement-Learning-Modell

05:28.380 --> 05:30.960
für Ihr selbstfahrendes Auto zu trainieren.

05:30.960 --> 05:32.250
Das Modell lernt, so zu handeln, dass

05:32.250 --> 05:34.950
die erwartete Summe der diskontierten Belohnungen maximiert wird.

05:34.950 --> 05:36.097
Ich hoffe, das hilft.

05:36.097 --> 05:37.290
Lassen Sie mich wissen, wenn

05:37.290 --> 05:39.690
Sie Fragen haben oder weitere Unterstützung wünschen. Nun, selbst ich habe nicht so viel erwartet,

05:39.690 --> 05:40.950
deshalb bin ich genauso

05:40.950 --> 05:44.430
beeindruckt wie du, dass du das alles gleichzeitig machst.

05:44.430 --> 05:47.220
Wir werden also sagen: "Vielen Dank, das war toll. Und fertig.

05:47.220 --> 05:49.357
Nochmals vielen Dank, dass Sie sich diesen Anwendungsfall der

05:49.357 --> 05:51.210
Datenwissenschaft mit ChatGPT angesehen haben.

05:51.210 --> 05:52.530
Lassen Sie uns nun zum nächsten Punkt übergehen.

05:52.530 --> 05:53.940
Und bis dahin viel Spaß beim maschinellen Lernen.
