こんにちは、このPythonチュートリアルへようこそ。
さて、今日、私たちは目が新しい状態に達するとすぐに今日までのすべてを更新する更新機能を作成します。
だから新しい段階に到達すると、アクションを更新する必要があることがわかります。
最後は実際に再生された新しいアクションになります。
しかし、新しい状態になる最後の日付。
そして最後に、私たちが行動を演ずるときに得られる新しい言葉になる最後の言葉。
これは、アクションを選択した直後に発生する論理的なパスです。
遷移のすべての要素を更新する必要があります。
もちろん、あなたは新しい移行を得るでしょう。
だから私たちはメモリにこの新しいトランジションを追加する必要があります。
最後に、トレーニングの進捗状況や調査の進捗状況を把握するために、わかっているウィンドウを更新または報酬を得る予定です。
しかし、あなたが理解しておくべき最も重要なことは、今、私たちが地図に戻って行くと、このBeijiの更新機能がゲームクラスに覚えていることを覚えているからです。それは実際に車で試合をしていて、ミスをしているときに車を処罰する方法を定義したところです。
しかし、このゲームのクラスでは、この更新機能に気付きました。この更新機能では、脳の更新が最後に信号が少なくなったため、この行為に気付きました。
実際、これはまさに私たちがしようとしていることです。
この更新機能を使用して、最後の単語と最後の信号を再生して次のアクションを再生させようとしています。
したがって、移行のすべての異なる要素を更新するだけでなく、
しかし、ほとんどの場合、最後の言葉と最後の信号を得るときに実行すべきアクションを演奏するでしょう。この更新関数では、選択アクション関数をすべての更新を行うだけでなく、再生する方向を選択するために作成しようとしている将来の更新機能です。
だから今地図とのこの接続を作ることは本当に重要です。
私たちがしようとしていることは、最終的には私たちがこのクラスで作ったゲームと私たちの目とゲームの関係です。
そして、今私たちができるのは、このアップデートを直接受けることです。
最後に、実際にはこれら2つの引数を使ってここで作成する関数なので、シグナルが少なくなっています。
素早くリマインダーする脳が私たちのAIオブジェクトです。それはDejuanクラスの対象です。
それでは、今更新しようとしているのは、このアップデートを無駄な信号なしでコピーし、それが私たちが作っている次の機能になるということです。
それでここに貼り付けて、ちょうど私がここにある名前とは違う名前をつけることを丁寧にしたいのです。
私たちはここで最後の言葉を持っていることを知っています。私はこの最後の言葉をこの言葉と混同したくありません。
それは危険です。
だから私は最後の言葉をここに置き換えるつもりです。
信号が少なくても同じ方法で、単に信号または新しい信号を入力して、新しい状態に達したときに新しい信号を受け取ったときに測定することを指定していることを指定します。
しかし、もちろん、ここのこの言葉はここで得られる最後の報酬になるでしょう。
ある砂の上に行くとき、あるいは最後の単語を定義するところの地図の1つの端に近づきすぎるときを知っている。
この最後の言葉は更新関数の入力になるので、ここで最後の言葉があります。
しかしここで私は議論のために別の名前をつけています。
私たちは最後の言葉とここでそれを混同したくありません。
これは更新機能です
それでは、内部に入って、この2つのことをやりましょう。
これは、移行のすべての要素であり、もちろん行動を選択するデータです。
さて、最初に更新する必要があります。
あなたが理解しているように、私たちはどんな状態にも到達する日を作りたいと思っています。
だから私たちが更新する最初のことは、明らかに、私たちが到達しているニュースであるということです。
だから私はこの新しい州を新しい州と呼ぶつもりです。
それでは、どうやってこの新しい状態を得ることができますか？
もちろん、センサーがちょうど検出した信号が信号に依存します。
また、状態は、3つの信号から構成された信号そのものであり、センサーは1つの信号に3つのプラスの方向とマイナスの方向を示す信号を送信します。
それが私たちの状態です。
したがって、信号が状態であることを理解してください。
しかし、今は5つの要素の単純なリストです。
そしてこれはすべての作業を行うための入力になるので、我々はそれをトーチセンサーに変換しなければならないことを思い出してください。
それはまさに私たちが今やっていることです。
私たちはトーチライブラリーを取ってからテンソルクラスを取って新しい信号をトーチ高密度に変換します。トーチのすべての要素が浮動小数点になるようにしてください。このような浮動小数点数に変換する型変換を行います。
そして最後に、私たちが次にやるべきことを考えさせてください。
その偽のエンジンを作成してダイヤモンドを追加し、バッチに対応させることはもちろんですが、この大きなダイヤモンドのインデックスを置く必要のあるスクイーズ機能でこれを行うのはもちろんのことです。
そして、バッチがゼロであることを望みます。
大丈夫。
そして、今度は3つのセンサーの3つの信号と方向マイナスの向きからなる新しい状態があります。もちろん、この更新機能で得られる新しい信号に依存します。
この時点で、最後の信号で3つの信号が得られます。
したがって、マイナスまたはそれに加えて、リマインダとして、3つの信号は、センサの周囲で検出されるセンサの密度である。
大丈夫。
だから新しいステージに入ったので、新しいステージに到達したので、次のアップデートをしなければなりません。
それでは、今更新する必要があるものは何ですか。
この新しい州に達した直後の現在までの論理的なことは何でしょうか。
私たちが現在必要としているのは、記憶です。
何故ですか。
それは、報酬artiと行動80が現れたときに、それぞれの時間tにおいて遷移が現在の状態Esteyで構成されているからです。
そして、今我々はすでにS-Tを持っています。私たちは既にチームを持っています。すでに80を持っています。
したがって、この新しい状態を深くすることで、私たちはメモリの新しい変遷を得ています。したがって、これは単に次の移行であるため、この新しいトランジションをメモリに追加する必要があります。
だからこそ、今私たちはその記憶を持っているのです。
したがって、私は、リプレイメモリクラスから作成された私のメモリオブジェクトを取るので、私はそのオブジェクトを参照するために自己メモリを取るつもりです。
しかし、私は自己を使用しているので、私はその機能の中に自分自身を含める必要があります。
だから今あなたは本当にこの自己が何であるかを見ることができます。
init関数で作成して初期化した変数をそのメモリに使用するたびに発生します。
そして今、私たちはそれをしました。
そして、それをどのように更新するのか、あなたに従ってください。
うれしいことに、私たちはすでにそれを行うための機能を作ったということです。
これは、イベントやメモリへの移行を禁止するプッシュ機能です。
だからこれはまさに私たちが今使っているものです。
プッシュ機能を使用して、私たちがメモリに行った新たな移行を描きます。したがって、私たちはこのメソッドを使用するので、私は平等ではないので、直接そのプッシュを使用することができます。
そして、まず、私たちが今取得したこの新しいトランジションを最初に追加することにします。
それで最後の日付。
それはS-Tです。それはまさにこれが既に存在するものです。
そして、この移行の次の要素は、もちろん、私たちが今到達した新しい状態です。
したがって、このinit関数で作成し初期化したオブジェクトは実行可能ではないため、ここではそれを記述しません。
私たちはNewsteadを直接置くと、移行の次の要素がアクションであり、最後のセクションがあります。これは最後のアクションです。
もちろん、それはゼロに等しいです。
しかし、もちろんそれはselectアクション関数で更新されます。
しかし、これはこれです。
だから、それは最後の行動そのものです。
しかし、今は注意してください。
この移行に含まれていた要素はすべて、鋭敏な答えになるはずです。
あなたが見ることができるように、それは最後の日付の場合です。
これはトーチセンサーです。
新しい状態はまた、激しい答えです。
そして、これは行動のために同じでなければならず、そしてもちろん報酬を与えなければなりません。
しかし今、あなたはそれが単なる数字であることを考えると、どうやって激しい答えになるのだろうと考えようとしています。
あなたは行動が0か2かを知っています。
しかし、実際それは問題ではありません。
この0 1または2変数をトーチセンサーに変換することはできます。
これはちょうど我々が長いテンソルと呼ぶものになります。
longは型であり、最後のアクションは0または2の整数なので、整数を含むテンソルです。
だから私たちが今取ることは、私たちの図書館のトーチです。それから私たちは長いテンソルクラスを取って、非テニュアそのものになるオブジェクトを作ります。
そして、この自己最後のアクション関数を入力として取ることで、この長いテンソルオブジェクトが作成されますが、テンソルオブジェクトには0または2が含まれます。これは、テンソルを含むトランジションと一貫しています。
PIトーチで作業しており、ニューラルネットワークを使って作業しています。
だから私たちはセンサーで作業しなければなりません。
最後に1つの変換を行います。
私たちは、この長い答えの中にあるものが整数であることを確かめなければなりません。最後のアクションが0
1または2であることを既に知っていても、それを確実にして、このint型変換を再度行うようにします。自己最後のアクションを整数に変換します。
ここで、私たちは行って、ここでその整数無私のアクションをここにかっこに入れて、最後のアクション0または1または2そのものになる1つの要素の長いテンソルを取得する必要があります。
だから重要な点は、簡単な数値ゼロを1つまたは2つをtorcheでテンソルに変換する方法です。
大丈夫。
そして最終的には移行の最後の要素ですが、それはもちろん最終的なものです。
それは正確にゼロに初期化された関数で作成した最後のバレーボールです。
しかし、当然のことながら、このコードでは、負の言葉である何らかの感覚に移ったとき、あるいは目標からさらに遠ざかったときに負の報酬になってしまったときに、ここで更新されます。
私たちが目標に近づくと、それは肯定的な報酬であり、最悪の刑罰であり、マップの片端に近すぎると、マイナス1という恐ろしいマイナスの言葉です。
そしてそれはaです。
ですから、遷移のこの最後の要素を追加して、単語をセルフ・ダイレクトしましょう。
だから私はここに貼り付けていますが、今度は単語が整数ではなく浮動小数点数なので、この変換はまったく同じです。
私たちは単にテンソル変換を行うトーチを作っていますが、それがなければ括弧をここに入れておきます。なぜなら、最初に番号をリストに入れなければならないことがわかっているからです。そして、このリストは行くでしょうし、トーチをクラスに入れます。最後の単語は浮動小数点数なので、変換でそれを作る。
だから私たちがやることは、単純にここにtorcheのドットテンソルを追加してテンソルをつけてかっこをかけることです。
ここで角括弧を閉じて括弧を閉じます。
そこに行く。
要約すると、私たちが到達したばかりの言葉と、私たちが記憶に加える移行の新しい出来事を観察したことはどちらが言いましたか？
そして、この遷移には最後の日付が含まれていて、最後のアクションが80と最後の単語Archieをプレイするときに新しい状態がtipisとして表示されます。
大丈夫。
そして今、私たちは日々の記憶を持って行きます。
ですから、次のチュートリアルで次のアップデートを気にしましょう。
それまではI.