近年、ディープラーニング(深層学習)の重要性が高まってきています。
今回はその中でも注目のニューラルネットワークについて、細かな仕組みについて説明していきます。
ニューラルネットワークの基礎の部分にあたるので、是非読んでみてください。
ニューラルネットワークとは
ニューラルネットワークは、人の神経回路を真似して作られた数式的なモデルです。
脳の神経には、神経細胞である「ニューロン」とそれらを結合する役割を持つ「シナプス」が存在しています。
脳には億単位のニューロンが備わっており、様々な情報をシナプスを通して、電気信号として処理します。
日々私たちは、視覚や嗅覚などから情報を取得し、それを脳で処理することで、学習、行動しています。
その学習方法をコンピュータの世界に応用したのが、ニューラルネットワークだと覚えておくと良いでしょう。
脳の簡単な仕組みが理解できたところで、次はニューラルネットワークの詳細な仕組みについてみていきます。
ニューラルネットワークの仕組み
ニューラルネットワークは大きく2つの要素から構成されています。
一つが「ノード」、もう一つが「エッジ」と呼ばれる要素になります。
ノードは訳すると「結び目」という意味があり、情報を入力、出力する部分で、エッジは「ふち」の意味でノードのデータを送り出すポイントのようなイメージです。
ITの世界では、ノードはコンピュータやネットワーク機器を指したり、エッジは、末端のコンピュータの意味合いで使うこともあります。
入力されたデータを計算するのがノードで、ノード同士を繋ぐのがエッジの役割だと覚えておくと良いです。
様々な意味合いに取れるので、概念として上図のようなイメージが頭の整理に役立ちます。
冒頭に説明した通り、ニューラルネットワークは、脳の仕組みを模したネットワークで、脳に当てはめるとノードがニューロンにあたり、エッジがシナプスにあたります。
言葉だけだと分かりづらいので、実例を通じてニューラルネットワークの仕組みを理解していきましょう。
「実例」ニューラルネットワークの3ステップ
ニューラルネットワークの代表的な例には、画像分類がありますが、今回は、データ化された数字の画像を分類するケースに置き換えて説明していきます。
画像分類の仕組みは大きく3つのステップで構成されているので、順を追って理解を進めていきましょう。
①データの入力
画像分類をする際は、最初に一つの画像を細かく分類し、色によって数値を割り当てて分析をかけていきます。
今回は、数字の3を他の数字と分類するために、7×8マスに区分けしました。(下図参照)
さらにわかりやすくするために曲線のないデジタルな数字で分割しています。
今回は単純に2色で、黒は1、白は0とすることにしました。それらの数値が、深層学習の大元の値である入力値に当たります。
入力値をもとに正しい出力結果を求めていくことが、ニューラルネットワークの基本です。
②重みの掛け算
画像データの入力が終わったら、次に「重み」と言う要素についてみていきましょう。ニューラルネットワークでは、正しい結果に導くために、重みと言う要素を使います。
重みは入力値であるノードの重要度・貢献度を現した数値であり、入力値に掛け合わせることで正しい結果に近づけることができます。
詳しくは図を見ながら理解していきましょう。
例えば、3の数字を7×8のデジタルデータで入力したとします。入力データはそれぞれのマスが白か黒かで0、1の数字が入力層におさまります。
今回は説明を簡略化するために、入力するためのニューロン(白丸)と出力するためのニューロン(青丸)の2層を題材としました。
入力した数値に重みを加えることで、どの出力結果が正しいのかを判断していきます。
3の出力をするニューロンへの重みが大きくなれば、正しい分類に近づくと言えます。逆に言うと、それ以外の数値を出力する層へは重みは小さくて良いと言えます。
重みを何度も掛け合わせると、新たなノードの列ができますが、それを「隠れ層」と呼んだりもします。
深層学習の「学習」の意味は重みで最適化することを主に指しています。図では3の出力ノードが最も重要であると判断されたため、「0.8」と言う大きな重みで計算されています。
元の入力値に重みを掛け合わせることで、どの出力結果が重要であり、正しい答えなのかをニューラルネットワークでは学習しています。
※活性化関数であるsoftmax関数についても記載していますが、詳しくは次項で説明していきます。
③活性化関数による仕上げ
最後に、活性化関数についても理解しておきましょう。活性化関数とは、簡潔に言うと、複雑な分類を行うための最後の総仕上げになります。
例えば、下図の様に2つの要素を分類したい時、活性化関数なしでは真っ直ぐな直線(1次関数)でしか表すことができませんが、活性化関数を用いて複雑な計算にすることで、曲線で分類することができます。
【活性化関数なしの場合】
【活性化関数ありの場合】
より、分類の幅を広げるための最後の計算なんだと覚えておくと良いかもしれません。
具体的な活性化関数としてはsoftmax関数、シグモイド関数、ステップ関数などがあります。
まとめ
今回はディープラーニングの基礎として、画像分類を例にとってニューラルネットワークの仕組みを解説してきました。
これから機械学習について学んで行きたい人には、必ず押さえておきたいポイントになります。
他にも今回説明しきれなかった活性化関数の意味や役割、ニューラルネットワークの他事例などがあるので、興味がある方は是非調べてみてください。
コメント