ニューラルネットワークをわかりやすく解説

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

ニューラルネットワークとは、パーセプトロンを何層にも重ねたもので、多層パーセプトロンとも呼ばれます。

その原形は1943年に考案され、改良を繰り返すことでDeep Learningなど新たな手法が開発されるに至りました。

ニューラルネットワークの図

図を見るとニューラルネットワークが入力層、2層、出力層から構成されていることが分かります。この入力層、出力層以外の層を隠れ層と呼びます。今回は2層目が隠れ層になります。

1と書かれたノードはバイアスを表現するためのノードです。

このニューラルネットワークはn n 個の入力信号を受け取り、2層でm m 個のノードに変換、最後にl  l \ 個出力するとします。

ニューラルネットワークではどのノードもパーセプトロンと同じ働きをします。たくさんのパーセプトロンがつながり、重なることでニューラルネットワークを構築していることが分かります。

また、ノードが矢印でつながっています。

パーセプトロンの矢印が重みを持つようにニューラルネットワークの矢印も重みを持ちます。入力層から発される矢印の重みをw w 、2層から発される矢印の重みをw w' とします。

確認のため、上記のy1 y_1のノードを拡大してみましょう。

ノードの図

図を拡大するとy1 y_1ノードが入力層からn+1 n + 1 個の矢印を受け取り、l l 個の矢印を出力することが分かります。n n 個の入力信号とバイアスから合計n+1 n + 1 個の矢印を受け取ります。

それぞれの重みはどの入力信号を受け取り、どのノードに伝達するかを示します。例えば、重みw1,1 w_{1,1} x1 x_1 を入力として受け取り、y1 y_1 に伝達しています。

ノードでは以下のように変換が行われています。

y1=w0,1+w1,1×x1+ +wn,1×xn y'_1 = w_{0,1} + w_{1,1} \times x_1 + \ldots + w_{n,1} \times x_n

y1= 11+exp(y1) y_1 = \displaystyle \frac{ 1 }{ 1 + \exp ( -y'_1 )}

 活性化関数にはシグモイド関数を用いました。パーセプトロンと同じ計算を行います。

y2,y3,  ,ym y_2, y_3, \ \ldots \ , y_m y1 y_1 と同じように算出されます。

出力層でも同様の計算が行われます。2層にあるy1,y2,  ,ym y_1, y_2 , \ \ldots \ , y_m を受け取り、重みw w' を用いてz1,z2,  ,zl z_1, z_2, \ \ldots \ , z_l をそれぞれ計算します。

ニューラルネットワークとパーセプトロンの違い

ニューラルネットワークはパーセプトロンを重ねたものと説明しました。では違いはどこにあるのでしょうか。

ニューラルネットワークとパーセプトロンにほとんど違いはありません。パーセプトロンはニューラルネットワークの一種です。

ただ文中に出てくるパーセプトロンは単純パーセプトロンを指すことが多いです。単純パーセプトロンは隠れ層を持たず、活性化関数にステップ関数を用います。

一方でニューラルネットワークは隠れ層を持ち、活性化関数にシグモイド関数ReLU関数などを用いることが一般的です。

関連記事

活性化関数の役割と代表的な活性化関数~ステップ・シグモイド・ReLU~

関連サービス

講座一覧ページ

記事一覧はこちら

無料で統計学を学ぶ