神经网络的拓扑结构挺关键的,是在你正式训练之前。拓扑结构的核心就是隐层神经元的数量,还有初始的权值和偏差怎么设。神经元多一点,理论上拟合更好,但现实中别贪多,不然训练慢还容易过拟合。你要是发现模型效果不行,就得重新设计拓扑,或者换一套初始参数。

几个资源挺值得一看,比如那篇关于 BP 神经网络拓扑结构的文章,讲得比较系统,里面还有实例。还有像 RBF 网络、BAM 模型这类,也可以当拓扑设计的参考方向,扩展思路嘛。顺带推荐个比较实用的技巧,训练不理想的时候,别急着调学习率,先看看是不是神经元设太多了。

要是你对 BP 神经网络比较熟,但一直纠结隐层怎么设,那篇关于神经元个数影响的文章可以重点看下,讲得还挺细。还有那篇讲权值衰减过拟合问题的文章,对用 Matlab 做实验的朋友也蛮有。