Unity_Lesson

SAC (Soft Actor-Critic) は、強化学習アルゴリズムであり、マルコフ決定過程 (MDP) の性質を満たすアルゴリズムです。
MDPの「マルコフ性」とは、「将来の状態が現在の状態とアクションによってのみ決定され、過去の状態やアクションには依存しない」という性質です。
これは、エージェントが意思決定をする際、現在の観測や状態に基づいて行動を選択することで、過去の情報を直接参照しないということです。

SACもMDPを前提にして設計されているため、理論的には過去の行動や状態に直接依存しない形で設計されています。しかし、SACはオフポリシー学習であるため、経験リプレイバッファを用いて過去のデータを利用しながら学習を行います。このリプレイバッファ内には、エージェントが以前に行った行動や得られた報酬が含まれており、過去のデータを間接的に活用することで、ポリシーをより効果的に更新することが可能です。

マルコフ性とSACの関係

したがって、SACはリプレイバッファを使用して過去のデータを活用しつつも、現在の状態と行動に基づいて未来を予測し、MDPの枠組み内で学習するアルゴリズムです。

SAC (Soft Actor-Critic) の学習アルゴリズムでは、ポリシーと価値関数を更新する際に 現在の状態に基づいた情報 を利用する一方、過去の経験データ(つまり、以前に収集した状態、行動、報酬、次の状態)もリプレイバッファに保存し、これを再サンプリングして学習に役立てます。以下のようなプロセスで学習が行われます:

  1. 現在の情報に基づく更新: SACのポリシーや価値関数は、学習の瞬間では「現在の状態情報」を利用して更新を行います。これは、理論的にはマルコフ性を維持するために、未来の状態予測や意思決定を行う際に、過去の状態を直接参照しない設計となっているためです。

  2. 過去データの利用: 一方で、SACでは 経験リプレイバッファ を用いて過去の経験からも学習します。これにより、エージェントが行動してきた過去のデータがポリシーや価値関数の更新に反映され、サンプル効率が向上します。このリプレイバッファには、エージェントが以前に取った行動や得られた報酬などが蓄積されており、学習時にはランダムにサンプリングして、アルゴリズムが更新される際に参照されます。

リプレイバッファの仕組みを通じて、SACは間接的に過去の情報を活用し、ポリシーやQ関数の更新に反映しますが、現在の状態・行動から次の状態を予測する設計でマルコフ性を保っています。このため、「アルゴリズム的には現在の情報で学習するが、データ的には過去の情報も使用している」という構造になっています。


LSTM (Long Short-Term Memory) ネットワークは、アルゴリズム的に過去の経験や情報を内部に保持し、次の予測や判断に活かす構造になっています。

通常のニューラルネットワークは「現在の入力」のみに基づいて計算を行いますが、LSTMは「内部メモリ」と呼ばれる仕組みにより、過去の情報を持続的に保持し、その情報を利用して次のステップでの出力を調整します。LSTMは、入力ゲート、出力ゲート、忘却ゲートの3つのゲート構造により、過去の情報をどの程度保持・利用するかを調整できるようになっています。これにより、長期依存関係(以前の情報が重要である場合)も考慮した出力が可能です。

具体的には以下のように動作します:

  1. 保持と忘却の調整:LSTMは「忘却ゲート」によって、古くて無関係な情報を忘れる一方で、「入力ゲート」により新しい情報を加えます。この制御によって、過去の重要な情報が保持され続けます。

  2. 次の出力への影響:過去の情報を保持しているため、LSTMは系列データ(例:テキスト、時系列データ)に対して、文脈に応じた適切な予測を行えます。このため、強化学習におけるLSTMの活用は、単に現在の状態だけでなく、過去の一連の経験を元にポリシーを学習することが可能です。

そのため、LSTMは特に、時間的な依存性を持つタスクや部分観測マルコフ決定過程(POMDP)のように「過去の経験」から判断することが重要な環境に適しています。