見出し画像

強化学習(Reinforcement Learning) - その知られざるルーツと活用

「強化学習(Reinforcement Learning)」について、Facebook に投稿した記事をベースに、解説を書いてみました。

強化学習とは

近年の「深層学習(Deep Learning)」のブームのおかげで、AIといえばデータから法則性を発見していくイメージが強くなりました。これは正確には「機械学習(Machine Learning)」の中でも「教師あり学習 (Supervised Learning) 」と呼ばれるもので、事前に与えられたサンプルとなるデータをいわば「教師からの例題(教師情報)」とみなして、それを参考にデータの識別や法則性の導出を行う手法になります。

対して、一般的に「機械学習」になじみのない方がAIという言葉を聞いて思い浮かべるのは、どちらかというと「強化学習(Reinforcement Learning)」の方がイメージに近いのではないかと思います。それはデータから学習していくのではなく、まず行動を起こしてそれによってどういいことがあったのかを体感し学んでいく、つまり経験をすることで行動を改善していくAI です。

強化学習は、教師あり学習とは異なり、教師情報は存在しないのですが、その代わりに学習した後から報酬というフィードバック情報を得ることで、更なる学習の手がかりとします。
前提として不確実性のある環境を想定しており、報酬は、その性質として教師情報と異なりノイズや渡されるタイミングの遅延があるものだと考えます。そのため、逐次やってみたことの結果や利用者の反応を取り込みつつ、システムやサービスを徐々に最適化させていく場合に適しています。

以前は、ロボット工学の分野で使われることが多かった強化学習ですが、昨今は、ゲームに勝つ AI が活用する手法としても有名になりました。2016年に囲碁棋士 イ・セドルに勝利した AlphaGo。AlphaGoは棋譜データを大量に学習した教師あり学習のAIだったわけですが、例えば、そのAlphaGoを完全に打ち負かした、2017年のAlphaGo Zero は、過去の棋譜データを用いず、深層強化学習(Deep Reinforcement Learning)を活用した自己対戦のみでスキルアップを行っていました。AlphaGo/AlphaGo Zero を生み出したDeepMind社は、新たな試みとして、リアルタイムストラテジーゲームである「スタークラフト2」で最強を目指す AlphaStar を開発。今年1月には、プロのトッププレイヤー2人と対戦し、10連勝を達成しました。AlphaStar は、教師あり学習と強化学習を高度に組み合わせたDeep Neural Network を用いています。データに基づきつつも、みずから行動を起こしてフィードバックを得て強くなっていく。より人間の知的な振る舞いとその成長に近いようなモデルになってきています。


知られざるルーツ

さて、そんな「強化学習(Reinforcement Learning)」ですが、実はそのルーツは、動物生理の実験からの心理学の理論にあります。
帝政ロシア・旧ソ連の生理学者であったイワン・パブロフが1901年から研究に着手し、1903年に理論として発表した「条件反射 (Conditioned Reflex)」、一般に「パブロフの犬」と呼ばれる実験があります。

 1.イヌにメトロノームを聞かせる。
 2.イヌにえさを与える。イヌはえさを食べながらつばを出す。
 3.これを繰り返す。
 4.すると、イヌはメトロノームの音を聞いただけで、唾液を出すようになる。

この有名な実験は、「次に起こる現象を無意識レベルにおいて予測する反射」の存在を示し、心理学者であり行動分析学の創始者であるバラス・スキナーの知的探求の源泉となりました。バラス・スキナー(パブロフの犬の実験の次の年、1904年生まれ)は、イワン・パブロフの実験を評価し、西側諸国に紹介すると共に、自らの着想の土台としたのです。スキナーは、人間の行動は過去の行動結果に依存すると考えました。もし過去の行動結果が悪いものであったなら、その行動は繰り返されない確率が高く、良い結果であれば、何度も繰り返し行いえるとの考えをまとめ、行動結果を直接的に示す報酬や罰の程度によって行動をコントロールできるとして、これを「強化理論 (Principles of Reinforcement)」と名付けました。つまり、結果のフィードバックによって行動が「強化」されていく、ということです。

このコンセプトはそのまま、機械学習における「強化学習(Reinforcement Learning)」として採用され、「教師あり学習(Supervised Learning)」「教師なし学習(Unsupervised Learning)」に次ぐ第三の分野として発展するに至ったのです。

強化学習の目指すこと

前段で不確実性のある環境を前提としていると述べましたが、強化学習においては目標となる報酬の最大化を目指して、不確実な環境にどう対処していくかを学ぶことが目的となります。

例えば、サッカーのシチュエーションを考えます。
相手のゴール間際まで攻め上がっていて、自分はボールをもっています。ディフェンスが横を走っていて今にもボールをとられそうです。斜め前には味方が走っています。ただ、彼にもマークはついていますし、相手方のゴールキーパーは、自分たちの動きどちらにも気づいていそうです。
自分で蹴るか、ドリブルしてから蹴るか、味方にパスをするか。
どのアクションをとったとしても、それによってどういう風に有利な展開がくるのか、点の獲得に近づくのかを期待してアクションをとります。つまり、点が得られやすくなるるように動きます。
そして、自分がどう動くかによって、周囲の環境も変化します。(ドリブルしたら、ゴールキーパーが飛び出してくるかもしれないし、味方がボールを受け取りやすい場所に走るかもしれない。)つまり、試合が展開します。それを踏まえて、実際の自分のアクションの結果が点につながるのか、つながらないのかというフィードバックを受け取ることになります。
そのような試行錯誤を通し、自分のサッカーのスキルを、決定力をあげていくことになるのです。
もちろんサッカーのルールを守る必要があります。自分をマークしている相手選手を殴り倒したらゴールが決まるかもしれませんが、それはいけません。ルール、つまり制約の中で、点数獲得機会を最大化するよう、実践で腕を(脚を?)磨いていくことになります。
ここまでは踏まえると、実際にはこのようなモデルを作ることになります。
認識している環境を前提とし、自分のアクションがインプットとなり、それによっておきた展開でゴールがより決まりそうになっているか、あるいは決まってしまったかがアウトプットとなります。それらを繰り返しつつ、(単純化してますが、)ゲームセットのときにどれだけ点数が入っているかが最終的な報酬になるわけです。

強化学習はこれら上記の実践からフィードバックを得て、よりよい判断を学習して獲得していくことになります。

強化学習のECでの適用

上記のように説明してきた強化学習ですが、ゲームの世界での目覚ましい活躍に比べると地味な感じもありますが、E-Commerce で広く適用されています。
レコメンドや商品検索でも顧客の反応、つまりどれにクリックしたのかとか、すぐにクリックしたのかとか、を報酬として取り入れて推薦や検索の結果を改善していくのに強化学習が使われます。他には広告のパーソナライズやABテストの中で、多腕バンディットアルゴリズムが用いられることがあります。多腕バンディットアルゴリズムとは、限られたリソースの中で、報酬(ここでは利用者の好反応)がどれぐらい得られるか過去に経験した手段の「活用(exploitation)」と、報酬を更に得られるかもしれない未知の手段の「探索(exploration)」という二種類の行動を使い分けることで、報酬を最大化する手法です。つまり、決まった試行回数の中で、やったことがあるのでわかっていることと、やってみてないのでやってみて確認したいことを組み合わせながら、最も良い選択を追求します。代表的なものとして、epsilon-greedy、UCB、Thompson sampling 等があります。

例えば、広告のクリエイティブを2案(A案・B案)作り、それぞれ50%のユーザーに表示するABテストを考えてみます。KPIはインプレッションに対するクリックの割合と単純に考えます。この際、A案・B案どちらのクリック数もそこそこ同じ感じであればいいのですが、もしB案のクリック数が絶望的に少なかったら、ABテスト期間中とはいえ、本番サービスなわけですから、B案を50%のユーザーに表示させている分はまるまる機会損失になっているとも考えられます。そこで、多腕バンディットアルゴリズムを用い、B案のパフォーマンスが悪いと思ったら、B案の表示割合を減らして、A案の表示割合を増やしていく等して、KPIを極大化し、損失もなるべく減らしていくという手がありえます。2案だったら人手でもできますが、例えばこれがクリエイティブを60案作るとか、ユーザーのセグメントに合わせてもっと多様に作るとかになったら、人手ではそれぞれのインプレッションを調整して全体としてKPIを高めていく等は到底不可能であり、強化学習の手法を適用して自動化していくメリットがあります。

強化学習は人手よりは機会損失を減らせる、とはいえ、経験の活用と更なる報酬の探求の間にはトレードオフの関係が成立するために常にどうやれば、どこまでやれば逸失利益を最小化できるのかという課題があります。そのために何を選択するかは過去のデータ及び不完全な推定に基づかざるを得ません。多腕バンディットアルゴリズムの一つであるUCBアルゴリズムは、損失上限量の範囲内でこの課題に答えを出すことができ、広く使われていますが、経験的にはThompson Samplingの方が高性能であることも知られています。

今後

前述したDeepMind 社の高度な活用のように、今後は、教師あり学習と組み合わせたDeep Neural Network ベースの強化学習の事例が増えてくると思われます。Self-driving car を開発している、同じくGoogle(Alphabet)グループの Waymo 社も強化学習を組み合わせて進化させていくと述べています。

より複雑かつ洗練されたAIシステム開発には、今後は強化学習の応用が不可欠かもしれません。

以上、強化学習について、他の解説では書いていないような事も含めてまとめてみました。参考になりましたでしょうか。AI技術に関しては次は(いつか)、「Super Resolution」について書くかもしれません。



この記事が気に入ったらサポートをしてみませんか?