2018年6月21日木曜日

AIと機械学習とディープラーニングは何が違うのか

1.はじめに

 最近、ニュースや書籍などでAIという言葉を見聞きすることが多い。人手不足の救世主のように扱われたり、人の仕事を奪う悪魔のように書かれるが、その実体はいまひとつ分かりにくい。ましてや、自分の携わっている仕事に対して、具体的に何をしてくれるのかが分からないという声をよく聞く。

 もう1つややこしいのは、その呼び名である。AI、機械学習、ディープラーニング、それぞれが何のことなのか、どんな関係なのか不明なまま、なんとなく人に聞けなくて腑に落ちない。この記事では機械学習を中心に、その実体を説明したい。

2AIとは

 AIとはArtificial Intelligenceの略、日本語にすれば人工知能、古くて新しい言葉だ。人間のように賢い知能をコンピュータで構築できたらという夢は、過去にも何度かブームになっては消えていった。

 実はAIそのものに、正式な定義があるわけではない。ちょっと気の利いたアプリケーションやサービスを使うときには、AIのお世話になっているのだ。皆さんが文章の入力に使っている日本語入力も、前後の言葉や使用頻度を勘案して文字を変換しているAIのアプリケーションの1つである。一昔前は、AI変換と呼ばれることもあったくらいだ。また将棋、チェスや囲碁などのコンピュータゲームで対戦相手をしてくれるアプリケーションもAIの一種だろう。

 このようにAIとは、人間のように「知的に見える」アプリケーションの呼び名でしかない。その中のロジックがどうなっているかは問われていない。単に膨大なデータベースから取り出しているだけかもしれないし、後に説明する機械学習を使っているのかもしれない。

3.なぜ今、AIが盛り上がってきているのか

 古くからAIを実現するための研究は進められていたが、最近になって盛り上がりを見せているのは、次の4つの理由がある。

 1つ目は、コンピュータの処理能力および記録容量の飛躍的な増大と、その利用コストの劇的な低下である。2つ目は、Webサービスやスマートフォンの普及により、AIの学習や利用に必要となるデジタル化されたデータ量が激増したことだ。3つ目は、マーケティング、広告や通信販売などでビジネスに大きなインパクトを与えたことになる。商品のレコメンド、適切な広告のマッチング、そして顧客の行動のカテゴライズというように、最近のWebサービスやスマートフォンを対象としたサービスでは不可欠といっても良い重要な機能をAIが担うようになっている。そして4つ目は、ビジネス界からの実運用のフィードバックと金銭的なバックアップにより、優秀な研究者やエンジニアがAIに取り組んでアルゴリズムを改良したり、優れたソフトウェアが次々と開発されていることだ。これらの好循環により、AIは過去に例を見ないほど盛況を博しているのだ。

 AIの盛り上がりは産業界にも波及してきている。これまでAIの利用用途の中心は、スマートフォンを中心としたコンシューマー向けITサービスだった。グーグル(Google)、アマゾン(Amazon)やFacebookといった多くの利用者を抱えるサービスは、大量に集められた個人の行動や情報といったデジタルデータを分析することで、マーケティングや広告に活用することで支えられている。

 しかし、ITの恩恵をそれほど受けてこなかった産業界、とりわけ製造業やサービス業にもAIの波が押し寄せようとしている。IoT(モノのインターネット)によりデジタル化されたデータを集められるようになったからだ。特に日本では、急速な人手不足と熟練作業者の高齢化が重なるため、データ活用による省力化に向けた取り組みは待ったなしの状況にある。タイミング良く、一般エンジニア向けのツールが登場してきておりハードルも徐々に下がってきたことも後押ししている。

4.機械学習で分かるのは「相関」であって「因果」ではない

 機械学習というのは、大規模のデータを統計的なアルゴリズムを使い予測に役立てる技術のことだ。最近のAIで使われる中で最もポピュラーな技術である。大量のデータに対して、統計的な分析やシミュレーションを組み合わせることで、対象となる物事をコンピュータが自動的に分析/予測できるようになる。

 ただし、「統計的な分析」なので、事物を理解するわけではない。あくまで、データで表現されている数値の推移の予測や文字列または画像の分類を行う。これも正式な定義は無いが、対象の理解に重きを置いているのが統計分析で、将来の予測を重視しているのが機械学習である。

 重要なポイントとなるのは、機械学習で判明するのは「相関」であり「因果」ではないということだ。相関ということは、複数の変数に関わりがあることは示せるが、本当に関係しているかどうかは不明なのだ。意味を見いだして「因果」を証明するのは、人間の仕事ということだ。幸いなことに人間の仕事は無くならず、より重要になるのだ。ここに面白い例があるので見てほしい。

 
1 機械学習における相関と因果の事例(クリックで拡大) 出典:Spurious Correlations

 1にある通り、米国メイン州の離婚率と1人当たりのマーガリン消費量の間には、相関があることが分かる。しかしマーガリンの消費量を減らすことと離婚率を減らすことに因果はあるだろうか。ちょっと考えてみれば分かる話なので冗談になるが、製造業の技術者の本業で考えるとこの判別が難しい場合もある。ひとまず、機械学習では相関を扱っている、ということだけは頭の片隅に置いておいた方が良いだろう。

 機械学習に対して否定的に聞こえたかもしれないが、相関しか分からなくてももちろん意味は大きい。機械学習に出番が回ってくるのは、関係する要素が多すぎて因果がそもそも分かっていないからだ。また数値にすることで比較検討ができたり、膨大なデータの分析の見当を付けられたりするだけでも意味はある。また、因果が分かるまではとても時間がかかる。ビジネスではそこまで時間をかけられないという現実があるので、正解ではなくても少しでも良い解なら十分に使えることも多いのだ。

5.「教師あり学習」と「教師なし学習」

 機械学習でできることは何だろうか。機械学習の方法は、大きく分けると入力データに対する回答を与えることで学習できる「教師あり学習」と、回答を与えずに学習する「教師なし学習」がある。

 教師あり学習では、変動する実数値の予測である回帰と、2つ以上の項目への分類の2種類の予測が可能だ。実数値の変動とは、例えば摩耗するパッドの残りの厚さや、ポンプ装置の故障までの日数などが相当する。分類では迷惑メールか否か、故障の種類や画像認識による個人の判別などが当てはまる。世間で目立つのは分類のほうだが、製造業では意外と回帰が役に立つことが多い。教師なし学習ではグループ化をしてデータの分析を行うことができる。なお、現在よく使われている手法は教師あり学習の方だ。

 教師あり学習について整理してみよう。まずはゴールとなる目的変数を定める。ここでは例として「今月の作業ミスの件数」としよう。実数値が対象なので回帰となる。入力となる説明変数に何を入れるのかは、この予測モデルの設計者が決める。ここでは室内の温度、湿度、作業は何月か、偉い人のご機嫌、自分が投資している株価、お昼ご飯の種類といった変数を入れてみることにする。これらの説明変数のどれがどのくらい目的変数に相関があるかは、誰にも分からないブラックボックスといえるだろう。

 そこで、説明変数と対応する目的変数の組み合わせを大量に用意し、コンピュータにブラックボックス内の仕組みを推察させる。推察した仕組みは予測モデルとなり、新たな説明変数のデータを入力することで、未知の目的変数の値を算出できるようになる(2)。

 
2 機械学習の仕事。「教師あり学習」を整理してみる(クリックで拡大)

 とはいえ、機械学習はどんな問題にも適用できる万能の魔法ではない。以下の5つの条件を満たした問題であれば、適用できる可能性が高い。

1.   ゴールとなる結果やイベントが数字として定義できる

2.   結果やイベントの発生回数が十分にある

3.   ゴールに関係する、説明変数のデータが入手できる

4.   十分な量の過去のデータを利用できる

5.   データから「学習」できる、つまり良質な学習アルゴリズムがある

 1は当然としても、2の発生回数や4の過去データの量はどのくらい必要なのか、というのは対象となる問題によるので一概には言えない。また3についても、説明変数がゴールに関係しているかどうかは予測モデルを作成して検証するまでは分からない。従って、まず手持ちのデータで手早く予測モデルを作成し、検証をしてから方針を修正していく必要がある。取り組む前に悩むよりも、手を動かしてまずやってみることが大事だ。

6.機械学習に使われるアルゴリズム

 機械学習に使われるアルゴリズムは多岐にわたるため、ここでは代表的なものを幾つか列挙する。一番イメージしやすいのは「線形回帰」だろう。多数のデータプロットから最も誤差が少ない直線を引けるようにパラメーターを調整する(3)。

 
3 線形回帰の事例 出典:@IT

 最も適切に2種類の分類ができるように曲線のパラメーターを調整するのが「ロジスティック回帰」。条件により二つの枝分かれを繰り返すのが「決定木」(4)。そして、最近の流行として「ニューラルネットワーク」がある。

 
4 "傘を持つか持たないか"という決定問題を示す利得表(左)と決定木(右) 出典:ITmediaエンタープライズ

 ニューラルネットワークとは、人間の脳の神経細胞にヒントを得て数理モデル化したアルゴリズムだ。ニューロンと呼ばれるモデルに、複数の変数を入力して所定の計算結果を出力する仕組みを作る。このモデルを複数並べて接続したものを層として取りまとめ隠れ層とする。最後の層は出力層とし、最終的な結果を得られるようにする。

 このニューラルネットにより、今までコンピュータがあまりうまく扱えなかった、画像や音声の分類ができるようになったといわれている。ただし注意して欲しいのは、人間の脳の働きを模しているわけではないことだ。あくまで参考にしただけである。

 
5 ニューラルネットワークとは(クリックで拡大) 出典:スタンフォード大学の資料

7.ディープラーニングとは

 ニューラルネットワークの隠れ層の数を増やしていくとどうなるだろうか。一概には言えないが層の数を増やすことで、ニューラルネットワーク内部でより複雑に予測のためのロジックを構築できる可能性が高い。2010年頃は23層程度だったが、2015年はクラウド上に構築することで152層にも達しており、現在はさらに上限は増えているだろう。

 この隠れ層の数が多いニューラルネットワークこそ、ディープニューラルネットワーク、いわゆるディープラーニングだ。ディープラーニングとは、機械学習のアルゴリズムの一部であるニューラルネットを発展させた技術なのである。

 単純に層の数が増えただけではなく、アルゴリズムそのものの発展もある。例えば、画像のように入力する変数の数が多いデータを扱うための畳み込み(Convolutional)ニューラルネットワークや、自然言語の認識や時系列モデルの予測に使われる再帰型(Recurrent)ニューラルネットワークというように、用途に合わせて層に組み合わせる処理や、層のつながり方を工夫するなどディープラーニングは進化が続いている(6)。

 
6 ディープラーニング、ディープニューラルネットワークとは(クリックで拡大) 出典:Neural networks and deep learning

8.機械学習はどんな問題に使えるのか

 ここまで紹介してきた機械学習は実際どんなことに利用されているのだろうか。産業界で多い事例として故障予知がある。機器の稼働をモニタリングすることでデータを集積し、機器や部品の寿命前の不具合を予測することで突然のトラブルを未然に回避し、コスト削減や、機会損失を防ぐというメリットが出てきている。インフラとして利用される石油のパイプラインの部品や、世界各地で稼働する冷凍庫・冷蔵庫、また工場内で稼働する作業機械といった重要な装置の故障予知で既に成果は上がってきている。

 残念なのはほとんどのケースで、社名や具体的なユースケースの開示を断られてしまっていることだ。激しい企業競争の背景があるためやむを得ないのだろう。しかし確実にIoTそして機械学習の採用は進んでおり、これらの取り組みが企業経営にプラスに働くことを少しでも感じていただければ幸いである。

 

0 件のコメント:

コメントを投稿