WEBVTT

00:02.520 --> 00:04.620
講師：皆さんこんにちは､ お帰りなさい｡ 

00:04.620 --> 00:15.540
このビデオでは､ ChatGPTを使ってA3Cを実装した「Breakout」を解決する方法について説明します｡

00:15.540 --> 00:19.470
そこで､ すでにたくさんのクレイジーなプロンプトで促したところ､

00:19.470 --> 00:23.010
驚くべき結果を得ることができました｡

00:23.010 --> 00:26.640
このビデオでは､ 私が実際にどのように結果を出したか､

00:26.640 --> 00:31.470
そしてChatGPTを使ってA3Cアルゴリズムを作成する方法について､

00:31.470 --> 00:34.890
基本的に私の思考プロセスを説明します｡

00:34.890 --> 00:46.110
DOOM』の時と同じように､ 「あなたはロボット工学の分野で長年の経験を持つ機械学習の専門家です」と述べました｡

00:46.110 --> 00:50.490
ブレイクアウト」のA3Cアルゴリズムをお願いします｡  目標は､ "Breakout "ゲームをプレイできるSOTA､

00:50.490 --> 00:56.100
A3Cのアルゴリズムを完全に機能させることです｡

00:56.100 --> 01:02.520
A3Cモデルのシェアードウェイトオプティマイザとして使用されるAdamオプティマイザのクラス､

01:02.520 --> 01:07.590
テストコード環境､ カスタムバージョンの実装を行った｡

01:07.590 --> 01:09.361
だから､ これはもっと文脈を与えている｡

01:09.361 --> 01:13.076
私がしたことは､ この3つをあなたに提供することだ｡

01:13.076 --> 01:18.000
ですから､ 残りのコードを生成する前に私が言及したように､ あなたの目標は､

01:18.000 --> 01:20.160
私たちが持っていたものと同様に､

01:20.160 --> 01:23.250
PythonとTorchを使って完全なソリューションを実装し､

01:23.250 --> 01:31.680
Google Colabで実行されるコードを最適化することです､ 私たちが前に持っていたものと同じ｡

01:31.680 --> 01:35.850
さらに､ コードの中で何をしたかを学生が理解できるように､

01:35.850 --> 01:38.590
コードの一行一行をコメントします｡

01:40.710 --> 01:42.990
必要であれば明確な質問をする､ 了解しました｡ 

01:42.990 --> 01:46.500
ですから､ 『DOOM』の会話型Deep

01:46.500 --> 01:48.360
Qでやったことと重なる部分もありますが､

01:48.360 --> 01:57.390
すでに実装しているものがあり､ それを使ってほしいという文脈を多く加えました｡

01:57.390 --> 02:00.210
それで始めると確定するんです｡ 

02:00.210 --> 02:03.030
はい､ わかりました！質問があれば聞きますので､

02:03.030 --> 02:06.840
残りのコードを教えてください｡

02:06.840 --> 02:11.753
そして､ 「これはAdam

02:11.753 --> 02:18.870
optimizerだ」と述べ､ Adam

02:18.870 --> 02:30.510
optimizerのコードを貼り付けました｡

02:30.510 --> 02:32.310
そこで､ システム的なコード､

02:32.310 --> 02:33.750
システム的なプロンプトのようなものとして､

02:33.750 --> 02:41.820
これを追加したところ､ よし､ 環境を提供してコードをテストしてくださいということになりました｡

02:41.820 --> 02:43.650
つまり､ 最初のプロンプトであげたものを実際に参照しているのです｡

02:43.650 --> 02:51.030
私は､ クールで､ ここにジム環境の実装があると言いました｡

02:51.030 --> 02:52.173
このメインコードを貼り付け､

02:53.760 --> 02:59.040
ここにコンテキストを追加しましたので､ ご覧ください｡

02:59.040 --> 03:01.383
そして､ よし､ かっこいい､ テストコードを待とう､

03:03.690 --> 03:05.267
と｡

03:05.267 --> 03:06.813
そしてそれは､ ええ､ 私は､ しかし､

03:07.830 --> 03:08.766
私はまだA3Cを実装する前にテストコードを見る必要があります､

03:08.766 --> 03:13.410
私は､ クール､ ここにテストコードがありますと言いました｡

03:13.410 --> 03:15.813
このように､ 大きなプロジェクトでは､

03:16.920 --> 03:23.230
コードの一部や参照をスタイルで使用するよう揺さぶることで､

03:24.330 --> 03:33.630
実際にコードのスタイルで何かを生成することができるのです｡

03:33.630 --> 03:34.983
そうしたら､ 「いいね､

03:36.360 --> 03:38.370
やってみよう」と言われました｡

03:38.370 --> 03:41.190
そして､ 基本的にはこのメインコードとテスト､

03:41.190 --> 03:45.840
そしてこれを実装していく､ と書いてありました｡

03:45.840 --> 03:52.800
そして､ 作成されたモデル､ と書かれていました｡  Py､ 実はコースでもやりました｡

03:52.800 --> 03:55.830
そして､ ここにアクタークリティックのモデルがある､

03:55.830 --> 03:58.620
と言って､ 私たちのものと比較したのです｡

03:58.620 --> 04:00.630
これはpythonの新しいバージョンなので､

04:00.630 --> 04:02.310
ウェイトの初期化などの多くは､

04:02.310 --> 04:05.640
よりエレガントな方法で行うことができます｡

04:05.640 --> 04:09.060
それで､ 実際にやってみたところ､ かなりうまく使えて､

04:09.060 --> 04:15.663
次に電車のコードを生成して､ 基本的にActorCriticを使うことにしました｡

04:16.500 --> 04:19.860
しかも見てみると､ かなり簡略化されたものなので､

04:19.860 --> 04:23.039
絶対に改善する必要があります｡

04:23.039 --> 04:25.980
そこでできることは､ 「よし､ 続けよう」と言えば､

04:25.980 --> 04:31.560
それを書き続けることができるのです｡

04:31.560 --> 04:41.040
しかし､ 基本的に必要なものはすべて最適化されており､

04:41.040 --> 04:51.333
そのオプティマイザーを見ることができます｡

04:51.333 --> 04:51.333
を最後に止める｡ 

04:53.160 --> 04:56.550
だから､ 基本的にはこれまで定義したもの､

04:56.550 --> 04:59.220
適切な損失､ そう､ オプティマイザー､

04:59.220 --> 05:02.490
すべてを使ったんだ｡

05:02.490 --> 05:05.730
というわけで､ これで終わりです｡ 

05:05.730 --> 05:07.591
いくつかの簡単なステップで､

05:07.591 --> 05:18.450
たまたま2017年､ 2018年のベストの1つのような最新鋭のモデルの全コードを実装することができたのです｡

05:18.450 --> 05:21.060
今でも､ 「ブレイクアウト」のような複雑な環境を解決するために､

05:21.060 --> 05:27.240
多くの能力を保持しています｡

05:27.240 --> 05:27.240
例えばChatGPTができたことで､

05:28.710 --> 05:32.490
ある特定の部分を実装するように誘導することができるようになったということですね｡

05:32.490 --> 05:36.990
また､ コードのある部分が実際に何をしているのかわからない場合は､

05:36.990 --> 05:44.853
例えば､ クール､ トレーニングの部分を説明できますか､ アダムのカスタムはどこですか､

05:47.310 --> 05:51.840
と聞きに行くことができます｡

05:51.840 --> 05:56.200
だから､ 実際に自分で説明するように促しているわけで､

05:58.320 --> 05:59.223
これも基本的には､

06:04.740 --> 06:10.290
生成の根拠をもっと教えてくれるように促しているわけです｡

06:10.290 --> 06:16.803
そして､ 実際にステップバイステップで説明しているのがお分かりいただけると思います｡

06:17.730 --> 06:18.563
同じプロンプトを実行すれば､

06:18.563 --> 06:27.510
私と同じような結果が得られますが､ 一般的に今､ この関数が実行するのは､

06:27.510 --> 06:38.010
この一番上に定義した列車関数で､ 基本的にすべてのステップを通過して実装されます｡

06:38.010 --> 06:40.890
そうそう､ それでしょうね｡ 

06:40.890 --> 06:48.600
このコードをGoogle Colabで試してみることを絶対にお勧めします！できますよ！Goggle

06:48.600 --> 06:58.380
Colab環境の視覚化と制限のため､ 動作させるにはちょっとトリッキーすぎるかもしれません｡

06:58.380 --> 06:59.760
しかし､ エラーをここに貼り付けて､

06:59.760 --> 07:07.083
デバッグのためにかなり適切な結果を得ることができます｡

07:08.580 --> 07:16.860
そうそう､ これでA3Cのバリューを得る方法についてChatGPTの使い方を知ってもらえたね｡

07:16.860 --> 07:20.400
そして､ ええ､ あなたがこれまでのコースを楽しんでいることを願っています､

07:20.400 --> 07:24.960
さようなら｡
