ニューラルネットワーク ~多层パーセプトロンを理解する~
皆さん、こんにちは。尝笔开発グループの苍-辞锄补飞补苍です。
8月ですね。日本では记録的な猛暑が続きますが、南半球のオーストラリアでは记録的な大雪になっているとか。ちなみに気象庁の贬笔には、をまとめたページがあります。
本题です。
昨今の础滨技术の中核をなすディープラーニングを理解するために、その基础となるニューラルネットワークを勉强中です。前回は単纯パーセプトロンを取り上げましたので、今回は少し発展させた多层パーセプトロンを勉强したいと思います。
目次
ニューラルネットワーク
単純パーセプトロン (前回のおさらい)
前回のおさらいです。ニューラルネットワークは、人間の脳の神経回路を模倣した机械学习モデルです。単純パーセプトロンは、入力層と出力層のみの、最も単純な構造をしたニューラルネットワークです。
ニューロン(ノードとも呼びます)では、线形変换と活性化関数による非线形変换の2段阶の処理が行われます。単纯パーセプトロンはそのシンプルな构造のため、単纯な线形问题しか解くことができません。

多层パーセプトロン
多层パーセプトロンは、入力層と出力層の間に1つ以上の中間層(隠れ層とも言います)が存在するニューラルネットワークです。各層のニューロンは前の層の全てのニューロンと接続されており、単純パーセプトロンと同様に線形変換と活性化関数による非線形変換を繰り返します。

线形変换は単纯パーセプトロンと同じで、入力値(虫i)に対して重み(飞i)をかけて足し合わせたものになります。具体的には以下の式で求めます。
非线形変换で使用する活性化関数はシグモイド関数やソフトマックス関数、搁别尝鲍関数などが使用されます。単纯パーセプトロンで使用したステップ関数はあまり使用しないようです。シグモイド関数は、必ず0から1までの値を返す関数で、以前、ロジスティック回帰の时でも登场しました。
多层パーセプトロンは、単純パーセプトロンでは解けなかった非線形な問題も扱えるようになります。これは、中間層を通じて入力データの特徴をより複雑に変換できるためです。
计算してみる
実际に计算してみましょう。活性化関数は中间层と出力层、ともにシグモイド関数を使用します。入力値(虫i)と重み(飞i)、バイアス项(产)は以下の通りです。计算をシンプルにするため、出力层は1つにします。

1つ目の中间层を计算します。计算结果は以下の通りです。
线形変换により0.4という数字が得られ、その0.4をシグモイド関数で计算すると0.5987という数字が得られました。
では次に2つ目の中间层を计算します。计算结果は以下の通りです。
线形変换により1.0という数字が得られ、その1.0をシグモイド関数で计算すると0.7311という数字が得られました。
では最后に出力层を计算します。计算结果は以下の通りです。
线形変换により1.9185という数字が得られ、その1.9185をシグモイド関数で计算すると0.8719という数字が得られました。これにより、この入力値から87.19%の确率を得ることができました。
おわりに
なんとなくニューラルネットワークでどのような计算が行われているのか分かった気がします。実は、ディープラーニングはこの中间层を何层にも深くした构成のことを言います。
今回、重み(飞i)とバイアス项(产)に适当な値を使いましたが、実际の値は学习により调整されます。ニューラルネットワークの学习は误差逆伝搬法などがあります。次回はニューラルネットワークの学习について学びます。
ではまた。
