こんにちは、このPythonチュートリアルへようこそ。
大丈夫。
このオイルでは、適切な行動を選択する機能を作り出します。
ですから、基本的には、車を適切に動かす部分を実装するつもりです。
そして、それがまっすぐ進むか、目標に到達し、降下する障害物を避けるために右に行くことが行くたびに。
それでは、今すぐやろう。
私たちはいつものように関数を定義するために聴覚障害者から始めようとしています。関数に名前をつけます。ここでは、括弧よりもselectアクションを呼び出すでしょう。このselectアクション関数は2つの引数をとります。
最初のものは、あなたがオブジェクトと2番目の引数を参照するように成長するにつれて自己であり、それに応じてどちらが1つになるかです。
まあそれは何ができる。
あなたがそれについて考えるならば、私たちが選択した行動は、ニューラルネットワークの出力から来ます。なぜなら、ニューラルネットワークの出力または3つの可能な行動のそれぞれについてのq値、したがって、我々がニューラルネットワークは入力状態に依存し、入力状態は厳密には選択アクション関数で必要な第2引数です。
これは、文字通り、ニューラルネットワークの出力を取るためです。
もちろん、ニューラルネットワークの出力は、ニューラルネットワークの入力に直接依存する。
それが私たちの議論になるでしょう。
そして、ニューラルネットワークの入力が、5次元から3つの信号方向およびマイナス方向のベクトルによって符号化された入力状態であるため、実際に状態と呼ぶ任意の名前を付けることができます。
今は物事が簡単になるでしょう。
私たちはニューラルネットワークに入力状態を与えます。ニューラルネットワークには、すぐ上に次のクラスを構築し、次に3つの可能なアクションのそれぞれのキー値である出力を取得しますこのチュートリアルで説明するソフトMaxメソッドを使用します。
私たちは最終的な行動を取るつもりです。
それでは、関数に入り、すべてを実装しましょう。
だから私が最初に必要とするのは、先ほど触れたMaxについて言及したことです。ソフトマックスのアイデアは、毎回最高のアクションを出そうとしているということです。
しかし同時に、私たちはさまざまな行動を模索していきます。
それはどうやってやるの？
他の行動を探しながら、どのようにして最高の行動を取ることができますか？
私たちは、q値のそれぞれについて確率の分布を生成することからなる、この物の考えを使用しました。
Q州の行為。
今度は、各アクションのための1つのQ値が、左に行くか右に行くかを示します。
しかし、このq値は入力状態にも依存します。
それはまさに直感的な講義でのQ関数の使用です。
このQ関数は、状態とアクションの関数です。
したがって、ここには1つの入力状態があり、これはここの状態と3つの可能なアクションです.3つの新しい値があります。
ステートアクション1
Qステートアクション2とステートアクション2 3ステートで、これらの3つのキー値に関する確率の分布を生成します。
つまり、最初のQ値に対して1つの確率を、2番目のQ値に対する確率と3番目のQに対する3番目の確率を持つことになります.3つの確率の合計は1になります。
そして、私たちはこれをすべてスウェーデンのマックスでやるつもりです。マックスは、周りの最高のQに大きな確率を掛けます。
そのため、ソフトマックスの代わりに、単純に最大q値を取る単純なRMXはありませんが、その場合は他のアクションを検討していません。
これらの確率のおかげで、我々は非常に迅速に見る温度パラメータを用いてどこかを探索することができます。
この温度パラメータを設定することで、まだそれらを探索できます。
だからこそ、一般的にセキュリティのために、簡単なRMXではなくソフトxを使うことを強くお勧めします。
さて、Xを実装して理解してみましょう。
soughed Maxは、3つの可能なアクションについて3つのQ値のそれぞれの確率を返します。
まあ、最初に作成する変数はおそらくもちろんこれらの確率を指しているでしょう。
だから小道具は同等で、今私たちは次の機能を引き継ぐつもりです。
まあ、もちろん、私たちは、
そして、私が思い起こさせる機能的なサブモジュールは、ニューラルネットワークを実装するための行動の大部分を含むモジュールです。
私たちはそれにショートカットFを与えました、そして、それは実際にはこの機能的なサブモジュールから、私たち自身の次の機能を取るつもりです。
しかし、私たちはそれにショートカットfを与えて以来、私たちはここでは機能を表すNephで始まります。
ここにあります。
これが最初の括弧です。
大丈夫。
次に、次の関数で何を入力する必要がありますか？
もちろん、確率分布を生成したいエンティティです。
そして、これらの実体は何か。
もちろん、これらはもちろん重要な値です。
それでは、問題はどのようにしてq値を得ることができるかということです。
もちろん、q値はニューラルネットワークの出力であり、ニューラルネットワークの出力を得るためのものです。
まあここに行く。
新しいネットワークを構築する必要があります。
しかし実際には、それが機能しているのは、初期化されたものだからです。
それがネットワーククラスの新しいオブジェクトであるために動作しない何もない独学のモデルを作成したことを知ってください。
それで完璧です。
ここでモデルを取り上げて、このモデルをここの引数である入力状態に適用すると、それが探している出力を返します。
それが重要な価値です。
そして今、あなたの直感がなぜ機能の中に導入するためにここでモデルを取らなければならなかったあなたの直感は良くなるかもしれません。
あなた方はオブジェクト指向のプログラミングから始めて、あなたはこのすべてが自然に次第に柔らかくなることを見ています。
だから私たちは私たちがここで作成したオブジェクトのモデルでなければならないので、私たちのモデルを自己モデルにします。
しかし、我々はニューラルネットワークモデルの出力を得る必要があるので、そこでここではstateという名前の入力状態を入力するかっこを聞くつもりです。
だから私たちが最初にやりたいことは状態に入ることですが、今は単純な状態のような状態に気を付ける必要があります。
しかし、状態は実際にはトーチセンサーになることを忘れないでください。後で、このセルを少ない状態で使用してSelectアクション関数の引数として使用するためです。
ここにある州の議論は、実際には、後でこの独学の少ない国家になるだろう。
そして、これは拷問された答えの世界なので、モデルはそれを受け入れます。
だからそれはいいです。
しかし今、私たちはアルゴリズムを改善することができます。
したがって、状態がトーチセンサーであるとすぐに、我々が以前に述べたように、ほとんどのセンサーはボイボードに包まれています。
これにはグラデーションも含まれます。
だから今私たちが最初にやろうとしていることは、テンソルであるこの入力状態を非常にうまく覆うことですが、これは入力状態なので、微分することはありません。
私たちは、この状態のトーチVoivodeのグラデーションを使用しないであろう、そしてステーションであることができるので、今私たちがしようとしているのは、このトーチセンサー状態をトーチ変数に変換することです。
しかし、グラフの勾配がすべてMudgalの終わりにある捕食者になることを望まないように指定する。
さて、ここでは、揮発性が真であると思います。
だから今我々はトーチに非常にうまく私たちの状態のトーチセンサーを持っているが、このVotelのおかげで本当の気圧計に等しい。
この入力状態に関連付けられたグラデーションを、そのモデルの最後のすべての条件のグラフに含めることになります。
それは別の技術的なトリックです。
これによりメモリが節約されるため、パフォーマンスが向上します。
だから私はこれを行うことを強くお勧めし、今我々はもっと楽しいものを追加するつもりです。
これは、私が言及したこの温度パラメータに関するものです。
したがって、この温度パラメータは、ニューラルネットワークがどの行動をどのように決定するかを調整するためのパラメータです。
したがって、この温度パラメータは正の数になります。ゼロに近ければ近いほど、ニューラルネットワークは実際に動作するときに確実になり、温度パラメータが高いほど、ニューラルネットワークは再生することを決定します。
このパラメータを追加するには、この温度パラメータで使用されるKuganの出力を掛けます。
だから7で始めましょう。ここでは、小さなコメントTを7と指定します。
それが温度パラメータです。
私は申し訳ありません7に行きます。
私たちはいくつかのものを試してみるつもりですが、小さなものから始めるため、小さなものから始めたいと思います。
私たちの車はまだ何らかの昆虫のように振る舞いますが、温度パラメータを上げることにより、コードは車のように見えて、運転を売ることに決めます。
そして、それは理にかなっています。なぜなら、この温度パラメータが高いほど、たとえば、私たちがq値のソフトマックスを持っているため、ジュヴァルが勝利する確率が高くなるからです。
1から3の最大値が詰まっている場合、いくつかの簡単な数値を1つ2つ取りましょう。
たとえば0です。 04 0。 11を開き、85を開きます。
その後、温度を上げることによって温度を上げます。
今の温度は、たとえばTussaud減算のように高温を取ることによって1に等しくなります。これをコピーして、たとえば2または3で乗算して、次に同じ値を持ちますが、3の温度パラメータを掛けます。
最初のQ値ではゼロのようなものが得られます。なぜなら、これは非常に低い確率でゼロ付近にあり、それでは2番目の確率に対して非常に小さいものです。
それでは、たとえば、点0 2を考えてみましょう。
しかし、それは最大のものとかなり高いものであったので、この第3の確率。
温度を上げると、この確率はさらに大きくなるでしょう。なぜなら、これは我々が行うべき行動に対応する正しいQ値であり、したがってこれは0のようになるだろうということです。
2 98。
今度は温度パラメータを上げることで、このアクションのq値の確率が最大であるだけでなく、非常に高いため、ここで3番目のアクションを実行することがさらに確実になります。
だから、この温度パラメータはすべてについてです。
それは、我々がどちらの方向性を演じるべきかについての確かさです。
大丈夫。
だから私はこのコメントを削除するつもりです。
これはちょうど説明することでした。
そして今、私たちの行動を起こそう。
では、どうやってそれをやろうとしていますか？
次の方法の原則は、各キー値の確率分布を生成するだけでなく、それもソフトの次の方法の第2ステップです。
最終的な行動を取るために、このディストリビューションから無作為に抽選を行います。
そしてもちろん、それは正確に分布がどのように働くのかという理由で、最も高い確率を持つQ値に対応する行動を得るチャンスが高いでしょう。
だからそこに行く。
私たちの行動を起こそう。
そこで、我々は新しいVoivodeを導入するつもりです。私たちは行動を呼ぶつもりです。この行動は、今までに作成したばかりの確率分布をランダムに描くことになります。
それでは、どうやってそのような無作為な描き方を得るのですか？
さて、私たちは小道具を取ってからダーツを取って、それからマルチGnomeo関数を使うつもりのキー値のそれぞれについて、私たちの小道具の確率を取るつもりです。それは、この流通過程から無作為に引き出すことになります。
それだけで彼の反応を得ることができます。
完璧。
そして、今私たちはその行動を返すつもりです。
ここに少しトリックがあります。
多項式がPIを虚偽のバッジで実行可能に戻すというこのPropstの事実は何ですか？
あなたはこの擬似ダイヤモンドを知っていて、バッチに対応しているので、0
1または2のアクションである欲しい正しい結果を得ることができます。
ここにデータを追加し、角カッコをいくつか追加するだけです。ここでのアクションは、探しているコンテンツの1つか2つです。コンテンツはインデックスで、インデックスは0と0です。
大丈夫。
そしてそこに行く。
この選択アクション機能のおかげで、AIは現在どのアクションを再生するのか知っています。
そして毎回。
素晴らしい。
これで、学習関数になる次の関数に進むことができます。
そして、それはあなたがすべての順方向伝播で知っている全体の神経回路網を訓練するところです。そして、逆伝播はその意味で分類することです。
基本的には、私たちの人工知能の中心にある深い学習モデル全体のトレーニングを実装します。
だから私はそれを待つことができません。
これはエキサイティングなチュートリアルになるので、次のStatoilでお会いしましょう。
それまで楽しむまで。
私。