调整R中的nnet包以更快地收敛

时间:2014-05-30 18:27:01

标签: r neural-network backpropagation

我正在研究我的研究并且长时间坚持让权重在nnet包中收敛。我在天气数据上运行传播算法来预测温度。我之前使用过神经网络包,权重收敛得很好。我能够增加迭代次数以提高准确性。但是当我增加输入模式大小时,Neuralnet包非常慢。以下是有关数据的简要说明。

我从车站每1小时收集一次天气数据。我将每1小时的数据连续24小时填充。这形成了我的输入模式。 Neuralnet运行精美,汇聚了一个月的数据,大约有653种模式。现在,当我想用​​一年培训时。 Neuralnet似乎运行了很长时间。

因此我选择了nnet。 nnet非常快。但它不会收敛为神经网络。 以下是我使用的代码片段。

formula.in=V385+V386+....+V392~V1+V2+...+V382+V383+V384

net<-neuralnet(formula=formula.in,data=data,hidden=90,threshold=0.0001,act.fct="tanh",err.fct="sse", algorithm = "rprop+")

如您所见,我可以更改阈值以获得所需的收敛。 现在我的nnet片段(这是更快但不允许我更改收敛阈值的片段。

target<-as.matrix(data[,385:392]);
input<-as.matrix(data[,1:384]);
net<-nnet(input,target,size=2,maxit=15000)

非常感谢任何帮助。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我也在使用R作为神经网络。因为我是初学者所以请原谅我,如果我的观点听起来有点傻。正如你所说,你正在使用反向传播算法来训练网络,但据我所知,nnet只实现了与神经网络不同的单层前馈神经网络。

简而言之,我认为nnet不使用反向传播。如果我错了,请纠正我。