GO-AHEADの日記

GO-AHEADで出版した書籍の紹介をします

ニューラルネットワークとディープラーニング-2

ニューラルネットワークディープラーニング

amazon kindleを出版しました。


 

 2 パーセプトロン
 前節で示したように、ニューロンは入出力が多数ある、ある一定以上のしきい値の電圧を超えると動作する電子回路であると考えることができます。そこで、パーセプトロンという考え方が、ローゼンブラットという研究者から提唱されました。

f:id:GO-AHEAD:20200212141823p:plain



図2 パーセプトロン

 

 図2に示すように、入力$I$は重み$w$を介して出力と接続されており、出力ニューロンへの入力は、次式のように計算されます。
$\displaystyle \sum_{ k = 1 }^{ n } I_k W_k$


この計算結果が、しきい値を超えると、出力が1となります。しかしながら、この2層のパーセプトロンだけではニューラルネットワークがうまく機能できませんでした。
 このため、ニューラルネットワークの構造を3層構造以上として、しきい値の関数も、次式のようなシグモイド関数などの関数を用います。
$f(x)=\dfrac{1}{1+e^{-x}}$


3 バックプロパゲーション法(誤差逆伝搬法)
 図2で示したパーセプトロンにおける重み$w$を何らかの方法で変化させれば、出力の値を入力の値により変化させることができる。ここで、図3のように、三層構造のニューラルネットワークを考える。

f:id:GO-AHEAD:20200212142124p:plain



図3 三層構造のニューラルネットワーク

ここで、バックプロパゲーション法の流れは次のようになる。
(1)初期重みを乱数によって与える。
(2)入力値を入力層に入れ、出力を確認する。
(3)出力と目標値との2乗誤差を計算する
(4)誤差を最小とするように、重みを修正する。
(5)(2)に戻り繰り返し計算を行い、誤差が設定値以下になると終了する。

簡単化のため、入力と出力の2層の場合について考えます。
入力$I$($n$個)、出力$O$(1個)、誤差$E$、重み$w$、教師信号$T$の場合について、ある一つの入力パターンがあった場合誤差を次のように定義します。

f:id:GO-AHEAD:20200212142143p:plain

図4 バックプロパゲーション

$ m $個の入力があった場合、全体の誤差は次式で表されます。

$E=\dfrac{1}{2} \displaystyle \sum_{ k = 1 }^{ m } (T_k-O_k)^2$

ここで、$O_k=\displaystyle \sum_{ k = 1 }^{ n } I_k W_k$より、誤差を重み$w$で偏微分することができれば学習する方向(傾き)がわかり、重み$w$を変更することができる。ある入力に対して、誤差を重みで偏微分すると、

$\dfrac{\partial E}{\partial w}=-\left( T-\displaystyle \sum_{ k = 1 }^{ n } I_k W_k \right) I $
となり、

$\delta=T-O$

より、次式のようにおける。

$\dfrac{\partial E}{\partial w}=-\delta  I_k  $

重み$w$の変化分を$\Delta w$、学習係数を$\alpha $とすると、次式のようにおけるので、
$\Delta w=-\alpha \delta I_k$

新しい重みは次式で計算される。
$w=w+\Delta w$

 

 少し計算を省略していますが、このように重みが修正されることによって、出力の値が教師信号に近づいていきます。ここでは、証明は行いません。この方法は最急降下法と呼ばれています。学習係数の大きさによっては、ローカルミニマム(局所解)から脱出できなくなる可能性があります。

   基本的な理論はこのようになっておりこの式に基づいて計算を行っていきます。