Top コンテンツ 強化学習とは

強化学習とは

5G時代の到来により、これまでに考えられない速度で大容量なデータが社会にあふれ出す中、その膨大な情報を処理することのできる AI(Artificial Intelligence:人工知能)が注目を集めています。 AI技術では、人間の思考をプログラムで限りなく再現するための開発が進められています。
本記事では AI技術について理解を深めていただくために、その構成要素の一つである強化学習の説明をしていきます。

強化学習というと日々の暮らしには全く関係がないように思われますが、実は強化学習も我々人間の思考と似たような方法でプログラムの改善を行っています。本記事では我々人間の日常生活と強化学習がどのように関係しているのか、まずはそこをひもときながら、徐々に技術的な方面へと話を展開させていきたいと思います。

強化学習の考え方

まずは強化学習がいかに我々の日々の思考と関連しているかを実感していただくために、“強化学習の考え方”の具体的な事例をご紹介します。

営業部長の考え方から見る強化学習

強化学習とは、一言で表すならば、最終的な成果を最大化するために、個々の経験から学習して、その後の行動を最適化し続けていく、言うならば走りながら考えるタイプの学習方法です。強化学習では、経験から得られた知識に基づく行動と、これまでの経験とは完全に無関係でランダムな二種類の行動から得られた学びを活用して、最適な行動戦略を更新していきます。
実はこの考え方は、営業部隊を率いる営業部長の考え方に似ているのです。営業部長にとって最終的な成果は、部隊の一ヶ月の成約数を最大化することです。そのために個々の営業一人一人の行動をいかに最適化していくかが鍵になります。個々の営業マンの行動を最適化していくために、営業部長はどう考えていくでしょうか?

一つ目の考えとしては、高いパフォーマンスを発揮している営業マンの成功要因を、アポイント数や商談の準備の質などを特定し、それをチーム全体に共有することが考えられます。それとは逆に、成果が上がっていない営業マンの失敗要因を特定し、組織的な対策を練ることが考えられます。これこそが強化学習で表すところの、個々の経験から学習した知識に基づいて、行動戦略を更新することに他なりません。しかしこれだけでは、どこかの瞬間に成長が頭打ちになってしまう可能性があります。なぜなら組織全員が同じ行動を取った場合、学習できる事柄も画一的となっていってしまうからです。その対策として、次の二つ目の方針が強化学習では大切にされています。

その二つ目の対策は、継続的な改善のために学習機会を常に担保し続ける環境の構築です。例えば学習環境を担保するためには、営業部長以外の多様な視点を取り込み、営業部長の思惑を外れた指令である必要があります。その新しい視点に基づいた指令機会が適切に実装されれば、組織は様々な学習機会を獲得することも可能になります。実社会に当てはめると、商談をする場面において“占いのラッキーアイテムを絶対に用いる”と言ったルール設定などが考えられます。占い結果によりお饅頭が効果的とでれば、商談にお饅頭を持参。それでもし好印象を獲得できれば、そのまま行動戦略に組み込まれていきます。強化学習においても、その時点までに学習した知識とは完全に独立したランダムな行動も行い続けることで、常に改善の可能性を模索し続けます。

この営業部長と同じように、強化学習も個々の経験からの学びを最適化するとともに、偶然的な要素にも改善の可能性を探し続けることで、高いパフォーマンスを発揮することとなります。

AIと強化学習の関係性

本格的に強化学習の説明に入る前に、まずはAIについて簡単に説明させていただきます。

AIとは、Artificial Intelligenceの略で、日本語では人工知能と訳出されることが多い言葉です。特に近年、ディープラーニング技術が飛躍的な発展を遂げたことにより、社会へ大きなインパクトをもたらす可能性のある技術として、大きく注目されるようになりました。

AI技術は、具体的には機械学習という技術から成り立っています。さらにその機械学習は主に三つの方法に分けることができ、教師あり学習、教師なし学習、強化学習がその構成要素となります。

強化学習とは

それでは今回の記事のメインテーマである強化学習について、詳しく説明していきます。

強化学習の発展のルーツ

昨今の強化学習に用いられている考え方は、ノーバート・ウィーナーが1900年代に提唱したサイバネティクスという考え方にルーツを見いだすことが可能とされています。ウィーナーの提唱したサイバネティクスという考え方においては、どんなシステムでも、周囲からのフィードバックを通じて学習を重ね、改善を重ねていくことにより、何らかの合目的的なパターンを見いだすことが可能であると考えられてきました。

そして1997年に人工知能学会誌おいて強化学習が取り上げられて以来、情報処理技術の飛躍的な進展と相まって、強化学習に関連する技術は急速な発展を遂げ、現代のように社会の発展を牽引する技術として注目を集めるまでになりました。

参考文献:公益社団法人 計測自動制御学会『計測と制御』 第 52 巻 第 1 号 2013 年 1 月号 , 計測自動制御学会、コロナ社

強化学習のモデル

簡単に強化学習の発展のルーツを振り返ったところで、強化学習がどのようなモデルから成り立っているのかを説明します。

強化学習は主に二つの要素から成り立っています。エージェントと呼ばれる学習主体と、制御対象となる環境です。強化学習のモデル下において、エージェントが何らかの行動をすると、その環境下におけるエージェントを取り巻く状態が変化し、その結果が報酬としてエージェントに対してフィードバックされます。その報酬を最大化させるために、エージェントの行動を最適化していくのが強化学習の基本的なモデルとなります。

強化学習では主に以下のパラメーター(※)の調節を通じて学習が進められていきます。

  • 状態S:現在の状況を表すパラメーター
  • 行動A:実際の行動を表すパラメーター
  • 報酬R:行動の結果としてエージェントに与えられる報酬を表すパラメーター
  • 方策π:エージェントが行動を選択する際のルール

※:パラメーターとは、何らかの概念を表現するために用いられる変数のこと。

強化学習の用語に慣れ親しむために、具体的な例として、今度は一日でできるだけ遠くに、自転車で行きたい人を例として考えてみましょう。この例を通じてエージェント、状態、報酬などの用語に慣れ親しんでいただきたいと思います。

この場合、エージェントとしては操縦者が該当します。報酬は走行距離が与えられます。状態Sとしては、道路の傾斜や自転車の速度、道路状態などが該当します。行動の選択肢としては、ブレーキをかける、ペダルをこぐ、休むなどの選択肢があります。

与えられた時間である一日という時間の中で、どのように行動すれば最も遠くまで自転車で移動できるかを、操縦者が走りながら獲得した経験から学習し、試行錯誤を重ねながら、走行距離を最大化することが強化学習になります。

強化学習を用いた活用事例

ここでは強化学習の実際の活用事例を紹介します。

ゲーム内における最適行動関連

AlphaGo
Google社の関連会社であるディープマインド社が開発したコンピュータ囲碁プログラムです。世界トップ棋士である柯潔に勝利したことで、一躍有名になりました。

参考: Wikipedia - AlphaGo

AlphaZERO
上述のディープマインド社によって開発されたA Iで、囲碁、将棋、チェスの三つのボードゲームにおいて、自己学習によって高い学習成果を出すことに成功しました。

参考: 【WIRED】グーグルの最新AI「AlphaZero」は、3つのゲームで人間を超えた

実社会での最適制御関連

自動車の自動運転
自律走行可能な自動車にも強化学習アルゴリズムは用いられています。物体検知によるエンジン制御などが可能となっており、日本国内でも実証実験が蓄積されてきています。

参考: 【日経XTECH】深層強化学習で高度な判断、一般道で「レベル3」を実現

通信ネットワーク経路の最適化
通信ネットワークの最適化にも用いることが可能です。音声データや映像データなど、それぞれのデータ特性に応じてトラフィックを最適化する強化学習を用いて改善を行うことで、データ移動の遅延を最小化することができます。

参考: 【IEEE】Widest K-Shortest Paths Q-Routing: A New QoS Routing Algorithm in Telecommunication Networks

三つのアルゴリズム

強化学習の概要を説明したところで、最後は少し専門的な話に進みます。ここからは強化学習のアルゴリズムについての説明をします。

上述の通り、エージェントの目標は、目先の報酬ではなく、累積的な報酬の総量を最大化することにあります。それを実現するための最適な方策を獲得していくことが、強化学習のアルゴリズムの目的です。

ここでは強化学習を代表的する三つのアルゴリズムである、動的計画法、モンテカルロ法、TD(Temporal Difference:時間的差分学習)法の三つを紹介していきます。

動的計画法:細めな期待値計算で行動を最適化す理論型発想


動的計画法(DP: Dynamic Programming)は、完全で正確な環境のモデルが与えられている時に、最適な方策を計算することができるアルゴリズムです。価値関数を利用することで、より良い方策を探索し、改善していくという考え方をベースにしています。

この方策の改善方法として、方策反復法と価値反復法の二種類の学習方法があります。
方策反復法では、取りうる全ての行動に付随する新しい状態の期待値の計算により、“新しい状態S”の価値を評価し、その結果を用いて、方策πを評価し、新しい状態Sの価値がより大きくなるように、方策πを更新し続けるという方針で学習が行われていきます。そのため各方策は一つ前の方策よりも必ず改善していることになります。

一方、価値反復法は方策反復法をより効率的にした学習方法で、最も大きな期待値が計算される行動のみを考慮して方策を更新していき、方策の改善がある一定以上の改善がなされないようになった場合に、方策評価を打ち切るという方針で学習がなされます。

参考文献:Richard S. Sutton , Andrew G.Barto , 三上貞芳 , 皆川雅章(2000), 強化学習 森北出版

モンテカルロ法:経験を抽象化することで法則を導き出す体当たり型発想


モンテカルロ法は、状態遷移が分からない、つまりある行動の結果としてどのような報酬が得られるか分からない場合に用いられる方法です。

この方法では、とにかくエージェントに何らかの行動を最後までやり抜かせることで、何らかの報酬を獲得し、一つ一つの行動をエピソードとして記録していきます。そして各エピソードの結果得られた報酬をサンプリングしていき、その報酬の平均を計算することにより期待値を求め、それを報酬の値として用いることで学習を進めます。これにより各行動の価値を算出する最適行動価値関数へと行動価値関数を近似させ、方策を評価・改善させていくことで、最適な方策へと近づけていきます。動的計画法において状態価値を重視したのとは違い、モンテカルロ法では行動価値を重視する傾向にあります。これは完全なモデルを前提としない以上、状態価値の算出が困難であるためです。

モンテカルロ法では、最適方策の収束の保証を得るために、エピソードにおける開始点探査と、方策評価を無限個のエピソード群に対して行えるという二点が基本的には仮定されています。開始点探査とは、探査維持を保証するための仮定で、これにより全ての状態行動対が無限回訪問されているとする仮定です。これらの仮定を置けば、もちろん十分な探査が保証されるわけですが、無限回の訪問など、少し非現実的と言わざるを得ないものとなっています。

この課題の解決策として、方策オン型のモンテカルロ法と方策オフ型のモンテカルロ方という代表的な二つの方法があります。

古典的な方策オン型モンテカルロ法では、一定の確率εでエージェントはランダムな行動を取り、それ以外は決められた方策πに従うというルールで行動を制御することで学習が進められます。このランダムに行われた行動によって、行動価値関数、及び方策の更新が行われていくという方法です。この方法では、方策を制御に用いると同時に、方策の価値推定も行うという方法が取られています。

もう一方の方策オフ型モンテカルロ法では、挙動生成を主な機能とする挙動方策と評価・改善される推定方策という二つの方策を用いることで、制御のための方策と価値推定のための方策を分離することで学習が進められていきます。この分離により挙動方策により全ての可能な行動をサンプリングしつつ、決定論的な方策を推定方策として用いることが可能となっている点が特徴的です。

参考文献:Richard S. Sutton , Andrew G.Barto , 三上貞芳 , 皆川雅章(2000), 強化学習 森北出版

TD(Temporal Difference:時間的差分)学習:上記二つのハイブリッド発想

TD学習は、実際の報酬から、方策関数や価値関数を改善することにより、Bellman最適方程式を解くことで最適解を導き出すというアプローチです。価値反復法を特徴とし、動的計画法とモンテカルロ法を組み合わせた学習方法で、モンテカルロ法のメリットである環境のダイナミクスのモデルを必要とせず、自らの経験のみで学習を進めることができるという特徴と、動的計画法のメリットである、最終結果まで待たずとも、他の推定値を一部利用することで、推定値を更新していくことが可能であるという特徴を併せ持つ方法となっています。ここでは、TD学習の中でも代表的な二つのアルゴリズムを紹介します。

① SARSA

SARSAは、方策オン型のT D制御を特徴とするアルゴリズムです。SARSAは現在の状態Sとそこで実行する行動A、さらにその行動の結果得られた報酬R、行動後の状態S’が判明している場合に、現在の状態と行動についての状態行動関数であるQ関数(S,A)の更新を行います。ここでは行動後の状態S‘とS’が与えられた時の方策によって決められたエージェントの行動A’によって決まるQ関数Q(S‘、A’)が用いられます。

関数に(S,A,R,S’,A’)が与えられることから、SARSAという名称の由来となっています。

参考: 【Qiita】今さら聞けない強化学習(10): SarsaとQ学習の違い

② Q-Learning

上述のSARSAの方策に、ε-greedy法を適用したものがQ-Learningです。Q-Learningは、方策オフ型のT D制御を特徴とするアルゴリズムです。Qラーニングにおいては、価値更新に用いるために用いられる行動と実際の行動が異なっていることに注意が必要です。価値更新に用いられる値はmax関数により選択されます。

参考: 【Qiita】今さら聞けない強化学習(10): SarsaとQ学習の違い

深層強化学習

深層強化学習についての説明に入る前に、近年のAIブームの飛躍的な発展を促した深層学習について簡単に説明します。

深層学習(Deep Learning)は、End-To-End Learningと呼ばれることもあるように、機械学習が学習を進めていく上で必要となる特徴量の設定、抽出を、人間による介入なしに行うことができる技術です。これにより既存データの学習・未知データに対する予測における質的な向上を実現するに至りました。

深層学習の技術は、強化学習にも応用され、深層強化学習という分野が生み出されました。深層強化学習では、Q学習をディープニューラルネットワーキングの技術を応用することで編み出されました。

このDQN(Deep Q-Learning)では、入力層に状態sや行動aを、出力層に状態行動価値を設定することで、状態行動価値を算出することが可能となります。予測される状態行動価値と実際の状態行動価値の誤差が小さくなるように学習が進んでいきます。

参考: 【Qiita】DQN(Deep Q Network)を理解したので、Gopherくんの図を使って説明

最後に

この記事では、AIの理解に欠かせない強化学習について解説してきました。身近な例から少し専門的な内容にまで踏み込んだ内容であったため、難しく感じられた方もいらっしゃるかも知れません。もっと勉強してみたいという方のために、今後は学習に役立つコンテンツを多数ご用意していきますので是非引き続きご覧ください。

汎用AIモジュール KEY RING WEBページ最適化AI Microscope SEO対策最適化AI InSEC データ・AI教育 カリキュラム