「已注销」 2021-05-25 18:45 采纳率: 50%
浏览 1002
已采纳

bp神经网络各层激活函数的选择

急!数据挖掘作业。求助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. 迭代了多少次?如果迭代次数不够的话,可能网络无法收敛。

     

    请按照上述提示检查自己的代码,并及时采纳这条回答。及时的采纳是对付出的肯定~

    如果有其余问题,请留言讨论。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格