深層強化学習(価値ベース):DQN とその改良
強化学習にディープラーニングを組み合わせた深層強化学習を学びます。基礎層では、価値を予測するはたらきをニューラルネットワークに担わせる、という考え方をつかみます。深掘り層では、DQN を安定させた経験再生と目標ネットワーク、そしてダブル DQN・デュエリングネットワーク・ノイジーネットワーク・Rainbow・APE-X・Agent57 という改良の系譜と、連続値制御の課題までを説明できるようになります。
ねらい
このレッスンでは、強化学習(きょうかがくしゅう)にディープラーニングを組み合わせた、深層強化学習(しんそうきょうかがくしゅう)を学びます。
強化学習そのものの基礎、つまりエージェント・環境・報酬・行動価値関数といった枠組みは、機械学習の章ですでに学びました。ここでは、その枠組みにディープラーニングが入ると何が変わるのかに集中します。
基礎
「行動のよしあしを予測するはたらきをニューラルネットワークに担わせる」という全体像をつかみます。
1. 強化学習に、ディープラーニングを組み合わせる
テレビゲームを人が教えなくても自力で上達していくプログラムがあります。最初はでたらめに操作していたのに、何万回と遊ぶうちに高い得点を取れるようになります。囲碁や将棋で人間の名人を破ったプログラムも、同じ考え方の仲間です。こうしたプログラムは、正解の手をあらかじめ教わってはいません。試しに動いてみて、得点という報酬を手がかりに、よい動き方を自分で見つけていきます。この学び方が強化学習で、そこにディープラーニングを組み合わせたものを深層強化学習(しんそうきょうかがくしゅう)と呼びます。
強化学習では、エージェントがある状況で行動を選び、その結果として報酬を受け取ります。よい報酬につながる行動を多く選べるように、エージェントは学んでいきます。
このとき手がかりになるのが、「その状況でその行動を選ぶと、この先どれくらいの報酬が見込めるか」という予測です。この見込みの値を行動価値と呼びます。行動価値を正しく予測できれば、価値の高い行動を選ぶだけで、うまくふるまえます。
問題は、状況の種類がとても多いときです。テレビゲームの画面は、少し変わるだけで別の状況になります。ありうる状況をすべて表に書き出して価値を覚えるやり方は、状況が増えると破たんします。
そこで、画面のような複雑な入力から行動価値を予測する部分をニューラルネットワークに担わせます。これが深層強化学習の考え方です。ニューラルネットワークは、似た状況をまとめて捉える力を持つため、見たことのない状況にもおおよその価値を見積もれます。
ポイント
深層強化学習は、行動のよしあしを表す価値の予測をニューラルネットワークに任せる方法です。状況が多すぎて表に書ききれない問題を乗り越えます。
2. 価値を手がかりに動く:価値ベースの考え方
深層強化学習には、大きく2つの流派があります。ひとつは、行動価値を予測し、その価値がいちばん高い行動を選ぶやり方です。これを価値ベースと呼びます。
もうひとつは、行動そのものを直接に選ぶやり方で、方策ベースと呼びます。方策ベースは、次のレッスンで学びます。
このレッスンで扱うのは、価値ベースです。価値ベースの出発点になった代表的な手法が DQN です。
ここまでの要点
- 強化学習は、報酬を手がかりに、よい動き方を自分で見つける学び方です。
- 深層強化学習は、行動価値の予測をニューラルネットワークに担わせます。状況が多すぎる問題を乗り越えます。
- 価値の高い行動を選ぶ流派を価値ベースといい、その代表が DQN です。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「価値の予測をニューラルネットワークにやらせるのが深層強化学習」と押さえられていれば、このテーマの土台はできています。
発展
ここからは、DQN がどうやって学習を安定させたのか、そしてそれをどう改良していったのかをくわしく見ます。数式も少しだけ使います。
3. DQN:行動価値をニューラルネットワークで近似する
DQN(ディーキューエヌ)は、英語で Deep Q-Network と書きます。名前のとおり、行動価値を表す Q という関数をディープなネットワークで近似する手法です。入力は画面などの状況、出力はとりうる各行動の価値です。
学習の目標は、次の関係を成り立たせることです。式で書くと、いまの価値 = いまの報酬 + 割引率 × 次の状況での最善の価値 となります。言葉で読み下すと、ある状況で行動を選んだときの価値は、その場でもらえる報酬と、次の状況で見込める最善の価値との和に近づくはずだ、という関係です。割引率は、強化学習の枠組みのレッスンで学んだ、遠い将来ほど軽く見積もるための0から1までの値です。この関係のずれを誤差とし、ずれが小さくなるようにネットワークを調整します。
ところが、この学習はそのままではうまく進みません。強化学習では、学習に使うデータをエージェント自身が動きながら集めます。この素直なやり方には、2つの困りごとがあります。
ひとつは、続けて集めたデータがよく似てしまうことです。直前の画面と次の画面はほとんど同じなので、似たデータばかりで偏って学ぶことになります。
もうひとつは、学習の目標そのものが動いてしまうことです。目標の値も同じネットワークで計算するため、ネットワークを更新するたびに目標も動き、追いかけっこになって不安定になります。
DQN は、この2つを次の工夫で抑えました。
ひとつ目の工夫が、経験再生(けいけんさいせい)です。英語で experience replay と呼びます。集めた経験をいったん大きな記憶に貯め、そこからランダムに取り出して学習します。時間の近い偏ったデータではなく、幅広い経験を混ぜて学べるようになります。
ふたつ目の工夫が、目標ネットワークです。英語で target network と呼びます。目標の値を計算する専用のネットワークをもう1つ用意し、そのネットワークはしばらく固定しておきます。目標が短い間は動かないので、追いかける先が定まり、学習が安定します。
ポイント
DQN の要は、経験再生と目標ネットワークの2つです。似たデータの偏りと、目標が動く不安定さをそれぞれが抑えます。
DQN は、この工夫によって、テレビゲームの画面をそのまま入力にして、多くのゲームで人と同等以上の成績を出しました。深層強化学習の広がりの出発点になった手法です。
理解の確認
DQN は、行動価値 Q をニューラルネットワークで近似します。学習を安定させるために、経験をためて混ぜて使う経験再生と、目標の値を固定した目標ネットワークを使います。この2つが、データの偏りと目標が動く不安定さを抑えます。
4. DQN の改良の系譜
DQN には弱点も残り、それを補う改良が次々に提案されました。おもなものを見ていきます。
1つ目は、ダブル DQN です。英語で Double DQN と書きます。DQN は、この先の最善の価値を見積もるときに、価値を高く見積もりすぎる癖がありました。ダブル DQN は、どの行動が最善かを選ぶ役割と、その価値を評価する役割を別々のネットワークに分けます。役割を分けることで、高く見積もりすぎる偏りをやわらげます。
2つ目は、デュエリングネットワークです。英語で Dueling Network と書きます。行動価値を2つの部分に分けて考えます。ひとつはその状況そのもののよさを表す状態価値、もうひとつは各行動が状態価値からどれだけ得か損かを表す差分です。状況のよさと行動の得失を分けて学ぶことで、どの行動を選んでも大差ない状況でも、状況の価値を効率よく学べます。
3つ目は、ノイジーネットワークです。英語で Noisy Network と書きます。強化学習では、知っている中で最善を選ぶ活用と、未知の行動を試す探索の、両方が必要です。ノイジーネットワークは、ネットワークの重みに学習できる雑音を加え、その雑音を通して探索の度合いを自動で調整します。手動で探索の割合を決めるやり方に代わる工夫です。
4つ目は、Rainbow(レインボー)です。ここまでの改良を含む複数の改善をまとめて1つに組み合わせた手法です。名前のとおり、いくつもの改良を重ねると、単独よりも高い成績になることを示しました。
これらは、1台のエージェントをどう賢くするかの工夫でした。次は、学習を大きな規模で速く回す工夫です。
5つ目は、APE-X(エイペックス)です。多数のエージェントを同時に動かして経験を大量に集め、その経験を1か所の記憶に集約して学習します。集めた経験のうち、学びの多い経験を優先して使うしくみと組み合わせ、大規模な経験収集によって学習を大きく加速しました。
6つ目は、Agent57(エージェントフィフティセブン)です。テレビゲームの標準的な57本すべてで、はじめて人間の平均を上回った手法として知られます。探索をどれだけ重視するかを状況に応じて切り替えるしくみなどを備え、難しいゲームにも対応できるようにしました。
注意
これらの改良は、まったく別の手法に置きかわったのではありません。多くは DQN の枠組みを土台に、その弱点を1つずつ補う形で積み重なっています。系譜としてつながっている点を押さえましょう。
理解の確認
ダブル DQN は価値を高く見積もりすぎる偏りを抑え、デュエリングネットワークは状態価値と行動ごとの差分に分けて学びます。ノイジーネットワークは重みに雑音を加えて探索を調整します。Rainbow はこれらの改良を組み合わせ、APE-X と Agent57 は大規模な経験収集や探索の切り替えで成績を高めました。
5. 連続値制御という課題
ここまでの価値ベースの手法は、選べる行動が数えられる場合を前提にしていました。ボタンを押す・押さない、上下左右に動く、といった飛び飛びの行動です。とりうる行動が有限なので、それぞれの価値を出して最善を選べます。
ところが、現実には行動が連続的に変わる場面があります。ロボットの関節をどれだけの角度で曲げるか、車のハンドルをどれだけ切るか、といった場面です。このように、行動が連続した値をとる制御を連続値制御と呼びます。
連続値制御では、とりうる行動が無限にあるため、すべての行動の価値を並べて最善を選ぶことができません。そのため、行動そのものを直接に出力する方策ベースの考え方が向いています。方策ベースは、次のレッスンで学びます。
理解の確認
価値ベースの手法は、選べる行動が飛び飛びで有限なときに向いています。ロボットの関節角度のように行動が連続的に変わる連続値制御では、すべての行動の価値を比べられません。そこでは、行動を直接に出力する方策ベースが向いています。
モデルベース強化学習と世界モデル
ここからは、深層強化学習の現在地を知る手がかりになります。
これまで見た手法は、環境がどう動くかをあらかじめ知らずに、試行錯誤だけで学びました。これに対して、環境がどう変化するかを予測する模型をエージェント自身が学び取る考え方があります。これをモデルベース強化学習と呼びます。学んだ模型の中で先の展開を想像し、実際に動く前に計画を立てられるのが利点です。
エージェントが頭の中に持つ、環境の動きの模型を世界モデルと呼ぶことがあります。世界モデルを使う代表例として MuZero(ミューゼロ)が知られます。MuZero は、ゲームのルールを教わらなくても、環境の変化を自分で予測する模型を学び、その中で計画を立てて、囲碁・将棋・多くのテレビゲームで高い成績を出しました。試行錯誤の効率を上げる方向として、現在も研究が続いています。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。