従来のバックプロップネットワークではnnetとneuralnetを使用して値を予測できましたが、MXNETとRで多くの理由で同じことをしていました。はmxnet 0.94でRについては予測できません
これはファイル(、列が正規化されたヘッダを持つシンプルなCSVていた)され https://files.fm/u/cfhf3zka
そして、これは私が使用するコードです:
filedata <- read.csv("example.csv")
require(mxnet)
datain <- filedata[,1:3]
dataout <- filedata[,4]
lcinm <- data.matrix(datain, rownames.force = "NA")
lcoutm <- data.matrix(dataout, rownames.force = "NA")
lcouta <- as.numeric(lcoutm)
data <- mx.symbol.Variable("data")
fc1 <- mx.symbol.FullyConnected(data, name="fc1", num_hidden=3)
act1 <- mx.symbol.Activation(fc1, name="sigm1", act_type="sigmoid")
fc2 <- mx.symbol.FullyConnected(act1, name="fc2", num_hidden=3)
act2 <- mx.symbol.Activation(fc2, name="sigm2", act_type="sigmoid")
fc3 <- mx.symbol.FullyConnected(act2, name="fc3", num_hidden=3)
act3 <- mx.symbol.Activation(fc3, name="sigm3", act_type="sigmoid")
fc4 <- mx.symbol.FullyConnected(act3, name="fc4", num_hidden=1)
softmax <- mx.symbol.LogisticRegressionOutput(fc4, name="softmax")
mx.set.seed(0)
mxn <- mx.model.FeedForward.create(array.layout = "rowmajor", softmax, X = lcinm, y = lcouta, learning.rate=0.01, eval.metric=mx.metric.rmse)
preds <- predict(mxn, lcinm)
predsa <-array(preds)
predsa
コンソール出力は次のとおりです。
Start training with 1 devices
[1] Train-rmse=0.0852988247858687
[2] Train-rmse=0.068769514264606
[3] Train-rmse=0.0687647380075881
[4] Train-rmse=0.0687647164103567
[5] Train-rmse=0.0687647161066822
[6] Train-rmse=0.0687647160828069
[7] Train-rmse=0.0687647161241598
[8] Train-rmse=0.0687647160882147
[9] Train-rmse=0.0687647160594508
[10] Train-rmse=0.068764716079949
> preds <- predict(mxn, lcinm)
Warning message:
In mx.model.select.layout.predict(X, model) :
Auto detect layout of input matrix, use rowmajor..
> predsa <-array(preds)
> predsa
[1] 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764
[10] 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764 0.6776764
それは「平均」を得るが、値を予測することができず、過予測を避けるために他の方法や学習を試みたが、 dは偶数変数出力です。
クロスプロットが表示されていて、これで十分ですが、あなたの解決策は次のようになります。なぜLinearRegressionであり、Sigmoidとして湾曲したものではないのか(なぜロジスティックは全く働いていないのか)、そして、なぜこのネットワークは、nnetとneuralnet(同じCPU内で実行されているシグモイドでも)よりも1000倍遅い – David