我总以为训练函数和学习函数是一回事,都是用来调整权值和阈值的一种方式。
请问:训练函数和学习函数各有什么作为?
BP网络GUI工具中,训练函数可以是trainlm(默认), trainbfg, trainrp, traingd, etc.中的任何一个,学习函数必须是learngd 或 learngdm两者之一。训练函数通过调用学习函数对网络权值进行调整,那是不是说明trainlm只是Matlab中调用学习函数的函数,不具有任何调节权值的性能?但有书上这么写:matlab工具箱中函数trainlm以实现levenberg-Marquardt算法,既然trainlm调用levenverg-Marquardt算法(基于最优化理论的算法),那为选择trainlm后,还要调用learngd(梯度下降)和learngdm(带动量梯度下降)算法?一个网络可以有两种不同的算法么?