我刚刚开始使用h2o软件包,以建立一个带有deeplearning包的受监督的NN网络。 为了使我有点正常,我开始尝试模拟像X + Y = Z
这样的函数我的代码如下:
data <- read.table("DeepLearningTest.csv", header = FALSE, sep = ",", quote = "", stringsAsFactor = F)
test <- read.table("DeepLearningTestRun.csv", header = FALSE, sep = ",", quote = "", stringsAsFactor = F)
df <- data.frame (data)
tf <- data.frame (test)
h2o.init ()
hf <- as.h2o (df)
m2 <- h2o.deeplearning(
training_frame=hf,
x=0:1,
y='C',
hidden = c(100),
epochs=100000,
stopping_tolerance=0.001
)
h2o.predict (m2, as.h2o(tf))
我的测试样本如下(例如):
1 1 2 2 2 4 3 3 6 4 4 8 。 。 。 直到 2000 2000 4000
一般来说,X + X = 2X
我不理解的东西,我写的是,如果我使用一层网络(对于通用近似定理应该是足够的) 我可以追踪网络并预测预测范围内的相当好的值。
例如网络正在给我
100 100 200 101 101 202 7 7 14
但是当我放 4000 4000
结果具有误导性。它给了我6300这样的东西 似乎网络无法推广。 做这种行为我做错了什么?
感谢您的关注。
此致 尼古拉