2

新しいデータセットでニューラルネット パッケージを使用して、トレーニング済みのバックプロパゲーション ニューラル ネットワークを使用して予測を生成しようとしています。「計算」機能を使用しましたが、すべての観測値が同じ値になりました。私は何を間違えましたか?

# the data
Var1 <- runif(50, 0, 100)
sqrt.data <- data.frame(Var1, Sqrt=sqrt(Var1))

# training the model
backnet = neuralnet(Sqrt~Var1, sqrt.data, hidden=2, err.fct="sse", linear.output=FALSE, algorithm="backprop", learningrate=0.01)

print (backnet)

Call: neuralnet(formula = Sqrt ~ Var1, data = sqrt.data, hidden = 2,     learningrate = 0.01, algorithm = "backprop", err.fct = "sse",     linear.output = FALSE)

1 repetition was calculated.

        Error Reached Threshold Steps
1 883.0038185    0.009998448226  5001

valnet = compute(backnet, (1:10)^2)

summary (valnet$net.result)

      V1           
Min.   :0.9998572  
1st Qu.:0.9999620  
Median :0.9999626  
Mean   :0.9999505  
3rd Qu.:0.9999626  
Max.   :0.9999626  

print (valnet$net.result)

         [,1]
[1,] 0.9998572272
[2,] 0.9999477241
[3,] 0.9999617930
[4,] 0.9999625684
[5,] 0.9999625831
[6,] 0.9999625831
[7,] 0.9999625831
[8,] 0.9999625831
[9,] 0.9999625831
[10,] 0.9999625831
4

1 に答える 1

2

以下を機能させることができました。

library(neuralnet)

# the data
Var1 <- runif(50, 0, 100)
sqrt.data <- data.frame(Var1, Sqrt=sqrt(Var1))

# training the model
backnet = neuralnet(Sqrt~Var1, sqrt.data, hidden=10, learningrate=0.01)

print (backnet)


Var2<-c(1:10)^2

valnet = compute(backnet, Var2)

print (valnet$net.result)

戻り値:

     [,1]
[1,] 0.9341689395
[2,] 1.9992711472
[3,] 3.0012823496
[4,] 3.9968226732
[5,] 5.0038316976
[6,] 5.9992936957
[7,] 6.9991576925
[8,] 7.9996871591
[9,] 9.0000849977
[10,] 9.9891334545

ニューラルネットのリファレンス マニュアルによると、パッケージのデフォルトのトレーニング アルゴは逆伝播です。

ニューラルネットは、バックプロパゲーション、レジリエント バックプロパゲーション (RPROP) を使用してニューラル ネットワークをトレーニングするために使用され (Riedmiller、1994)、ウェイト バックトラッキングを使用せずに (Riedmiller および Braun、1993)、または Anastasiadis らによる修正されたグローバル収束バージョン (GRPROP) を使用します。(2005)。この機能により、エラーとアクティベーション機能のカスタム選択により、柔軟な設定が可能になります。さらに、一般化された重みの計算 (Intrator O. および Intrator N.、1993 年) が実装されています。

于 2013-10-06T19:19:51.943 に答える