5

私の高度なアルゴリズムとデータ構造のクラスでは、教授から興味のあるトピックを選択するように求められました。彼はまた、それを研究し、それに解決策を実装しようと私たちに言いました。長い間学びたかったので、ニューラルネットワークを選びました。

ニューロンがアクティベーターのステップ関数を使用するニューラルネットワークを使用して、AND、OR、およびXORを実装することができました。その後、XOR演算子の認識を学習する逆伝播ニューラルネットワークを実装しようとしました(シグモイド関数をアクティベーターとして使用)。3-3-1ネットワークを使用することで、これを90%の時間で機能させることができました(入力層と隠れ層で1つのバイアス、重みはランダムに初期化されます)。また、極小値と思われるものにとらわれているように見えることもありますが、よくわかりません(これについては以前に質問したことがあり、極小値はないはずだと言われています)。

それが機能していた時間の90%で、私は一貫して次の順序で入力を提示していました:[0, 0], [0, 1], [1, 0], [1, 0]期待される出力をに設定しました[0, 1, 1, 0]。一貫して同じ順序で値を提示すると、ネットワークは最終的にパターンを学習します。各エポックでまったく同じ順序である限り、実際に送信する順序は重要ではありません。

次に、トレーニングセットのランダム化を実装したので、今回は入力の順序が十分にランダム化されています。ニューラルネットワークがスタックし、エラーが減少していることに気づきましたが、速度は非常に小さいです(各エポックで小さくなっています)。しばらくすると、エラーは値の周りで振動し始めます(したがって、エラーは減少しなくなります)。

私はこのトピックの初心者であり、これまでに知っていることはすべて独学です(チュートリアルや論文などを読む)。入力の表示順序によってネットワークの動作が変わるのはなぜですか?これは、エラーの変化が1つの入力から次の入力まで一貫しているため(順序が一貫しているため)、ネットワークが学習しやすくなるためですか?

これを修正するにはどうすればよいですか?バックプロパゲーションアルゴリズムを調べて、正しく実装されていることを確認します。現在、学習率と勢いで実装されています。適応学習率のような他の拡張機能を検討しています。ただし、XORネットワークは非常に単純なネットワークとして表現されることが多いため、高度なバックプロパゲーションアルゴリズムを使用する必要はないと考えています。

4

1 に答える 1

7

トレーニングセットを構成する観測値(入力ベクトル)をネットワークに提示する順序は、1つの点でのみ重要です。応答変数に応じた観測値のランダムな配置は、順序付けられた配置よりも強く推奨されます。

たとえば、トレーニングセットを構成する150の観測値があり、各応答変数が3つのクラスラベル(クラスI、II、またはIII)のいずれかであり、観測値1〜50がクラスI、51〜100がクラスII、およびクラスIIIの101-50。あなたがしたくないことは、それらをその順序でネットワークに提示することです。つまり、ネットワークでクラスIの50の観測値すべて、次にクラスIIの50の観測値すべて、次にクラスIIIの50の観測値すべてを表示する必要はありません。

分類器のトレーニング中に何が起こりましたか?さて、最初は、順序付けされていない[0、1、1、0]の4つの観測値をネットワークに提示していました。

ネットワークが収束しなかった場合の入力ベクトルの順序はどうでしたか?それが[1、1、0、0]、または[0、1、1、1]であった場合、これは、前述のこの十分に文書化された経験則と一致しています。

一方で、あなたの場合にもこのルールが当てはまるのではないかと思います。その理由は、トレーニングインスタンスが非常に少ないため、順序が[1、1、0、0]であっても、複数のエポック(これは必ず実行する必要があります)でトレーニングすると、この順序がより「ランダム化」されているように見えるためです。上記の例ではなく(つまり、[1、1、0、0、1、1、0、0、1、1、0、0]は、3つのエポックにわたるトレーニングデータをネットワークに提示する方法です) 。

問題を診断するためのいくつかの提案:

  1. 上で述べたように、非収束の場合の入力ベクトルの順序を見てください-それらは応答変数によってソートされていますか?

  2. 非収束の場合は、重み行列を見てください(2つあると仮定します)。非常に大きい値を探します(たとえば、他の値の100倍、または初期化された値の100倍)。ウェイトが大きいとオーバーフローが発生する可能性があります。

于 2011-11-12T03:32:39.633 に答える