BP神经网络用什么训练算法(traingd、traingdm、trainlm)

发布时间:2026/6/15 2:11:10

BP神经网络用什么训练算法(traingd、traingdm、trainlm) 在使用matlab来训练BP神经网络时我们不免会疑惑究竟要怎么选择训练函数呢一、先看看BP神经网络有哪些训练算法我们先来看看matlab为BP神经网络提供了哪些训练函数如下二、选traingd还是选trainlm选traingd有许多教程都说BP神经网络是用traingd、也就是梯度下降算法来训练。但实际上梯度下降算法只是一种粗糙的基础算法作为入门学习可以用来帮助理解。如果一不小心学艺不精直接就使用traingd算法那么训练往往会非常缓慢而且效果有时也不太理想。还是选trainlm吧如果我们仔细看一下就会发现matlab默认使用的是trainlm算法。那么trainlm算法和traingd算法有什么区别呢我们都知道traingd梯度下降算法使用的是梯度的信息、一步一步往负梯度方向迭代。而trainlm比traingd的优势在于trainlm会利用二阶信息(也就是二阶导)所以它比traingd的信息利用得更充分、更具长远眼光训练起来就会快许多。有些同学可能觉得很抽象下面举个例子就会明白了如下从图中就可以看到一阶的迭代稳得很但它迭代得非常慢总是一小步一小步的而二阶迭代由于有二阶信息(x^2项)所以它会找到二阶信息的最小值处、并迭代过去这就比一阶的小步迭代要快许多了。直接使用trainlm算法就要比梯度下降法要快很多matlab默认就是trainlm法我们跟着来使用就可以了。三、再来看看traingdm是什么此外traingdm算法是动量梯度下降法它属于梯度下降法的改进直接看下图就知道它是什么意思了可以看到动量梯度下降法就是模仿石头下坡的原理它在下坡时越滚越快这样它就比梯度下降法要快许多了同时由于它具有动量遇到一些较浅的局部最优时它会凭借动量跳出局部最优这也是动量梯度下降法的一个重要特色。但是相对trainlm法动量梯度下降法的速度还是略慢了一些最好还是选择trainlm法。结束语原理就是这么简单的一个原理实际使用时直接选择matlab推荐的默认算法trainlm就可以了改为其它的训练算法没太大必要。相关文章《老饼讲解-BP神经网络-教程》《老饼讲解-RBF神经网络-教程》《老饼讲解-深度学习-教程》

相关新闻