機械学習の一種ですが、教師なし学習に含まれます(ただし、教師あり学習にも教師なし学習にも含まないという説もあります)。日常の学習にあてはめるならば、「習うより慣れよ」、「体得」することで理解する学習方法に似ています。Learning)は、トレーニングによる試行錯誤からはじまり、直近の目標を達成して次のレベルを目指すことを繰り返しながら上達していく学習方法に似ています。コンピュータは人間が作成したプログラムの内容を正確に実行することに長けていることはご存じだと思います。プログラムの多くは英数字を使ってコードで記述されることから、プログラムを作成する作業を「コーディング」(Coding)と呼びます。コンピュータでは一般に、基本的な処理手順はもちろん、様々なケースを想定してそれに応じてあらゆる対処・処理の方法をプログラマーが記述していく必要があります。人間もマニュアルに従って行動したり、学習したりしますが、コーディングとはそのマニュアルのようなもので、コンピュータにとっては行動の規範になる最も重要なものです。言い換えれば、マニュアルに書かれていないこと、プログラムに記述されていないことには、対処できません。人間の学習の中にはマニュアルに記述できないものもあります。自転車に乗ることを考えてみましょう。マニュアルに自転車の乗り方が載っていて、それを読んだとしても自転車に乗れるとは限りません。実際に自転車に乗って目的地まで移動できるようになるには、自転車の乗り方を十分に体得する必要があります。子供の頃、何度か転びながらも、1mから5m、10m、50mと少しずつ自転車で移動できる距離が長くなっていき、やがて完全に乗るコツを理解した経験がある人も多いと思います。「強化学習」も同様です。コーディングによって記述するのではなく、機械に試行錯誤させて失敗と成功から学習していく方法です。ところが、ただ膨大な訓練問題を渡して機械にやらせたとしても、機械には何が成功なのかがわからず、それでは学習もはかどりません。学習目標として、成功と判断するための要素を何か与える必要があります。そこで成功や成果に対してスコアを与えます。これを「報酬」や「得点」と呼びます。自転車の例で言えば、1m走って転倒するより、10m移動できた方が高いスコアとします。長時間、転ばずにバランスをとり続けたらもっと高いスコアを与えます。コンピュータはスコアが高いほど成功したと見なし、実行を繰り返すことでより高いスコアが得られる方法やルールを自律的に学習できるようになります。「強化学習」は、開発の上ではとても効率的な一面があります。自転車に乗れるロボットを開発する場合、プログラミングやコーディングで姿勢の制御を行おうとした場合、左右や前後の傾き、速度、重心、ペダルに対する脚力のオン/オフなど多くのセンサーと連携して情報を細かく分析し、あらゆる体勢を考慮に入れて、バランスやペダルをこぐ力を調整するプログラミングが求められるでしょう。考えただけで気が遠くなる思いです。雨が降った後で路面が滑りやすいとか、自転車そのものが完全に直進せずにやや右に曲がるくせがある等、あらゆる事態を想定してプログラミングすることが理想ということになります。実際にやってみて微調整や修正等の繰り返しも必要でしょう。これを強化学習で行うと、人間があらゆる状況や事態を想定してプログミングするのではなく、センサー等の情報を元に、最適なバランスを取る方法や転ばずに前に進む方法などを自律的に学習して修得させることもできるかもしれません(転ぶたびにロボットが壊れていては効率が良くないので、転ぶ直前までで学習させる方法が必要ですが)。バランス制御やそれを機械が修得するのに長時間かかったとしても、ロボットが自律的に学習するのであれば、放っておけば自律的に学習するので、人的な開発コストや労力は大幅に削減することが期待できます。強化学習の説明を読むと難解な表現が並んでいて、難しい印象を受けることが多いと思います。Wikipediaでは「ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する問題を扱う機械学習の一種。エージェントは行動を選択することで環境から報酬を得る。強化学習は一連の行動を通じて報酬が最も多く得られるような方策(policy)を学習する」とあります(2016年5月時点)。意味を簡単に解説します。強化学習で重要となるワードです。ラットやモルモット等の実験例で「スキナーの箱」を使った説明がよく知られています。あるボタンを押すと透明のエサ箱からエサが流れ出てくるという仕掛けを設置したゲージにラットを入れたとします。ラットはエサを見つけて興奮しますが、透明なエサ箱に入っているので食べることができません。そのため、最初はどうしていいかわからず、どうにかしてエサを得ようと透明なエサ箱を動かそうとしたり、かじって壊そうとしたりするでしょう。あるとき偶然にもボタンを押すことによってエサを得ることができます。何回かその体験をすることによって行動パターンが強化され、やがてボタンを押すことでエサが得られるというルールを学習します。このときのラットが「エージェント」、仕掛付きのゲージが「環境」、かじったり動いたりが「行動」、成功して得られるエサが「報酬」です。この4つの要素を設定し、コンピュータに繰り返し学習と経験をさせることが強化学習のポイントです。「報酬学習」(オペランド条件付け)の説明でも有名な例「スキナーの箱」。ラットの例での報酬は、エサがもらえる、エサが食べられるということでしたが、行動によっては痛い思いをすることがあるかもしれません。透明のエサ箱に登ってみたら滑って落ちて痛かったとか、エサ箱をかじったら歯が痛かった等です。行動によっては報酬が達成できなかっただけでなく、かえってマイナスの結果を生む場合もあります。自転車で転んだ経験もエサ箱から落ちた経験も、それを体験することでスコアがマイナスになることをやがては理解し、次からはそうならないように学習します。これらの経験を繰り返せば繰り返すほど、生物はおそらく「賢者」になっていきます。それと同様にコンピュータもまた、トレーニングを繰り返すほど経験を積んで賢くなると考えられます。生物と異なり、コンピュータは同じような対戦やトライを繰り返しても苦になりませんし、疲れることもありません。数をこなすには時間はかかるものの、放っておくだけで時間の経過とともに学習していくという強みがあります。強化学習で強くなったAlphaGo「AlphaGo」は、自動で対局する「強化学習」を行って強くなりました。実際にAlphaGoは、人々の漠然とした予測よりはるかに短い期間で多くのことを学習し、予測よりずっと早い時期に世界的なプロ棋士に勝利したと言えます。これは機械学習の可能性を証明した出来事になりました。ここまで本書を読んだ皆さんは、もう「人工知能が人間を超えた」という表現には、きっと違和感を覚えることでしょう。戦ったのは人工知能というよりは「機械学習によって賢くなったコンピュータ」であり、人工知能ではないのです。「瞬く間に人間の知能をAIが凌駕するのでは?」と心配する人もいるとは思いますが、これも現時点では的を射ているとは言えません。囲碁におけるディープラーニングの活用や強化学習による訓練が、専門家の予測よりもずっと効果的に作用して、実用的だったと捉えるのが妥当で、「人工知能、恐るべし」という思いに繋げる必要はありません。強化学習では最初、コンピュータ同士で対戦させてある程度のスコアが実現できるようになると、次はプロ級のプレイヤーと対戦させて新しい発見をさせたり、プロが指した手を高スコアの基準として加えたりして経験させていきます。相手が人間だとプロ級のプレイヤーが何人いても疲れてしまいますから、ある程度までいったら再びコンピュータ同士や自分との対戦を行います。これは何億回繰り返しても人的な負担にならず、繰り返すほど様々な着手や経験を学習していきます。1600円(税別)2016年3月、Googleの開発した人工知能(AI)が、囲碁のトップ棋士を破ったというニュースが流れ注目を集めました。実はいま、囲碁に限らず、さまざまな分野で人工知能の技術が急速に導入されはじめています。本書は、人工知能の関連技術、特に機械学習やニュートラルネットワークの仕組みなどの基礎知識や最新情報をわかりやすく解説します。AIの主要プレイヤーであるIBMやMicrosoft、Googleなどのビジネスへの活用事例も紹介します。「AI」「機械学習」「ディープラーニング」は、それぞれ何が違うのか「AI」「機械学習」「ディープラーニング」は、それぞれ何が違うのか。GPUコンピューティングを推進するNVIDIAが、これらの違いを背景および技術的要素で解説した。Learningが人工知能の裾野を拡大。ビジネス、社会、エンジニアはどう変わるのか?「アクションを起こすスピード」「イノベーティブな製品・サービス」が企業競争力の源泉になりつつある中で、人工知能が今あらためて大きな注目を集めている。事例やインタビューを通じて明らかにする。准教授がプレゼンテーションを行った。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。