AI(Artificial Intelligence:人工知能)の基礎2

1 ニューラルネットワーク(Neural Network)モデル

 人間の脳内にある神経細胞をニューロン(neuron)といい、神経細胞網を数理モデルで表現したものがニューラルネットワーク(Neural Network)です。
 ニューロンの構造は、図のようになっており、中心には細胞体(soma)があり、細胞体の中には細胞核(cell nucleus)、細胞体の表面からは枝状に伸びた樹状突起(dendrite)があります。細胞体又は樹状突起にはシナプス(synapse)があり、シナプスを介して他のニューロンの軸索(axon)がつながっています。
 細胞体(及び樹状突起)は、シナプスを介して他の細胞体(の軸索)からインパルス信号(電気信号)を取得し、軸索を通して次の細胞体にインパルス信号を伝えていきます。
 これを数理モデルに置き換えると次のようになります。細胞体(及び樹状突起)から取得するインパルス信号を入力とし、軸索を出力、入力されたインパルス信号を細胞体が処理する過程を数式で表現して、軸索への出力を決定します。
 神経細胞は、図のような細胞体が沢山結合しており、ニューラルネットワークの数理モデルにおいても、入力層、中間層(隠れ層)、出力層を用意して、ある「入力」を行ったときに、中間層(隠れ層)において「処理」がなされ、出力層において「出力」が決まることになります。
 中間層(隠れ層)は、その階層が多いほど複雑な処理を学習することが可能と考えられますが、一方で階層が多いほど学習データがなければ適切な学習ができないと考えられるため、対象とする処理内容、学習データ量などによって最適な階層は異なってくると理解されています。なお、この階層が多いものを特に深層学習(Deep Learning)と呼びます。
 上の図のように、ニューラルネットワークは、入力層及び出力層の次元数、中間層(隠れ層)の次元数、階層数、それぞれの重み、活性化関数によって定義することが可能です。

2 ニューラルネットワークの学習方法

 ニューラルネットワークは、上記1で述べたようにパラメータによってそのモデルを表現することが可能ですが、このパラメータを最適化するための学習には、もっとも基本的な方法として、誤差逆伝搬法と勾配降下法が用いられます。
 入力層に学習データの入力値を入れ、ニューラルネットワークの出力層からある出力がされます。そして、この出力と教師データの正解との差が小さくなることが目標ですので、まず出力層に近い中間層から、誤差が小さくなるようにパラメータの更新を行います。そして、この誤差を小さくするための方法の一つが勾配降下法という方法で、数学的なイメージとしては、誤差がある関数として与えられているときに、誤差が最寄りの最も小さいところに落ちるように(二次関数以上の曲線を含む関数において最寄りの谷に誤差が落ち込むように)パラメータを更新します。
 このように、誤差を最小化するための方法として勾配降下法を、ニューラルネットワークの複数の層のパラメータを更新していく方法として出力層に近いところから順次パラメータを更新していく方法を誤差逆伝搬法と呼びます。これがニューラルネットワークの最も基本的な考え方であり、この方法の精度を上げたり計算を簡略化するために様々な研究がされ、新たな手法が提案されているところです。

3 人工知能、ニューラルネットワーク、深層学習、機械学習などの言葉の違い

 人工知能(Artificial intelligence)、機械学習(Machine Lerarning)などのいろいろな言葉があふれていますが、人工知能はコンピュータなどの人工物により人の知能を再現する一番広い概念です。
 機械学習は、人工知能を表現するためのモデルの中で、学習データを使って学習を行うものを指しています。例えば、人工知能を実現するためには、大量の知識データベースを人手により構築することで、人の質問に答えるシステムを実現することができます。第2次AIブームのエキスパートシステムはこのような発想で構築されました。一方で、ニューラルネットワークは、大量の入力データとそれに対応する出力データ(学習データ)を用意し、学習のためのプログラムにより、ニューラルネットワーク内のパラメータをコンピュータが自動的に最適化することでモデルを構築します。これを機械学習といいます。機械学習は、人手で知能をブラシュアップするのではなく、コンピュータが自動的に知能をブラシュアップするため、学習のプログラムが正しければ理論的にどんどん賢くなるわけです。機械学習は、ニューラルネットワークをはじめ、人工知能を実現するための概念の一つです。
 ニューラルネットワークは既に説明しましたが、これらの中で特に中間層の階層を多くしたものを深層学習(Deep Learning)といいます。私が認知工学の研究をしていた2000年代は、用意できるデータ量から考えて、経験的に中間層は3階層くらいがよいといわれていました。階層を多くしても十分な学習データがなければ適切な学習ができず、ニューラルネットワークが賢くならないからです。しかし、コンピュータの発達により十分なデジタル化された学習データが用意できるようになり、かつこれを学習するための十分なマシンパワーも用意できるようになったため、階層を多くしてより賢いニューラルネットワークを構築する試みがなされ、これが第3次AIブームを引き起こし現在に至っています。
 上記をまとめると、言葉の意味合いとしては、広い概念から順に、
「人工知能(AI:Artificial Intelligence)⊃機械学習(Machine Learning)⊃ニューラルネットワーク(Neural Network)⊃深層学習(Deep Learning)」
ということになります。

4 まとめ

 ニューラルネットワークの基本について示しました。今の人工知能はいろいろなことができますが、全ての基本は上記の考え方に基づいており、ここ十数年の研究の中で、これらの精度や効率を上げるための様々な方法が提案されているところです。