3

私は独自のニューラルネットを構築しましたが、奇妙な問題があります。

ネットは非常に単純なフィードフォワード 1-N-1 ネットであり、逆伝播学習が行われます。シグモイドは活性化関数として使用されます。

私のトレーニング セットは、[-PI, PI] と [0,1] スケーリングされた正弦値の間のランダムな値で生成されます (これは、「シグモイド ネット」が [0,1] とスケーリングされていない正弦関数の間の値のみを生成するためです)。 [-1,1] の間の値を生成します)。

そのトレーニング セットと、学習率 0.5 でネットを 1-10-1 に設定すると、すべてがうまく機能し、ネットは必要に応じて sin 関数を学習します。しかし.. COSINE 関数に対してまったく同じ方法ですべてを実行すると、ネットはそれを学習しません。隠れ層のサイズや学習率の設定はありません。

何か案は?何か不足していますか?

編集:私の問題は、このアプレットで見られるものと似ているようです。最初に重みに対して「より簡単な」何かが教えられない限り、正弦関数を学習しないようです(2次関数の1400サイクルなど)。アプレットの他のすべての設定は、最初のままにしておくことができます。したがって、正弦または余弦の場合、解を見つける前に、重みを少なくとも部分的に正しい方向にブーストする必要があるようです。どうしてこれなの?

4

2 に答える 2

1

これがどのように機能するかを見るのに苦労しています。

私が見る限り、1つの入力、1つのレイヤーにN個のノード、次に1つの出力があります。したがって、ネットの隠れ層のどのノードにも違いはありません。入力 x と一連の重み w iがあるとします。次に、出力ノード y の値は次のようになります。

y = Σi _ w_i x

  = x . Σi _ w_i

したがって、これは常に線形です。

ノードが異なる方法で学習できるようにするには、異なる方法で配線するか、異なる入力にアクセスできるようにする必要があります。したがって、値の入力、値の平方根(スケールの影響を与える)などを提供し、さまざまな非表示レイヤーノードをさまざまな入力に接続できますが、とにかく少なくとももう1つの非表示レイヤーが必要になると思います。

ニューラルネットは魔法ではありません。加重合計の特定の重みのセットを生成します。正弦関数または余弦関数を近似する一連の重みを導出できるため、ニューラル ネットワークが成功する可能性を得るために必要な入力についての考えを知らせる必要があります。

明確な例:指数関数のテイラー級数は次のとおりです。

exp(x) = 1 + x/1! + x^2/2! + x^3/3! + x^4/4! ...

したがって、1、x 1、x 2などを含む 6 つの入力ノートを提供した場合、対応する 1 つのノードへの各入力を受け取り、それに重みを掛けて、それらすべての出力を出力ノードに供給するニューラル ネットワークは、次のことができます。指数関数の 6 項テイラー展開:

in     hid     out

1 ---- h0 -\
x   -- h1 --\
x^2 -- h2 ---\
x^3 -- h3 ----- y
x^4 -- h4 ---/
x^5 -- h5 --/

ニューラルネットはあまりありませんが、要点はわかります。

テイラー級数に関するウィキペディアのページのさらに下に、sin と cos の展開があり、それぞれ x の奇数乗と x の偶数乗で与えられます (考えてみてください。sin は奇数、cos は偶数、そしてそうです。そのため、x のすべての累乗を指定すると、sin と cos のバージョンは、ゼロの重みが交互に配置された非常によく似たものになると思います。(sin: 0, 1, 0, -1/6..., cos: 1, 0, -1/2...)

于 2012-11-19T13:07:07.513 に答える
0

いつでもサインを計算してからコサインを外部で計算できると思います。ここでの懸念は、サイン関数を学習できるのにニューラルネットがコサイン関数を学習しない理由だと思います。コードが原因ではない場合、このアーティファクトを想定しています。次のことをお勧めします。

  1. 明らかに学習アルゴリズムのエラーのようです。出発点のせいかもしれません。最初の入力で正しい結果が得られる重みから始めてから、前進してみてください。
  2. あなたの学習に大きな偏りがあるかどうかを確認してください - -ve よりも +ve の方が多い
  3. コサインはサイン 90 から角度を引いて計算できるため、重みを見つけて、コサインの 1 ステップで重みを再計算できます。
于 2016-07-21T23:27:02.123 に答える