1

MATLAB には、フィードフォワード ニューラル ネットワークの入力データとターゲット出力データに適用する必要がある removeconstantrows 関数があります。この関数は、データから定数行を削除します。たとえば、5 入力ニューラル ネットワークの 1 つの入力ベクトルが [1 1 1 1 1] の場合、それは削除されます。

グーグル、私が見つけた最良の説明は、(言い換えると)「一定の行は必要なく、出力レイヤーのバイアスを適切に調整することで置き換えることができる」ということです。

誰かが詳しく説明できますか?

この調整は誰がするのですか?

私の本から、単純な勾配降下の重み調整は次のとおりです。

Δ weight_i = learning_rate * local_gradient * input_i

これは、最初の隠れ層のニューロンのすべての重みが同じ量だけ調整されることを意味します。しかし、それらは調整されています。

4

1 に答える 1

1

誤解があると思います。「行」は入力パターンではなく、すべてのパターンのi番目のコンポーネントである機能です。一部の機能がすべてのデータセットで大きな差異を持たない場合、それは貴重な情報を提供せず、ネットワークトレーニングで目立った役割を果たさないことは明らかです。

バイアスとの比較は可能です(私は同意しませんが、これは出力レイヤー(のみ)に適用されます。これは、定数行がどこにあるかによって異なるためです。入力データ内にある場合は、最初の隠しレイヤー、imho)。覚えている場合は、バックプロパゲーションネットワークの各ニューロンに、1つの一定の信号に接続された特別なバイアスの重みを設定することをお勧めします。たとえば、トレーニングセットにすべて1番目の行が含まれている場合、これは追加のバイアスと同じです。定数行の値が異なる場合、バイアスの効果は異なりますが、いずれの場合も、この行を削除して、行の定数値を既存のバイアスに追加することができます。

免責事項:私はMatlabユーザーではありません。ニューラルネットワークの私のバックグラウンドは、プログラミング分野からのみ来ています。

于 2012-12-14T13:37:21.300 に答える