DQNDeep Q-Network
Q値の表をニューラルネットワークに覚えさせる方法
- DQN(Deep Q-Network, ディープQネットワーク)は、行動ごとの期待点数を表の代わりにニューラルネットワークに覚えさせた方法です。
- 状況を入れると各行動の値が一度に出てきます。一度も経験したことのない状況でも、似た状況をもとに値を見込んでくれます。
- 経験した出来事を倉庫に貯めておき、無作為に取り出して混ぜてから学習し直します。連続して見た場面ばかりに偏るのを防ぐ仕組みです。
- 目標にする値はしばらく固定しておいた写しから持ってきます。基準が一手ごとに揺れると学習が乱れるからです。
- 画面の絵をそのまま受け取ってゲームを覚えることがこの方法で初めて広く成功し、以後の強化学習の基本の骨組みになりました。
目次
1たとえで理解する
三万席のコンサートホールで、席一つひとつに値段をつけるとします。席ごとに数字を書いた紙を貼るなら紙が三万枚要りますし、新しいホールが建つたびに最初から貼り直さなければなりません。だから実際にはそうしません。**階、舞台までの距離、視界のさえぎられ具合といった、数個の項目を入れると値段が出る基準を作っておきます。**表は消え、基準だけが残ります。こうすると、まだ値段をつけたことのない席もすぐ値段が出て、隣の席同士は近い値段になります。売れた結果を見ながら基準を少しずつ直せば、席全体の値段が一度に良くなります。DQNがしているのは、この基準づくりです。
2くわしく
マスを書く代わりに値を出す機械
表方式は状況一つと行動一つが出会う場所ごとに数字を別々に書きます。状況が画面の絵のように複雑になるとマスの数は手に負えないほど増え、ほとんどのマスは一度も埋まらないまま残ります。
DQNはこの表をニューラルネットワークに置き換えます。今の状況を入れると、選べる行動ごとの値が一列で出てきます。行動が四種類なら数字が四つ一度に出て、そのうちいちばん大きい方を選べばそれが行動になります。値を直すときもマス一つを消して書き直す代わりに、ニューラルネットワークの中の値を少しずつ押して、その状況での出力が目標に近づくようにします。
似た状況どうしで学んだことが移ります
表方式のいちばんの損は、マスどうしが他人同士だったことです。隣のマスがどれだけ似た状況でも、学んだことは移りませんでした。ニューラルネットワークは逆です。似た形の状況は似た値を出します。ある場所で学んだことがその近くの場所全体に広がります。
おかげで一度も経験したことのない状況でも、それらしい値が出ます。初めて見る画面の前でもある程度筋の通った行動を選べる理由です。もちろん見込みなので外れることもあります。経験したことのない見慣れない状況ほど、値が的外れに出ることがあります。
経験した出来事を貯めておいて混ぜてから
一回のプレイで経験する場面は前後がぴったりくっついています。今見た画面と次の画面はほとんど同じです。こうした場面ばかり順番通り学習に入れると、ニューラルネットワークが直近の数秒だけに合わせてしまい、前に学んだことを忘れてしまいます。
そこで経験した出来事を一つずつ倉庫に入れておきます。どんな状況で、何を選んで、点数をいくら受け取って、どこに移ったかを一つの束にしてです。学習するときは倉庫から無作為に一握りを取り出して使います。時点の違う場面が混ざるので偏りが減り、一度経験した出来事を何度も取り出して使うので節約にもなります。
基準をしばらく固定しておく理由
値を直すとき目標にする数字は、次の状況でいちばん大きい値です。ところがその値も同じニューラルネットワークが出す数字です。直す対象と目標が同じ体の中にあると、片方を押すたびにもう片方も一緒に動いてしまいます。物差しを押しながらその物差しで長さを測るようなもので、値がとめどなく暴れます。
そこで写しを一つ作っておき、目標値はその写しからだけ持ってきます。写しはしばらくそのままにしておき、ときどき最新の状態に取り替えます。**基準がしばらく止まっている間に学習が安定します。**倉庫から混ぜて取り出すことと、この写しを置くことが、DQNを実際に使えるものにした二つの仕掛けです。
何が変わったのでしょう
骨組みはQ学習のままです。受け取った点数に次の状況のいちばん大きい値を割り引いて足したものを目標にし、今の値をそちらへ少し動かします。変わったのは値をどこに入れるかです。表からニューラルネットワークに移すことで、状況の数という限界が外れました。
代わりに新しい問題も生まれました。ニューラルネットワークが出す値は見込みなので実際より大きく出やすく、学習がずれると戻らなくなることもあります。値を選ぶ側と測る側を分けたり、状況そのものの値と行動ごとの差を別々に学ばせたり、倉庫から取り出すとき学ぶことの多い場面をより多く取り出したりする補いが、そのあと考え出されました。
3もう少し正確に
DQNは行動価値関数をニューラルネットワークで近似し、経験再生バッファとターゲットネットワークを合わせて使うことで学習を安定させた方法です。損失は目標値と今の出力の差として捉え、勾配降下法で減らします。ここでの目標値は、受け取った報酬にターゲットネットワークが出した次の状態の最大値を割り引いて足した値です。画面のピクセルを入力として受け取るときは前段に畳み込み層を置き、動きを知るために直近の数場面を重ねて入れます。行動が数えられる種類でなければ使えないので、ハンドルの角度のようにつながった値には別系統の方法を使います。
たとえがずれる点もあります。座席の値段基準は人が項目を選んで作りますが、DQNは何を見るかさえ自分で決めます。どの画素の模様が大事かを教えなくても、学習の過程で見つけ出します。また座席の値段は売れた結果という確かな答えがありますが、DQNが合わせようとする目標は自分の写しが出したもう一つの見込みです。見込みを見て見込みを直す構造なので、うまくいかないと値全体が一緒にずれることもあります。
4やってみる
5よくある誤解
DQNはQ学習に代わる新しい理論だと思われがちですが、実際には同じ更新の仕組みを使いながら、値を入れる場所だけを表からニューラルネットワークに変えたものです。
ニューラルネットワークを使えば表方式より常に優れていると考えられがちですが、実際には状況が数十種類しかない問題では表の方が速くて安定しています。
DQNはどんな行動にも使えると信じられがちですが、実際には選べる行動が数えられる種類のときにしか使えません。
7ひとこと要約
つまりDQNは行動ごとの期待点数を書き留めていた表をニューラルネットワークに変え、経験したことのない状況でも値を見込めるようにした方法です。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02