R深度学习,多输出

R deep learning, multiple outputs

是否可以创建一个提供多个输出的深度学习网络? 这样做的原因也是为了尝试捕捉输出之间的关系。 在给出的示例中,我只能创建一个输出。

library(h2o)
localH2O = h2o.init()
irisPath = system.file("extdata", "iris.csv", package = "h2o")
iris.hex = h2o.importFile(localH2O, path = irisPath)
h2o.deeplearning(x = 1:4, y = 5, data = iris.hex, activation = "Tanh", 
             hidden = c(10, 10), epochs = 5)

H2O 目前似乎不支持多响应列 (H2O FAQ and H2O Google Group topic)。他们的建议是为每个响应训练一个新模型。

(无意义的)示例:

library(h2o)
localH2O <- h2o.init()
irisPath <- system.file("extdata", "iris.csv", package = "h2o")
iris.hex <- h2o.importFile(localH2O, path = irisPath)

m1 <- h2o.deeplearning(x = 1:2, y = 3, data = iris.hex, activation = "Tanh", 
         hidden = c(10, 10), epochs = 5, classification = FALSE)
m2 <- h2o.deeplearning(x = 1:2, y = 4, data = iris.hex, activation = "Tanh", 
         hidden = c(10, 10), epochs = 5, classification = FALSE)

但是,似乎可以通过 deepnet 包(检查 library(sos); findFn("deep learning"))获得多个响应。

library(deepnet)
x <- as.matrix(iris[,1:2])
y <- as.matrix(iris[,3:4])
m3 <- dbn.dnn.train(x = x, y = y, hidden = c(5,5))