こんにちは、このチュートリアルを歓迎します。
もう一度やり遂げたことをお祝いします。
私たちは脳を作り、それらを訓練しました。
しかし今では、明日の日付ではないテストエージェントを作る必要がありますが、それはシェアモデルを使って独自の探索を行うだけです。
もちろん、このコードではいくつかのビデオを録画します。これらのビデオはテストエージェントが特定のスコアで突破するものです。
では、このコードを解説しましょう。
最も重要なことは、私が行ごとにコード化するつもりはないと言いましたが、ここで何が起こっているのかを理解することが重要だと思います。
そこで、最初のセクションでこのコードを気付いた通りに行きます。
私たちはライブラリをインポートし、このテスト機能を使ってこのテストエージェントに独自の探索を行い、ブレークアウトゲームをプレイさせました。
だから、このテスト関数は3つの引数をとります。最初のものは、テストエージェントを同期させるためのものです。
それからあなたはいくつかの必要があるので、私たちはもちろんパラメータを持っています。
もちろん、このテストエージェントは共有モデルを使用して独自の探索を行うため、共有モデルが用意されています。
さて、関数とこのコード行をテストエージェントに同期させてみましょう。
以前と同じように、環境をインポートします。
だから私は、次のチュートリアルの主なコードを思い出してください。
ここでの名前と名前は0のブレークに置き換えられ、ブレークゼロの環境に入り、ゲームや赤十字のトルーマンをプレイして、私たちの夕方の映像を得ることができます。
つまり、基本的には、このコード行は、ビデオで1つの環境を実行することを意味します。
次のコード行で、この環境をTrend関数とまったく同じ原理で同期させます。
次に、私たちのモデルを取得し、これを実行するために、アクティビティクラスのオブジェクトを作成し、環境観測空間に入力形状を配置し、形状ゼロは、列車関数と、アクション空間を持つアクションである出力とまったく同じです。
だから私たちは訓練を終えて以来、まさにその前に何か新しいものがあります。
モデルをトレインモードにするのは簡単ではありません。私たちはそれを開発したいと思っています。
それが進化したモデルでここでやっていることです。
つまり、基本的には、テストエージェントを基本的にテストしてパフォーマンスを評価するモードにすることだけです。
そして、ここで我々は入力状態を得る。この入力状態はゲームからの入力画像であり、この時点では全レースである。
その後、私たちはそれらをトーチのダンサーに変換します。
ここでは、ここでいくつかの単語を初期化します。
真になるまで初期化します。
だから、前回と同じように新しいものをもう一度やり直してみましょう。計算時間を測定するための時間関数をこの3番目に導入しています。
それは出発点を得たいからです。
次に、ここでは、右または左からキューに要素を追加できる非常に実用的なキューを使用するアクションを示します。
だからそれはとても実用的で、私はあなたがコードを減らしたバージョンで考えると思います。
だから、このデキューが何であるかを見て、それができることです。
その後、エピソードの長さをゼロで初期化し、このウェルループのサイズを増やします。
だから我々は同じトリックをここで使う。
真実でループ中に、私たちはエピソードの長さを1つずつ増やします。
ゲームが終了したときにゲームが終了すると、他のモデルの日付と同じ共有モデルの最後のセットをリロードします。
ここでは、共有モデルはもはや日付になっていないことに注意してください。
ゲームが終了してもゲームが終了したらReinetteはセルの状態をXで再初期化し、その後はH
xで状態を再初期化します。
しかし、彼らはグラデーションに接続することができるように彼らは変数を教えていることを確認する。
これは、トレンド関数ではすでに死んでいて、whileループでも、また隠れた状態では、ここの2つのケースに応じて適切な方法を述べたデータを持っているからです。
さて、私たちは何をするのか、明日の予測を得る。
これはまさにこのコード行でここでやっていることです。
そこで、批評家の出力である値を実際の値、つまりアクターの出力にします。
そして、隠れ状態H
xとセル状態Xのすべてを上にして、ここでQ値のアクション値にあるアクションの確率分布を生成します。
そして、次の関数でこれを行います。
もちろん、ここでは運賃確率を得る必要はありません。これは、テストエージェントのトレーニングのためだけのものです。
それはちょうど我々がそれを使用する特定の活動を運命のように知っているそれを使用するアクションを再生しますが、私たちはここでは何も訓練をしていない。
だから私たちはちょうど小道具を持っており、これから我々はこれらの確率のRMXを直接取ることによって行動を演じる。それは最も確率の高い行動をとる。
そしてその理由は、テストエージェントはどんな探査もしないということです。
これらの他のアクションのいくつかの探索をしたいときに確率が低いいくつかのアクションを選ぶチャンスがあることを忘れないでください。確率が最も高いアクションを毎回取っていないことを知っていますが、ここでテストエージェントは、したがって、我々は次の状態に到達した行動を演奏して次の言葉を得ると、最大の確率を持つ行動を直接取ります。
そして、ゲームが終わったかどうかに関わらず、それは日にちです。
だから、ここでMaxを使ってアクションを選択した後で、このコード行でこれをすべて取得します。
そこでここで行動を起こして、報酬を得てからもう一度やり直すという状態になります。新しい報酬が得られたので、この新しい単語を追加するだけで報酬の一部を更新します。
そして最後にゲームが終わるたびに。
だから、ゲームが終わったときにゲームが終わったときには、結果をその時と逆の時間に印刷するつもりです。
私たちはエピソードの長さを望んでいました。それは最後の時間です。
素晴らしいことをして、これはこれらの小さなトリックを使ってこれらの変数をすべて印刷する方法です。
それは当時のものです。それは単なる変数です。
長さのある言葉やアイデアの一部は、現在のOKの長さです。
そして、ゲームが終わってからすべての結果をうまく印刷したら、新しいゲームを始めたいと思います。すべてを再初期化します。
これは、2つの単語の合計であり、エピソードの長さをゼロにする。
このキー機能を使ってすべてのアクションを再制定します。すべてのブレークを繰り返して知っている入力イメージをリセットします。
最後に、60秒間スリープして1分間休憩して、他のエージェントを練習させるこの時間を使用します。
そして、もしゲームが終わったら。
OK。
最後に、この最後のコード行があります。このコード行で新しい状態になり、次に進むことができます。
我々はこの新しいゲームを続けることができます。
だからそこに行く。
それがテスト機能です。
1つまたは2つのチュートリアルでビデオを見ることができるもの。
私はあなたと一緒にいる結果を見るために、前回と同じようにあなたが願っています。
キュリアルと私は楽しいです。
そして、私はあなたに語っています。
良い結果が期待されます。
しかし、このブレークアウトゲームは非常に挑戦的だったことに留意してください。
私たちはそれが最初にプレーする単純なゲームだと思ったが、全くプレーしなかった。
それは実際に運命よりもはるかに困難であることが判明しました。
それが私たちが最後のモジュールに入れた理由です。
しかし、とにかく次のチュートリアルでこの主な機能を作ってみましょう。
同じこれはここで最も重要ではありません。
A-380は痴呆化しているので、コードを一行ずつコード化してコードを展開し、すぐに結果を得ます。
それまではAIをお楽しみください。