我正在使用5个输入和1个输出的神经网络执行系统识别。在训练过程中,当梯度稳定时,NARX网络似乎能给出很好的结果。然而,在闭环训练NARX网络时,我经常遇到梯度爆炸/消失的问题。我可以在nntraintool窗口中观察到这一点-梯度发散并变得不稳定,然后在触发器中达到最大mu性能标准,并过早地结束网络训练。请注意,我首先以1e-09的性能目标在开环中训练NARX网络。然后,我用开环权重和偏差作为初始值关闭循环并以闭环形式重新训练。
我想保留NARX网络架构,因为当训练不被爆炸梯度中断时,它在新数据上表现得相当好。你有什么策略或例子来避免NARX网络的爆炸/消失梯度问题吗?我似乎找不到任何讨论、文档或例子来讨论这个问题。
我研究过的一种解决方法是使用泄漏的ReLu激活函数。然而,对于NARX网络的隐藏层传递函数,我没有看到这样的选项。我能找到的最接近的是“poslin”,但我仍然遇到类似的不稳定渐变。我看到的另一个解决方法是使用LSTM或GRU网络。然而,我训练过的每一个LSTM/GRU网络都没有达到与NARX网络相同的性能水平。