JAPAN SYSTEMS Driving for NEXT NEW with Comfort and Convenience

人工知能技術の誤解と現実(4)

吉田裕之
ジャパンシステム株式会社
チーフテクノロジーアドバイザー
南山大学 客員研究員
博士(情報科学)

3_image01.png

ここ数年、人工知能技術が話題になることがとても多いのですが、誤解に基づいた過剰な期待や危機感もよく聞かれます。このコラムでは、筆者が実際に出会った誤解を披露し、現実のAI技術が本当はどんなものなのかを、できるだけわかり易く解説していきたいと思います。

誤解その4:人工知能とは、コンピューターに訓練例を大量に与えて自動的にプログラムを学習させる技術である

4_image_02.png

① プログラマーと機械学習

これまで、コンピューターのプログラムは人間のプログラマーが一行一行書いていました。プログラムは、様々な場合に対応して処理しなければならないのでif文を使って分岐したり、また同じ処理をデータの数だけ繰り返すことがあるのでwhile文を使ってループしたり、と色々なことを想定しながら書いていきます。こうした作業を、小さいプログラムでも数10行、スマホのOSであるAndroidなどでは数百万行も積み重ねて完成させるのです。一部にはプログラム自動生成という技術も使われますが、何も無いところからプログラムを作ってくれるわけではなく、「こういう処理をして欲しい」という何らかの入力に基づいて生成するものです。

これに対して人工知能には、例を見せるだけで自動的に処理を学習する「機械学習」という技術があります。これを使えば、人間がやるべきなのは実例を集めることだけで、こつこつプログラムを記述する必要がありません。まるで夢のような技術に思えるかもしれませんね。しかし機械学習技術は、例だけからif文やwhile文などを巧みに使ったプログラムを吐き出してくれる、というわけではありません。機械が学習できることは、処理手順はだいたい分かっているけれども不明なパラメーターがいくつかある時に、訓練例からそのパラメーターの最適値を発見すること、なのです。

4_image03.png

② 合否判定基準を機械学習で発見する

例えば、ある先生が担当科目の合否を中間テストと期末テストの点数で決めているとします。ある学生Mさんは中間80点・期末60点で不合格だったとします。別の学生Tさんは中間60点・期末80点で合格でした。二人の合計点数は同じなので、どうやら、先生は2回のテストの点数を単純に合計して判断しているのではなさそうです。期末の点数の方が良かったTさんが合格していることから、期末テストを重視しているようです。あまり複雑な計算をしているとは思えないので、おそらくは期末の点数に重みを掛けた合計点で判定しているのでしょう。つまり、中間テストの点数をx、期末テストの点数をy、重みをa、合格点をbとすると、関数F(x,y)=x+ay-bが0以上であれば合格にしていると想定できます。この関数Fは、if文一つを使った数行のプログラムで記述できます。処理手順は分かりましたがaとbの値を知る必要があります。これらが上で説明した“不明なパラメーター”になります。

ここで、別の学生Sさんが中間90点・期末60点で合格したとします。Sさんは、不合格だったMさんは期末の点数が同じで、それは合格したTさんよりも20点低いのですが、その分を中間の差分30点でカバーできたわけですね。とすると、期末テストの1点は中間テストの1.5点分、つまり重みa=1.5ではないかと推察できます。その前提で三人の重み付き合計点x+ayを計算してみると、学生Mは170点、Tは180点、Sは180点になるので、合格点bは171~180の範囲だろうと推察できます。過去の合否の例がさらにたくさんあれば、aとbの値をより正確に推定できるようになります。これが機械学習の基本です。

この例でわかるように機械学習は、プログラマーのようにif文やwhile文などを巧みに使ったプログラムを自動生成する技術ではありません。手順は決まっていて、その途中で利用するいくつかのパラメーターの値を調整するだけなのです。ディープラーニングもその機械学習技術の一つです。「えっ、そんな簡単な仕掛けで、猫の種類を見分けたり、囲碁の良い手を見つけたり、文章を何カ国語にも翻訳できたりするの?」と思うかもしれませんが、そうなのです。画像認識、囲碁の打ち方、自動翻訳は、合否判定の計算と比べたら遥かに複雑なはずですが、ディープラーニングではそれを神経細胞の仕組みを使って処理しています。考えてみれば、人間の頭脳だってそうやって処理しているのですから、当然なのかもしれません。

4_image04.png

③ 万能な機械学習技術「ディープラーニング」

このコラムの第2回で、ディープラーニングは神経細胞の仕組みを単純化したモデルを数式で表現しGPUで計算する、と説明しました。少し、おさらいしてみましょう。図1は、第2回でも説明したモデルですが、これを使って合否判定の問題をどう表現できるかを説明します。このニューロンには3つのシナプスがありますが、それぞれに「中間テストの点数」、「期末テストの点数」、そして常に「1」を入力します。シナプスの感度はそれぞれ1.0、1.5、-175に設定します。すると、例えば、Sさんの場合は90×1.0+60×1.5+1×(-175)=5がσに送られます。σは「入力が0より大きければ1、0以下ならば0を出力する関数」でしたから、1が出力されて合格となります。Mさんは80×1.0+60×1.5+1×(-175)=-5なので0が出力されて不合格です。

4_image_06_02.png図1 神経細胞の仕組みを使った科目合否判定

さて、もっと複雑な処理を実現するためには、シナプスの数を増やしていきます。一つのニューロンにn個のシナプスを持たせると、入力x1, x2, …, xnとシナプスの感度a1, a2, …, anに対してF(x1, x2, …, xn)= a1x1+a2x2+ … +anxnという関数が表現できます。でも、これだとパラメーターの数はせいぜい入力データの数までなので、画像認識や自動翻訳などの複雑な処理には能力が足りません。そこで、図2のようにニューロンを増やして重ねて2層にします。この図では、第1層にはニューロンを5個置いています。そのいずれにも同じ入力を与えるので、シナプスの数は5×3=15個になります。第1層の5個のニューロンの出力は、第2層の1つのニューロンに入力します。このニューロンのシナプスの数は5個なので、このモデル全体で20個のパラメーターがある関数を表現できます。

4_image_07_02.png図2 2層の神経回路モデル

第1層のニューロンの数、第2層のニューロンのシナプスの数は自由なので、複雑な処理を実現するのに十分な数のパラメーターを持つ回路が作れます。実は、第1層に十分な数のニューロンを置くことができれば、この形のモデルは原理的にどんな数学的な関数も表現できることが証明されています。また、第1層の出力と入力の間にフィードバックループを設ければ、コンピューターで実現できるどんなプログラムでも、このモデルで表現できることも証明されています。さらに、回路を3層、4層と”深く”していけば、より少ないニューロンで大きな能力を実現できることが知られています。例えば、10個のニューロンを持つ2層を並べると10×10=100個程度のニューロンを持つ1層とほぼ同じ能力が実現できます。深くすれば深くするほど、相対的に少ないニューロン数でより大きな能力が実現できるので、3層以上の神経回路モデルに基づく機械学習技術のことを「ディープラーニング」と呼ぶのです。

4_image_05.png

現在、画像認識でデファクトスタンダードになっているResNetというモデルでは、深さはなんと152層、パラメーター数は約6000万個あります。画像は100×100の解像度でもカラーならば三万バイトの入力データになるので、人間以上の精度を出すにはこれくらい複雑になります。一方、囲碁は19×19の白黒なので、AlphaGoでも13~14層のモデルを3つ、パラメーター数はそれぞれ400万個くらいです。GPUを何週間も使って数千万個のダイヤルを少しずつ調整することで、人間の能力を上回る画像認識、囲碁の打ち方、自動翻訳を学習できるのです。

現実のまとめ

  • 機械学習は、人間が書くようなプログラムを自動生成する技術ではない
  • 機械が学習できるのは、パラメーター付きの処理手順に対して、最適なパラメーターを発見することである
  • ディープラーニングは、神経細胞の仕組みのモデルを使った機械学習技術であり、膨大なパラメーターを調整することで、原理的にはどんな処理でも学習できる





筆者プロフィール:吉田裕之

ジャパンシステム株式会社チーフテクノロジーアドバイザー。南山大学客員研究員。 某大手電機メーカーにて、長年にわたって人工知能/ソフトウェア工学/オブジェクト指向技術の研究開発に従事。オブジェクト指向、Java、モデリング技術関連の著作多数。UMLモデリング推進協議会(UMTP)経営委員。Modeling Forumプログラム委員会副委員長。電子情報技術産業協会(JEITA)ソフトウェアエンジニアリング技術専門委員会幹事。OASIS OSCL PROMCODE TC メンバー。博士(情報科学)。

関連コラム

Adobe® Reader®

PDFファイルの閲覧には、Adobe® Reader®が必要です。

Adobe® Reader®のダウンロード

お問い合わせ