ニューラルネットワークは常に収束する必要がありますか?


16

前書き

第一歩

標準的な逆伝播ニューラルネットワークを作成し、それをテストするために、XORをマップすることにしました。

2-2-1ネットワークです(tanhアクティベーション機能付き)

X1  M1
        O1
X2  M2

B1  B2

テストのために、手動で上部中間ニューロン(M1)をANDゲートに設定し、下部ニューロン(M2)をORゲートに設定します(真の場合は出力1、偽の場合は-1)。

また、接続M1-O1を手動で-.5、M2-O1を1、B2を-.75に設定しました。

したがって、M1 = 1およびM2 = 1の場合、合計は(-0.5 +1 -0.75 = -.25)tanh(0.25)= -0.24

M1 = -1およびM2 = 1の場合、合計は((-0.5)*(-1)+1 -0.75 = .75)tanh(0.75)= 0.63

M1 = -1およびM2 = -1の場合、合計は((-0.5)*(-1)-1 -0.75 = -1.25)tanh(1.25)= -0.8

これは、「最初の反復」では比較的良い結果です。

ステップ2

次に、これらの重みを少し変更し、エラー伝播アルゴリズム(勾配降下法に基づいて)を使用してそれらをトレーニングしました。この段階では、入力ニューロンと中間ニューロンの間の重みをそのままにして、中間(およびバイアス)と出力の間の重みを変更します。

テストでは、重みを.5 .4 .3に設定します(それぞれM1、M2、バイアス)

ただし、ここで問題が発生し始めます。


私の質問

学習率を.2に設定し、10000回以上の反復のためにプログラムにトレーニングデータ(ABA ^ B)を反復させます。

ほとんどの場合、重みは良い結果に収束します。ただし、時々、それらの重みは(たとえば)1.5、5.7、および.9に収束し、{1、1}の入力に対して+1出力(偶数)になります(結果が-1の場合)。

ソリューションがまったく収束しない比較的単純なANNが可能か、実装にバグがありますか?

回答:


13

(「エラー伝播」とは、私が「エラーバック - 伝播」と呼ぶものを意味すると仮定します。)

ニューラルネットワーク(ヘイキン著)の231ページで、彼は、逆伝播は常に収束すると述べていますが、その速度は(非常に遅い)場合もあります。

あなたが求めているのは、アルゴリズムが常に収束するかどうかではなく、常に最適な答えに収束するかどうかです。残念ながら、そうではありません。あなたのような単純な場合でさえ、グローバルな最小値ではないローカルな最小値が存在する可能性は完全にあります。

局所的な極値に対処することは、最適化において非常に重要なトピックであり、その対処方法に関する多くのアドバイスを見つけることができます。最も一般的なものの1つは、あなたがやっているように見えることです:ランダム再起動(つまり、アルゴリズムを複数回実行し、それぞれがランダムな場所から開始します)。

コードにバグがあるかどうかを判断するために、エラー用語を出力し、各反復で減少することを確認します。もしそうなら、あなたはおそらくローカルミニマムを打っているだけでしょう。


すべての重みが増加し(ORニューロンへの重みがより速く増加します)、入力が{1,0}、{0,1}、{0,0}の場合はエラーを最小化しますが、{1,1}の場合はエラーを最大化します。これは、バッチ学習よりもオンライン学習の問題ですか?

@Shmuel:オンラインとバッチの両方が勾配の方向に進みます。そのグラデーションが間違った方向を指している場合、両方とも間違った方向に進みます。ヒルクライミングのウィキペディアのページには、興味がある場合にこれを回避する方法がいくつかあります。
Xodarap

6

入力ユニットと非表示ユニットの間のウェイトを修正し、トレーニング中に非表示ウェイトから出力ウェイトのみを変更する場合、局所的な最小値はありません。隠された重みへの固定入力では、解く最適化問題はロジスティック回帰に似ていますが、シグモイド関数の代わりにtanhを使用します。問題は凸であり、グローバルな最小値は1つだけである必要があります。

極小値が問題を引き起こしていないため、導関数を数値的に近似し、計算している値と比較することをお勧めします。これを行う方法がわからない場合は、Standford ULFDLチュートリアルに概要があります。

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