• 締切済み

ニューラルネットの標準化について

ニューラルネットの学習前に,データ[X,Y] を標準化  (x-ave(x)) / std(x)  ave(x):xの平均  std(x):xの標準偏差 というようにすべてのデータについて,[0,1]に標準化しています. 学習後(BP法),ニューラルネットから得られた回帰式は,標準化したので, パラメータが[0,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がある場合でも同様です。 中間層から出力層は中間層まででその効果を吸収で来ているので 同じになります。

nekome___
質問者

補足

以下のようで正しいのか確認をお願いします. 各変数を次のように定める.  入力層のバイアス: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がない)

関連するQ&A