つぎに学習についてみていきましょう。結合荷重を修正していく過程、 つまり学習の過程を後向き演算といいます。
出力層のi番目のニューロンの教師信号はtiとします。 バックプロパゲーションでは、誤差を小さくするように結合荷重を修正していきます。 そこで、まず誤差というものを定義しておきましょう。
![]()
まず、出力層の結合荷重の更新についてみていきましょう。 結合荷重Wkjに対する誤差Eの変化を見ればよいのですから、 EをWkjで偏微分すればよいことになりますね。 したがってWkjの修正量ΔWkjはこのようにあらわすことができます。
![]()
ηは学習係数といって、 1回あたりにどのくらい結合荷重を変化させるかをあらわしています。 あまり小さくすると学習回数が膨大になってしまうので、決めかたが難しく、 経験で決められている数です。
上の式をもう少し詳しく見てみましょう。 ηの前にマイナスがついています。 これは、誤差Eのグラフ上のある点で傾きが正のときは修正量を負にし、 傾きが負のときには修正量を正にするためです。 こうすることで、誤差を小さくする方向に結合荷重を変化させているのです。
それぞれの偏微分の計算をしていきましょう。 まず、誤差Eをk番目の出力Okで偏微分します。
![]()
次に、出力Okをネット値ukで偏微分します。 ここで、出力関数を微分可能な関数にした意味が分かりますね。 また、シグモイド関数は微分形がもとの関数の形でつかえることも特徴ですね。
![]()
最後に、ネット値ukを結合荷重Wkjで偏微分します。
![]()
よって、修正量ΔWkjをあらわす式は以下のようになります。
![]()
このようにして、出力層の結合荷重の修正量ΔWkjを求めることができます。