こんにちは、私たちの創造のスーパーエキサイティングな部分、それをスマートにする部分へようこそ。
だから、私は訓練するときに私たちが達成したいと思っている目標に達するための訓練をする日を訓練するときに何が起こるのかは、殺さずにベストに達することです。
これを行うためには、基本的に正しい予測を出力するためにニューラルネットワークを訓練し、脳からのこれらの出力信号が最終的な行動を演奏するために身体への正しい伝達を既に有するので、すべてが既に準備されている。
だから、基本的に今私たちがやろうとしているのは、以前にしたことです。
メモリからランダムなバッチを取るだけです。サンプルからの入力を取得します。出力がターゲットを取得する予測を取得します。予測とターゲットの間の最後の領域を計算し、逆方向伝播を実行して、この最後のエラーにどのくらい寄与したかに応じて重みを付けます。
だからすべてこれをやりましょう。
オプティマイザや最後の機能のようなトーチツールを持っているだけでなく、私たちが以前に作ったすべてのクラスを持っているだけでなく、これを実装するすべてのツールがすでに用意されているので、私たちは予測を得るために使用する予定の脳です。
その後、私たちの経験リプレイ実装の適格性の痕跡とこれらのすべてのツールをパーツと組み合わせることで、スーパーパフォーマンスのトレーニングが行われ、最終的には非常に強力なAIが得られます。
それでは、これを実現させましょう。
スマートにしましょう。まず、エラーとオプティマイザを計算する際に習得した最後の関数を最初に取得します。
それが最初にやることです。
最後の関数の変数を作成しましょう。
これを損失と呼びますが、これは最終モジュールからのMSEE損失関数と等しくなります。
基本的に予測値はさまざまなアクションの中核値を予測していることを知っている重要な値であるため、MSEEを使用することは最後の機能です。
したがって、これらは実数であるため、回帰のための神経回路網をやり遂げているので、最後の関数は平均CT誤差です。
それが私たちが使う最後の機能です。
一般的に回帰のため。
さて、私たちの最後の機能があるように今、私たちのオプティマイザを手に入れましょう。
ここで最適化されているのは、Fredaのオプティマイザを作成するVoivodeです。
そして、私たちはいつものように取るつもりです。
自走車の場合は原子アトマイザー。
これは、トレーニングに不思議になる非常に強力なオプティマイザです。
それでは、アダムの中でこれを手に入れましょう。
そしてそれはまさに我々が2つの本質的な議論を入力しなければならない自走車であることを覚えている。
最初のものは、オプティマイザとニューラルネットワークのパラメータとの間を接続するものです。
それが私たちの脳のニューロンの重さです。
これを行うには、私たちがCNNと呼ぶ脳を取ります。
それが私たちの脳のために作り出したものです。
そして、私たちが行くパラメータとかっこのようなものを覚えているCNNは、オプティマイザと私たちのAIの脳内のニューロンの重みとを結びつけます。
そして、第二引数は学習率であり、それは私たちによって与えられます。
そして、ここでは、あまりにも速く収束することは望まないので、より小さなレイズを取らなければなりません。
ここには小さなものがあり、それは1点にあるもの、または1％が開いているものです。
私はそれが私たちが自転車に使うのと同じだと思う。
さて、今度は最後の機能アトマイザーがありますので、秋を始める準備はほぼ完了です。
実際には今すぐ開始しますが、直前にトレーニングするエポックの数の大きさを決定します。
したがって、ここで新しい変数を作成すると、この数のaboxに応答し、それを100としましょう。
それはAIを訓練するのに十分な方法です。
そして、それが私が100の前に最良の方法に到達する方法です。
20または30のように。
どれどれ。
しかし、今は100を取ってみましょう。
そして必要ならばそれを増やします。
しかし、私はそれが必要とは思わない。
これで、エアバッグの数が増えたので、フォローアップを始めることができます。
あなたがXboxを訓練するとき、このメインのトレーニングのループを知っています。
だから、それは本当に実行可能な本になるだろう。
それが私たちがそれを取り戻すために選択したものです。
今では、range関数を使用して、範囲の上限が覚えていないことを覚えているので、最初の1つから1つの書籍に加えて1つに戻したいと言っています。
したがって、我々は100に増やしたいと思う。
私たちは指定しなければならないし、最大100になるプラスしなければなりません。
さて、CULLENそして、今度はループに入ってみましょう。
さて、最初にやるべきことは、200ステップの10ステップを実行することです。
したがって、各エポックは10ステップのうちの1ステップ後に200回実行されます。これを行うには、経験リプレイクラスのこの1ステップ関数があります。この関数を使用するのは実際にはメソッドです。リプレイメモリクラスからのオブジェクトであり、これらの200回の10ステップを生成します。
私たちがここで作成したメモリを思い出させるメモリオブジェクトは、ステップ10のステップと10000の容量を持つメモリクラスを再生するオブジェクトです。
私たちはこのオブジェクトを作成し、このオブジェクトから取得します。
この実行ステップ関数はステップを実行し、10ステップの連続した実行を200回指定します。
それでは、それぞれのエポックを追加するだけです。
基本的に100ステップ。
今では、それぞれの時代にこれらの200ステップが実行されています。
さて、これらの実行からいくつかのバッチをサンプリングし、これらのバッチをサンプリングする時間です。
我々はサンプルバッチであり、これらの200回の実行からいくつかのバッチを正確に生成する、我々の記憶からの別の機能を有する。
しかし、これらのバッチは、この一連の遷移のバッチであることを覚えておいてください。
今回はバッチがシングルトランジションのバッチだけだった前とは対照的に、一連の10ステップがあります。
10段階の遷移のバッチがあるので、今度は私たちの記憶から得る時間です。
これらのランダムなバッチ。
そして、それらを得るために、バッチサイズにバッチサイズを適用しなければならないシンプルなバッチ関数を使用しました。そこでは、32または64、さらには128を取ることができます。
そのことを覚えておいてください。32を使用するのは一般的な習慣です。
これは、Bachcheの学習を行う際にニューラルネットワークのアーキテクチャで一般的に見られるものです。
しかし今回は全く違うものです。
私たちはちょうど10段のバッチを送っていました。
だから、より大きなサイズのベンチを取る方が良いです。
だから、私たちは64または128を取ることができます。
だから我々は128を取るつもりです。実際には、いくつかのバッチを取りたいので、これはFulopの中にあり、サンプルバッチ関数によって返されたものを取り込みます。
したがって、メモリサンプルバッチ128のこのFulopは、128ステップ毎に実行された最後の128ステップを含むバッチサイズ128をメモリに与えます。
私たちはサイズ128のバッチをいくつか取得しており、学習はこれらのバッチで行われます。
これらのバッチ内に加えて、10段階ごとに学習する適格トレーがあります。
今のところ、このループの中で、まだ一回で起こっている。
しかし、今回は具体的なバッチに入っているので、最初に行うのは入力と目標を別々に取得することです。
そして、私が言ったように、私たちが実装したツールの1つでこれを行うことができます。あなたがここで見ることができる適格性の罠です。
この不正なトレース機能はバッチを入力として受け取ります。
入力とターゲットを出力として一括して返します。
ですから、今私たちが単純に行うことができるのは、入力とターゲットになる2つの新しい変数を作成することです。これらの入力は、このLGBTIトレース関数をバッチに適用した結果を返します。ループ。
そして、私たちがやることは、私たちのバッチに適格性の痕跡を適用することです。
大丈夫。
それで私たちは入力とトイレを手に入れますが、PIトーチでは常にもっと多くのことがあります。
もちろん、これはニューラルネットワークの入力とターゲットをいくつかの変数に変換することです。
しかし、新しいことはありません。
私たちはそれを行う方法を知っています。
私たちはこのように入力を行い、目標を達成することができます。
そして、それらは入力と可変ターゲットのための変数入力と同等になりますが、それはターゲットの場所です。
さて、脳の入力はいくつかのtorche変数に変換され、ターゲットもいくつかの変数に変換されます。
これでニューラルネットワークへの入力を得ることができます。
そして、なぜ我々はこれを行う必要がありますか？
次のステップは、私たちが目標としなければならない予測を得ることです。
今私たちは予測が必要です。なぜなら、予測とターゲットとの間の損失を計算するからです。
これらの予測を取得してみましょう。
もう一度これはとても単純です、今私たちはCNNである私たちの脳を憲法上のニュースネットワークにして、それを私たちのインプットに適用するだけです。
そこに行く。
入力はニューラルネットワークに入り、ニューラルネットワークは予測を出力します。
完璧。
だから今私たちは私たちが法律を得るために目標としなければならない保護があり、それが次のステップです。
私たちは新しい変数を導入しようとしています。なぜなら、今度は、最後のエラーを得るために関数を使用するので、最後の関数とは異なる最後のエラーを得るからです。
ここで最後にエラーが発生し、最後の機能を予測に適用し、目標を達成するにはすべてのことがスムーズであることがわかります。
今はすべてが論理的です。
私たちは最初に目標を入力してから、予測が得られた入力のおかげで、次に予測とトイレのおかげで最後のエラーが発生します。
とても論理的で滑らかです。
そして今、次のステップは何ですか？
まったく同じ論理的なパスであり、最後にはこの最後のエラーをニューラルネットワークに戻って重みを戻すことができます。中央のガスグリルで行い、オプティマイザが必要な程度で度を出すために実行します。
しかし、私たちはすでにここに持っています。
私たちのアダムアトマイザー。
しかし、今この時点で私たちは何をしなければならないか覚えています。
それを初期化して初期化する必要がありました。
私たちのオプティマイザオブジェクトを覚えています。
そして、ゼログレット法を適用する。
ここでは、初期化した括弧を忘れることはありません。
そして次のステップは、最後のエラーを新しいネットワークに戻して戻すことです。これを行うには、最後のエラーを取り除き、それにbackwardメソッドを適用します。
だからこそ、逆方向の伝播を忠実にすることです。
最後に最後のエラーが新しいものに反映され、うまく動作するようになりました。
我々はまだその意味で大きくなっています。これを行うには、オプティマイザを使用し、ステップメソッドを適用します。
そこに行く。
体重は現在の日付です。
私はあなたに言ったように、私たちは既にそれをしただけでなく、今はとてもシンプルで自然なようです。
今、私たちは何か楽しいことをするつもりです。
私たちは毎年働いている平均を印刷します。
AIがどのようにトレーニングが進行しているかを把握することができます。
エポックの歩みに平均報酬が増えていくのを見たいと思っています。当初はこの搾取フェーズがありますので、平均は最初に増加しませんでしたが、搾取フェーズに達すると、平均報酬が確実に表示されます増加し、できるだけ早くベストに達する一定のレベルまで上昇する。
だから前提から始めましょう。
私たちはこれを一つの方法でやっていることを知っていますが、ここでループに戻り、次に印刷しなければなりません。
まずは、まずは％sです。なぜなら、すべてをより良い文字列に変換するからです。
それから、平均値を加えてSを追加してから、引用符を閉じてパーセントを追加します。
もう一方の側では、この最初の人物となる変数をここにエポックであるものとして置くことができます。
2番目の変数は現在計算される平均単語に対応します。
したがって、実行可能な平均的な単語はまだ存在しません。
今すぐ作成しようとしています。
だから私たちはエジプトをエポックに使うつもりです。たとえそれを列車に変換する番号が増えても、私たちは平均報酬になるでしょう。
それで、我々はVijiの報酬と呼ぶ変数を作成します。
そして今、この変数を作成して計算します。
OK、これをやりましょう。
それが私たちがすでに持っているEPOCに残しておかなければならないのはそれだけです。
さて、平均単語を計算しましょう。ここでその単語を計算する必要があります。
今でも私たちのパッチのサンプルがあり、私たちはバッチで訓練をしているので、ループではなく独身です。
しかし、今では伝播プラスのために、逆伝播はバッチで行われます。
そこで、私たちはepocheループに戻っています。甲のオブジェクトにはこの関数が含まれているため、ステップオブジェクトで行うことができる累積単語を計算できます。踏み込んだ累積的な報酬を得るためのステップステップが実行されます。
そこで、私たちは今すぐステップの新しい報酬を更新するためにそれを使用し、移動するすべてのオブジェクトに累積語を追加して移動平均オブジェクトを更新します。
そして平均を計算すると、最初に必要と思われるものの平均を得る方法は、Stribildという単語です。
だから、それらを単語のステップと呼ぶことにしましょう。次に、ここで作成した私の最後のステップのオブジェクトと、インスタンスオブジェクトの体験再生からのステップの進行クラスのオブジェクトを取り上げます。
次に、単語のステップを追加し、次にカッコを追加します。
大丈夫。
これにより、ステップの新しい累積的な報酬が得られます。
しかし、次にこれらの新しい累積報酬を移動平均オブジェクトに追加する必要があります。これを行うには、移動平均クラスでこのメソッドを使用します。このメソッドは非常に簡単です。ここで作成した移動平均オブジェクトを100ステップで、addメソッドを使用します。
そして、Admetusでは、私たちの言葉のステップを入れ、これはステップの報酬を移動平均に加えます。
すべての権利と最終的には平均的な単語を計算することができます。
それは平均的な単語と同じになるだろうし、我々は移動平均オブジェクトから今度は平均的な方法を使用する必要があるだけです。私たちは平均して、移動平均がすでに更新されていると言います私たちがちょうどAddメソッドに物事を追加した新しい単語のステップがあります。
ここでは平均単語があるので、ここに入力します。
そして、これは1時間ごとに印刷されます。
だから、これは非常にエキサイティングなことです。それぞれのエピソードは、空気がどのように進行しているかを把握するためです。
平均的な単語が増えているかどうかを確認するつもりです。
エキサイティングなことを話す。
非常にエキサイティングなのは、それが1500に達したときにベストに至ることがわかっていることです。
だから今ここでやろうとしているのは、平均報酬が1500に達した場合です。
今それが1500よりも上がっているなら、我々は新しいものを印刷しようとしています。それが最終的な印刷物になるでしょう。
我々が言うことができるように我々が印刷しようとしている非常に成功した印刷物。
あなたのAIが勝っているため、あなたのAIにおめでとう。
だから、私たちが非平均的な言葉に達したらそれが起こるなら、それは素晴らしいだろう。
1500より大きい。
私たちは、AIが最高のものであることを100％確信させることができます。
おそらくそれより少し低いかもしれませんが、私は1000で実験し、時には高度に達することはありませんでしたが、私たちがそこにうまくいくならば、AIが確実に勝った場合は1500になります。
だから私たちはそれを後で見るつもりです。
そうですね、非常にエキサイティングなことです。
そして、それは実際にはカーブの終わりです。
トレーニングを開始することを指定する必要があります。
もしそれが起これば、それはもはや訓練する必要のない膨大な富に達しているかどうかを知っています。
したがって、1500の平均的な世界に達すると、すべてのプロセスを中断して終了します。
私たちはすべてのプロセスを完了することができ、これを行うにはここでこの休憩を使用できます。
大丈夫。
そして、ゲームが終了したとき、それがAIが勝ったときの最後のことです。
さて私たちは、環境を閉鎖することができます。ここで最後のアクションを1つ追加するだけで、ここで私は運命の環境を閉じることにします。
だからこそ私たちはDoomというDume環境を使い、覚えています。
そして、それを追加するだけで済むようになりました。それは、ゲームを終了した後に行うことがより良い環境を閉じることだけです。
大丈夫だから終わった。
だから私は結果を見て非常に興奮し、実際に私は結果を見ながら次のチュートリアルであなたのために驚きを持っているつもりです。
それはかなりエキサイティングなことになるだろう。
そして今、私はそれで遊んで楽しい時が来たと思います。
ですから、できるだけ早くこのベストに達することを願っています。
それがこの新しい環境の目標です。
さあ、楽しんでみましょう。
良いコーヒーや良いお茶を用意してください。
今、私たちの椅子に座って快適に座って、私たちの飛行機の非常にクールなビデオを見てください。
次のチュートリアルでそれをやってみましょう。
それまではAIをお楽しみください。