ここではバックプロパゲーション(BP)の基礎となる、 最急降下法について学んでいくことにしましょう。
まず、次のアプレットをみてみましょう。青いボールと、赤いボールがあり、 それぞれのボールは坂を下る方向に落ちていきます。 そして谷に来たところで動きがとまっていますね。
この坂を「ニューラルネットが出した答と教師信号の誤差をあらわす関数」、 ボールを「結合荷重の変化」として考えてみたらどうなるでしょう? 局所的にですが、 誤差が小さくなったところで結合荷重の変化がなくなると考えることができますね。
最急降下法とは、 このように誤差Eが小さくなるようにする結合荷重Wを求めるための方法の1つです。 この方法では、関数のある点での勾配を求めて 誤差Eが少なくなる方向へ結合荷重Wを変化させていきます。
しかし、必ず誤差が一番小さくなるところでWの変化が止まるといえませんね? Wを変化させるはじめの位置によっては、最小値にはならないこともあります。 赤いボールが止まっているような、 極小値のことをローカルミニマムといいます。
![]()
BPで最急降下法の考え方を使うために、1つ準備しておくことがあります。 それは、微分可能な連続関数を用意することです。左の図のような関数で、 この関数をシグモイド関数といいます。
いままでは「0」と「1」の2値の出力でしたが、 これからは「0から1までの実数値」の出力になります。 これもパーセプトロンの改良点の1つです。 シグモイド関数は、
![]()
という数式で表されます。
いままでの階段関数と、このシグモイド関数の違いはわかりますか? それは、微分可能な連続関数 であるかということです。 階段関数ではx=0で微分できませんね。
![]()
最急降下法を使うとき、関数の傾きを知る必要があります。 関数の傾きを求めるには微分ができなければいけません。 そこでシグモイド関数が必要なるのです。
パーセプトロンの改良点がたくさん出てきました。最後にまとめておきましょう。
- 中間層の結合荷重が学習によって変更できる。
- 学習法はバックプロパゲーションを用いる。
- 出力関数はシグモイド関数を使う。
- 出力値は0から1の実数値である。