Pepperや自動運転車などの登場で、エンジニアではない一般の人にも身近になりつつある「ロボット」。ロボットには「人工知能/AI」を中心にさまざまなソフトウェア技術が使われている。本連載では、ソフトウェアとしてのロボットについて、基本的な用語からビジネスへの応用までを解説していく。今回は、人工知能つまりコンピュータが「機械学習」という技術を使って、どうやって学習していくのかについて具体例を交えて解説する。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍『図解入門 最新 人工知能がよーくわかる本(2016年7月4日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「人工知能とは何か――強いAIと弱いAI、チューリングテストとチャットボット、中国語の部屋」はこちら
機械学習では、どうやって学習したり、訓練したりするのでしょうか? 代表的な学習の仕方が、機械に質問と回答を同時に教える方法です。下図の例で言えば、犬の画像に「分類は犬である」という正解を付けたデータを分析させます。これを「ラベル付きデータ」(正解付きのデータ)と呼びます。
では、正解がわかっているのに機械は何を分析するのかというと「どうしてそれが犬に分類されるのか?」ということを考えさせるのです。つまり機械に「特徴量」を自ら発見させる→それは「犬」に分類される→その特徴量のものは「犬」である、ということです。
しかし、画像を一枚だけ解析して特徴量を覚えたシステムだと、ほかの犬の画像を見せても、よほど似た犬の画像でなければ同じ犬の種類だとは判別できないでしょう。では、犬のラベル(正解)付きデータ画像を、仮に1000万枚読み込ませて訓練させたとしたらどうでしょうか。1000万通りの犬の特徴量を学習すれば、膨大な特徴量から照合することで、「犬」を識別できるようになる確率は高くなるでしょう。
これがニューラルネットワークの勉強法(のひとつ)であり、学習するためには膨大なビッグデータが必要になる理由です。この犬の例のように、ラベル付きのデータで学習させる方法を「教師あり学習」と呼びます。
機械学習には「教師あり学習」(Supervised Learning)のほかに「教師なし学習」(Unsupervised Learning)があります。
教師あり学習は、この画像は犬であるとか、この場合の1時間後の株価はいくらである、というように入力データと正解が1対1で紐づいている訓練データを使って学習することです。
「教師なし学習」は、入力画像はあるけれど、その正解データは与えられないものです。予測は未来のことなので正解はありません。このように推論、分析など、正解がない、正解が解らない問題で学習することを教師なし学習と呼びます。
教師あり学習と教師なし学習を混在させる方法もあります。まずは機械に対して教師あり学習で特徴量を学ばせて、それ以降は教師なし学習で膨大な訓練データを与え、自動的に特徴量を算出させながら繰り返し学習する方法です。これを「半教師あり学習」(Semi-Supervised Learning)と呼ぶこともあります。
機械学習の用途や利用法によって、最適な学習方法も異なりますので、最もパフォーマンスが上がると見込まれる学習プロセスを利用することが重要です。
「教師あり学習」は、すでに述べたように、ラベル付きのデータで学習させる方法です。
前述の「犬の画像に『分類は犬である』という正解を付けたデータを分析させ、特徴量を学習させる」という例も、典型的な教師あり学習です。
同様に、手書きの文字や数字を機械が判定するシステムを例に見てみましょう。
入力は、手書きの文字や数字をスキャンした画像です。出力(回答)は、その画像を認識した結果ということになります。教師あり学習で機械学習を行う場合、手書きの文字画像に正解を付けて入力します。
楷書で書かれた文字や数字は機械にとっても正しく識別しやすいのですが、崩して書いた文字の判別は機械にとって最初はとても困難です。特に「2」や「7」は形状が大きく異なるものも実社会では普通に使われています。このように明確な正解があって、その正解率を向上させるには、教師あり学習が適しています。
例に挙げた数字が同じ「2」や「7」であることをコンピュータになんの情報もなく学習させるより、正解がわかっていて特徴量を理解させる方が効率的です。崩して書かれた文字と正解のある訓練データ(Labeled Data)を予めいくつかのパターンで用意しておいて学習させます。
やがて任意の手書きデータを入力するとコンピュータは数字を識別できるようになります。次の段階では、例えばより多くの手書き画像を入力してみてコンピュータの判定結果をディスプレイに次々に表示させ、それを見て人間が正しく認識できたかどうかを確認(採点)します。間違っているなら正解は何か、を教えることで、特徴量を新たに覚えていきます。
「教師なし学習」は、正解のないデータで機械学習を行うことです。正解がない予測や分析、解析等の分野で使われたり、膨大なデータの中からコンピュータ自身に何かを発見させたり、膨大な訓練データを繰り返して学習させたりする際などに用いられます。
教師なし学習はコンピュータに画像や音声、数値など膨大なデータを読み込ませて、特徴量を求め、それに従ってパターンやカテゴリーに自動分類したり、クラスター分析、規則性や相関性、特徴、特異性、傾向等を解析させたりします(主成分分析、ベクトル量子化/標本化サンプリング等)。
また、データマイニングなど、未知のデータの特徴を発見したり予測したりする分野では、必然的に教師なし学習の手法をとるケースが多くなります。
なお、教師なし学習を行う場合でも、最適と思われる初期値を与えて学習をはじめた方が効率的と言われています。
訓練データ | 方法 | 長所/短所 | ||
---|---|---|---|---|
教師あり学習 | ラベルあり (正解付き) |
正解付きデータを機械に自動的に解析させ、算出した特徴量を正解に分類させることで正解と特徴量の関係性を学習する。ものの認識や解析等を行う定義を導いたりする | 分類問題では効率的に学習できる。初期段階では学習成果を出しやすい。膨大なラベル付きデータを用意するのに手間がかかる | |
教師なし学習 | ラベルなし | 膨大なデータを自動的に解析させるが、正解がないので算出した特徴量から構造、法則、傾向、分類、定義などを導き出す。傾向分析、未来予測などにも応用できる | 機械自身が特徴や定義を発見するため、データが膨大にあれば、ラベル付きデータを用意する必要や手間がない。正解がない代わりに報酬(得点)などを設定する必要がある。オートエンコーダなどで事前学習を行った方が効率が良い場合が多い | |
機械学習の事例として有名なものに「Googleの猫」があります。この事例では、YouTubeの動画データを中心に膨大な量の画像データを一週間、教師なし学習させることで、コンピュータが「猫」を認識するようになったとされています。一般に、「猫」を判別するシステムを作りたい場合、前述のように教師あり学習で「猫」の正解付き画像をたくさん見せる学習方法をとります。しかし、Googleの猫は画像や映像を教師なし学習で解析させ、「猫」という存在を認識したというから驚きが走ったのです。
その後、教師あり学習で訓練を行って画像認識精度を向上させました。分類機を作ってこのニューラルネットワークを評価すると、従来の認識率より相対比70%以上の精度向上が見られたといいます。ディープラーニングは、とりわけ画像や音声の認識には大きな成果を上げていて、多くの分野で実用化が始まっています。画像や音声認識以外でも、会話チャットボット、さまざまなデータ分析や予測等で活用される見込みです。
世紀の囲碁対決で知られるGoogleの「AlphaGo」は、まずインターネット上の囲碁対局サイトにある3000万「手」に及ぶ膨大な棋譜データを読み込ませて学習させました。最初は人間が教える言わば「教師あり学習」です。しかし、それでは学習データが足りないということで、次にAlphaGo開発チームはコンピュータ同士で囲碁の対局を自動で行わせました。教師なし学習で経験値とも呼べるデータを新たに学習・蓄積させました。その対局数は3000万「局」とも言われています。これが「強化学習」で、キーワードとしても注目されました(「強化学習」については次項で解説します)。
また、Google DeepMindの「DQN」は、ブロック崩しゲームのルールをコンピュータが自分で学習し、人間よりも高得点が得られるようになりました。この例では教師なし学習が最初から用いられました。コンピュータは最初、意味もわからず落ちてくるボールを見過ごしていましたが、偶然ボールをはじいてブロックに当たったことで得点が入ることを学習します。このように、教師なし学習では機械がただ漫然と解析を繰り返すのではなく、正解やステップアップのための目標が必要になります。
そこで重要になるのが「報酬」です。テレビゲームで言えば得点や「クリア報酬」みたいなものですが、機械学習ではこの得点を与えることが重要となります。そのしくみは後述します。
Copyright © ITmedia, Inc. All Rights Reserved.