私たちの生活では、多くの場面で既にAIが活躍しています。AIに関連して「機械学習」「ディープラーニング」といった単語を耳にしたことがある方も多いでしょう。しかし、その定義や仕組みについては意外と知らないのではないでしょうか。AIをうまく利用するためにも、あらためてAIの基本を理解しておきましょう。
Q1、AIってそもそも何?
AIは、「Artificial Intelligence(人工知能)」の略です。端的に言えば、人を見分けたり、文章を他の言語に翻訳したりといった、かつては人間にしかできないと思われていた知的な推論・判断をするコンピュータープログラムのことです。
かつてのAIは、「エキスパートシステム」と呼ぶルールベース*1のものが主流でした*2。やがて「機械学習」と呼ぶ、大量のデータから計算機がルールを自ら学習する方法が台頭してきました。皆さんが普段から使っているインターネット上の「検索エンジン」なども機械学習を利用しています。
機械学習はデータ分析の1種で、あるデータ群を分析して、そこに潜むルールやパターンを見いだす手法です。例えば、あるデータ群において、類似のデータが同じグループに分類されているとします。その分類されたデータ群を機械学習させて生成したルール(機械学習モデル)は、学習していない新たなデータに対しても、それがどのグループに該当するかを分類できるようになります。人間が分類ルールをプログラムする必要はありません。
機械学習には幾つもの手法がありますが、人間の脳神経をまねたものが、現在広く使われている「ニューラルネットワーク」と呼ぶ機械学習モデルです(仕組みの概要はQ2で後述します)。原理的にはどんな種類のデータに対しても学習できるため、古くから研究されていました。
近年よく聞く「ディープラーニング」(深層学習)は、このニューラルネットワークを文字通り“Deep”(多層、大規模)にしたもので、機械学習の1種です。整理すると、AI、機械学習、ニューラルネットワーク、ディープラーニングの包含関係は図1のようになります。
ディープラーニングのような巨大なニューラルネットワークを使えば、大規模で複雑なデータに対しても優れた成績、つまり人に近い推論・判断が可能になります。顔画像認識や天気予報などにはこの技術が使われています。規模が大きいので複雑な映像の認識や分類など、処理できる仕事が格段に増えます。
図2は、2019年における代表的な画像認識のAIモデルについて比較したグラフです。縦軸が認識精度、横軸が規模(関数のパラメーター数)です。研究・教育用に公開されている「ImageNet」と呼ぶ1000万枚以上の画像データベースを各AIモデルに学習させ、認識精度を調べました。
「EfficientNet-B7」「NASNet-A」「SENet」といった最新のAIモデルは認識精度が高く、総じて規模も大きいのが分かります。近年はコンピューターの処理能力が増大し、巨大なデータでも無理なく学習計算ができるようになりました。そのため、現在はディープラーニングがAIの主流となっています。
Q2 機械学習のニューラルネットワークはどういう仕組みで動いているの?
AIは関数、すなわち入力に対して適切な出力を返すための機構です。機械学習の場合、入力に対して適した出力を返すように関数のパラメーターを計算によって適正化します。
ニューラルネットワークが機械学習の主要な手法として採用されているのは、適切な学習データを一定程度与えれば構築でき、人の推論や判断と似た傾向の結果を出せる簡単な関数である、という点が大きな理由の1つです。
では、それはどのような仕組みで結果を出力しているのでしょうか。図3は「多層パーセプトロン」と呼ぶ最も基本的なニューラルネットワークのアルゴリズムの概念図です*3。図中の○を「ニューロン」と呼び、各ニューロンは結合している他のニューロンの出力を入力として受け取り、その合計値を出力値に変換します*4。
入力に対して、適正な出力が得られるように入力層、中間層、出力層の各ニューロン(関数のパラメーター)を適正化します。これが学習です。ディープラーニングは、縦方向のニューロンの数を大きく増やした上で、中間層のニューロンを多数並べて多重化にしたものです。ネットワークを巨大化させ、それによって複雑で大量のデータに対しても最適な出力を得られるようにしています。