Q学習Q-Learning
行動ごとに期待点数を書き留めて直す方法
- Q学習は、状況ごと、行動ごとに期待点数を書き留めた表を作り、その数字を直していく方法です。
- 一つのマスの数字は「この状況でこの行動を選ぶと、この先受け取る点数がだいたいいくつか」という意味です。
- 更新するときは、受け取った点数に次の状況でいちばん良いマスの数字を足し合わせ、元の値と少しずつ混ぜます。
- 表が埋まれば方策は自然に決まります。今の状況の行にあるいちばん大きいマスを選べばいいのです。
- 状況と行動の組み合わせが増えると表では手に負えなくなります。その表をニューラルネットワークに代わりに覚えさせたのがDQN(Deep Q-Network, ディープQネットワーク)です。
目次
1たとえで理解する
映画館の事務室の壁に、上映表が一枚貼ってあります。縦に時間帯、横にかけられる映画の種類が並び、マスごとに数字が一つ、鉛筆で書き込まれています。夜七時の行のアクション枠には8、家族向け枠には5、昼二時の行では順位が入れ替わっています。**この数字は、その時間にその映画をかけたらどれだけ客が入るかという見込みです。**昨日の実際の観客数が分かると、そのマスの数字を消して少し上げたり下げたりしてまた書き込みます。数か月経つと表はかなり当てになり、編成は簡単になります。その時間帯の行でいちばん大きい数字を選べばいいからです。
2くわしく
マス一つに込められた意味
表の一つのマスは、状況一つと行動一つが出会う場所です。そこに書かれた数字は今すぐ受け取る点数ではなく、この行動を選んでから最後まで進んだときに受け取る点数の合計についての見込みです。だから今は損でもあとで得になる行動のマスは数字が高くなります。
最初はすべてのマスが0か、適当な数字で埋まっています。表がでたらめな状態から始めても構いません。やってみて受け取った点数で少しずつ直していけば、数字は次第に落ち着いていきます。表が定まれば方針は別に学ぶ必要がありません。今の行でいちばん大きいマスを選ぶこと自体が方策になります。
数字を直す方法
一回行動するたびに四つの情報が手に入ります。どんな状況だったか、何を選んだか、点数をいくら受け取ったか、そしてどんな状況に移ったかです。この四つで、たった今選んだマスの数字を直します。
まず新しい見込みを作ります。たった今受け取った点数に、移った先の状況の行にあるいちばん大きいマスの数字を少し割り引いて足した値です。それから元々書かれていた数字とこの新しい見込みを混ぜます。丸ごと書き換えず一歩ずつ少しだけ動かすのは、一回の結果に運が混ざっているからです。どれだけ動かすかを決める値を学習率と呼びます。
なぜ次の行の最大値を引っ張ってくるのでしょう
最後にだけ点数が出る問題を思い浮かべてください。最初は最後のマス一つだけ数字が上がります。ところがその手前のマスを直そうとすると、移った先の状況はまさにその最後のマスがある行です。その行の最大値が引っ張られて、手前のマスの数字も上がります。こうして良い知らせが最後から一マスずつさかのぼって広がっていきます。
ここに大事な性質が一つあります。引っ張ってくるのは次の行の最大値であって、実際に次に何を選んだかではありません。だから学習の途中でめちゃくちゃな行動をたくさん試しても、表は変わらずいちばん良い方策の方へ育ちます。思う存分迷いながらも最善を学べる理由です。
表を埋めるにはやってみるしかありません
一度も選んだことのないマスの数字は、最初の値のまま残ります。いつもいちばん大きいマスばかり選んでいると、最初にたまたま高かったマスばかり選び続けることになり、その隣のもっと良いマスは永遠に確かめられません。だから学習中はわざとときどき、どのマスでも選んでみます。
最初はでたらめに選ぶ割合を高くしておき、表が定まるにつれて減らしていくやり方がよく使われます。迷う区間を十分に通らなければ表は均等に埋まらず、最後に選んだ大きい数字を信じることもできません。
表が手に負えないほど大きくなるとき
Q学習の限界は表の大きさです。マスの数は状況の数に行動の数をかけただけ増えていきます。二十マスの格子で四方向を選ぶ問題なら八十マスで足りますが、画面の絵そのものを状況とすると、マスの数は数えきれないほど多くなります。
さらに表はマスごとに別々です。隣のマスがどれだけ似た状況でも、学んだことが移りません。この二つのせいで状況が少し複雑になっただけで表方式は崩れます。そこでマスを一つずつ書き留める代わりに、状況を入れると各行動の数字を見込んでくれるニューラルネットワークを置くようになりました。それがDQNです。
3もう少し正確に
Q学習(Q-Learning)は、状態と行動の組についての行動価値を学習する方法です。更新式は、今の値に、受け取った報酬と次の状態の最大行動価値を割り引いて足した目標値との差を、学習率の分だけ反映する形です。目標値を作るとき実際に選んだ行動ではなく最大値を使うため、オフポリシーの方法に分類されます。すべての組を十分な頻度で経験し学習率を適切に減らしていけば、最適な行動価値に収束することが証明されています。
たとえがずれる点もあります。上映表は人が見やすいように作った表ですが、Q表のマスの数は人の目で追える規模をすぐ超えてしまいます。また上映表の数字はその時間帯の成績だけを含みますが、Q値にはそのあとに続くすべての結果が割り引かれて一緒に入っています。そして映画館は過去の成績をそのまま書けばよいのに対し、Q学習はまだ確定していない自分自身の見込みをもとに自分を直します。だから初めのうちの数字はしばらくかなりずれています。
4やってみる
5よくある誤解
Q値がすぐ受け取る点数を意味すると思われがちですが、実際にはその行動のあとに続く点数まで割り引いて足した合計の見込みです。
表が完成しないと使えないと考えられがちですが、実際には埋めている途中でもずっとその表を見ながら行動し、同時に直し続けます。
Q学習とDQNは別の方法だと思われがちですが、実際には同じ更新の仕組みを使いながら、値を書き留める場所を表からニューラルネットワークに変えたのがDQNです。
7ひとこと要約
つまりQ学習は状況ごと行動ごとに期待点数を書き留め、やってみた結果でその数字を少しずつ直していく方法です。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02