今のAIには何ができるのか
米国や中国のAIサービスに、圧倒され、AIをビジネスに組み込めなくては勝てないという焦燥感に駆られてしまいますが、実際にAIがどのような仕組みで動いているかを理解している人は少ないのではないでしょうか。
かくいう私も全く知りませんでした。
なので、今回はAIの仕組みと何ができるのかを紹介していこうと思います。
結論から言うと、AIはすべての選択肢が書かれた樹形図から最適な答えを計算により導くシステムといえます。
この「計算」の意味は、各選択肢の重要性に重みをつけるものです。
将棋のAIなどを思い浮かべていただければわかりやすいかと思います。
AIは過去の勝率が高い手を打ってきますよね。
いまでもAIはゴリッゴリの計算能力を背景に問題解決すると考えておいていただければ間違いないです。
さらに、AIのなかでもディープラーニングについて叫ばれることが多いですが、ディープラーニングの核となる最小2乗法とニューラルネットワークの考え方は、高校の文系数学で対応できます。
どちらかというと、ディープラーニングがAIブームを作った背景には、AIに勉強させるための人件費が研究職の方から、クラウドワークスで発注できる単純労働者(画像を見て正解かどうかポチるだけ)へ移ったことにあると思われます。
他には、パソコンなどのハードの進化で処理能力と保存能力が拡張されたことも下支えしているようです。
そして、画像処理、音声処理までは、ディープラーニングで外注することができましたが、言語の分野などの、AIが理解できるように素材の分析方法を教え込まないといけない分野はまだまだ発展には時間がかかりそうです。
近年のディープラーニングの成長で一番恩恵を受けるのは、画像による検証能力で、それを一番うまく活かせているのがAmazon Goなどの無人ショップなどではないでしょうか。
Uberも、AIを使っているのですが、GPS地点と各交叉点につけられたセンサーによる交通状況、それにより割り出される移動時間の最短ルートの計算なので、これはディープラーニングの加護はうけていません。
このようにAIにもいろいろな種類があるので、ベースとなる考え方とAIが発動する仕組みを数学も絡めながら考えていきたいと思います。
AIの歴史からベースとなる考え方を学ぶ
人工知能は現在3回目のブームに突入しています。
各ブームを解説していきます。
1956年 第一次AIブーム
1956年にダートマス会議にて初めて「Artificial Intelligence(人工知能)」という単語が使われ、AIが世界的に知られ始めました。
この当時、実際にできたことは、案外高度で、積み木が表示されているコンピュータに向かって、ユーザーが言葉で指示を出すと、表示されている積み木を動かすことができ、さらに、積み木をどのように動かしていくかの手順をAI自身で考えることができました。
問題となったのは、フレーム問題と呼ばれるもので、指示されたもの以外は対応できなく、そうすると様々な事態を想定する必要があり、無限に事前指示を行わなければならないということが発生しました。
例えば、AIに荷物の受け取りを指示した場合に、たとえ荷物の上に花瓶が載っていたとしても、花瓶の存在を考慮せず、荷物を動かし、花瓶を割ってしまうという状況が発生します。
この丁度良い設定ができずに第一次AIブームは終わりました。
1980年 第二次AIブーム
1980年には、フレーム問題を起こさないように、何かに特化したエキスパートシステムを導入することで、専門家の代替品を生み出そうという動きが出てきました。
医学などの一定の状況下で効果があったといわれています。
問題点としては、専門家の知識をうまくとれ出せないことや取り出してシステムに入力するのが大変だということがありました。
特に、職人などの言葉では表せられないような知識は、新たに言葉に置き換えていく必要があり、当然そのコストが新たに発生するので、誰も使わなくなってしまいました。
そもそも、人工知能が学習できるようにするためには、対象データを測るための「特徴量」という物差しを与えなければならず、その特徴量を何にするかによってAIの精度に大きなばらつきが出ます。
この特徴量の抽出が、データ分析技術者の極めて専門的な職人芸となっており、これが人工知能の実用化がなかなか進まない理由の一つになっていました。
2010年 第三次AIブーム
2010年にディープラーニングが登場したことにより、この特徴量の抽出をコンピュータで自分で見つけさせることができるようになりました。
これにより、ネット上の無料の素材から学習できる画像分析の分野は、AIが人を上回るようになりました。
ニューラルネットワークを多層化してデータ処理をすることによって、コンピュータが自動的に特徴量を抽出できるようになったのです。
小難しい言葉が並んでいますが、内容はシンプルで、マトリョーシカのように、関数の中の値に関数をいれ、計算を簡易化し始めたと理解してください。
この方法の導入により、関数の次元数を落として考えることができるようになりました。
核となる考え方は、2次関数の微分が0の場所が一番実際の値と推定値の誤差が少ない場所ということです。
これは図にしてみると簡単に理解できるので数学パートで説明します。
有名な「Googleの猫」の例は、ディープラーニングのことをとりあげており、画像を分類する時に、猫画像の特徴量を人工知能が自動的に発見したことを述べています。
もちろん、ディープラーニングを機能させるためには大量の学習素材が必要となりますし、人件費もゼロではなく、開発過程では、ディープラーニングが出す答えを人が評価する必要があり、コストがかかります。
現在はクラウドソーシングなどで外注し、この評価作業を1評価1円程度で行っているようなのですが、ディープラーニングには数百万件規模のデータが必要になることから、相応の資金力も必要になってきます。
また、ディープラーニングの精度の向上は、速く、安く、強力な並列処理を実現できるようになったコンピュータの進化のおかげでもあり、ほぼ無限の処理能力と処理スペース、大量の調理素材の二つがそろったからAIブームになっているといえるでしょう。
AIを図と数式から考える
AIの考え方は冒頭で説明したように、樹形図のすべてをしらみつぶしにし、その上で、樹形列をたどる順序を計算により最適化していくという工程があります。
計算するためには、樹形図の分岐地点のコストの数値化を行う必要があり、その重みで最適なものを選べるようにしています。
もちろん、無限の計測はできないので、パソコンのシミュレーション能力(経験則)を使いながら、その勝率を評価値として、コスト化することになります。
この重みづけを行う上で重要な考え方が、統計でよく使われる回帰分析(2次元)や重回帰分析(3次元)です。
これらの分析で引かれる線が、分類の境界になります。
もう少し、境界線の話を詳しく説明すると、たくさんのサンプルデータ(x,y,z)群ととある直線の最短距離の2乗したもののなかで一番距離が小さいものが、サンプルデータ群の特性を一番よく表した直線として選びだされます。
これを最小二乗法といい、この最小二乗法の誤差が一番小さいところが最適な傾きとして関数に採用されることになるのです。
2乗する理由は、ガウス=マルコフの定理が根拠とされており、この推定値が不偏で最小の分散を持つことにあるとしています。
下記のように実際にディープラーニングがやっていることは簡単で、集めたサンプルの値を、ノードと呼ばれる関数にそれぞれ割り振って、そこで出した答えを次の関数に値として代入していくことなのです。
最終的に、このニューラルネットワークの構造を使うことで、下記のように複数の領域の分類を作ることができます。
要するに、領域を作る境界をうまく設定し、最終的な値が、どの領域の中に入るかで、判断を行おうということになります。
リカレントニューラルネットワーク(RNN)にしろ、LSTM、GRU、CNNなどのニューラルネットワークの種類がありますが、ジグモイド関数を使ってネットワークをつなぎ、誤差を逆残することで、正解となる領域を描いていくという意味ではどれも同じです。
彼らの違いは隣接するネットワークとの重みをあげるかどうかなどの技術的な話になっています。
結論
AIにも種類があり、自分の対応分野がディープラーニングなどの最新技術に適しているかは考える必要があります。
上記を読んでいただくと、気づかれたかもしれませんが、どちらかというと、現在では、AIに学習させるデータの量と質、量を集める手段、粗いデータをAIに理解させる能力、強化学習を行い続ける資金力などの企業の総合力があって初めてAIを強みに変えられる環境にあるといえます。
AIをビジネスモデルに組み込むにはまだハードルが高いといえます。