0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Q学習

強化学習とは、報酬を最大化するように行動する方法をエージェントに学習させる手法である。これは犬に「お手」や「お座り」を教える過程とよく似ている。犬は正しい行動をしたときにエサ(報酬)を得ることで、その行動を強化する。同様に強化学習では、エージェントが環境と相互作用しながら、どの行動がより大きな報酬につながるかを学習する。

また、強化学習はゲームAIやロボット制御などさまざまな領域で利用されているほか、ChatGPTの学習過程(RLHF)にも用いられる実用性の高い手法である。

強化学習の基本サイクル

強化学習では、エージェント(学習主体)が環境から状態を観測し、行動を選択する。環境は行動に応じて報酬を返し、次の状態へと遷移する。このサイクルを繰り返し、最終的に「未来の報酬の合計(収益)」が最大となる行動方針、方策を学習する。

  1. 時刻Tの状態 S_T を観測する
  2. 行動 A_T を選択する
  3. 報酬 R_T を受け取り、次状態 S_{T+1} へ遷移する

この積み重ねによって、「どの行動が良いか」を学び続けることができる。

例:迷路でお菓子を探す猫

強化学習を直感的に理解するために、「迷路の中でお菓子を探す猫」を例にするとわかりやすい。
• 猫=エージェントが迷路を歩き
• 曲がる/進む=行動を選び
• お菓子を見つけたら報酬がもらえる(Reward)

猫は最初は迷うが、何度も試すうちに「この道を行くとお菓子が見つかりやすい」ということを学習し、最適なルート(方策)を獲得する。まさに強化学習の仕組みそのものである。

状態・行動・報酬

強化学習の問題は以下の3要素で表される。

● 状態(State)

その時点での環境の情報。
例:猫の位置。

● 行動(Action)

状態に基づいてエージェントが選択する動き。
例:上・下・左・右へ進む。

● 報酬(Reward)

行動に対する環境からの評価。
例:お菓子を見つければ+1、壁にぶつかれば0 など。

エージェントは報酬を最大化するように行動を学習していく。

方策(Policy)と価値関数(Value Function)

● 方策(Policy)

状態に応じてどの行動を選ぶかの戦略のこと。

● 価値関数(Value Function)

将来的に得られる報酬の期待値。
• 状態価値関数 V(s)
状態sにいるだけでどれほど良い未来が期待できるか
image.png
image.png

• 行動価値関数 Q(s, a)
状態sで行動aを選択したとき、どれほど良い未来が期待できるか
image.png
image.png

特にQ関数は、強化学習アルゴリズムの中心となる。

マルコフ決定過程(MDP)

強化学習はMDPとして定式化される。
• 状態集合 S
• 行動集合 A
• 遷移確率 P(s'|s,a)
• 報酬関数 R(s,a)
• 割引率 γ

マルコフ性(次状態は現在の状態と行動のみに依存)の仮定により、問題が数学的に扱いやすくなる。

Q-learning:代表的な強化学習アルゴリズム

Q-learningは、強化学習の中でも最も有名で、モデルフリー・オフポリシーであることが特徴である。環境の遷移確率や報酬分布を知らなくても学習できる。

モデルフリー
「実際に行動して得られた経験だけで学習する」手法。モデルを知らなくてもOK.

オフポリシー
行動を生成する方策(振る舞い方策)と、学習したい方策(ターゲット方策)が異なる学習

エージェントは、状態と行動の組み合わせに対する価値=関数Q(s,a)を更新しながら最適な方策を獲得する。

Q関数の定義

ある状態で行動aを選んだときに期待される累積報酬:

Q(s,a) = \text{期待される将来の報酬の合計}

これが高いほど「良い行動」と判断される。

Q-learningの更新式(ベルマン最適方程式に基づく)

image.png

それぞれの意味は以下の通りである。

  • α:学習率
    新しい情報をどの程度 Q 値に反映させるかを決めるパラメータ
  • γ:割引率
    将来の報酬をどれだけ重視するかを表す。値が 0 に近いほど目先の報酬重視、1 に近いほど長期的な報酬重視。
  • 𝑟𝑡:即時報酬
    時刻tに行動𝑎𝑡 を実行した後に得られる報酬。
  • image.png
    次の状態s𝑡+1において,行動𝑎′ の中で最も高いQ値。
    「次のステップで最善を尽くしたと仮定した場合の見込み値」。​

この式を使い、試行錯誤しながらQ値を更新していく。

α(学習率)と γ(割引率)の役割

  • 学習率 α
    大きい → 新しい情報を強く反映
    小さい → 過去のQ値を重視
    • 割引率 γ
    大きい(1に近い) → 将来の報酬を重視
    小さい → 今すぐの報酬を重視

行動選択:探索と活用(ε-greedy)

Q-learningでは、常に最適行動だけをすると学習が偏るため、たまにランダムな行動もとる(適度に冒険しながら賢く)。
• 最適行動を選ぶ → 活用(Exploitation)
• ランダム行動を選ぶ → 探索(Exploration)

多くの実装では、最初は探索多めにして:

  • 初期:ε = 1.0(ほぼランダム行動)
  • 学習が進むにつれて徐々に減らす
  • 最終的に:ε = 0.01 など(ほぼ最適行動)

こうすることで、初期に探索し、後半は安定して最適化する学習になる。

εの割合で探索し、1−εで活用する。これをε-greedy法という。

Q-learningの活用例

● ゲームAI
• 迷路ゲーム
• テトリス
• あるいはAtariゲームをクリアしたDQNの前段階となる。

● ロボット制御
• 障害物回避
• 自律移動
• 腕ロボットの軌道学習など。

● 需要予測・価格設定
• 在庫管理での補充判断
• ダイナミックプライシング
(「今この価格にしておけば将来得られる利益の期待値が高いか?」をQ学習で評価)

● 経路探索
• 交通シミュレーション
• ドローンの最適飛行ルート学習

試行錯誤して改善するという特徴が実世界の課題と相性が良く、適用範囲が非常に広い。

Q学習のメリット・デメリット

メリット

● シンプルで理解しやすい

アルゴリズムの構造が明快であり、初学者でも直感的に理解しやすい手法である。実装も容易である。

● 汎用性が高い

探索方法に依存せず、環境が離散的であればどのようなタスクにも適用可能である。

● オフポリシー学習が可能

エージェントは探索時に必ずしも最適行動をとる必要がなく、別の方策で行動しても、理論的には最適な行動価値関数を学習できるという強みがある。

デメリット

● 状態空間が広い場合に学習が困難

状態空間の次元が大きくなるほど、Qテーブルが巨大化し、更新や探索に膨大な時間がかかる。高次元環境ではほぼ利用不可能となる。

● 過学習のリスク

経験が偏ると、一部の状態だけに過度に最適化された行動価値を学習してしまい、汎用性が低下する場合がある。

● 連続的な状態や行動を扱えない

基本的なQ学習は離散値を前提とするため、ロボットアームの角度や速度のような連続量のタスクには不向きである。関数近似なしでは現実的な利用が困難である。

この課題を解決するために、生まれたのが深層強化学習であり、その代表的手法がDQNである。

DQNの登場:深層学習でQ値を近似する

DQNは「Qテーブルをつくる」という発想を捨て、ニューラルネットワークを使ってQ関数そのものを近似する 手法である。これにより、従来のQ学習では扱えなかった連続値・高次元環境が学習可能になった。

DQNが導入した三つの安定化技術

Q-network(メインネットワーク)

状態stを入力とし、行動aごとのQ(sₜ,a)を出力するネットワークである。

Experience Replay(経験再生)

過去の経験をメモリに蓄積し、ランダムにサンプリングして学習する。
時系列データの相関を断ち切り、学習を安定化させる。

Target Network(ターゲットネットワーク)

学習の急激な発散を抑えるために、誤差計算専用のネットワークを用意する。一定ステップごとにメインネットワークの重みをコピーし、ゆっくり変化する“教師”として振る舞う。

DQNの学習手順

DQNは以下の流れで学習を行う。
1. Q-network に状態を入力して Q(sₜ,aₜ) を出力
2. ε-greedy 法で行動を選択
3. 得られた経験をメモリへ保存
4. メモリからミニバッチをランダム抽出(Experience Replay)
5. Target Network を用いてTD誤差を計算
6. 誤差に基づき Q-network を更新
7. 一定ステップごとに Target Network を同期

この繰り返しにより、ニューラルネットワークは「状態 → 最適行動」のマッピングを獲得していく。

例えで理解するDQN:迷路でお菓子を探す猫

Q学習とDQNの違いを直感的に理解するために「迷路でお菓子を探す猫」の例が使える。

● Q学習の猫

猫は迷路を歩きながら、「この場所で上に進んだらどうだった」「右に進んだらどうだった」をノート(Qテーブル)に書き込んでいく。

しかし迷路が複雑になると、
• ノートが膨大になる
• ちょっと環境が変わるだけでノートを書き直し
• 学習が遅すぎる
という問題が起きる。

● DQNの猫

猫はノートの代わりに 脳内のニューラルネットワーク を使って迷路全体の特徴を学習する。

さらに、
• 経験を蓄えて後から復習(Experience Replay)
• 賢い先生役(Target Network)がゆっくり正解を教える

といった仕組みにより、複雑な迷路でも早く安定して学習できる。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?