- 締切済み
ニューラルネットの標準化について
ニューラルネットの学習前に,データ[X,Y] を標準化 (x-ave(x)) / std(x) ave(x):xの平均 std(x):xの標準偏差 というようにすべてのデータについて,[0,1]に標準化しています. 学習後(BP法),ニューラルネットから得られた回帰式は,標準化したので, パラメータが[0,1]の範囲になってしまっています. この学習後得られたパラメータの標準化を解除して,標準化しないで学習して得られたパラメータのようにしたいのですが, 学習後のパラメータの標準化はどういうふうに解除すればいいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- goma_2000
- ベストアンサー率48% (62/129)
回答No.1
階層型のNeural Networkで入力層への入力を標準化したということでよろしいでしょうか。 中間層(出力層でも)への入力は、結合荷重wとバイアスを用いて s=wx'+bias とかけます。ここでx'は標準化された変数で x'=(x-μ)/σ μは平均、σは標準偏差 です。これより、元のxを用いると s=w*(x-μ)/σ+bias =w/σ*x-w/σ+bias =w'x+bias' となるので、 結合荷重を1/σ倍し 中間層のbias項を-w/σする とすれば同じになります。 複数の入力Nodeがある場合でも同様です。 中間層から出力層は中間層まででその効果を吸収で来ているので 同じになります。
補足
以下のようで正しいのか確認をお願いします. 各変数を次のように定める. 入力層のバイアス:x_bias 中間層のバイアス:z_bias wj0:入力-中間層のバイアス重み wjk:入力-中間層の重み(k>=1) wij:中間-出力層の重み 教師信号:y ー> y'=(y-μ_y)/σ_y バイアスを除いた全入力:x ー> x'=(x-μ_x)/σ_x 以上のように定めて,3層パーセプトロンで学習する. 学習した結果,wjk*,wij* が得られた. 標準化を解くために次の操作をする. wj0* = (wj0*) - (wjk*)/σ_x (入力-中間間,バイアス) wjk* = (wjk*) / σ_x (入力-中間間,バイアス除く) wij* = wij* (中間-出力間,変化なし) あと気になることがあるのでもうひとつ質問させてください. 入力層にバイアスがない3層パーセプトロンではどうすればいいのでしょうか?(wj0がない)