急!数据挖掘作业。求助bp神经网络,输入值是只含0和1的数,输出值也是只含0和1的数,那么输入层激活函数,输出层激活函数,隐含层激活函数怎么选择呢?孩子试了一下午了,做出来误差太大了。
2条回答 默认 最新
- CSDN专家-ProfSnail 2021-05-25 19:04关注
以下是我想出来的几个思路用于重新考虑你自己的神经网络。
1. 你用了几层神经网络?一层神经网络很可能无法解决异或等线性不可分问题,多层神经网络加上非线性激活函数可以解决这一问题。
2. 你是自己手写神经网络,还是用到了Pytorch等框架?如果是自己手写神经网络,请检查反向传播的梯度计算方法是否有误。
3. 学习速率是否设置的过高或者过低?学习速率过高可能会使得网络一直很快的掠过误差极小值点,导致误差一直较大。学习速率过低,也可能导致很慢才能收敛到合适的结果。一般初始学习速率设置为0.001或者0.0001,如果你的学习速率设置为1,那么很可能学习速率过高了。
4. 你用的哪种激活函数,是否使用的是早期神经网络常用的sigmod函数?如果是sigmod函数,请将他替换为Relu激活函数,因为在实践中被证明,sigmod函数在正数或者负数趋向无穷的时候,会出现梯度消失的情形。
5. 是否使用了优化器来优化反向传播时候的梯度?比较常用的优化器是Adam优化器,他可以适度的调整多个维度上面的反向传播回来的梯度值。建议使用Adam优化器进行优化。
6. 迭代了多少次?如果迭代次数不够的话,可能网络无法收敛。
请按照上述提示检查自己的代码,并及时采纳这条回答。及时的采纳是对付出的肯定~
如果有其余问题,请留言讨论。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来