1

こんにちは、ニューラルネットワークを学んでいます。は、1 から -1 の間の値のみを格納するニューロンですか? 値 255 または 1024 を与えることはできませんか? encog Java ライブラリ XOR 関数ソルバーの例を探していました。XOR_INPUT と XOR_IDEAL を変更して、XOR を Multiplier に変更したかったのです。

ソースの場所は次のとおりです: http://www.heatonresearch.com/wiki/Hello_World

私は変わりました

から:

/**
 * The input necessary for XOR.
 */
public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 },
        { 0.0, 1.0 }, { 1.0, 1.0 } };

/**
 * The ideal data necessary for XOR.
 */
public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } };

に:

/**
 * The input necessary for XOR.
 */
public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 },
        { 1.0, 2.0 }, { 2.0, 4.0 } };

/**
 * The ideal data necessary for XOR.
 */
public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 2.0 }, { 8.0 } };

これらに値を変更した後。無限ループと出力定数を取得しました:

エポック #274107 エラー:12.75

エポック #274108 エラー:12.75

エポック #274109 エラー:12.75

エポック #274110 エラー:12.75

エポック #274111 エラー:12.75

エポック #274112 エラー:12.75

エポック #274113 エラー:12.75

エポック #274114 エラー:12.75

エポック #274115 エラー:12.75

エポック #274116 エラー:12.75

エポック #274117 エラー:12.75

エポック #274118 エラー:12.75

エポック #274119 エラー:12.75

ここに質問があります。

1-)これは極小値と呼ばれますか?

2-) (0 と 1) または (-1 と 1) の間の値を設定する必要がありますか?

3-) 単純な乗算ソルバーの問題を解決するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

2

出力層はシグモイドです。つまり、0 から 1 の間の値しか表現できないため、そのようなネットワークをトレーニングして他のものを認識することは不可能です。ただし、これはネットワーク障害ではありません。この間隔に収まるように出力をスケーリングし、後でスケーリングを解除する必要があります。

単に:

  • 現在の出力 0,1,2,8
  • 8 が「最大」値であると想定し、0,1/8,1/4,1 を取得して 8 ずつ縮小します。

ここで、ネットワークをトレーニングし、元の出力を取得するには、単純に値に 8 を掛けます。

単純なニューラル ネットワークは記号計算のツールではないことに注意してください。実際に式を見つけるモデルを探している場合は、a*bについて読んでくださいsymbolic function networks

于 2014-04-07T05:14:29.603 に答える