全4738文字
PR

 私たちの生活では、多くの場面で既にAIが活躍しています。AIに関連して「機械学習」「ディープラーニング」といった単語を耳にしたことがある方も多いでしょう。しかし、その定義や仕組みについては意外と知らないのではないでしょうか。AIをうまく利用するためにも、あらためてAIの基本を理解しておきましょう。

Q1、AIってそもそも何?

 AIは、「Artificial Intelligence(人工知能)」の略です。端的に言えば、人を見分けたり、文章を他の言語に翻訳したりといった、かつては人間にしかできないと思われていた知的な推論・判断をするコンピュータープログラムのことです。

 かつてのAIは、「エキスパートシステム」と呼ぶルールベース*1のものが主流でした*2。やがて「機械学習」と呼ぶ、大量のデータから計算機がルールを自ら学習する方法が台頭してきました。皆さんが普段から使っているインターネット上の「検索エンジン」なども機械学習を利用しています。

*1 ルールベース 「Aの場合はαの処理を、Bの場合はβの処理をする」といった具合に、あらかじめ人が定めたルールの集合を基に判断する。条件が増えて問題が複雑になるとルールが膨大になって処理が難しくなる。また、人の顔を見分けるといった定量化・形式化が難しい問題には対応できない。
*2 機械に知的判断をさせるというアイデアは古くからあった。例えば、「アンティキティラ島の機械」と呼ばれる古代ギリシャの歯車式の計算機などがある。天文学の知識がある者は天体の運行を予想できるが、この機械は、知識がない者でも分かるように作られたと考えられている。

 機械学習はデータ分析の1種で、あるデータ群を分析して、そこに潜むルールやパターンを見いだす手法です。例えば、あるデータ群において、類似のデータが同じグループに分類されているとします。その分類されたデータ群を機械学習させて生成したルール(機械学習モデル)は、学習していない新たなデータに対しても、それがどのグループに該当するかを分類できるようになります。人間が分類ルールをプログラムする必要はありません。

 機械学習には幾つもの手法がありますが、人間の脳神経をまねたものが、現在広く使われている「ニューラルネットワーク」と呼ぶ機械学習モデルです(仕組みの概要はQ2で後述します)。原理的にはどんな種類のデータに対しても学習できるため、古くから研究されていました。

 近年よく聞く「ディープラーニング」(深層学習)は、このニューラルネットワークを文字通り“Deep”(多層、大規模)にしたもので、機械学習の1種です。整理すると、AI、機械学習、ニューラルネットワーク、ディープラーニングの包含関係は図1のようになります。

図1 AIとディープラーニング
図1 AIとディープラーニング
 AIの1種である機械学習の1つにニューラルネットワークがあり、それを大規模化させたものが深層学習。(出所:LIGHTz)
[画像のクリックで拡大表示]

 ディープラーニングのような巨大なニューラルネットワークを使えば、大規模で複雑なデータに対しても優れた成績、つまり人に近い推論・判断が可能になります。顔画像認識や天気予報などにはこの技術が使われています。規模が大きいので複雑な映像の認識や分類など、処理できる仕事が格段に増えます。

 図2は、2019年における代表的な画像認識のAIモデルについて比較したグラフです。縦軸が認識精度、横軸が規模(関数のパラメーター数)です。研究・教育用に公開されている「ImageNet」と呼ぶ1000万枚以上の画像データベースを各AIモデルに学習させ、認識精度を調べました。

 「EfficientNet-B7」「NASNet-A」「SENet」といった最新のAIモデルは認識精度が高く、総じて規模も大きいのが分かります。近年はコンピューターの処理能力が増大し、巨大なデータでも無理なく学習計算ができるようになりました。そのため、現在はディープラーニングがAIの主流となっています。

図2 代表的な画像認識モデルの認識精度とモデル規模
図2 代表的な画像認識モデルの認識精度とモデル規模
(出所:LIGHTz)
[画像のクリックで拡大表示]

Q2 機械学習のニューラルネットワークはどういう仕組みで動いているの?

 AIは関数、すなわち入力に対して適切な出力を返すための機構です。機械学習の場合、入力に対して適した出力を返すように関数のパラメーターを計算によって適正化します。

 ニューラルネットワークが機械学習の主要な手法として採用されているのは、適切な学習データを一定程度与えれば構築でき、人の推論や判断と似た傾向の結果を出せる簡単な関数である、という点が大きな理由の1つです。

 では、それはどのような仕組みで結果を出力しているのでしょうか。図3は「多層パーセプトロン」と呼ぶ最も基本的なニューラルネットワークのアルゴリズムの概念図です*3。図中の○を「ニューロン」と呼び、各ニューロンは結合している他のニューロンの出力を入力として受け取り、その合計値を出力値に変換します*4

図3 パーセプトロンの概念図
図3 パーセプトロンの概念図
○はニューロンと呼ぶ伝達関数を示す。(出所:LIGHTz)
[画像のクリックで拡大表示]
*3 ニューラルネットワークは、人の神経細胞(ニューロン)の発火現象をまねた機械学習モデル。ニューロンは結合している複数の他のニューロンから刺激(信号)を受け取り、それがある一定の大きさを超えると自身が信号を出力する。この反応が連鎖して所定のルートで信号が伝搬する。
*4 変換の際には通常、微分可能な単調増加関数を使う。

 入力に対して、適正な出力が得られるように入力層、中間層、出力層の各ニューロン(関数のパラメーター)を適正化します。これが学習です。ディープラーニングは、縦方向のニューロンの数を大きく増やした上で、中間層のニューロンを多数並べて多重化にしたものです。ネットワークを巨大化させ、それによって複雑で大量のデータに対しても最適な出力を得られるようにしています。