相关疑难解决方法(0)

了解随机起始权重对神经网络性能的影响

使用R和包neuralnet,我尝试模拟如下所示的数据:

培训数据

这些是几天内以10分钟为间隔的温度读数(上面是2天的切口).使用下面的代码,我将神经网络拟合到数据中.可能有更简单的方法来建模这些确切的数据,但将来数据可能看起来很不一样.使用具有2个神经元的单个隐藏层给出了令人满意的结果:

良好的神经网络性能

这也适用于大多数层和神经元.然而,有一个隐藏层有一个神经元,偶尔有两层(在我的情况下分别为3和2个神经元),我的结果相当差,总是在同一个形状:

神经网络性能差

唯一随机的是初始化权重,所以我认为它与此相关.但是,我必须承认,我还没有完全掌握神经网络的理论.我想知道的是,糟糕的结果是由于局部最小值('神经网络'使用弹性反向传播,默认情况下重量回溯)我只是运气不好,或者我是否可以避免这种情况.我的印象是有一个最佳数量的隐藏节点用于拟合,例如2度,5度,10度的多项式.如果不是,那么我最好的行动方案是什么?学习率更高?错误阈值较小?提前致谢.

我还没有尝试调整rprop参数,所以解决方案可能就在那里.

码:

# DATA ----------------------
minute <- seq(0, 6*24 - 1)
temp <- rep.int(17, 6*24)
temp[(6*7):(6*20)] <- 20
n <- 10
dta <- data.frame(Zeit = minute, Status = temp)
dta <- dta[rep(seq_len(nrow(dta)), n), ]
# Scale everything
maxs <- apply(dta, 2, max) 
mins <- apply(dta, 2, min)

nnInput <- data.frame(Zeit = dta$Zeit, Status = dta$Status)
nnInput <- as.data.frame(scale(nnInput, center = mins, scale = maxs - mins))
trainingData <- …
Run Code Online (Sandbox Code Playgroud)

r machine-learning neural-network deep-learning

5
推荐指数
2
解决办法
659
查看次数