質問

「Jeff HeatonによるJavaを使用したニューラルネットワークの紹介」によると、Kohonen Neural Networkへの入力は-1と1の間の値でなければなりません。

範囲が事前に知られている場合、入力を正規化することができます。たとえば、RGB(125、125、125)では、範囲は0〜255の値として知られています。
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の間の値に正規化する必要があることを述べています。

役に立ちましたか?

解決

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

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

他のヒント

コホネン・ソムについて私が知っていることから、それらは特定の正常化は実際には重要ではありません。

まあ、それは学習アルゴリズムのパラメーターの値に対する特定の選択を通してかもしれませんが、最も重要なことは、入力ポイントの異なる寸法が同じ大きさでなければならないことです。

各データポイントは、3つのRGBコンポーネントを持つピクセルではなく、国の統計データを持つベクトルであると想像してください。同じ大きさ。

したがって、正確な範囲がわからない場合は、実際には問題ではありません。データの特徴的な振幅をほぼ知る必要があります。

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

最後に、データのPODなどの線形分析ツールを実行して、マップの初期化のためにデータとサブスペースを正規化する方法を自動的に提供することを検討できます。

お役に立てれば。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top