1

PSO を使用してトレーニングしている FF ニューラル ネットワーク (分類問題に使用) に取り組んでいます。隠れ層は 1 つしかなく、その層のニューロンの量を変えることができます。

私の問題は、NN は線形分離可能な問題を非常に簡単に学習できるが、線形分離できない問題 (XOR など) を学習できるはずのように学習できないことです。

PSO が各粒子の誤差関数を最小化しようとしていることがわかるため (トレーニング セットの平均二乗誤差を使用)、私の PSO は正しく機能していると思います。

同様の(悪い)結果を持つシグモイドおよび線形活性化関数を使用してみました。バイアスユニットもあります(これもあまり役に立ちません)。

私が知りたいのは、この種の問題を引き起こす可能性のある間違ったことをしている可能性がある特定の何かがあるかどうか、またはエラーがどこにあるのかを調べる必要があるかどうかです。

現時点では少し迷っています

ありがとう

4

1 に答える 1

2

PSO は、ニューラル ネットワークをトレーニングして、XOR などの線形分離可能な問題を解決しないようにすることができます。私は以前にこれを行ったことがあります.私のアルゴリズムは最大で約50回程度の反復を要します. Sigmoid は、XOR の有効化関数として優れています。分離不可能な問題が収束する場合、私の推測では、何らかの形で隠しレイヤーが効果を発揮していないか、バイパスされていると考えられます。非表示レイヤーは、通常、非分離を許可するものです。

AI をデバッグするときは、最初にトレーニング コードまたは評価コード (この場合はニューラル ネットワーク) に問題があるかどうかを判断することが役立つことがよくあります。ネットワーク用に 2 番目のトレーナーを作成することをお勧めします。次に、ネットワーク コードが出力を正しく計算していることを確認できます。簡単な「ヒルクライマー」もできます。ランダムなウェイトを選択し、ランダムな少量 (アップまたはダウン) で変更します。エラーは改善されましたか?体重の変化を保ち、繰り返します。エラーが悪化した場合は、変更を破棄して再試行してください。

于 2013-05-03T14:24:31.630 に答える