スマートフォン版で表示

現在、お知らせはありません。

強化学習のイメージ

強化学習とは?機械学習との違いなどの用語解説や活用事例などをご紹介

AI(Artificial Intelligence:人工知能)に関する用語には「○○学習」という言葉が多くあります。ここでは「強化学習」(Reinforcement Learning)について解説します。強化学習とは簡単にいえば、試行錯誤を繰り返して最適な行動や操作を決定していくAIの学習アルゴリズムです。

機械学習を始めたい人のための入門セミナーを開催します(無料)

このエントリーをはてなブックマークに追加

強化学習とは

AIの定義は難しく、さまざまな視点での分類・定義が存在します。ひとつは、事前にプログラムされたアルゴリズムをトレースするのではなく、入力に対して、パターンや特徴を抽出して、特定の値を出力する特殊な関数とする考え方です。この考え方でAIを実現する技術のひとつに機械学習があります。

用語の整理

機械学習には教師あり学習と教師なし学習がある、ということを聞いた方もいることでしょう。それ以外に、ディープラーニング、深層学習、強化学習、深層強化学習といった用語を見かけることがあるかもしれません。これらの用語を整理しておきます。機械学習を入力に対してある答えを出力する関数としてとらえると、以下のような分類になります。

機械学習(Machine Learning)

  • 教師あり学習(Supervised Learning):正解を用意した学習データを処理させ、正しい答えを出力させる
  • 教師なし学習(Unsupervised Learning):入力データのパターンや特徴を計算処理によって抽出する
  • 強化学習(Reinforcement Learning):出力に対してスコアをフィードバックすることでスコアを最大にさせる

深層学習:ディープラーニング(Deep Learning)

人間の脳の神経細胞のつながりを再現した、ニューラルネットワークを利用した機械学習のこと。深層強化学習はニューラルネットワークを使った強化学習を指す。単に強化学習といった場合、ニューラルネットワークを利用したもの、つまり深層強化学習であることが多い。

機械学習の種類

ここで注意してほしいのは、深層学習またはディープラーニングは、機械学習の「関数」の計算に利用する手法のひとつであるということです。つまり、教師あり学習・教師なし学習・強化学習のどの手法にもニューラルネットワークを適用することは不可能ではありません。

また、画像認識やデータ解析(予測)のような特定タスクではなく、完全自動運転やロボットの総合的な制御には、ニューラルネットワークを利用した強化学習の研究が進んでいます。

強化学習の基本機能

強化学習は、AIが処理した結果に対して「報酬(スコア)」を与え、報酬が最大になる処理方法を学習させる手法です。では、コンピュータはそれをどうやって実現しているのか、技術的に見ていきましょう。

強化学習

強化学習では、教師あり学習・教師なし学習のように事前に用意した学習データを使いません。エージェント(Agent)と環境(Environment)という2つの機能を利用します。エージェントは、いわば開発したいAIモデルです。エージェントは環境から「状態」を入力として受け取ります。環境にはシミュレータを使うことも多く、エージェントが環境からの入力を受けることを「観測」ということもあります。

強化学習の機能を紐解く

環境を観測したエージェントは、それに応じた出力、またはランダムな出力を返します(行動を起こす)。どんな出力をするのか、どんな操作、行動をするのかは、開発対象がロボットの制御なのか――基本的にはどれも関数が出力する数値や符号(コード)ですが、その値や意味は開発したいAIがブロックくずしゲームなのか、囲碁や将棋のプログラムなのかによって変わります。

環境はエージェントの出力を受け取って、その反応として新しい状態を返します。このとき、状態によって「報酬」もエージェントに与えます。報酬(Reword)はスコアなどとも呼ばれ、数値情報です。エージェントは環境を観測して、なんらかの行動を起こし、報酬が最大になるような行動を選択していきます。

行動に対する評価と報酬(ときには罰則となる)の関係は、人間が考えてパラメータとしてAIに与えます。強化学習において機能と制度を決定づける重要なチューニングポイントとなります。

強化学習における学習とは試行錯誤

強化学習では、この繰り返しによってエージェントにどんな行動を起こせば効果的にタスクを達成できるかを学習させます。ロボットなら倒れず歩くためのサーボモーターの制御、ブロック崩しゲームならボールを落とさず多くのブロックを消すためのパドルの操作を、人間がプログラムするのではなく機械(エージェント)に試行錯誤させるのです。

例えば、歩行のため、片足を前に出すモーターを動かしたらバランスを崩して倒れたとします。報酬は得られないかマイナスになります。次は別のモーターを動かしてみます。それが軸足の重心をずらす制御で倒れなかった場合、報酬が上がるのでその操作を有効なものとして制御に取り込んでいきます。

強化学習において処理の基本となるのは、環境を観測して次の行動を選択・決定するアルゴリズムや手法です。環境が与える情報の量はまちまちです。オセロゲームであれば、開始直後は情報が少ない状態です。

盤面が進むほど石の数や地位、配置などが多様になります。このときの盤面の把握・評価に回帰分析や確率論のような数学的手法、あるいはニューラルネットワークによる評価を行います。

試行錯誤を決める2つの関数

エージェントは報酬によって行動パターンを学習すると説明しました。そのための最初の行動はどうやって決めているのでしょうか。その後、報酬を最大にするための行動はなにを基準に決めるのでしょうか。

冒頭で説明したように、強化学習も「関数」としてとらえることが可能です。エージェントは環境から値(状態)を入力として受け取って、次の行動を出力する関数です。環境もエージェントの行動を入力として受け取って、新しい状態を返す関数といえます。

静的なデータを使って学習するAI(教師あり学習、教師なし学習)と違って、強化学習は関数の出力結果(報酬)によって次の処理を調整していく動的な学習といえます。

報酬を最大化させる

報酬をもう少し詳しく定義すると「エージェントのランダムな行動に対する環境の反応の評価」ということができます。

報酬を最大化するというのは、エージェントがランダムな行動をとらなかったときの状態変化(これを「価値」といいます)と、ランダムな行動をとったときの状態変化(価値)を比較して、価値が高かったほうを「方策(うまくいった一連の行動)」として採用します。

価値を計算するのは状態価値関数と行動価値関数という2つの関数です。状態価値関数はランダムな行動をとらなかった場合の価値を計算します。行動価値関数はランダムな行動をとったときの価値を計算します。この結果、行動価値関数のほうが高かった場合、ランダムな行動は正しい行動として方策に組み込まれていきます。

結果として、AIは盤面ごとの勝ちにつながる打ち手や、ロボットが歩行するためのモーターの制御方法を学習することができます。

強化学習の得意分野

機械学習は、センサー入力や状況を判断する変数が多く、プログラムではアルゴリズムの記述が難しい用途に向いています。その中で強化学習は、ゲームの操作や複雑なパズル、ロボットの歩行やアームの制御、自動運転などが得意分野とされています。

オセロやチェス、将棋なども古くからコンピュータプログラミングや人工知能の応用分野として研究されてきました。囲碁において、人間の有段者と互角かそれ以上の実力を持つ「AlphaGo」は、ニューラルネットワークを利用した強化学習によるAIです。

強化学習の「環境」は、コンピュータ上ではシミュレータが利用されます。そのため、現実世界をモデル化する必要がある分野での活用が広がっています。ロボットや自動運転が代表例であり、実際にニーズも高まっている分野です。

人との協働が求められるロボット

例えば、産業ロボットでは人間と協働作業できるものが注目を集めています。従来の産業ロボットは、比較的大型で作業エリアに人が立ち入ることができません。アームの動きは正確ですが、事前に綿密にプログラムしなければなりません。

これは、プログラム以外の動作ができないということです。つまり、エリア内に人間や障害物があっても動作を変えることができず、システムを停止させるしかできないということです。

近年は、強化学習などで学習させたロボットを人間の近くで作業させる取り組みが進んでいます。人のランダムな動きに対応でき、お互いの作業を干渉しません。それどころか、ロボットが部品を押さえる、工具を手渡ししてくれるといった手伝いもできるようになります。部品の材質や重さ、形状によってつかみ方、握力を調整するといった制御も、従来はプログラミングがほぼ不可能でしたが、強化学習によるAIが実用化の道を開きつつあります。

自動運転やフィンテックへの応用

自動運転というと乗用車の自動運転やロボットタクシーを思い浮かべがちで、身近な範囲で考えると実用化からはまだ遠く感じますが、倉庫や工場で稼働している無人の搬送車、台車への応用はかなり進んでいます。床の上のラインや磁気マーカーをトレースする無人搬送車(AGV:Automatic Guided Vehicle)は古くから存在しましたが、センサー情報を頼りに自律的に走行可能なAGVがすこしずつ広がっています。

ロボット以外では、金融取引での応用の研究も進んでいます。株や為替の取引は、株価やレートの統計的な処理だけで予測精度を上げるには限界があります。社会情勢や天候や災害、あるいは大きな事件など、なにが経済や株価に影響を与えるか分からない時代です。実社会と密につながるクラウド(サイバーフィジカルシステム)からのビッグデータを、AIに処理させ経済や株価の予測ができないかという取り組みです。

強化学習の課題

強化学習においても、ほかの機械学習と同様に学習にかかる時間、適切なデータの用意(強化学習においては適切なシミュレータ環境)、パラメータや関数の調整の問題があります。深層学習との組み合わせで、さまざまな手法の改善、改良が世界中の研究者やAIエンジニアによって行われています。

ゲームAIをだます?

技術的な課題は多いのですが、ここでは深層強化学習における摂動の問題を取り上げます。摂動とはいわば相互作用のことで、AIの入力を工夫することで、ニューラルネットワークの評価処理になんらかの影響が発生する現象を指します。

もちろんAIが入力の状態に影響を受けるのは正しい動作です。設計者や利用者が意図しない影響(摂動)が問題なのです。オセロや将棋の例でいうなら、人間でもAIでも考えにくいような特定の打ち手の組み合わせをした場合に、自分が負けるような手を打ってしまう状態です。

通常は、このような反応はAIの精度を下げるので、学習段階で入念に排除されるものです。しかし、仮に入力データに「ノイズ」のような細工を施すことができれば、AIをだますことが可能になります。2020年のBlack Hat USA(世界的なハッカーのカンファレンス)では、オンラインゲーム(StarCraft)のAIをだます研究論文が発表されています。現状、ハッカーの意図通りに人工知能を操ることは難しいですが、ゲームの妨害くらいは可能です。

また、稼働中のAIのデータは今後の学習データに使うため保存、利用されることがあります。このとき、摂動データを含んだログが利用されると、次の学習に影響がでてしまい正しい学習・調整が困難になります。

シンギュラリティは起きるのか?

AIの課題や問題として、一般的な話題に「シンギュラリティ(技術的特異点)」があります。ある時点でAIが人間と同等または超える能力を持つことで、人間を基準とした社会が劇的に変わってしまうことです。

特定業務やタスクにおいて、AIやコンピュータはすでに人間の能力を超えているので、シンギュラリティが問題にする「人間と同等または超える能力」というのは、人間のように思考や感情を持ち、自力で学習し、学習しなくても新しいものを生み出したりすることです。

想定される変化は、人間とAIの力が融合し双方の進化が加速するというものから、(SFにあるような)AIによる反乱まで多種多様なものが考えられます。

シンギュラリティは起きるのかどうか、今のところ答えはまったく分かりません。そもそも、シンギュラリティは来ないと主張する学者や専門家もいます。また、人間の思考や感情の定義を数値化(モデル化)できなければ、それと同等か超えたのかも測定できません。

哲学的論争、思考実験やディベートのテーマとしては興味深いもので、議論する意義はありますが、シンギュラリティが起こるとしたら、おそらく自動化ツールや思考支援としてのAIの研究開発とは違う分野の技術との融合が必要なのではないかという声があります。

シンギュラリティの議論では、いまのAIを進化させた「汎用AI」の実現が不可欠とされています。汎用AIとは、意識を持ったAIということもできます。意識というのは、単に環境や状況を認識した反応をするのではなく、知識や知見を活かした推論や仮説を立てその検証ができることで生まれるとされています。

環境を認識した反応というのは、いわば機械学習(とくにディープラーニングや強化学習)で鍛えられたAIが犬や猫の写真を認識できる状態です。学習した犬・猫は判定できますが、そうでないものは「それ以外(該当なし)」としか認識できません。しかし、人間なら犬・猫が識別できれば、それ以外のもの、見たことがないものでも動物なのか植物なのかといった判断が可能です。

汎用AIの実現には、既存の機械学習技術だけでは難しいと考える専門家は少なくありません。ニューラルチップなどのデバイス技術、認知科学、脳科学との融合による研究が各所で進められています。

※参考: The Consciousness Prior

まとめ

この記事では、機械学習に興味を持ち始めた方に向けて、強化学習の基礎をお伝えしてきましたが、本記事をお読みの方の中には、より具体的な技術を学んでいる方もいることでしょう。

もし、機械学習に関する技術を学び、転職も含めてキャリアに活かしたいとお考えなら、転職エージェントを利用するのも一案です。

dodaエージェントサービスでも、機械学習に関する求人の市場感や具体的な求人探し、面接対策など、転職活動のお手伝いをいたしますのでぜひお気軽にご相談ください。

この記事の監修者

技術評論社 デジタルコンテンツ編集チーム

理工書やコンピュータ関連書籍を中心に刊行している技術評論社のデジタルコンテンツ編集チームでは、同社のWebメディア「gihyo.jp」をはじめ、クライアント企業のコンテンツ制作などを幅広く手掛ける。

自分の強みや志向性を理解して、キャリアプランに役立てよう
キャリアタイプ診断を受ける
ITエンジニア専任のキャリアアドバイザーに無料で転職相談
エージェントサービスに申し込む(無料)
キャリアプランに合う求人を探してみよう
ITエンジニア求人を探す

関連コンテンツ

このエントリーをはてなブックマークに追加

あなたの可能性と出会えるキャリアタイプ診断
ハイクラス転職サービスdodaX