リカレント ニューラル ネットワークを強化学習で使用する場合、どのような用途がありますか?

StackOverflow https://stackoverflow.com/questions/1783389

質問

バックプロップを備えたフィードフォワード多層ニューラル ネットワークが強化学習で使用され、エージェントが実行するアクションを一般化するのに役立つことは知っています。つまり、大きな状態空間がある場合、いくつかのアクションを実行でき、それらは状態空間全体を一般化するのに役立ちます。

では、リカレント ニューラル ネットワークは何をするのでしょうか?一般に、それらはどのようなタスクに使用されますか?

役に立ちましたか?

解決

リカレント ニューラル ネットワーク、略して RNN (ただし、 RNN 文献ではしばしば指定するために使用されます ランダムニューラルネットワーク, 、事実上リカレント NN の特殊なケースです)には、さまざまな動作や特性を示す非常に異なる「フレーバー」があります。しかし、一般的に、これらのさまざまな行動や特徴は、 個々のニューロンへの[フィードバック]入力の利用可能性に根ざしています. 。このようなフィードバックは、ローカルか遠隔かに関係なく、ネットワークの他の部分から、同じ層 (場合によっては「自分自身」を含む)、さらには異なる層 (*) からもたらされます。「正常」として扱われたフィードバック情報はニューロンに入力され、少なくとも部分的にその出力に影響を与える可能性があります。

とは異なり 誤差逆伝播法 使用されているもの 学習段階で さまざまな [フィードフォワード専用] 接続の相対的な重みを微調整する目的でフィードフォワード ネットワークを構築する場合、RNN のフィードバックは、接続先のニューロンへの真の入力を構成します。

フィードバックの用途の 1 つは、 入力におけるノイズやその他の不完全性に対するネットワークの耐性を高めるため (すなわち、 入力 ネットワーク全体に)。その理由は、ネットワーク入力 (フィードフォワード ネットワークに存在する入力の種類) に「直接」関係する入力に加えて、ニューロンは他のニューロンが「考えている」ことに関する情報を持っているためです。この追加情報により、 ヘブ語の学習, 、つまり[通常]一緒に発火するニューロンは、お互いの発火を「励ます」必要があるという考え。実際には、「同様に発火する」隣接ニューロン (またはそうでない隣接ニューロン) からのこの追加入力は、たとえその非フィードバック入力が発火しないようなものであったとしても (またはそれほど強く発火しない場合でも)、ニューロンの発火を促す可能性があります。ネットワークの種類によって異なります)。

入力の不完全性に対するこの回復力の例としては、 連想記憶, 、RNN の一般的な採用。アイデアは、フィードバック情報を使用して「空白を埋める」ことです。

フィードバックのもう 1 つの関連する、しかし明確な使用法は次のとおりです。 抑制シグナル, これにより、特定のニューロンは、他のすべての入力がニューロンの起動を促す一方、ネットワークの他の部分からの特定のフィードバック入力は、通常、他の入力が何らかの理由で (この特定のコンテキストでは) 信頼できないことを示していることを学習する可能性があります。

フィードバックのもう 1 つの非常に重要な用途は、一部のアーキテクチャでは次のことができることです。 システムに一時的な要素を導入する. 。特定の [フィードバック] 入力は、[今] 何を「考えているか」をニューロンに指示するのではなく、その代わりに、2 サイクル前 (どのようなサイクルが表しているとしても) のネットワークの状態 (または次のうちの 1 つ) をニューロンに「思い出させる」かもしれません。サブステートです) は「X」でした。[通常は] 最近の過去を「思い出す」このような能力は、入力内のノイズに対する回復力のもう 1 つの要素ですが、その主な関心は、学習プロセスに「予測」を導入することにあるかもしれません。これらの時間遅延入力は、ネットワークの他の部分からの予測として見られる場合があります。「廊下で足音が聞こえました。ドアのベル(または鍵をシャッフルする音)が聞こえると思います。」

(*) ところで、フィードバックかフィードフォワードかに関係なく、許可される接続を決定する「ルール」にこのような広範な自由があることは、次のことを説明します。 なぜこれほど多くの異なる RNN アーキテクチャがあるのか およびそのバリエーション)。これらの多くの異なるアーキテクチャが存在するもう 1 つの理由は、RNN の特性の 1 つが、フィードフォワード モデルと比較して、数学的またはその他の点で容易に扱いにくいことです。その結果、数学的な洞察や単純な試行錯誤のアプローチに基づいて、さまざまな可能性が試されています。

これは、フィードバック ネットワークが完全なブラック ボックスであるということではありません。実際、RNN の一部は、 ホップフィールドネットワークス むしろよく理解されています。ただ、一般に数学はもっと複雑です (少なくとも私にとっては ;-))

上記は一般的に(あまりにも一般的です!)、次のことを解決するものだと思います。 貪り食われたエリジウムの (OP) の質問RNN は代わりに何をしますか"、 そしてその "使用される一般的なタスク」。この情報を補足するために、RNN のアプリケーションに関する不完全かつ非公式の調査を次に示します。このようなリストを収集する際には、次のような複数の困難があります。

  • フィードフォワード ネットワークと RNN の間のアプリケーションの重複 (結果として、これにより RNN の特異性が隠蔽されます)
  • 多くの場合、アプリケーションの高度に専門化された性質 (私たちは「分類」などのあまりにも大雑把な概念に留まるか、「一連の飽和ベンゼンにおける炭素シフトの予測」に飛び込むかのどちらかです ;-) )
  • 低俗化された文章で説明される場合、ニューラル ネットワークに関連付けられることが多い誇大広告

とにかく、これがリストです

  • モデリング、特に [多くの非線形] 動的システムの学習
  • 分類(今はFF Netもこれに使われています…)
  • 組み合わせ最適化

また、RNN の時間的次元に関連するアプリケーションも数多くあります (これは、FF ネットワークが通常見つからない領域です)。

  • 動き検出
  • 負荷予測 (公共事業やサービスと同様:短期的な負荷の予測)
  • 信号処理 :フィルタリングと制御

他のヒント

あなたの状態/アクション/報酬シーケンスはマルコフ決定過程であることを基本的な強化学習の枠組みでの仮定があります。それは基本的にあなたが意思決定を行うために、このエピソードから以前の状態に関する情報を覚えておく必要がないことを意味します。

しかし、これはすべての問題を明らかに真実ではありません。時には、情報に基づいた意思決定を行うためにいくつかの最近の事を覚えておく必要があります。時には、あなたは明示的に状態信号に覚えておく必要があるものを構築することができますが、一般的に、我々はそれを覚えておく必要があるものを学ぶために私たちのシステムをしたいと思います。これは、部分観測マルコフ決定過程(POMDP)と呼ばれ、それに対処するために使用される種々の方法があります。一つは、おそらく解決策は、彼らが現在の意思決定に、前の時間ステップから詳細を組み込むために、リカレントニューラルネットワークを使用することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top