WEBVTT

00:00.090 --> 00:00.923
講師：こんにちは､

00:00.923 --> 00:07.560
ChatGPTの新しいデータサイエンスのユースケースにようこそ！今回は強化学習に関するものです｡

00:07.560 --> 00:14.730
そこで､ 今ChatGPTに､ まだAIを搭載していない仮想の自動運転車をプログラムしたことを伝えることにしています｡

00:14.730 --> 00:21.300
そこで､ 前進､ 左折､ 右折､ 停止という機能を実装したところです｡

00:21.300 --> 00:25.050
そして､ この自動運転車は､ ある目的地に到達できれば報酬を受け､

00:25.050 --> 00:33.360
目的地から離れたり､ 障害物にぶつかったりすればペナルティを受けるとします｡

00:33.360 --> 00:35.460
なるほど､ ではChatGPTに､

00:35.460 --> 00:40.020
自動運転車にどのAIモデルをどのように実装すべきなのか？

00:40.020 --> 00:40.853
いいかい？

00:40.853 --> 00:41.686
では､ こうしてみましょう｡ 

00:41.686 --> 00:43.530
ここに新しいチャットを開くよ｡ 

00:43.530 --> 00:45.637
そして､ 「私は､

00:45.637 --> 01:04.710
前進､ 左折､ 右折､ 停止という動作をする仮想の自動運転車をプログラムしました」と､ 内部で正確に伝えるのです｡

01:04.710 --> 01:13.370
そして､ この車はある目的地に到達すれば報酬が与えられ､

01:13.890 --> 01:16.080
目的地から遠ざかったり､

01:16.080 --> 01:28.070
障害物にぶつかったりするとペナルティを受けることになります｡

01:28.070 --> 01:28.070
よし､ 次はもっと貪欲になろう｡ 

01:28.650 --> 01:29.760
ただ､ 自動運転車の強化学習モデルの作り方について､

01:29.760 --> 01:31.530
おすすめの方法を聞きたかっただけなのですが､

01:31.530 --> 01:35.490
実際に直接作ってもらいましょう｡

01:35.490 --> 01:38.700
なぜダメなのか？

01:38.700 --> 01:39.533
ChatGPTの実力を見てみましょう｡ 

01:39.533 --> 01:49.230
そこで､ 「その自動運転車の中にAIを実装する強化学習モデルを構築するために､

01:49.230 --> 02:01.770
最適なライブラリを使ってPythonのコードを書いてくれませんか」とお願いすることにしているんです｡

02:01.770 --> 02:01.770
さて､

02:01.770 --> 02:06.750
こんなことを聞くのはちょっと欲張りですが､ わからないものですね｡

02:08.010 --> 02:09.870
ChatGPTは､ まさに私たちが望むものを与えてくれるかもしれません｡ 

02:09.870 --> 02:11.160
だから､ 試してみて､ 何かトラブルに見舞われたら､

02:11.160 --> 02:14.010
私たちが助けることにしましょう｡

02:14.010 --> 02:16.500
さて､ それではEnterを押してみましょう｡ 

02:16.500 --> 02:17.340
確かに､ なるほど､ それはまた素晴らしいスタートですね｡ 

02:17.340 --> 02:20.670
"自動運転車の強化学習モデルの実装をPythonで始めたい

02:20.670 --> 02:24.180
"というご要望にお応えします｡

02:24.180 --> 02:24.180
驚きです｡ 

02:24.180 --> 02:26.700
"OpenAIジム "ライブラリの使い方を説明するコードを紹介します｡

02:26.700 --> 02:26.700
すごいなー｡ 

02:26.700 --> 02:29.730
"自動運転車の強化学習モデルを学習させるために

02:29.730 --> 02:29.730
ChatGPTがこんなに簡単にできるなんて､

02:30.960 --> 02:31.793
驚きです｡

02:31.793 --> 02:36.330
Qテーブル､ 状態数､ 行動数､ 0に初期化された学習率などを初期化している｡

02:36.330 --> 02:36.330
1､

02:36.330 --> 02:40.050
割引率を0にする｡ 95.

02:40.050 --> 02:43.230
これは本当にすごい､ 畏敬の念を覚えます｡ 

02:43.230 --> 02:49.920
探査率を0にする｡  5､ 1,000話までの最大話数､ 100話までの最大ステップ数｡

02:49.920 --> 02:51.660
そして､ Q-learningモデルをトレーニングするのです､ すごいですね｡ 

02:51.660 --> 02:55.743
その時は､ もっと高度なモデル､ 例えばディープQラーニングモデルやA3Cの実装に挑戦しようと思っていますが､

02:56.610 --> 02:58.950
どうでしょう｡

02:58.950 --> 03:01.950
全てを一からFor Loopで実装しています｡ 

03:01.950 --> 03:07.140
アクションの選択から始まり､ AIがアクションを起こすステップを実装し､

03:07.140 --> 03:12.720
Qテーブルを更新し､ 翌日に状態を設定する｡

03:12.720 --> 03:16.380
これは本当に強化学習の過程､ Qラーニングの過程､

03:16.380 --> 03:18.030
これはすごいですね｡

03:18.030 --> 03:21.690
そして､ Q-learningモデルのテスト方法まで実装し､

03:21.690 --> 03:25.410
最後に環境を閉じます｡

03:25.410 --> 03:26.243
いやー､ 本当にすごかったですね｡ 

03:26.243 --> 03:28.260
なるほど､ そこまで期待していなかったんですね｡ 

03:28.260 --> 03:33.450
だから､ せっかく簡単にできたのだから､ 実はもっともっと難しいことにチャレンジしてみようよ｡

03:33.450 --> 03:36.960
ではまず､ もちろん「どうもありがとう､

03:36.960 --> 03:39.780
助かったよ｡

03:39.780 --> 03:46.470
ただ､ Qラーニングの導入方法はすでに知っています｡

03:46.470 --> 03:52.593
そこで､ 例えばディープQラーニングのような､

03:54.690 --> 04:04.260
より高度な強化学習モデルで同じことをやっていただけませんか？

04:04.260 --> 04:04.260
いっそのこと､ 超欲張っちゃいましょうよ｡ 

04:04.260 --> 04:06.210
"最先端の強化学習モデル "です｡  さて､ 準備はいいですか？

04:06.210 --> 04:09.030
さあ､ 始まりますよ｡ 

04:09.030 --> 04:11.280
とか､ 「確かに｡  いつも「確かに」と言われます｡  それはすごいですね｡ 

04:11.280 --> 04:30.297
"OpenAIのbaselinesライブラリを使用して､ 自動運転車用の深層Q学習モデルDQNを学習する方法を示すコードを紹介します｡

04:30.297 --> 04:30.297
そして､ またまた登場です｡ 

04:32.340 --> 04:33.420
コードを教えてくれる｡ 

04:33.420 --> 04:34.980
それは本当にすごいことです｡ 

04:34.980 --> 04:36.420
よし､ そうだ､ ベースラインの共通AtariライブラリからWrap DeepMindライブラリを今使って､

04:36.420 --> 04:39.870
今回も深いQ-learningモデルでAIを実装しているんだ｡

04:39.870 --> 04:42.180
本当に､ 本当にすごいですね｡ 

04:42.180 --> 04:45.900
"このコードは､ DQNアルゴリズムを使って､ 自動運転車のための深いQ学習モデルを訓練します｡

04:45.900 --> 04:47.310
モデルは､ 報酬を最大化するために､

04:47.310 --> 04:49.140
各状態で最適な行動を取るように学習します｡

04:49.140 --> 04:50.820
また､ より高度な強化学習モデルを使用したい場合は､

04:50.820 --> 05:05.040
最先端の強化学習アルゴリズムの実装を提供するOpenAI Spinning Upライブラリを使用することができます｡

05:05.040 --> 05:07.117
以下は､ Spinning Upライブラリを使用して､

05:07.117 --> 05:12.120
近接政策最適化（PPO）モデルをトレーニングする方法を示すコードです｡

05:12.120 --> 05:12.120
確かに､ それは素晴らしいモデルですね｡ 

05:12.120 --> 05:17.430
"自動運転車 "のために｡  そして､ ここに､ コード全体を含むモデルが再び表示されます｡

05:17.430 --> 05:20.460
いやあ､ なんという革命でしょう､ このChatGPTは｡ 

05:20.460 --> 05:21.930
マジで感激です｡ 

05:21.930 --> 05:24.450
そうですね､ これでコードができましたね｡ 

05:24.450 --> 05:30.960
"このコードは､ PPOアルゴリズムを使って､ 自動運転車の強化学習モデルを学習させるものです｡

05:30.960 --> 05:34.950
モデルは､ 割引された報酬の期待総和を最大化するために行動を起こすことを学習します｡

05:34.950 --> 05:36.097
お役に立てれば幸いです｡ 

05:36.097 --> 05:37.290
ご質問やご不明な点がございましたら､

05:37.290 --> 05:39.690
お知らせください｡ まあ､ 私だってここまでとは思っていなかったので､ あなたと同じように､

05:39.690 --> 05:44.430
これだけのことを同時にやっていることに感動しているんですよ｡

05:44.430 --> 05:47.220
だから､ 「ありがとうございました､ 素晴らしかったです」と言うことにしています｡  そして完了｡ 

05:47.220 --> 05:49.357
ChatGPTを使ったデータサイエンスのユースケースをご覧いただき､

05:49.357 --> 05:51.210
本当にありがとうございました｡

05:51.210 --> 05:52.530
それでは､ 次の作品に進みましょう｡ 

05:52.530 --> 05:53.940
そして､ それまでは機械学習を楽しんでください｡ 
