【この記事は約 4 分で読み終わります。】

ニューラルネットワークの仕組み

ニューラルネットワークとは一体どういうものなのだろうか。また、ニューラルネットワークには、有望な手法としてディープラーニング以外にはどんなものがあるのだろうか。詳しく見て行こう。

シェアする

  • RSSで記事を購読する
  • はてなブックマークに追加
  • Pokcetに保存する

ディープラーニング(深層学習)手法の発見は、人工知能第3次ブームの火付け役となった画期的な出来事だ。しかし、ディープラーニングのもととなるアイデアは、AIの歴史の上では古くからあるニューラルネットワークにある。ディープラーニングとは、ニューラルネットワーク(NN)を多層化したものであるからだ。では、そのニューラルネットワークとは一体どういうものなのだろうか。また、ニューラルネットワークには、有望な手法としてディープラーニング以外にはどんなものがあるのだろうか。

ニューラルネットワークとは

ニューラルネットワーク(神経回路網)とは、人間や動物の脳の神経細胞(ニューロン、 neuron)の作り出すネットワーク構造を模して作られた、計算機上での問題解決手法の一つである。略してNNとも呼ばれるが、生物学などのニューラルネットワークとは区別して、ANN(人工ニューラルネットワーク、artificial neural network)とも呼ばれることもある。

私達人間などの脳のニューロンは、他の複数のニューロンから信号を受け取って処理を行い、出力をするかどうかを判断している。次に信号を受け取るニューロンも同様に、入力・処理・出力を行い、次のニューロンに情報を渡して、処理を繰り返す。このニューロンの入力や出力を膨大な回数を繰り返すことによって、認知、例えばネコが歩いていることを判断できたり、人の話す言葉の意味を解釈したりしている。

人工ニューラルネットワークでのひとつひとつの素子を、人工ニューロン(artifical neuron)と言う。この小さなニューロンの中では、言葉などの音声や映像などのアナログ量も数値量として処理を行っていると考えられている。この機構を真似て数学的に単純化して作られたのが人工ニューロンだ。

人工ニューロンの中では、非常に単純な処理が行われる。複数の入力された数値量を受け取るが、それぞれに「重み」が調整される。この重みに従って、入力された数値量を増減させた上で足しあわせ、総量を求める。その総量からあらかじめニューロンに設定してある「しきい値」を引く。その残った量を「伝達関数(または、活性化関数)」を通してから出力(出力は一個所のみ)し、次のニューロンへと数値量を渡すのだ。

基本的に、ひとつの人工ニューロンはたったこれだけの処理しか行わないのだが、多数の人工ニューロンが複雑に絡みあって処理を行うことで、複雑で微妙な状態を判断することができるのである。

また、「しきい値」や「重み」は、教師データ(正解となるデータ)との正答率からそれぞれの人工ニューロンで事後的に調整される。この調整(シナプス可塑性と言う)を行うことで正答率を上げていき、「学習」を行うのである。

畳み込みニューラルネットワークとは

ニューラルネットワークの代表的な手法の一つに、畳み込みニューラルネットワークがある。畳み込みニューラルネットワーク(CNN、 convolutional neural network)は、ディープラーニング手法の一つであり、幅広い分野で使われている手法であり、特に画像認識分野で使われることが多いと言われている。

畳み込みニューラルネットワークは、ニューラルネットワークの入力から出力までの間の中間層を多層にし、畳み込み層とプーリング層を繰り返して情報量を圧縮、拡大を繰り返すことで、特定の情報(たとえば線分など)をより抽象化して、あいまいな「特徴」を割り出す仕組みだ。このようにあいまいな特徴にすることによって、線分の位置のズレや角度の微妙な違いなどの些細な違いを取り除き、よりロバストに(頑健性。小さな違いにもへこたれないように)なるのだ。

神経科学の分野で実際のネコの視覚野に特定の線分に反応する特殊な細胞があることが発見され、動物のニューロンには特定の働きを持つ細胞があることがわかった。この視覚認識上の発見などを元に考えだされたのが畳み込みニューラルネットワークである。

ニューラルネットワークは、時制表現は不得意!?

ディープラーニングも含め、従来ニューラルネットワークはある時点での静的な情報を元に処理を行う。しかし、日本語や英語などの自然言語を扱いたい場合など、時間的な表現を解釈できないと理解できない場合も多い。自然言語では前後の文章との関わりやその場での言葉の流れ(コンテキスト)も文章の生成には深く関わりがあるため、非常にその理解や文章生成は難しいのだ。

このような、従来のニューラルネットワークでは不得意な時間的な表現を扱うために考案されたのが、リカレントニューラルネットワーク(RNN、 recurrent neural networks、 再帰型ニューラルネットワーク)である。

従来のニューラルネットワークでは一方向(順方向)に情報が流れていくが、一部の情報を前に戻す処理を行うなどして、本来は失われてしまう過去のデータを反映させるようにしている。最近では、LSTM(long short-term memory)が文章生成の分野で注目されているが、このLSTMもリカレントニューラルネットワークの一種である。

ニューラルネットワークに発展に注目

ニューラルネットワークは、生物の神経細胞のネットワーク構造をモデルとして考えだされた数学的なモデルである。

ディープラーニングやリカレントニューラルネットワークを含め、ニューラルネットワークは一つの素子、つまり人工ニューロンとしては非常に単純なものである。これだけ単純なものではあるが、それだけに汎用性があり、様々な分野に応用可能だと思われる。

ニューラルネットワークは、人工知能研究の初期の頃から存在する古い技術ではあるのだが、人工ニューロンの数や層を増やすことで起こる膨大な処理を行えないなどの問題があり、長い間陽の目を見ない技術だった。

しかし近年のハードウェア技術の向上やトロント大学のヒントン教授をはじめとする研究者らの高速化への努力のおかげで、

人工知能の大きな発展が見込まれるほどに成長した。

ニューラルネットワークという手法は前述の通り汎用性が高いのではあるが、処理が膨大になりやすくスペックに依存しやすいことなどの欠点がある。そのため実用的なものを作るには、ハードウェアの選定が重要となる。

また、生物の脳の仕組みはまだまだ未解明の部分が多く残っており、その解明の進展によっても日々進化していく分野であり、それだけに伸びしろも大きい。今後も、ニューラルネットワークはますます注目されるであろう。


<参考>

  1.  『自然言語処理と深層学習  C言語によるシミュレーション』 (小高知宏)
  2. 『イラストで学ぶ ディープラーニング』    (山下隆義)

シェア

役にたったらいいね!
してください

シェアする

  • RSSで記事を購読する
  • はてなブックマークに追加
  • Pokcetに保存する