3

「Introduction to Neural Networks with Java By Jeff Heaton」によると、Kohonen ニューラル ネットワークへの入力は -1 から 1 の間の値でなければなりません。

範囲が事前にわかっている入力を正規化することができます: たとえば、範囲が 0 ~ 255 の値としてわかっている RGB (125, 125, 125):
1. 255 で割ります: (125/255) = 0.5 >> (0.5,0.5,0.5)
2. 2 を掛けて 1 を引く: ((0.5*2)-1)=0 >> (0,0,0)

問題は、身長や体重のように範囲が不明な入力をどのように正規化できるかです。

また、他の論文では、入力を 0 と 1 の間の値に正規化する必要があると述べています。「-1 と 1」または「0 と 1」のどちらが正しい方法ですか?

4

2 に答える 2

6

スカッシング関数をいつでも使用して、無限区間を有限区間にマッピングできます。たとえば、 tanhを使用できます。

ただし、同じ領域にオブジェクトを配置しすぎないように、手動で選択した l で tanh(x * l) を使用することをお勧めします。したがって、データの最大値が +/- 500 であると推測できる場合は、x がオブジェクトの値であるマッピングとして tanh(x / 1000) を使用することをお勧めします。 tanh((x - mean) / max) を生成する、x からの平均の推測。

于 2010-04-16T14:47:57.957 に答える
5

Kohonen SOM について私が知っていることから、それらの特定の正規化は実際には重要ではありません。

学習アルゴリズムのパラメーター値の特定の選択による可能性もありますが、最も重要なことは、入力ポイントのさまざまな次元が同じ大きさでなければならないということです。

各データ ポイントが 3 つの RGB コンポーネントを含むピクセルではなく、国の統計データ (たとえば、地域、人口など) を含むベクトルであると想像してください。学習部分の収束には、これらすべての数値が同じ大きさ。

したがって、正確な範囲がわからなくても問題はありません。データの特徴的な振幅をおおよそ知る必要があるだけです。

重量とサイズについては、それぞれ 200kg と 3 メートルで割ると、すべてのデータ ポイントが [0 1] の間隔に収まることが確実です。50kg と 1 メートルを使用することもできます。重要なことは、すべての座標が次数 1 になることです。

最後に、POD などの線形分析ツールをデータに対して実行することを検討してください。これにより、データを正規化する方法と、マップの初期化のための部分空間が自動的に提供されます。

お役に立てれば。

于 2010-04-16T09:16:12.490 に答える