IPSJ情報処理カタログ #ジョーショリ

用語集

ニューラルネットワーク

にゅーらるねっとわーくNeural Network(NN)

概 要

脳の神経回路を模した数理的モデル。とても小さく単純な神経細胞を模したモデルを組み合わせて、人工的な知能を作り出す基本的な構造。

解 説

脳のなかには「ニューロン」と呼ばれる神経細胞が多数存在し、それらが「シナプス」という結合部で接続され、情報を伝達しています。シナプスは、前段の神経細胞の情報をいつも伝えるわけではなく、ある程度以上の強さの刺激でないときは、次の神経細胞へと伝えないことが知られています。

このシナプスの「刺激を伝えるか伝えないか」の閾値(いきち)は、経験によって変化します。これが「学習」です。脳は、このように神経細胞同士がつながり、閾値が調整されることで学習しているのです。

これをコンピュータ上で模したものが「パーセプトロン」と呼ばれるモデルです。パーセプトロンは、入力信号に対して重み付けを設定し、その総和が一定の閾値を超えるかどうかで、出力を変える(次のパーセプトロンの入力値を変化させる)単純な機構です。

学習の対象が単純であれば、ひとつもしくは複数のパーセプトロンで実現できます。
パーセプトロンにおいて「学習する」とは、データをいくつか実際に入力し、その出力が本来の出力と合うように、重み付けの値を調整していくのです。これを何十回か繰り返せば、学習できます。
しかし1個や2個のパーセプトロンでは、複雑な学習ができません。というのは、パーセプトロンの計算は、重み付けの掛け算と足し算でしかないので、複雑な数式関係を表現できないからです。具体的には、事象を「直線」で区切って、「その上にあるか」「下にあるか」で2分できる場合には学習できますが(これを線形分離可能と表現します)、そうでないものは学習できません。原理的に(数式的に)実現できないからです。
そこでこのパーセプトロンを多層に組み合わせたものがニューラルネットワークです。ニューラルネットワークでは、組み合わせがたくさんあるので、より複雑で、直線的に分離できない問題でも学習できます。
どれだけ複雑な学習ができるのかは、「中間層」と呼ばれる、間の層を、いくつ用意するかによります。

最近流行のディープラーニング(深層学習)は、この中間層の部分を1つではなく多段で構成したものです。

多段にすれば「文章」「画像」「音楽」などを、そのまま入力して、それを学習できるようになります。ただし多段になれば、重み付けを調整する箇所の組み合わせは、とても多くなります。学習は、この重み付けを調整する操作なので、とても長い時間がかかります。

最近では、グラフィック処理に使うGPUのほか、人工知能専用の計算機能をもつTPUという演算装置を使うことでディープラーニングの学習にかかる時間が軽減されましたが、それでも、学習に数日かかることも珍しくありません。

実現できること

  • ・ユーザーの好みにマッチした商品をレコメンドするショッピングサイト
  • ・人が翻訳しているような自動翻訳システム
  • ・どのような路面状況でも的確な判断ができる自動運転車

将来の展開

ニューラルネットワークの学習は重み付けを決めるもので、少々、力業的な部分があります。そのためとかく計算処理が膨大で、高性能なコンピュータが必要です。

また、データ量によっては、リアルタイムな学習は困難な場合もあります。そのような場合はあらかじめ事前に学習しておくのですが、使うときに、その事前の学習結果に基づく処理しかできないこともあります。つまり、事前に「犬」「猫」などの画像を学習させて動物を判別するというニューラルネットワークを作った場合、、その学習に基づいて出来上がったニューラルネットワークは「犬」か「猫」かを決めるもので、使っている最中に、新たに「鳥」とか「狸」などを学習しながら使えないことがあります。

処理速度の高速化や学習のやり方(重み付けの算出方法)を短くする研究によって、こうした問題は、少しずつ解決される方向に向かっています。

PAGE TOP