逆伝播アルゴリズムを使用してバイアスとバイアスの重みを更新する方法


7

独自のトレーニングアルゴリズムを作成していますが、バイアスの重みを設定する方法がわかりません。

どのレイヤーでもバイアスを設定する必要がありますか?

バイアスの重みは、すべてのレイヤーで更新する必要がありますか?

回答:


9

ニューロンが結合された入力に応答するしきい値を制御するため、各仮想ニューロンにはバイアスの重みが必要です。したがって、非表示層に100個のニューロンがある場合、それはその層の100個のバイアスウェイトです。同じことが各レイヤーに適用されます。

バイアスを実装する際には、通常2つの異なるアプローチが取られます。あなたはどちらかを行うことができます:

  1. 勾配を計算するための異なる(わずかに削減された)ロジックを持つ、各レイヤーのバイアス重みの個別のベクトルとして。

  2. 重み行列の追加の列として、一致する1の列が入力データ(または以前のレイヤー出力)に追加されるため、接続重みの場合とまったく同じコードがバイアス重みの勾配と更新を計算します。

どちらの場合も、ニューロン活性化デルタからバイアス重みデルタへのバックプロパゲーション計算のみを行います。バイアスの「活性化」デルタを計算する必要はありません。これは変更できるものではないため、常に1.0です。また、バイアスはデルタを他の要素に戻すことはありません。


1

実際には、少なくとも1つの非表示レイヤーを持つバックプロパゲーションがある場合、バイアスは必要ありません。たとえば、入力がゼロの場合、フォワード伝播は0.5(シグモイドの場合)になりますが、バック伝播は最終的に正しい答えが得られるように重みを調整します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.