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神经网络-教程

老饼讲解-深度学习-教程

相关推荐
链上日记1 分钟前
WEEX TradFi交易边界正在消失
人工智能
ctlover3 分钟前
AI应用项目开发源码级教程:AI智能伴侣
人工智能
jonyleek6 分钟前
JVS-Logic 实践指南:基于私有化与柔性配置的企业级逻辑引擎落地方法
人工智能·低代码·私有化部署·企业集成·逻辑引擎·流程编排·jvs
诗句藏于尽头8 分钟前
deepseek harness对接商汤科技免费大模型使用教程
人工智能·科技·学习
兰亭妙微UI设计公司11 分钟前
兰亭妙微用户体验公司分享:《AI 体验设计》第 3 部分:指导原则
人工智能
阿萨德528号12 分钟前
DeepSeek Harness 开源了,但先别叫“正式版”:从封闭内测到 Developer Preview,只隔了两周
人工智能·deepseek·harness
轻松,带微笑12 分钟前
美拓GEO平台技术升级:六大AI平台监测+多模态视频能力,赋能品牌抢占AI营销新赛道
人工智能
MEIXIFU114 分钟前
便利店实际经营面积怎么选最合适
大数据·人工智能·物联网·生活·迭代加深
m0_5474866616 分钟前
《数据结构与算法》全套PPT课件2026(中国海洋大学)
数据结构·算法
旖旎夜光26 分钟前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口