[5分で完全理解] AI(人工知能)の仕組みとアルゴリズムの基本とは

AIを語る上で大切なアルゴリズムという概念。機械学習や深層学習、パターン認識や写像などを中心に学術的に解説する。

シェアする

近年、AIがめざましい進展をみせているが、その背景は機械学習によって自ら能力を獲得できるようになりつつあるからである。ここでは、その機械学習を実現するためにデータと同じぐらい重要になるアルゴリズムについて解説する。

AIとアルゴリズム

アルゴリズムとは

AIとは何であるかという説明は昨今、様々な媒体で説明されているのでここでは省くことにする。では、アルゴリズムとは何であるか、Wikipediaでアルゴリズムと検索すると「アルゴリズム(英: algorithm)とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。」と記載されている。簡単にいうと設定された問題を解くための手順を数学的に表現したものである。AIのアルゴリズムというのは、人間の考え方や能力をコンピュータ・ソフトウェアを用いて模擬するために数学的に表現された手順であるといえる。

脳が実現している知能

一口に知能といっても細分化の仕方によって様々な機能に分かれ、例えば判断、推論、予測、行動計画などに分類されるが、これらの機能の元になっているのは感覚器からの刺激に対する認識機能である。感覚器による正確な現状認識なくして、推論も予測も行動計画も間違ったものになってしまうということは理解できるだろう。近年、AIの進歩がいちじるしいのは、画像や音声といった人間の感覚器に相当するセンサーで検出した情報を正確に解析、認識できる技術の精度が向上しているからである。以降、この認識がどのように行われているかに着目する。

パターン認識と写像

人間の認識機能の多くは、一般的にパターン認識と呼ばれる技術に相当する。パターン認識とは、入力があって、その入力が何に相当するかを認識(出力)する機能である。同じ内容を数学的に表現すると、入力パターンをxとすると、認識結果はyに相当し、その関係はx空間に含まれるどの集合にyが含まれるかということを認識することに相当する。

我々人間の脳でもこのパターン認識という機能が実現されていると考えられている。たとえば、人間が画像を見た時、網膜には約1億3000万の受容体が並んでおり、受容体で感じた光の信号は約100万の視神経で脳に伝達される。それぞれの光の信号は画像のそれぞれの部分の光の明るさや色彩を信号(x)として感じる。

信号(x)は、約140億個の脳神経(ニューロン)によって構成される大脳新皮質に伝わり、多くのニューロンを次々と伝搬し、その過程で、その物体を区別するための情報である「特徴量」が抽出される。

人間は「特徴量」を用いて、その画像内の対象が特徴量空間のどの領域に属するかを認識し、その領域に割り当てられた対象名(y)を思い浮かべることができる。それが脳の認識機能の概要である。また、「特徴量」とは画像であれば対象を分類する上で他の対象と異なる形状や色の情報量である。例えば、犬と猫の顔画像であれば、耳は、犬よりも猫のほうが尖っている、顎については、猫よりも犬の方が発達して前に出ている、頭部の輪郭は、猫の方が犬よりも丸型である、などというのが犬、猫それぞれの特徴になり、特徴量はそれらを数値で表現した情報になる。それぞれ種類によって特徴量のばらつきはあり、示されるのは数多くの犬、猫の平均的な特徴になる。

「機械学習」の仕組み

認識についての詳細説明に入る。ここではわかりやすくするために信号(x)の全てが特徴量(x)であるとする。認識とは、その対象の特徴量(x)が特徴量空間のどの領域に位置するかを求め、それに対応する対象名(y)を求めることである。そのためには、特徴量空間を対象単位に分割する識別面f(x)を求める必要がある。人間は、様々な経験に基づき脳でその識別面を獲得しており、その脳の働きを「学習」と呼んでいる。

また、コンピュータが、経験に相当する「データ」という情報と脳の処理に相当する「アルゴリズム」という手順で識別面を決定することを「機械学習」を呼ぶ。上記の犬、猫の分類で言えば、犬と猫の特徴量で犬と猫を区別する識別面を定義することに相当する。

アルゴリズムはどのようにして特徴量と対象の識別面を決定するのであろうか、数学的に識別面は様々な形式が考えられる。ここではわかりやすく、面ではなく特徴量x1,x2で定義される平面を2つに分割する直線を考える。

一般的にこの直線を表す数式は関数x2=ax1+bと表現される。aは直線の傾き、bはy軸の切片と呼ばれる。もし、上記の犬と猫の境界が直線で表現されると仮定されるならば、図のイメージになる。特徴量x1をa倍してbを加算した値がx2以上であればyは猫となり、以下であればyは犬と判断する。この根拠となるx2=ax1+bという関数は学習アルゴリズムで決定される。

具体的に学習で決定すべき要素は、以下の2点になる。
・関数の形態(境界が必ず直線または平面とは限らない)
・関数のパラメータ(上記では傾きや切片に相当)

1点目の関数の形態は、平面(直線を含む)を表現する線形関数とそれ以外の非線形関数の2つがあるが数学的には線形関数が見通しよく、過去のアルゴリズム研究の蓄積が多いため多くの機械学習アルゴリズムでは線形関数を仮定している。したがって、機械学習アルゴリズムの働きは2点目にある、関数のパラメータを決定する、ということに集約される。

上記の数式のパラメータa,bは中学校の数学の問題にあるように線上の2点が与えられれば容易に求めることができる。しかし、現実問題ではそのような点が与えられることはない。また、犬の中にも、明らかな犬の特徴を有している犬もいれば、耳が立って尖っているというように、ある特徴量で見れば猫の特徴に近い犬もいる。また猫についてもその逆もある。つまり、特徴量で定義されるその境界は明確でないということである。

機械学習はその境界を定義するパラメータを全データに基づき確率統計的にもっともらしい数値をアルゴリズムにより算出する。したがって、認識の精度を向上させるにはあいまいな境界に近い特徴量に関するデータを数多く必要とし、データを収集する際に重要となるのが特徴量である。上記の犬と猫の例で示したが、犬と猫を区別する際に重要であるそれぞれの特徴となる項目については機械学習では人間が定義する必要がある。

機械学習では収集したデータから人間が特徴量を抽出し、特徴量と分類の境界の関係が線形関数であるという仮定のもとでアルゴリズムにより確率統計的にもっともらしいパラメータを求める、とまとめることができる。

深層学習アルゴリズムの特徴

従来の機械学習アルゴリズムはある程度の精度でのパターン認識を実現可能としてきたが、人間と比較しては細部において誤認識することが知られてきた。また、特徴量を設計者である人間が的確に選定する必要があり、選定される特徴量の妥当性によっても認識精度が左右されてきた。これらの問題をブレイクスルーしたテクノロジーが深層学習である。

深層学習は機械学習の一手法であり、アルゴリズムの中心に脳神経の動作を模したニューロンモデルを多数、階層ネットワーク的に接続したニューラルネットワークを持つことを特徴としている。深層学習によって、従来の多くの機械学習が有していた、線形関数の仮定と、人間による特徴量の抽出という2つの要素を、アルゴリズムが適切に決定することが可能となるため、より高精度なパターン認識が可能になった。

関数の形態については、多数の非線形素子を階層的に接続することで任意の非線形関数を近似することが可能であることが数学的に知られているため、非線形の動作をするニューロンを数多く接続したニューラルネットワークを用いた深層学習により、様々な形状の境界を獲得可能となった。また、特徴量については学習の過程でアルゴリズムが自動で分類に必要な特徴に対しデータの中から重みをつけ重要視するため人間が誤って特徴量を設定することはない。

一方で深層学習は、パターン認識に必要なほとんどのパラメータをデータによって決定するため精度を高めるためには従来の機械学習アルゴリズムに比較し、より大量のデータが必要とである。

また、従来の機械学習アルゴリズムに比較して、学習に必要な計算量が多くなるため時間短縮を目的として同じ階層の多数の素子の処理計算を同時並行に計算することが可能なGPU(グラフィカル処理ユニット)のような並列計算機構が必要である。

まとめ

AIの中心となる認識機能は、認識に必要な領域境界を定めるパラメータを機械学習や深層学習のアルゴリズムによって大量のデータから獲得することで、実現される。これらのアルゴリズムを進化させるべく世界中で多くの研究が行われることで驚くべきスピードでAIが利用可能な範囲は広がりつつある。