22 |
Pongと強化学習 (43) |
TD誤差について聞いてみます。
Deep Q-Network (DQN) の実装では、行動価値関数$Q(s, a)$を使用して学習を行います。DQNは、各状態$s$で取り得る各行動$a$に対する期待報酬を推定することに焦点を当てたアルゴリズムで、強化学習の問題を解決するためにニューラルネットワークを利用します。
TD誤差のDQNにおける役割
DQNにおいて、TD誤差は次のように行動価値関数$Q$の差として計算されます:
$$ TD_{t} = R_{t+1} + \gamma \max_{a'} Q(S_{t+1}, a') - Q(S_t, A_t) $$
ここで、
- $R_{t+1}$は時刻$t$での行動$A_t$に対する即時報酬です。
- $\gamma$は割引率で、将来の報酬を現在の価値にどの程度割り引くかを示します。
- $Q(S_{t+1}, a')$は次の状態$S_{t+1}$で取り得るすべての行動$a'$に対する$Q$値の最大値です。
- $Q(S_t, A_t)$は現在の状態$S_t$と行動$A_t$に対する$Q$値です。
このTD誤差は、$Q$関数の現在の推定値と、観測された報酬に基づいて更新された$Q$値の推定値との差を表しています。DQNでは、このTD誤差を最小化することで、行動価値関数の推定を改善し、最終的に最適なポリシーに収束させます。
DQNの学習プロセス
- 経験リプレイ: DQNでは、エージェントの経験(状態、行動、報酬、次の状態)をメモリに保存し、学習時にランダムなミニバッチを抽出して使用します。これにより、サンプルの相関を減らし、学習を安定させます。
- ターゲット$Q$ネットワーク: 学習の安定性をさらに向上させるために、DQNではターゲット$Q$ネットワークを導入します。これは、定期的に更新される主$Q$ネットワークのコピーで、TD誤差の計算に使用されます。
Pongゲームのような環境では、DQNを用いて、画面のピクセルデータから直接最適な行動(例:パドルを上に動かす、下に動かす、動かさない)を学習することが可能です。このプロセスを通じて、エージェントはゲームをプレイする上での効果的な戦略を獲得していきます。