全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1156 3
2021-10-16
各位大神,我在做神经网络时遇到一个问题。我使用神经网络对数据进行分类,结果发现当使用1个隐藏层时数据效果非常好,但是当我用2个隐藏层时,无论使用什么函数,几个节点,效果都没有1个隐藏层的效果好。不知道为什么?求大神帮解释。
注:神经网络的设计没有问题,我使用了两种数据进行训练(两个不同的神经网络),一种是分类清晰的数据,结果2个隐藏层的效果和1个隐藏层的效果差不多。但是当我使用那种分类不太清晰的数据时,也就时不同类别的数据存在较大的混淆时,2个隐藏层的效果反而没有1个隐藏层的好了,无论如何都比1个隐藏层的差5-10个点左右。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-10-16 23:18:51
overfit?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-10-20 13:58:58
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-10-20 18:58:20
1、你用的是封装好的神经网络包,还是自己写的底层代码?
2、你说的效果好,是指训练误差小,还是预测误差小?
3、你的数据量有多大?
你遇到的情况其实也正常,大多数情况下,我们只能略知神经网络底层的算法,比如激活函数、损失函数、反向传播、梯度下降等等,至于实际运算过程,也就是每一步的参数优化情况,我们是不清楚的。所以,只能从模型的拟合与预测结果来判断模型是不是好。
通常,隐藏层选1个或2个就够了。到底选几个隐藏层,每个隐藏层选几个神经元,没有必然的规律,需要多试几次选择你认为效果更好的参数。所说的效果,是指预测误差小,也就是模型的泛化能力强,才是真正的好,而不是拟合优度高就好。拟合优度只能说明模型的训练误差,比如$R^2$太高的话,反而可能存在过拟合的问题。
神经网络,其实是很个性化的东西。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群