私はどこかでずっと前に見つけたNNの入力をスケーリングし、出力をスケーリングするためのメソッドを持っていますが、それらが有効かどうかはわかりません.NNのencogライブラリを使用しています:
public static double Scale(double X)
{
double fieldlow = 0;
double fieldhigh = 1;
double min = 1;
double max = 2;
//double max = 10000;
double temp = ((X - min) / (max - min)) * (fieldhigh - fieldlow) + fieldlow;
return temp;
}
public static double DeScale(double X)
{
double fieldlow = 0;
double fieldhigh = 1;
double min = 1;
double max = 2;
//double max = 10000;
double temp = ((min - max) * X - fieldhigh * min + max * fieldlow) / (fieldlow - fieldhigh);
return temp;
}
fieldlow と fieldhigh が NN の入力と出力の範囲であると仮定すると (よくわかりませんが、ActivationTANH の範囲は 0-1 のように見えます)、min はデータの最小値、max はデータの最大値である必要があります。設定した最大値よりも高い値を持つ新しいデータを取得した場合はどうなりますか? このメソッドを書き直して、最初からトレーニングを開始する必要がありますか?
これが間違っている場合は、正しい方向に向けてください。