WEBVTT

00:00.090 --> 00:00.923
Instruktor: Witam,

00:00.923 --> 00:03.870
moi przyjaciele, i witam w tym nowym przypadku użycia data science

00:03.870 --> 00:07.560
z ChatGPT, który tym razem będzie dotyczył uczenia wzmacniającego.

00:07.560 --> 00:09.420
Powiemy więc teraz ChatGPT, że

00:09.420 --> 00:13.260
zaprogramowaliśmy wirtualny samochód samojezdny, nie mając

00:13.260 --> 00:14.730
jeszcze żadnej AI.

00:14.730 --> 00:19.020
Tak więc właśnie zaimplementowaliśmy jej zdolność do poruszania się do przodu, skręcania

00:19.020 --> 00:21.300
w lewo, skręcania w prawo i zatrzymywania się.

00:21.300 --> 00:25.050
I powiemy, że ten samojeżdżący samochód jest nagradzany,

00:25.050 --> 00:27.540
jeśli uda mu się dotrzeć do pewnego celu,

00:27.540 --> 00:30.420
a karany, jeśli oddali się od tego celu, lub

00:30.420 --> 00:33.360
jeśli napotka jakieś przeszkody.

00:33.360 --> 00:35.460
Ok, a potem zapytamy ChatGPT, który model

00:35.460 --> 00:37.680
AI powinien zostać zaimplementowany do samojezdnego

00:37.680 --> 00:40.020
samochodu i w jaki sposób.

00:40.020 --> 00:40.853
Dobrze?

00:40.853 --> 00:41.686
Więc zróbmy tak.

00:41.686 --> 00:43.530
Otworzę tutaj nowy czat.

00:43.530 --> 00:45.637
A w środku powiemy dokładnie:

00:45.637 --> 00:49.110
"Hej, zaprogramowałem wirtualny

00:49.110 --> 00:53.550
samochód samojezdny, którego działania polegają

00:53.550 --> 01:04.710
na poruszaniu się do przodu, skręcaniu w lewo, skręcaniu w prawo i zatrzymywaniu się.

01:04.710 --> 01:08.370
I wtedy ten samochód jest

01:08.370 --> 01:13.370
nagradzany, gdy osiągnie pewien

01:13.890 --> 01:16.080
cel, a karany,

01:16.080 --> 01:19.980
jeśli odjedzie dalej od tego

01:19.980 --> 01:23.070
celu, lub jeśli napotka

01:23.070 --> 01:28.070
jakieś przeszkody. Dobra, teraz bądźmy bardziej chciwi.

01:28.650 --> 01:29.760
Chciałem tylko poprosić o kilka

01:29.760 --> 01:31.530
zaleceń, jak zbudować model uczenia wzmacniającego

01:31.530 --> 01:34.110
dla samojezdnego samochodu, ale właściwie poprośmy o bezpośrednie

01:34.110 --> 01:35.490
zbudowanie go.

01:35.490 --> 01:38.700
Dlaczego nie?

01:38.700 --> 01:39.533
Zobaczmy, do czego zdolny jest ChatGPT.

01:39.533 --> 01:41.730
Więc zapytam: "Czy możesz

01:41.730 --> 01:44.650
napisać mi kod Pythona, używając

01:45.750 --> 01:49.230
najlepszych bibliotek, aby zbudować

01:49.230 --> 01:53.580
model uczenia wzmacniającego, który implementuje

01:53.580 --> 02:01.770
AI wewnątrz tego samojezdnego samochodu?".

02:01.770 --> 02:01.770
Dobra,

02:01.770 --> 02:06.750
więc to trochę chciwe pytanie, ale nigdy nie wiadomo.

02:08.010 --> 02:09.870
ChatGPT może dać nam dokładnie to, czego chcemy.

02:09.870 --> 02:11.160
Spróbujmy więc, a jeśli

02:11.160 --> 02:14.010
napotka jakieś kłopoty, pomożemy mu.

02:14.010 --> 02:16.500
Ok, więc naciśnijmy Enter i zaczynamy.

02:16.500 --> 02:17.340
Pewnie, że dobrze, znowu świetny początek.

02:17.340 --> 02:20.670
"Mogę pomóc ci zacząć wdrażać model uczenia się wzmacniania

02:20.670 --> 02:22.477
dla twojego samojezdnego samochodu

02:22.477 --> 02:24.180
w Pythonie. Niesamowite.

02:24.180 --> 02:25.230
"Oto trochę kodu, który demonstruje,

02:25.230 --> 02:26.700
jak można użyć, biblioteki OpenAI Gym. Wspaniale.

02:26.700 --> 02:27.533
"Aby wytrenować model uczenia

02:27.533 --> 02:29.730
się wzmacniania dla swojego samojezdnego samochodu. Ok, więc to jest niesamowite faktycznie, nie spodziewałem się, że to,

02:29.730 --> 02:30.960
ChatGPT zrobić tak łatwo, i to wszystko

02:30.960 --> 02:31.793
ma sens, co robi teraz.

02:31.793 --> 02:33.180
To inicjalizacja, tablica Q, liczba

02:33.180 --> 02:34.920
stanów, liczba akcji, współczynnik uczenia

02:34.920 --> 02:36.330
się zainicjowany na 0. 1, współczynnik

02:36.330 --> 02:40.050
dyskontowy do 0. 95.

02:40.050 --> 02:43.230
To jest naprawdę niesamowite, jestem w zachwycie.

02:43.230 --> 02:45.600
Wskaźnik eksploracji na 0. 5, maksymalna liczba odcinków do 1000,

02:45.600 --> 02:47.670
maksymalna liczba kroków na odcinki

02:47.670 --> 02:49.920
do 100.

02:49.920 --> 02:51.660
Następnie trenuje model Q-learningowy, niesamowity.

02:51.660 --> 02:54.270
Będę go wtedy wyzywał, żeby zaimplementował bardziej zaawansowany

02:54.270 --> 02:55.743
model, jak głęboki

02:56.610 --> 02:58.950
model Q-learning, albo A3C, ale zobaczymy.

02:58.950 --> 03:01.950
Implementuje wszystko od podstaw za pomocą pętli For.

03:01.950 --> 03:04.770
Rozpoczyna się od wyboru akcji, następnie implementuje

03:04.770 --> 03:07.140
krok, w którym SI podejmuje akcję, następnie

03:07.140 --> 03:09.810
aktualizuje tabelę Q, a następnie ustawia

03:09.810 --> 03:12.720
stan na następny dzień.

03:12.720 --> 03:16.380
To jest naprawdę proces uczenia się wzmocnienia, proces Q-learningu,

03:16.380 --> 03:18.030
to jest niesamowite.

03:18.030 --> 03:21.690
Potem nawet implementuje jak testować model

03:21.690 --> 03:25.410
Q-learningu, a na koniec zamyka środowisko.

03:25.410 --> 03:26.243
Wow, to było naprawdę niesamowite.

03:26.243 --> 03:28.260
No dobra, nie spodziewałem się aż tak wiele.

03:28.260 --> 03:30.510
Skoro więc zrobił to tak łatwo, to faktycznie rzućmy

03:30.510 --> 03:33.450
mu jeszcze większe, jeszcze trudniejsze wyzwanie.

03:33.450 --> 03:36.960
Więc najpierw powiedzmy oczywiście: "Wielkie

03:36.960 --> 03:39.780
dzięki, to było naprawdę pomocne.

03:39.780 --> 03:41.430
Wiem już jednak,

03:41.430 --> 03:43.080
jak wdrożyć

03:43.080 --> 03:46.470
Q-learning.

03:46.470 --> 03:48.247
Więc czy mógłbyś

03:48.247 --> 03:52.593
zrobić to samo z bardziej zaawansowanym

03:54.690 --> 03:56.040
modelem uczenia

03:56.040 --> 03:59.700
się wzmacniania, takim jak na przykład

03:59.700 --> 04:04.260
głębokie uczenie Q. Albo jeszcze lepiej, bądźmy super chciwi.

04:04.260 --> 04:06.210
"Najnowocześniejszy model uczenia wzmacniającego. Dobra, gotowi na to?

04:06.210 --> 04:09.030
No to jedziemy.

04:09.030 --> 04:11.280
I: "Na pewno. On zawsze mówi: "Na pewno". To niesamowite.

04:11.280 --> 04:16.280
"Oto trochę kodu, który demonstruje, jak można użyć

04:18.720 --> 04:21.990
biblioteki OpenAI baselines, aby

04:21.990 --> 04:25.297
wytrenować głęboki model Q-learning,

04:25.297 --> 04:30.297
DQN, dla swojego samojeżdżącego samochodu. I znowu się zaczyna.

04:32.340 --> 04:33.420
Podaje nam kod.

04:33.420 --> 04:34.980
To naprawdę niesamowite.

04:34.980 --> 04:36.420
No dobra, więc tak, używa teraz biblioteki Wrap DeepMind

04:36.420 --> 04:37.800
z bazowej, wspólnej biblioteki Atari i implementuje

04:37.800 --> 04:38.633
AI ponownie, tym razem z głębokim

04:38.633 --> 04:39.870
modelem Q-learning.

04:39.870 --> 04:42.180
To jest naprawdę, naprawdę niesamowite.

04:42.180 --> 04:44.760
"Ten kod wykorzystuje algorytm DQN do trenowania głębokiego modelu Q-learning dla

04:44.760 --> 04:45.900
twojego samojezdnego samochodu.

04:45.900 --> 04:47.310
Model nauczy się podejmować najlepsze działania

04:47.310 --> 04:49.140
w każdym stanie, aby zmaksymalizować nagrodę.

04:49.140 --> 04:50.820
Alternatywnie, jeśli chciałbyś

04:50.820 --> 04:55.820
użyć bardziej zaawansowanego modelu uczenia się wzmacniania, możesz skorzystać z biblioteki

04:57.300 --> 05:01.260
OpenAI Spinning Up, która dostarcza implementacji najnowocześniejszych

05:01.260 --> 05:05.040
algorytmów uczenia się wzmacniania.

05:05.040 --> 05:07.117
Oto kilka kodów demonstrujących, jak można

05:07.117 --> 05:09.450
użyć biblioteki Spinning Up do trenowania modelu

05:09.450 --> 05:12.120
proksymalnej optymalizacji polityki, PPO. Rzeczywiście, to świetny model.

05:12.120 --> 05:15.450
"Dla twojego samojezdnego samochodu. I proszę bardzo, podaje ponownie model

05:15.450 --> 05:17.430
z całym kodem.

05:17.430 --> 05:20.460
Wow, co za rewolucja, ten ChatGPT.

05:20.460 --> 05:21.930
Poważnie, jestem pod wielkim wrażeniem.

05:21.930 --> 05:24.450
No i proszę, masz kod.

05:24.450 --> 05:26.790
"Ten kod używa algorytmu PPO do trenowania

05:26.790 --> 05:28.380
modelu uczenia się wzmacniania

05:28.380 --> 05:30.960
dla twojego samojezdnego samochodu.

05:30.960 --> 05:32.250
Model nauczy się podejmować działania

05:32.250 --> 05:34.950
maksymalizujące oczekiwaną sumę zdyskontowanych nagród.

05:34.950 --> 05:36.097
Mam nadzieję, że to pomoże.

05:36.097 --> 05:37.290
Daj mi znać, jeśli masz jakieś

05:37.290 --> 05:39.690
pytania lub jeśli chciałbyś uzyskać dalszą pomoc. No cóż, nawet ja nie spodziewałam się tak

05:39.690 --> 05:40.950
wiele, więc jestem pod

05:40.950 --> 05:44.430
wrażeniem tak jak Ty, jednocześnie robiąc to wszystko.

05:44.430 --> 05:47.220
Więc powiemy: "Wielkie dzięki, to było niesamowite. I zrobione.

05:47.220 --> 05:49.357
Jeszcze raz dziękuję za obejrzenie tego przypadku

05:49.357 --> 05:51.210
użycia data science z ChatGPT.

05:51.210 --> 05:52.530
Przejdźmy teraz do następnego.

05:52.530 --> 05:53.940
A do tego czasu ciesz się uczeniem maszynowym.
