三层bp神经网络的隐层中的神经元怎么确定呢?
发布网友
发布时间:2022-05-23 21:02
我来回答
共2个回答
热心网友
时间:2023-11-27 07:20
尝试法 try-error-try
一般常用方法,就是尝试,可以根据训练集的规模(输入个数)进行尝试,有人提了一些经验公式。
比如这个数据集有4个输入,2个输出,那么你可以设置一个隐层,这个隐层有4个神经元,也可以是4+2,也可以是(4+2)/2,当然也可以是1,也可以是100,完全是人为设定的,你需要根据训练情况(是否易收敛,泛化能力如何)来增加或减少
构造(Constructive)
从一个小规模的网络开始学习,依据训练过程中网络的性能,逐步增加网络结构的规模或复杂性
修剪(Pruning)
从一个规模较大的初始网络开始学习,在网络训练过程中,依据一定的性能准则对得到的满意网络进行结构删减,删除不必要的连接或节点,直到网络性能变差
进化神经网络
使用进化算法学习神经网络的结构
热心网友
时间:2023-11-27 07:20
由多层FNN的BP算法误差函数构成的非线性方程组的独立方程个数和FNN的待求未知变量的个数应该相等,该方程组才能有唯一组解。
由此导出网络结构方程式,进而导出隐层层数判别式和每层神经元个数判别式:
依据Kolmogorov定理,由该判别式得出求解FNN隐层层数和每个隐层神经元个数的具体算法。计算机仿真结果表明该方法简明实用。