生成AI

AIエージェント
生成AI
ChatGPT連携サービス
AI受託開発
対話型AI -Conversational AI-
ボイスボット
バーチャルヒューマン
教師データ作成
AI研究開発
通訳・翻訳
声紋認証
機密情報共有・管理
契約書管理システム
ワークステーション
FAQシステム
AIカメラ
生体認証
インボイス制度対応システム
データセットの収集・購入
コールセンター
人事・総務向け
インバウンド対策
コンバージョンアップ
KYT・危険予知で労働災害防止
無料AI活用
顧客リスト自動生成
ロボットで自動化
LINE連携
セキュリティー強化
テレワーク導入
AI学習データ作成
配送ルート最適化
非接触AI
受付をAIで自動化、効率化
AIリテラシーの向上サービス
日本語の手書き文字対応AI-OCR
Windows作業の自動化RPAツール
リスク分析AIで与信管理
紙帳票仕分けAI-OCRサービス
サプライチェーン
AIコンサルティング
最終更新日:2024/03/01
強化学習とは?
強化学習とは、機械学習における学習アルゴリズムの1つです。
エージェントと呼ばれるAIやシステムが、環境と呼ばれるデータを用いて試行錯誤して学び、報酬を最大化する学習手法です。
強化学習はすでに、家庭用ゲームのAI機能や自動運転車の制御に用いられており、今後はさらなる社会への発展に寄与することが期待されています。本記事では、強化学習に関する概念だけではなく、仕組みや実例について詳しく解説していきます。
機械学習について詳しく知りたい方は以下の記事もご覧ください。

強化学習とは、機械学習のアルゴリズムのひとつであり、「システム自身が試行錯誤を繰り返して最適なシステム制御を実現していく仕組み」のことを指します。機械学習には、教師あり学習や教師なし学習のように、明確なデータをもとにした学習方法も存在しますが、強化学習の場合は明確なデータをもとにするわけではありません。
プログラム自体が与えられた環境の観測を行い、一連の行動結果を踏まえた上で、より価値のある行動を学習していくという仕組みです。そして、その行動についての評価も自ら更新していきます。さまざまな行動を試しながら、より価値のある行動を探していくという点を踏まえると、人間の動作に近いものといえるかもしれません。
そんな強化学習ですが、この概念自体は近年のAIブームよりも前から存在していました。強化学習の原型といえるものは、機械の自律的制御を実現する「最適制御」の研究が行われていた1950年代から存在していたのです。なお、1990年代には強化学習の生みの親とされるリチャード・サットン教授(カナダ・アルバータ大学)を中心としたチームにより研究が進められていたといいます。
このように、強化学習の原型といえるものは古くから存在していたわけですが、そこに飛躍的な進歩をもたらしたのが「深層強化学習」というものです。これは、従来の強化学習に深層学習(ディープラーニング)を応用したものであり、強化学習を軸として稼働するAIが世間に広まるきっかけとなりました。
強化学習と深層学習の違いについて詳しく知りたい方は以下の記事もご覧ください。
強化学習には、Q-Learning、SARSA、モンテカルロ法という3つのアルゴリズムが存在します。それぞれのアルゴリズムにどのような特徴があるのか、詳しく見ていきましょう。
3つの手法の中で一番多く用いられているのが、Q-Learning(Q学習)です。強化学習について勉強していく際は、まずQ-Learningから学ぶことになるでしょう。
Q-Learningは、Q関数という行動価値関数を学習し、制御を行っていく仕組みです。行動価値関数Q(a|s)は、状態s(t)において行動aを行った場合、その先の報酬はどれくらいもらえるかの予想を出力していきます。
Q関数に行動「右に押す」と「左に押す」を入力した場合の出力を比較し、より報酬が多いほうを選択すると、CartPoleが立ち続けることになるわけです。
SARSAは、Q関数を学習するという点ではQ-Learningと同じですが、学習の仕方に違いがあります。「実際に行動した結果」を用いて、期待値の見積もりを置き換えていくのが特徴です。
そのため、現在の価値を更新するには、再度エージェントが行動を行わなくてはなりません。
モンテカルロ法は、Q値の更新において「次の時点のQ値」を使用しないという点が特徴です。何かしらの報酬が得られるまで行動を行い、報酬値を把握します。そして、辿ってきた状態・行動に対して、報酬を分配するという仕組みです。
ディープラーニングの発達に伴い、現在は強化学習においてもディープラーニングが積極的に活用され始めています。ディープラーニングの発達によって登場したのが深層強化学習と呼ばれる技術です。
これまでは、Q関数を表すために表を使用するのが一般的となっていました。表のサイズは「状態sを離散化した数」×「行動の種類」という計算によってに決まるため、限りがあります。
しかし、ディープラーニングを用いたDQN(Deep Q-Network 、Deep Q-Learning Network)が実用化されたことで、これまで以上に複雑なゲームや制御問題を解決できるようになったのです。このディープラーニングを活用した強化学習のことを「深層強化学習」と呼びます。

では、強化学習によって具体的に何ができるようになるのでしょうか。ここからは、強化学習でできることについて詳しく見ていきましょう。
アーケードゲーム「ブロック崩し」は多くの方が一度はプレイしたことがあるのではないでしょうか。このゲームでは、強化学習を使用するAIが人間を上回るスコアを記録しています。Atariという会社が出していたブロック崩しゲームを、DeepMind社が開発したAI(強化学習を使用)に学習させたところ、49本のゲームのうち半分以上で、人間と匹敵するスコアもしくは人間を上回るスコアを記録したのです。さまざまな行動を試しながら、より価値のある行動を探していったからこそ得られた結果といえるでしょう。

自動車における自動運転も、強化学習が活用されている分野のひとつです。Prefferd Networks社という日本の企業が行っている研究では、自動車の幅に対して道の幅が狭く、車が密集している交差点のような難しい状況下において、強化学習でどれだけ運転の精度を高められるかという実験が行われています。
この技術を用いることにより、前後左右のすべての方向を集中してみることが可能になるため、前方向と同じように後方向にも躊躇なく移動することができるそうです。
近年は高層ビルが増加していることもあり、エレベーターの制御は極めて重要な役割を担っています。ただし、エレベーターの安全性を高めるのはもちろんのこと、エレベーターの利便性を高めることも、良いエレベーター制御システムの条件のひとつです。そのため、客の待ち時間が長くなってしまうエレベーターの制御システムは高く評価できません。
特に、デパートやオフィスビル、タワーマンションといった、毎日大勢の人々が乗り降りする場所には欠かせない条件といえるでしょう。エレベーターは簡単に増設することもできませんから、台数と定員を変えずに待ち時間を短くする必要があるのです。
そこで活用されるのが、強化学習です。数理的な手法で割り当てを行うにしても限界があるため、強化学習によって過去の経験にもとづいた最適な選択肢を選ぶことで、より柔軟にエレベーターを稼働させることが可能になります。もちろん、日々の運行履歴も学習していくため、新たな学習データを追加した上で、より最適な判断方法にアップデートしていくことも可能なのです。
そのため、エレベーターの待ち時間が長くなってしまっている建物などは、特に強化学習を導入するメリットが大きいといえるでしょう。
強化学習は、さまざまな分野で活用され始めています。具体的にどのような場所で強化学習が活用されているのか、その事例を見ていきましょう。

強化学習の代表的な活用事例として挙げられるのが、2016年に登場した囲碁AIの「AlphaGo」です。プロ棋士に勝利をしたことで大きな話題を呼びました。
そんなAlphaGoには、Googleが開発したディープラーニングと強化学習を組み合わせた深層強化学習が活用されています。囲碁だけでなくさまざまなゲームにおいて圧倒的な強さを発揮しており、もはや深層強化学習の知名度を高めるきっかけとなった存在と言っても過言ではありません。
AlphaGoには、「モンテカルロ木探索」と呼ばれる探索型AIが搭載されています。このAIは、「統計的に勝つ確率の高い一手」を算出することを目的としたもので、囲碁のように「明らかな正解が存在するケース」に対応可能です。
ただし、モンテカルロ木探索は、ある程度盤面の選択肢が絞り込まれた状況でなければ使用することができません。そのため、「盤面評価」と「戦術予測」を実行する「深層強化学習を搭載したAI」を活用し、分析を進めていくわけです。
そんな優れたAIを搭載するAlphaGoですが、現在は進化版として「AlphaZero」というものも登場しています。この「AlphaZero」は、AlphaGOを破ることにも成功しており、チェスや将棋といった別の種目にも対応していることから大きな注目を集めているのです。今後どのレベルまで成長を続けるのか、期待を寄せられています。
レコメンドサービスやレビュー管理サービスなどを提供している「ナビプラス」では、自動最適化機能に強化学習を活用しています。
ナビプラスが提供するサービスの一つに「NaviPlusレコメンド」というものがあります。このサービスは、Webサイトのパーソナライゼーション強化を支援することが目的です。
そのWebサイトにとって最適なレコメンドを実現するためには、一連の行動結果を踏まえた上で、より価値のある行動を学習していく仕組みが欠かせません。その仕組みを実現することができるのが、強化学習なのです。
たとえば広告を表示させるとき、「AとBどちらが高いクリック率を実現できるか」という点においては、初めから正解が存在するわけではありません。実際に試しながらデータを収集していく必要があります。
「実際に試して得られる報酬を最大化するための戦略」を練る上で、強化学習は非常に重要な役割を担っているのです。

コンテンツのレコメンドにも、強化学習は活用されています。例えばNetflixでは、「流行」「視聴率」「ストーリー性」「離脱率」といったさまざまなデータをAIに学習させ、ユーザーごとに最適なコンテンツをレコメンドする仕組みとなっているのです。
そのため、「ユーザーが満足しそうなコンテンツ」が優先的に表示されるようになり、より満足度を高めやすい環境が実現されています。Netflixではオリジナル作品の制作にも力を注いでいるため、今後データが蓄積されることによって、よりユーザーに適した作品が増加していくことも期待できるでしょう。
強化学習に限らず、AIや人工知能でできることを詳しく知りたい方は以下の記事もご覧ください。
AI・人工知能ができること、できないこと。人間にしかできない仕事は?
強化学習などの機械学習を行う際、プログラミングは避けては通れません。強化学習においては、Pythonが適しているプログラミング言語だと考えられています。
本章では、Pythonが強化学習に適しているプログラミング言語だと考えられている理由について確認しましょう。
Pythonは構文のシンプルさと可読性の高さが特徴的なプログラミング言語です。
強化学習は複雑なアルゴリズムを組み合わせることが求められます。そのため、簡潔に表現できるPythonの直感的な構文は、強化学習の実装に向いています。
Pythonは機械学習や強化学習に必要なライブラリが非常に充実しています。
よく用いられるPythonのライブラリは以下の通りです。
これらのライブラリを利用することで、複雑な計算や処理を簡単に効率的に行うことができます。多様なライブラリにより、アルゴリズムを構築しやすいという点でPythonは強化学習に向いていると考えられています。
Pythonは特定の地域だけではなく、世界中で広く使われている言語です。
そのため、Pythonによる機械学習や強化学習の実装例も多く、学習の参考にすることができます。また、質問や問題が発生した際には、多くの質問サイトでも解答を得ることができます。
このような幅広いサポートが既に整っているため、強化学習においてPythonが適しているプログラミング言語だと考えられています。
pythonの学習について詳しく学びたい人は以下の記事もご覧ください。
【初心者向け】Pythonは独学できる?学習の流れとおすすめの勉強法
強化学習が本格的にビジネスに活用されるようになるのは、もう少し先の話かもしれません。しかし、機械学習の手法の中でも最先端であり、特に注目を集めている存在であることも事実です。今後どのような進化を遂げていくか、ますます目が離せません。
AIについて詳しく知りたい方は以下の記事もご覧ください。
AI・人工知能とは?定義・歴史・種類・仕組みから事例まで徹底解説
強化学習とは、機械学習のアルゴリズムのひとつであり、「システム自身が試行錯誤を繰り返して最適なシステム制御を実現していく仕組み」のことを指します。機械学習には、教師あり学習や教師なし学習のように、明確なデータをもとにした学習方法も存在しますが、強化学習の場合は明確なデータをもとにするわけではありません。
強化学習には、Q-Learning、SARSA、モンテカルロ法という3つのアルゴリズムが存在します。
強化学習でできることの例として、以下が挙げられます。
業務の課題解決に繋がる最新DX・情報をお届けいたします。
メールマガジンの配信をご希望の方は、下記フォームよりご登録ください。登録無料です。
AI製品・ソリューションの掲載を
希望される企業様はこちら