ルカ：皆さん､ こんにちは､ おかえりなさい｡
このビデオでは､
ChatGPTについて､ そしてそれを使って､
コースで使うのと同じDoomのアルゴリズム､ 畳み込み深層Q-learningを実装する方法について説明します｡
そこで､ これから数分間､
私が実際にChatGPTを指さしてお願いした､ モデルを入手するための方法を紹介します｡
そこで､ 私がどのようにしたのか､ なぜあるプロンプトをそのようにしたのかを理解してもらうことにしましょう｡
だから､ 最初のプロンプトは､ 私の方からかなり作り込んだものだったんです｡
私は､ 「あなたは､
"機械学習をシミュレーションやロボティクスに応用する
"プロジェクトに長年携わった経験を持つ､
機械学習のシニアエキスパートです｡ これは第一部で､ 舞台を整え､ 役割を与えることです｡
ですから､ 基本的にはChatGPT全体のベクトル空間は､
機械学習のトピックに多く促されることになります｡
さて､ 私の文脈に登場させたいのは､ ドゥームです｡
そして実は､ そこに至るまでに､ 「よし､ 『Doom』環境向けの『Convolutional
Deep Q-Learning』アルゴリズムの実装を手伝ってくれ」と依頼したのです｡
"ゲーム環境であるDoomをプレイできる
"完全な機能の強化学習アルゴリズムを持つことが目標です｡
"経験_再生 "と "記憶・画像処理 "のためのクラス」を実装しました｡
"最終的なコードに組み込むことができるように "それを提供します｡
これは､ ほとんどの人が見逃している､ 本当に重要なことです｡
すでに何かを持っていて､ そのコードを最終的な実装に使いたいということを､
彼､ あるいはChatGPTに伝える方法が必要です｡
ですから､ もし私がコンテキストとしてこれを提供しなかった場合､
経験値_再生と画像処理関数の使用を考慮しない畳み込み式深層Q学習の実装コードが生成されてしまいますが､
私たちはそれを望んでいます｡
あなたの目標は､
PythonとTorch for
modelを使って完全なソリューションを実装し､
そのコードをGoogle Colabで実行できるように最適化することです」｡
これは基本的に､
あなたが望む最終解の形式をChatGPTに伝えるものです｡
そして最後に､ 「必要に応じて明確な質問をする」ことで､
より多くの文脈を提供することができます｡
そして､ 「えー､ わからなければ､ "文脈が足りなければ､
私に聞いてください"｡ そして最後に､ 「わかったか？ 得たことを確認したかったのです｡
これは､ 次のプロンプト､ 次の答えを生成するために厳密に行くのではなく､
このことを反映させるための巧妙な方法です｡
このままでは､
「わかった？ "または "Clear? や「わかりましたか？ "といった具合に､
一部のパーツを完全に無視して生成を開始します｡
質問にも回答にもトークンの数という制限があるので､
それを破って､ トークンの発生量をリフレッシュできるようにしたいですね｡
だから､ 最初の答えは､
「課題を理解した」です｡
"お願い "したことは､ きっちり実行する｡
"しかし､ その前にいくつか質問があります｡ そして､ この「わからないことがあったら聞いてね」というところですが､
結構いいことを聞いてくれました｡
まず､ 環境をカスタムしているのか､ それともすでにあるものを使っているのか｡
だからOpenAIとか､ VizDoomとか､ そういうのですね｡
次に､ 具体的にどのようなパフォーマンス指標に従えばいいのか､
という話に移っていきます｡
モデル自体に条件はあるのでしょうか？
PythonとPyTorchのバージョンは？
最後に､ 納期について具体的な制約があるのでしょうか？
これは､ 主にビジネスプランのトレーニングを受けたものですが､
それについては､ これはあまり関係ないような､
でもまあいいやというような感じです｡
私は「はい､ OpenAI Gymを使いますので､ その読み込み方をご紹介します」と提供しました｡
コースからです｡
私は､ よし､ 平均的な報酬に従え､
具体的な要求はない､ 動く限り創造的であれ､ ライブラリの最新モデルやバージョンを使え､
そして期限は何日だ､ と言った｡
今､ 「ASAP」と書きました｡
さらに､ 私が紹介したこれらの授業を紹介します｡
だから､ コースにあるクラスを貼り付けただけです｡
だから経験リプレイ､
全部､ 最後にリプレイメモリー､ 画像処理､
これで終わりです｡
そして､ これでコンテキストを構築し､
今度は生成するようにしました｡
そこで､ コードを生成しました｡
基本的には画像の前処理から始まり､
深層Q-networkを作成しますが､ これは私たちのものとかなり似ています｡
そして､ それを初期化するところから始まり､
トレーニングコードを作成しました｡
今までは全部うまくいっていたのに､ ここで壊れてしまう｡
もっと長いものを生成し続けたい場合は､
「続ける」とだけ書きました｡
と表示され､ 「Continue? ええ､ もちろんです｡ そのまま生成を続けると､ なんとフルコードが完成します｡
驚きです｡
使い方や頻度､ 交換するものなどが記載されていました｡
これにも助けられました｡
そして､ 私のGoogle Colabにお連れしましょう｡
そこで､ まずここにコードを貼り付け､
前処理関数を貼り付けました｡
この前処理機能の変更点については､ また後日紹介します｡
そして､ この体験リプレイ､ 私の方からのインストールの一部を貼り付けました｡
これについては､ ちょっとだけ説明します｡
彼のディープQ-ネットワークとトレーニングコードで遊んでみた｡
だから､ これを改善する方法は絶対にあるはずです｡
特にローカル環境であれば､ うまくいくでしょう｡
Google Colabで使用している場合､ 壊れる可能性があります｡
では､ そこにお連れしましょうか｡
で､ やってみたら､ エラーが出たんです｡
私は､ 「おい､ 最初に提供された私のコードは動かなかったぞ」と言いました｡
コードを貼り付けたところ､ このようなエラーメッセージが表示され､
「画像のサイズを変更することができません｡ そして､ コースのコードを見てみると､ これで画像のリサイズをすることが要求されています｡
しかし､ 新しいバージョンのSciPyでは､ 実はこれが削除されています｡
だから､ 「ああ､ そうなんだ｡ "これは削除された可能性があるようだ"」と書かれていました｡
"Pillow "を使った新バージョンをご紹介します｡
そして実は､ その必要はなかったのです｡
基本的に前処理画像クラス全体をSciPyではなくPillowで書き換えています｡
それで使ってみたのですが､ 実際に効いていますね｡
そして､ 「そうか､ "Google Colab "を使っている環境には問題があるんだ｡
"解き方 "を教えてください｡ これがエラーになります｡ そして､ 「ああ､ そうだ､ 謝れ」と書いてあった｡
"この特殊な環境がうまくいっていない "ようです｡
"こうする "ということです｡
"基本的にはインストールして行うものです｡ エラーが出た､ またエラーが出た｡
そしてこのエラーは､ 実はレンダリングがこの特定のバージョンで見つかっていないことを示すものでした｡
そして､ 「OK､ このバージョンをインストールしてください」と表示されました｡ したんです｡ またエラーです｡
つまり､ ビジュアライゼーションのためには､ Google Colabの代わりに何か別のものを使う必要があるということです｡
そして､ 基本的に何をすればいいのか､ どうすればそれを変えられるのか､ そういうことを段階を追って教えてくれました｡
そして､ これを現地で行えば､ 問題は解決するのです｡
しかし､ これは基本的に今､
ChatGPTの正しい使い方を教えているのです｡
例えば､ ここで､ いくつかのエラーが発生し､ そのエラーでプロンプトを表示した､
といった具合です｡
そして今､ スクロールバックすると､
深いQネットワークとトレーニングコードを備えたフル機能のコードがあり､
テストコードを生成するよう依頼することができます｡
驚きでしょう？
というわけで､ これで終わりです｡
ChatGPTを使って､ Doomの深層Q（畳み込み深層Qネットワーク）を解く方法です｡
ありがとうございます｡ コースを楽しんでください！