私はRインターフェイスを介してh2oを探索しています。私は奇妙な重み行列を得ています。私の仕事は、x、yを計算するとx + yを計算するのと同じくらい簡単です。
私は3列の214の行を持っています。最初の列(x)は、(-1000、1000)から一様に描画され、2番目の列((y)は(-100,100)から描画されました。私はただそれらを結合したいので、私は単一のニューロンを持つ単一の隠れた層を持っています。 これは私のコードである:h2o深い学習の重みと正規化
library(h2o)
localH2O = h2o.init(ip = "localhost", port = 54321, startH2O = TRUE)
train <- h2o.importFile(path = "/home/martin/projects/R NN Addition/addition.csv")
model <- h2o.deeplearning(1:2,3,train, hidden = c(1), epochs=200, export_weights_and_biases=T, nfolds=5)
print(h2o.weights(model,1))
print(h2o.weights(model,2))
結果がYの重み値は0.055であり、いくつかの理由
> print(h2o.weights(model,1))
x y
1 0.5586579 0.05518193
[1 row x 2 columns]
> print(h2o.weights(model,2))
C1
1 1.802469
ある - Xよりも10倍低いです。したがって、最終的にニューラルネットはx + y/10を計算します。しかし、h2o.predictは実際に正しい値を返します(テストセット上であっても)。
データをスケーリングする前処理ステップがあると思います。モデルによって生成された実際の重みを再現できる方法はありますか?私は、かなりシンプルなニューラルネットワークを視覚化できるようにしたいと考えています。