これさえ読めば分かる。深層強化学習DQN(Deep Q-Network)の概要と応用事例

この記事では強化学習にディープラーニングを適用する深層強化学習 について紹介していきます。全部の手法は紹介しきれないので、深層強化学習の最も基本的な手法である DQN(Deep Q-Network)に絞って、コードや数式は使わず、ざっくり概念を説明していきます。後半では深層強化学習のビジネスへの応用についてもまとめてみました。

深層強化学習とは?

深層強化学習は、2015年から非常に注目され始めた人工知能技術であり、深層学習と強化学習を組み合わせたものです。深層強化学習によって、それまでできなかったような複雑なタスクにおいてもコンピューターが人を上回り始めました。プロ棋士を破ったことで一躍話題になった Google DeepMind による囲碁の人工知能 AlphaGo もこの技術を使っています。

しかし強化学習にディープラーニングを適用すると言われても、始めはピンとこないかと思うので、まずは強化学習を振り返っていきます。

強化学習とは?

 

 

強化学習は、教師あり学習や、教師なし学習とは少し異なる機械学習の分野です。

最終的に達成したいゴールはあるけれど、そこにいたる詳細な制御手法は分からないときに、ゴールできたかどうかをベースに、制御手法を構築する学習手法です。

事前に教師あり学習のようなラベル付けされたデータセットが用意されているものではなく、エージェント(学習主体)がプログラム自体が与えられた環境(=現在の状態)を観測し、連続した一連の行動の結果、価値が最大化する行動を自ら学習し、選択していくだけでなく、行動についての評価も自ら更新していきます。

行動した結果を元に学習するという考えでは、教師あり学習のようにも考えられますが、探索空間での行動の仕方や行動系列の結果の報酬を最大化するように意思決定の仕方を学んでいくところが強化学習の特徴です。

強化学習に必要な用語

強化学習では、対象とする問題をモデル化し、以下のように呼びます。

状況(status): 環境がどうなっているかを表すモノ
行動(action): エージェントが環境に対しどのような行動を起こすことができるのかを表す
報酬(reward): エージェントが環境に対して行動を起こした結果もらえる評価
方策(policy): エージェントの行動パターン
収益(return): 割引率を差し引いた報酬の和

学習方法

学習主体である「エ-ジェント」と制御対象「環境」が以下のやりとりを行いながら学習していきます。

①エ-ジェントは時刻tにおいて環境の状態観測sに応じて 意志決定を行い,行動aを出力
②エ-ジェントの行動により,環境はS+1へ状態遷移し, その遷移に応じた報酬rをエ-ジェントへ与える.
③時刻tをt+1に進めてステップ1へ戻る。

ここで、報酬に関しては一点注意が必要です。

先ほど言った通り、強化学習ではその時点で貰える報酬(即時報酬)ではなく、(将来に渡る)価値を最大化します。
よって、単に即時報酬が多くもらえる近視眼的な行動ではなく、より未来を考えた価値を最大化する行動を取らなければなりません。この価値のことを Q値 と呼び、 Q(s,a) と書きます 。

では、どうやってQ値を最大化させるようにエージェントを学習させるのでしょうか?

強化学習において、Deep Learningが提案される前までの手法には、Q-Learning、SARSA、モンテカルロ法という3つのアルゴリズムがありましたが、典型的には、Q-Learning(Q学習)が、最も代表的な手法になります。名前が紛らわしいですが、Q値を学習するためのアルゴリズムのひとつがQ学習になります。

Q学習とは 

何度も言いますが、 重要なのは、Q値とは短期的な報酬ではなく、長期的な意味での価値を値として持っている関数です。

つまり「ある状態 s においてある行動 a を取った時の価値」がわかれば、その価値の一番高い行動を選択すればよいはず。

しかし、最初は其々のsとaの組みあわせについて、正しいQ(s,a)の値は全く分かっていません。
そこで、試行錯誤により、或るsの下で様々な行動aを取り、その時の報酬を使って、正しいQ(s,a)を学習していきます。

Q学習では実行するルールに対しそのルールの有効性を示すQ値という値を持たせ、エージェントが行動するたびにその値を更新します。

まとめると、「Q値」とは行動によって見えてくる長期的な価値の値で、Q値を最大化させるために現在の状態と目標とする状態の差を出し、常に優先順位を更新していく学習法がQ学習です。

▶︎Q値に基づくアルゴリズムは大きな欠点が

しかし、Q値に基づくアルゴリズムには大きな課題が存在します。「状態行動空間の爆発」、と呼ばれるものです。

規模の小さな環境では問題になりませんが、状態や行動が連続値で定義され、その次元も非常に大きいような環境だと、状態と行動の組に対して定義されるQ値を保存するための領域が無限に必要となってしまい、非常にたくさんの試行数を必要とします。これを表形式で強化学習させるのは現実的ではありません。何らかの工夫をしなければなりません。

深層強化学習:強化学習とディープラーニングを組み合わせる

このように「状態が多くなると表形式の強化学習が困難である」という問題点を、Q関数を畳み込みニューラルネットワーク(ディープラーニング)で表現するアプローチをとり、学習が収束するための工夫をしたのが深層強化学習です(Deep Q Network以下DQN)

DQNの出現により、より複雑なゲームや制御問題の解決が可能になり、強化学習が注目を集めました。

DQNの最も大きな貢献は、Q関数をニューラルネットワークによりモデル化し高次元データに対応できるようにしたことです。しかし、それだけではDQNの学習は不安定であり良い方策は得られません。そこでいくつかの工夫が提案されます。

DQNに必要な大事な4つの手法

Experience Replay: 過去の経験を保存して学習

arget Network: 過去のDNNを固定して使用
Clipping Rewards: スコアのスケールを統一
Skipping Frames: 4フレーム毎に行動選択

そして、これらの手法をざっくりとまとめると、同じゲームの進行パターンで何度か学習し、様々なゲームでも使えるように配点の仕組みを変えて、学習するプログラムが出来上がるという一連の流れになります。

深層強化学の応用事例

🔳Atari2600

DeepMind社が有名になったのは、2013年にAtariのゲームを攻略する論文を公開してからです。この論文では、Atariの6ゲームで人間の能力を上回ることが示されたことがキャッチーで話題を呼びました。

ブロック崩しなどの一部のゲームで人間よりも高いスコアを記録しました。以降、DQNの性能評価の指標として用いられる事が多いです。

 

🔳AlphaGO(囲碁)

話題になったので知っている方も多いかと思います。AlphaGoは深層強化学習の技術を用いた囲碁のAIです。2015年10月にヨーロッパ王者のプロ2段の棋士に19路盤でのハンデ無し戦で勝利し、2016年3月にはLee Sedol(9段)に4-1で勝利しました。

囲碁の盤面を19 × 19の画像として扱うことによって、方策・価値ネットワークへの入力としています。AlphaGOはモンテカルロ木探索と複数のネットワークが使用されており、その一部にDQNの技術が使用されています

社会、ビジネスへの応用可能性

深層強化学習は、PC上でのゲーム攻略から実空間社会での応用へと、その適用範囲を移しつつあります。教師付き学習や教師なし学習と比べるとビジネス応用例がまだまだ少ないですが、今まさに大きく発展を遂げている分野です。おそらく、今後もっと様々なビジネスへの応用が生まれてくるのではないでしょうか。

現実空間での知的システムの構築では、例えば自動運転技術や高精度な工作機械などが実現しつつあります。この分野では日本のPreferred Networks社などが、自動運転の研究動画を公開するなど、深層強化学習を利用した取り組みを実施しています。

また、アルファ碁を開発した DeepMindは、Googleのサーバを集めたデータセンタの冷却効率を、深層強化学習を用いて改善し消費電力削減に成功しています。データセンター設備の稼働状態や気候などに応じて冷却設備の設定を最適化することで、冷却設備の消費電力を最小化したとのこと。

その他にも、期待される分野、可能性としては以下のような領域が挙げられます

・FinTech:株・為替のトレーディング、ポートフォリオマネジメント

・ヘルスケア:患者の画像データや血中成分データなどから次に投与する薬や施術の決定

・ロボティクス:所望の動作を実現するモータの制御ルールを学習させる、自動運転

・需要予測:サプライチェーンマネジメント、エナジーマネジメント(HEMS、グーグルのデータセンタの冷却制御、スマートシティ)

・自然言語処理:テキスト要約、テキストマイニング(情報抽出)、翻訳などなど

現実世界の問題を解くための課題

と、ここまで、ポジティブな側面を取り上げてきましたが、しかし実際は一部の事例を除き、うまくビジネス化されているのは少ないのが現状です。 課題はまだまだ多いのです。

ひとつの原因は、深層強化学習のサンプルを使用する効率の悪さです。深層強化学習はサンプル効率が悪く、膨大な試行数をこなさないと学習できないのです。

囲碁やゲームはPC上でいくらでもシミュレーションができるため、サンプル効率が悪くても問題ありませんが、シミュレーターが存在しないようなビジネスドメインではサンプル効率の悪さがネックになり、深層強化学習の使用が現状では困難です。

他にも、不安定、ハイパーパラメータに敏感、学習結果の分散大 – 新しいタスクへの転移・汎化が困難などの課題があります。

この課題への解決策として、転移学習、One-shot学習、模倣学習、逆強化学習などの手法が考えられ、現在盛んに研究されています。

それぞれメリット・デメリットを持つ 深層強化学習は、必要なサンプル数の多さや学習の不安定さなど課題も多いですが 、うまく使えれば強力であり、応用先も広いといえます。深層強化学習を成功させるには、うまい問題の設計やチューニングが必須になってくるでしょう。

 
関連記事:深層強化学習とその最新モデル『R2D2』
 

1 Comment

現在コメントは受け付けておりません。