我在尝试训练神经网络后遇到的问题并不是一个新问题:我得到的拟合值都是一样的。以下是一些过于简化的代码示例:
a <- c( 123, 223, 234, 226, 60)
b <- c(60, 90, 53, 54, 91)
d <- c(40,100,207,290,241)
q <- cbind(a,b,d)
nn <- neuralnet(a~b+d,data=q,hidden=2,threshold=0.01,err.fc="sse")
nn$net.result`
以前的答案我偶然发现建议使用nnet。我得到了相同的结果,除非我将衰减参数设置为不等于0的值。而不是盲目地使用衰减选项,只是因为它似乎“工作”,我会很感激我的神经网络出了什么问题模型开始。
答案 0 :(得分:3)
因此,在使用neuralnet
和nnet
使用原始数据集后,我发现了问题所在。这是随机选择的初始权重。 neuralnet
分配给它们的值范围导致了这种奇怪的解决方案。但是,当我尝试使用startweights
语句手动将起始权重设置为我从nnet
得到的值(在那里返回了适当的拟合值)时,我得到了“算法没有收敛”错误。所以我想我只需放弃neuralnet
的情节并坚持nnet
。