0

私はニューラルネットワークの中学生で、入力データをターゲットデータに合わせて訓練したNNを持っており、新しいサンプルデータでNNをシミュレートして予測出力を取得します。ニューラルネットワーク(MATLAB)の出力を非正規化する方法はありますか?

問題は、出力が "ゼロ"と "1"の間の正規化された値であり、 "小数"のような実際の値に変換(非正規化)する必要があることです。

どうすればいいですか?

私はアクティベーション機能を使用する必要があることを読んだが、これを行う方法を理解していなかった。

答えて

0
トレーニングセットが作成された

し、出力値を正規化し、あなたはおそらく最小 - 最大の正規化(または平均-STD正規化)を使用:

zは正規化された出力である
z = (x - min)/(max - min) 

。非正規化値を取得するには、あなただけの正規化のために使用さ最小値と最大値を格納する必要があり、その後、式反転:正規化の他の種類の

x = (max - min) * z + min 

を、同じ手順が行われます。元のトレーニングセットから正規化係数を取得しなければならないことを覚えておいてください。

+0

%NNを初期化します。 net = newff(minmax([入力サンプル])、[3 10 10 10 1]); %ネットパラメータ: net.trainFcn = 'trainlm'; net.trainParam.lr = 0.1; net.trainParam.epochs = 500; net.trainParam.goal = 0.0; %初期化トレーニング: [net、tr] = train(net、input、target); –

+0

NN(minmax)の初期化ステップでこのような正規化を行うには、上記のサンプルコードをご覧ください。逆のプロセスはどうすればできますか? –

+0

@MohamedNedalプロセスを元に戻す関数呼び出しについて質問している場合は、処理を取り消す最小/最大の要素を保存する必要があるため、おそらく何もありません。数学を実装するのは簡単ではありません。 –

関連する問題