G検定 ニューラルネットワークと活性化関数 #1

株式会社リュディアです。G検定対策としてニューラルネットワークについてまとめていきたいと思います。

G検定公式テキスト(初版7刷)の p102 に記載されているようにニューラルネットワークは機械学習を実現するための手法の1つです。ディープラーニングという用語は、ディープニューラルネットワークを用いた機械学習手法であり包含関係は以下の図のようになります。

NN階層図

研究者がディープラーニングに至った背景について公式テキストにも記載されているのですが、ディープラーニングに至る前の技術については軽く説明されているため理解しづらいというのが正直なところではないでしょうか。G検定公式テキストでは全体を網羅するため仕方ないことではあるのですが、皆さまの理解を深めるために、私どもでまとめの記事を用意してみたいと思います。

まずニューラルネットワークについてです。人間の脳が神経細胞とその結合で成り立っているというモデルを考えます。この神経細胞をニューロン、結合をシナプスと呼びます。以下の図をみてください。

画像2

神経細胞ニューロンとシナプスによる結合で脳が構成されている様子を示しています。ニューロンとシナプスは簡単なモデルですが、これらを多数組合わせたモデルを導入することで人間の脳のように学習できるのではないか?と考えたのがニューラルネットワークの原点です。このようなモデリングを形式ニューロンと呼び 1943 年に発案されています。詳細については以下の Wikipedia の内容を参照してください。

ニューロンとシナプスによる脳のモデルはできましたが、これがどのように自律的に動作するのでしょうか?以下の図をみてください。。

画像3

各ニューロンは前段から何らかの刺激を受けると、その刺激を後段のニューロンに伝えます。図の中のパルスが刺激であると理解してください。この刺激を受けた後段のニューロンは自分が動作すべきかどうかを判断します。動作することを「発火」と言います。ただし後段のニューロンが発火するかどうかは伝わってきた刺激の強さに依存します。では刺激の強さをどのように表現すればよいのでしょうか?次の図をみてください。

画像4

ニューロン A1, A3 が発火している状態を考えます。図中のオレンジのニューロンが発火状態のニューロンです。発火したA1, A3 は後段の B1, B2 に「発火した」という情報を伝えます。その際に各ニューロンの間で結合の強さの度合いを重みとして定義し後段に刺激を伝えます。重みは一般に整数ではなく実数です。具体的に計算してみましょう。ニューロンの出力はそのニューロンが発火状態であれば 1 、そうでなければ 0 とします。ニューロン A1 と A3 が発火しているのでニューロン A1, A3 は出力として 1 を後段に伝搬します。ただし結合には重みが定義されていますので重みを考慮して後段に刺激の強さを伝えます。

ニューロン B1 はニューロンA1, A2, A3 から刺激を受けますが、A1 と A3 が発火状態で A2 は非発火状態です。このとき B1 が受ける刺激の強さは重みを考慮して w1*1 + w21 * 0 + w31*1 = w1 + w31 となります。同様にニューロン B2 はニューロン A2, A3 から刺激を受けますが、A3 のみが発火状態で A2 は非発火状態です。このとき B2 が受ける刺激の強さは w22 * 0 + w32 = w32 となります。

これで 2段目のニューロン B1, B2 が受ける刺激の強さが計算できましたね。今回はニューロン、シナプスによるニューラルネットワークのモデリングについてまとめました。単純化するためにバイアスについては考慮しませんでしたが後段に刺激を伝える計算方法についても説明しました。次回は刺激を受けたニューロンが「自分自身が発火すべきかどうか判断する」方法についてまとめたいと思います。

では、ごきげんよう。


この記事が気に入ったらサポートをしてみませんか?