機械学習編

基礎的な機械学習ロジックの理解を問います

Q学習の値更新 レベル1

強化学習のQ学習において、以下の情報が与えられています。\begin{array}{|l|c|} \hline \text{項目} & \text{値} \\ \hline \text{現在の状態} & s = (1, 1) \\ \hline \text{取った行動} & a = \text{「上に移動」} \\ \hline \text{得られた報酬} & r = -0.1 \\ \hline \text{遷移した次の状態} & s' = (1, 2) \\ \hline \text{学習率} & \alpha = 0.1 \\ \hline \text{割引率} & \gamma = 0.9 \\ \hline \text{現在のQ値} & Q(s, a) = 0.5 \\ \hline \text{次の状態s'で取りうる行動の中で最大のQ値} & \max_{a'} Q(s', a') = 1.0 \\ \hline \end{array}Q学習の更新式に基づいて、更新後の$Q((1, 1), 上)$の値を計算しなさい。

解説
解答と解説を表示
<h4>Q学習 (Q-Learning) とは?</h4> <p>Q学習は、強化学習における代表的な<strong>モデルフリー・価値ベース</strong>のアルゴリズムです。エージェントは環境と相互作用し、試行錯誤を通じて、各状態 \(s\) で各行動 \(a\) を取った際の<strong>将来にわたる累積報酬の期待値(行動価値)</strong>、すなわち<strong>Q値 Q(s, a)</strong> を学習します。これにより、エージェントはどの状態でどの行動を取るのが最適かを判断できるようになります。</p><h4>Q学習の更新式</h4> <p>エージェントが状態 \(s\) で行動 \(a\) を取り、報酬 \(r\) を得て状態 \(s'\) に遷移したとき、Q値は以下の式で更新されます(ベルマン方程式に基づきます)。</p> <div class="formula"> $ Q_{new}(s, a) \leftarrow Q_{old}(s, a) + \alpha [ \underbrace{(r + \gamma \max_{a'} Q_{old}(s', a'))}_{TDターゲット} - Q_{old}(s, a) ]$ </div> <p>この式の各要素:</p> <ul> <li><strong>\(Q_{old}(s, a)\)</strong>: 更新前のQ値(現在の価値の見積もり)。</li> <li>\(r\): 行動 \(a\) を取った直後に得られた即時報酬。</li> <li>\(\gamma\) (割引率): 将来の報酬を現在の価値にどれだけ割り引くか(0〜1)。将来をどれだけ重視するか。</li> <li>\(\max_{a'} Q_{old}(s', a')\): 遷移先の状態 \(s'\) において、取りうる全ての行動 \(a'\) の中で最大のQ値。次の状態で最も良い行動を取った場合の価値の見積もり。</li> <li>\(r + \gamma \max_{a'} Q_{old}(s', a')\): <strong>TDターゲット</strong>。行動の結果得られた情報(即時報酬+次の最善の価値の見積もり)に基づく、Q(s, a) のより良い推定値(目標値)。</li> <li>\(TDターゲット - Q_{old}(s, a)\): <strong>TD誤差</strong>。目標値と現在の見積もりの差。</li> <li>\(\alpha\) (学習率): TD誤差をどの程度Q値の更新に反映させるか(0〜1)。更新のステップ幅。</li> </ul> <p>Q学習は「現在の価値の見積もり」を、「実際の経験に基づく目標値」に、学習率に応じて少しずつ近づけていく学習プロセスです。</p><h4>計算ステップ</h4> <p>与えられた情報:</p> <ul> <li>現在のQ値 \(Q_{old}(s, a) = Q((1, 1), 上)\): 0.5</li> <li>学習率 \(\alpha\): 0.1</li> <li>報酬 \(r\): -0.1</li> <li>割引率 \(\gamma\): 0.9</li> <li>次の状態での最大Q値 \(\max_{a'} Q_{old}(s', a') = \max_{a'} Q((1, 2), a')\): 1.0</li> </ul> <p>1. <strong>TDターゲットの計算:</strong></p> <div class="formula"> $TDターゲット = r + \gamma \max_{a'} Q_{old}(s', a') = -0.1 + (0.9 \times 1.0) = -0.1 + 0.9 = 0.8$ </div> <p>2. <strong>TD誤差の計算:</strong></p> <div class="formula"> $TD誤差 = TDターゲット - Q_{old}(s, a) = 0.8 - 0.5 = 0.3$ </div> <p>3. <strong>Q値の更新:</strong></p> <div class="formula"> $Q_{new}((1, 1), 上) \leftarrow Q_{old}(s, a) + \alpha \times TD誤差 = 0.5 + (0.1 \times 0.3) = 0.5 + 0.03 = 0.53$ </div> <p>したがって、更新後のQ値は <strong>0.53</strong> です。</p><div class="key-point"> <div class="key-point-title">Q学習の重要ポイント</div> <ul> <li><strong>目的:</strong> 各状態・行動ペアの価値 (Q値) を学習し、最適な方策(どの状態でどの行動を取るべきか)を見つける。</li> <li><strong>モデルフリー:</strong> 環境の完全なモデル(状態遷移確率など)を知らなくても学習可能。</li> <li><strong>オフポリシー:</strong> 実際に経験を収集するための方策(例: 探索のためのランダム行動を含む方策)と、学習対象の最適方策(常にQ値が最大の行動を選ぶ方策)が異なっていても学習可能。更新式に \(\max_{a'}\) を使う点がこれを可能にしている。</li> <li><strong>応用:</strong> ゲームAI、ロボット制御、推薦システムなど多岐にわたる。深層学習と組み合わせたDeep Q-Network (DQN) は複雑なタスクで成功している。</li> </ul> </div>
問題 1/1
カテゴリ一覧に戻る