Q学習のソースを表示
←
Q学習
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Machine learning bar}} '''Q学習'''(Qがくしゅう、{{lang-en-short|Q-learning}})は、[[機械学習]]分野における[[強化学習]]の一種である。 == 概要 == Q学習は強化学習の方策オフ型時間差分法の一つである。概念自体は古くから存在するが、Q学習({{lang|en|Q-learning}})という名前で今日の手法がまとめられたのは、1989年のクリストファー・ワトキンズ({{lang|en|Christopher J.C.H. Watkins}})の博士論文に端を発する。<ref>{{Cite web |title=PhD Thesis: Learning from Delayed Rewards |author=Christopher J. C. H. Watkins |work=cs.rhul.ac.uk |date= |access-date=30 November 2023 |url= https://www.cs.rhul.ac.uk/~chrisw/thesis.html}}</ref> [[時間差分学習|TD学習]]は <math>R_{t+1} + \gamma V(S_{t+1})</math> になるように学習させるが、Q学習はこれを <math>R_{t+1} + \gamma \max_{a} Q(S_{t+1}, a)</math> に置き換えたものである。状態価値関数 <math>V(s)</math> の代わりに、行動価値関数 <math>Q(s, a)</math> を使用する。 Q学習は[[マルコフ決定過程|有限マルコフ決定過程]]において全ての状態が十分にサンプリングできるようなエピソードを無限回試行した場合、最適な評価値に収束することが理論的に証明されている。実際の問題に対してこの条件を満たすことは困難ではあるが、この証明はQ学習の有効性を示す要素の一つとして挙げられる。 == Q学習の内容 == === Q値 === Q学習では実行するルールに対しそのルールの有効性を示す行動価値のQ値(Q-value)という値を持たせ、[[エージェント]]が行動するたびにその値を更新する。ここでいうルールとはある[[状態]]とその状態下においてエージェントが可能な行動を対にしたものである。例えばエージェントの現在の状態を<math>S_t</math>とし、この状態で可能な行動が<math>A</math>, <math>B</math>, <math>C</math>, <math>D</math>の4通りあるとする。このとき、エージェントは4つのQ値、 <math>Q(S_t, A)</math>、<math>Q(S_t, B)</math>、<math>Q(S_t, C)</math>、<math>Q(S_t, D)</math> を元に行う行動を決定する。 行動価値関数Qは、ある状態である行動を行った際、現在および将来に得られる報酬になるように学習させる。ただし、将来分の報酬は、[[経済学]]でも使われる[[割引率]]をかけた物を使用する。経済学と同じく、割引率をかけることで将来分の報酬が発散することを防ぎ、直近に得られる報酬に重きを置いている。 === 行動選択 === 行動の決定方法は理論上では無限回数試行するなら[[ランダム]]でも行動価値関数Qの収束は証明されているが、現実には収束を早めるため、なるべくQ値の大きな行動が高確率で選ばれるように行う。選択方法としては、ある小さな確率<math>\varepsilon</math>でランダムに選択し、それ以外ではQ値の最大の行動を選択する<math>\varepsilon</math>-グリーディ手法や、[[遺伝的アルゴリズム]]で使用されているルーレット選択、以下のような[[ボルツマン分布]]を利用した[[ソフトマックス関数|ソフトマックス]]手法などが使用されている。 :<math>\pi(S_t,a) = \frac{\exp(Q(S_t,a)/T)}{\sum_{a' \in \mathcal{A}}\exp(Q(S_t,a')/T)}</math> ここで <math>T</math> は正の定数、<math>\mathcal{A}</math> は状態 <math>S_t</math> でエージェントが可能な行動の[[集合]]である。 === 行動価値関数の更新 === 行動を決定した場合、次にその状態と行動の行動価値関数Qを更新する。状態 <math>S_t</math> のエージェントが行動 <math>A_t</math> を選び、報酬 <math>R_{t+1}</math> を得て、状態が <math>S_{t+1}</math> に遷移したとする。このとき行動価値関数 <math>Q(S_t, A_t)</math> を次の式で更新する。<ref>{{Cite book | author = Richard S. Sutton | author2 = Andrew G. Barto | year = 2018 | title = Reinforcement Learning, second edition: An Introduction | publisher = Bradford Books | isbn = 978-0262039246 | url = http://incompleteideas.net/book/the-book-2nd.html }}</ref> :<math>Q(S_t, A_t) \leftarrow (1 - \alpha) Q(S_t, A_t) + \alpha\left[R_{t+1} + \gamma \max_a Q(S_{t+1}, a)\right]</math> ここで <math>\alpha</math> は学習率といい、<math>0 < \alpha < 1</math> とし、後述のように時間と共に減衰させても良い。<math>\gamma</math> は[[割引率]]といい、<math>0 < \gamma < 1</math> な定数である。上記の更新式は現在の状態から次の状態に移ったとき、そのQ値を(報酬+割引率×次の状態で最も高いQ値)に近づけることを意味している。このことにより、ある状態で高い報酬を得た場合はその状態に到達することが可能な状態にもその報酬が更新ごとに伝播することになる。これにより、最適な状態遷移の学習が行われる。 === 学習率 === Q学習は報酬が有界で、学習率 <math>\alpha_t</math> が以下の条件を満たすとき(つまりこの条件で時間と共に減衰させたとき)、全てのQ値は確率1で最適な値に収束することを1992年にChristopher J. C. H. Watkins等が証明した。(この条件を満たさないと収束しないという意味では無く、定数でも収束するときは収束する)<ref>{{Cite journal | last1 = Watkins | first1 = Christopher J. C. H. | last2 = Dayan | first2 = Peter | date = 1992-05-01 | title = Q-learning | journal = Machine Learning | volume = 8 | issue = 3 | pages = 279–292 | doi = 10.1007/BF00992698 }}</ref> :<math>0 \le \alpha_t < 1</math> :<math>\sum^{\infty}_{t=0}\alpha_t \to \infty </math> :<math>\sum^{\infty}_{t=0}\alpha_t^2 < \infty </math> この収束性の良さのためQ学習に関する多くの研究がなされているが、いくつかの問題点も指摘されている。例えばQ学習による理論的保証は値の収束性のみであり、収束途中の値には具体的な合理性が認められないため、(価値反復法の)Q学習は方策勾配法と比べると学習途中の結果を近似解として用いにくい。また、パラメータの変化に敏感でありその調整に多くの手間が必要である、などがある。 == 参考文献 == * Watkins, Christopher J.C.H. (1989). Learning from Delayed Rewards. PhD thesis, Cambridge University, Cambridge, England. [http://www.cs.rhul.ac.uk/~chrisw/thesis.html PDFダウンロード] * 松本啓之亮、黄瀬浩一、森 直樹、『知能システム工学入門』、[[コロナ社 (出版社)|コロナ社]]、2002年、ISBN 4-339-02392-2 * 大内 東、山本雅人、川村秀憲『マルチエージェントシステムの基礎と応用』、コロナ社、2002年、ISBN 4-339-02388-4 == 参照 == {{reflist}} == 関連項目 == * [[強化学習]] * [[時間差分学習]](TD学習) * [[SARSA法]] * [[DQN (コンピュータ)|Deep Q-Network]] {{デフォルトソート:Qかくしゆう}} [[Category:機械学習アルゴリズム]] [[Category:強化学習]]
このページで使用されているテンプレート:
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Cite journal
(
ソースを閲覧
)
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Lang
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Machine learning bar
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
Q学習
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報