そろそろ入門しよう!おおざっぱに理解する「人工知能」【前編】

2017.08.17

Lab研究員 内藤

ITやテクノロジーに携わる方々にとって、「人工知能(AI)」というワードはもはや避けて通れなくなりつつあります。
それは私たちYDCにとっても同じです。

しかしながら、人工知能をゼロから勉強しようとすると・・・
  機械学習、ディープラーニング、ニューラルネット、シンギュラリティ、パーセプトロン、
  バックプロパゲーション、DQN、CNN、RNN、LSTM、BPTT、TensorFlow、Chainer・・・ 
と、難解な用語がたくさん登場して戸惑ってしまいます。

そこでこの記事では2回にわたり、今話題の人工知能について筆者独断の切り口で「わかりやすく」「おおざっぱに」ご紹介していこうと思います。正確さよりもわかりやすさ、イメージのしやすさを優先しておりますので、多少のニュアンスの違いなどはご容赦いただければと思います......。

さて前編の今回は、「人工知能とは?」をご紹介します。
そして後編では、実際に人工知能を使ったデータ予測を実践してみようと思います。

1.なぜ今、人工知能が注目されるのか?

人工知能という言葉自体が登場したのは、なんと1950年代。それから70年近くたった現在は、第三次ブームを迎えていると言われています。

AI1001.jpg

ai1002.jpg

これまでの第一次、第二次ブームで人工知能が実現しなかったのは、「世界中からどのような特徴に注目して情報を取り出すべきか」について、人間の手を借りなければならなかったためです。どういうことかというと、人工知能に教え込むための「学習」に人手が必要であり、それは量が膨大すぎる上に、何を学習させるべきかの判断も難しく、とても実現が難しいものだったのです。ここが、これまでの人工知能開発の大きな壁でした。

このたびの第三次ブームで、困難であった「学習」が簡単にできるようになった要因が

ディープラーニング(深層学習)×ハードウェアの進化

です。
この2つの要素がブレイクスルーとなり、現在の人工知能ブームを作り上げたと言っても過言ではありません。

ai1003b.jpg

この部分については、後ほど3と4で詳しくご説明します。

2.人工知能とは何なのか?

そもそも、人工知能とは何なのでしょうか。Wikipediaによると

「人工的にコンピュータ上などで人間と同様の知能を実現させようという試み、あるいはそのための一連の基礎技術を指す」とあります。つまり、機械に人間と同じような学習をさせて、その学習内容をもとに、情報の分類や予測をさせてしまおう、というのが大きな人工知能の考え方になります。

ai1004b.jpg

人工知能には、似たような言葉で「機械学習」や、さらには前述した「ディープラーニング(深層学習)」など、似たような用語がたくさんあります。ここでは極めて"おおざっぱに"概念を整理してみましょう。

AI1005.png

すでに私たちにもなじみのあるデータマイニングやパターン認識という技術や、広井意味でいうと「機械学習」に含まれるのかもしれません。
が、筆者の認識では別物かと思っています。上の画像のような関係性を理解しておくと、ITニュースなどを読んだときに理解しやすくなりますよ。

3.ディープラーニング(深層学習)とは?

これまでにもたびたび登場した「ディープラーニング(深層学習)」について詳しくご説明しましょう。
第三次人工知能ブームのブレイクスルーのきっかけとなったものです。

人工知能は、
人工的にコンピュータなどで"人間と同様の知能"を実現させようという試みです。
では、人間と同様の知能とはどのようなものを指すのでしょうか? 例えば食事でイメージしてみましょう。

ai1006.jpg

人間が食事をするときは、料理の味や香りを能で理解して「これば素晴らしい料理だ!」と認知します。
このインプット(味・見た目)を理解していくプロセスを、ネットワークのように表現したのが
「ニューラルネット」と呼ばれるものです。

人間の脳内には何層にも分かれた中間層が存在し、ニューラルネットで上図のような認知をするにあたって、この中間層で徐々に判断を進めていきます。
この層がどんどん深くなっていくことから「ディープニューラルネット」と呼ばれており、これをコンピュータで人工的に学習させてしまおうというものが「ディープラーニング(深層学習)」です。

ai1007.jpg

これを先ほどの食事の例に重ねると、このようなイメージとなります。

ai1008.jpg

この人の脳内で行われている中間層の判断プロセスを機械で学習してモデル化して、情報の予測や分類で活用しようというものがディープラーニングになるのです。

ニューラルネットのひとつひとつを詳しく紐解いていくと、バイアスやパーセプトロンなど、専門的な用語がたくさん登場します。
人間の複雑な脳の仕組みに関わるものだから当たり前といえば当たり前なのですが、ここに触れるとこの記事では収まらなくなってしまうため、割愛させていただきます。ご興味をお持ちの方は、ぜひ調べてみてください。

4.人工知能で使用するハードウェアの進化

もうひとつの第三次人工知能ブームのブレイクスルー要因、それがハードウェアの進化です。先ほどご説明した通り、ディープラーニングなどの学習を行うためには、非常に多くの計算が必要になります。これを可能にしたのが、GPU(グラフィックボード)です。

ai1009.jpg

現在のコンピュータに搭載されているCPUとの違いは、搭載されているコアの数です。
コアの数、同時に処理できる計算の数を表しています。
CPUのコアは多くて8個程度。そのため、計算のために並列処理を行うにしても、8個くらいの計算が限界なのです。

ところがGPUになると、3000を超えるコアを搭載したものも存在します。
私たちYDCラボで購入したグラフィックボードには3584のコアが搭載されており、しかも2017年現在で10万円程度で手に入れることができるのです。

ai1010.jpg

GPUで大量に並列処理させれば、非常に短い時間で膨大な量の学習を行うことができます。
このハードウェアの進化がなければ、第三次人工知能ブームは起こりえなかったでしょう。

5.人工知能を使うには?

では、人工知能はどのように使用できるのでしょうか? 
現在世の中にある主な人工知能ライブラリは以下のとおりです。

ai1011.jpg

ご覧の通り、言語はほとんどがPython(パイソン)ですね。
すでにPythonは人工知能のデファクトスタンダードになっています。

YDCの技術顧問になっていただいている京都大学の加納教授も以前、「機械学習ならPythonを勉強しましょう!」と話されていました。

YDCラボではボードゲームのリバーシを人工知能に学習させるなど、 Python を用いて人工知能に関するさまざまな検証を行っています。

前編である今回は、人工知能の概要についてざっくりとご紹介しました。少しイメージがつかめてきたでしょうか? 

後編では、人工知能の学習方法について解説するとともに、実際にChainerでデータを学習し、データ予測を行う様子をお届けしようと思います。