ニューラルネットワーク
Neural Network

脳機能の特性のいくつかをコンピュータ上で表現するために作られた数学モデル

人間の脳の仕組みであるニューロン(神経細胞)をヒントに作られたコンピューターの仕組みでAIでも利用されている。

人の脳ネットワーク「ニューロン」の仕組み

人間の脳内は、猫の姿を見て、生きている猫なのか?写真などの画像なのか?ぬいぐるみなのか?を五感(視覚、聴覚、触覚、味覚、嗅覚)を通して判断している。これは、ニューロン(神経細胞)と呼ばれる細胞がネットワーク状に繋がっていることで総合的判断している。

脳内では、ニューロン間で電子信号がやりとりされ、電気信号が限界値(閾値いきち)を超えた刺激によって電子信号が生成(発火)し、他のニューロンとのシナプス(接合部分)の強度によって電気信号の伝わりやすさが変化している。脳はニューロンが組み合わさることによって膨大なネットワークを形成している。

ニューロン間の情報伝達を図式化

ニューラルネットワークの構造

人間の多数組み合わさって複雑な処理を行なっているニューロンから着想を得たニューラルネットワークも、人工ニューロンが多数組み合わせて処理を行っている。

仕組みは、情報を入力する「入力層」、処理をする「隠れ層」、判断結果を「出力層」である。「計算」(隠れ層)に、ニューラルネットワークが使用されている。

ニューロンの仕組み

例えば、手書きの文字が、何かという判断も可能である。画像の場合、1つ1つの点(ピクセル)で構成されています。そのピクセルの色の区分け(黒い部分・薄いグレーの部分・白い部分)をして重み付けを行う。そして、ひらがなの「あ」から「ん」の文字に対する一致している確率(反応度)で判断している。今回の例では、「ぬ」に対して一番強く反応しているが、類似している「め」や「あ」にも反応している。

手書きの文字とひらがなの一致度を隠れ層で計算

入力の重み付けで調整する

データは単純な仕組みで割り出されている訳ではなく、「ぬ」という文字は「め」や「あ」にも反応がでた。手書きの文字であれば人の癖、乱れ、汚れなどで誤認してしまうケースもあるため、これらに重み(weight)をかけて結果をできるだけ正しく出す方法をとっている。仕組みとしては、入力層にデーターに重み(W)を入れて判断する。

人工ニューロンを階層で処理

ニューロンは単純な処理しかできないため、複数のニューロンを組み合わせた隠れ層を作ることで、より詳しいパターンを処理することができる。

入力データが1つで隠れ層が1つのニューラルネットワーク

ディープラーニングで利用されるニューラルネットワーク

隠れ層が深くなることでより複雑なものを正確に処理することができる。3階層以上でディープニューラルネットワーク・ディープラーニングと呼ぶ。ニューラルネットワークには、多数の入力データと複数の隠れ層があり、「前の層から値を受け取る→重みをかけて次の層へ値を渡す」という処理の繰り返しを大量に行なっている。

Googleの画像処理「Inception:インセプション」では、40階層以上の処理システムとなっている。

多数の入力と複数の隠れ層をもつニューラルネットワーク

参考資料

この記事を書いた人:かじしま さちこ

フリーランスのエンジニア。
2001年東京都立大学(現首都大学東京)経済学部卒業。独立系ソフトハウス(システム開発)、株式会社シンプレクス(金融機関向け取引システムの開発・運用)を経て2011年よりフリーランス。フリーランスになってからは、スマホアプリ、サーバーサイド(Java,Railsなど)の開発が多い。
ダイエットのためにランニングとヨガを4年ほど続けているが、どちらもガチになる一方で全く痩せないことが最近の悩み。