Best Engine

ITの最新動向を紹介する技術情報サイト

IT Terminology

ニューラルネットワーク

高度な画像解析などを含めた人工知能(AI)の根幹を支えるのが「ニューラルネットワーク」です。
それはいったいどういうものなのか。「機械学習」や「ディープラーニング」とはどういう関係にあるのか。
その仕組みや今後の展開の可能性について解説します。

文/近藤 雄生

脳を真似て作られた数学モデル

手書きの文字を判読したり、別の角度から撮影された同じものの写真を見て、それが同じものであると認識したりすることを私たち人間は無意識に日常的に行っています。しかし同じことをコンピュータで行うのは、決して容易ではありません。従来の方法では、例えば手書きで書かれた「の」という文字を自動で判読させるだけでも、極めて多くの条件や例外を一つひとつ例示した膨大なプログラムを書かなければならなくなります。

コンピュータでは困難な処理を人間が簡単にできるのは、脳全体に千数百億個もある神経細胞のおかげです。神経細胞は、互いに繋がり合って神経回路と呼ばれる膨大なネットワークを作ります。そして、電気信号を互いにやりとりすることで高度な処理や判断を行っています(図1・上)。

では、それと同等なメカニズムをコンピュータ上に構築すれば、コンピュータも人間と同じような能力を持てるのではないか。その発想で、神経回路を真似て考え出された数学モデルが「ニューラルネットワーク」です。

脳の神経回路が神経細胞を構成単位としてできているように、ニューラルネットワークは、「人工ニューロン」(図1・下)を構成単位として作られます。また神経細胞が、複数に分岐した「樹状突起」から電気信号を入力し、1本の長い「軸索」から出力するのと同じように、人工ニューロンも、複数の入力と1つの出力を持っています。

図1
図1

神経細胞では、「細胞体部」の周縁に伸びる複数の「樹状突起」から電気信号が入力される。それらの信号は中央の細長い「軸索」を通り、図右端の「軸索末端」から他の細胞へと出力される。人工ニューロンも同様に、情報の入力路が複数ある。
【参考】https://sitest.jp/blog/?p=6727

「重みづけ」と「閾値(いきち)」

人工ニューロンは、神経細胞と似た役割を果たすために2種の数値を持っています。一つは、入力される複数の情報に重みづけをして足し合わせるための「重みづけの比率」。もう一つは、足し合わされた情報から意味を引き出すのに必要な「閾値」です。この2種の値によって、人工ニューロンは、様々な判断を行うモデルの構築を可能にします。

簡単な例として、「写真に写る風景が日本の大都市であるか否か」を判断するモデルを作ることを考えてみます。判断のための条件を仮に次の3つとします。

  1. 日本語の表記が多いか
  2. ビジネススーツ姿の人が多いか
  3. 建物が占める割合が樹木の2倍以上か

a、 b、 cそれぞれについて、正であれば1、否であれば0が、人工ニューロンに入力されます。また、aから順に重要度が高いとして各条件に重みづけをし、その比を5:3:2とします。そして閾値は6とします。

つまり、例えば写真の中に日本語表記が多く(a=1)、スーツ姿の人は少なく(b=0)、建物が樹木の2倍以上あれば(c=1)、入力から得られる値は1×5+0×3+1×2=7。閾値の6より大きいので、この写真は日本の大都市であるという判断になります(出力は1)。また、日本語表記が少なければ、スーツ姿の人も建物の割合も多くても(a=0、b=1、 c=1)、得られる値=5となり閾値より小さいため、日本の大都市ではないと判断されます(出力は0)。ところが、閾値を4にするとどうでしょうか。日本語が多ければ、他の条件に関わらず日本の大都市となり、日本語がなくとも、スーツ姿の人が多く、建物の割合が高ければ日本の大都市と判断するというモデルに変化するのです。

数学的な詳細は一切省いて単純化した説明ですが、こうして閾値を変化させたり、または重みづけを変えたりすることで、人工ニューロンで様々なモデルが作れることがわかります。

記載内容は掲載当時の情報です。最新情報と異なる場合がありますのでご了承ください。