Python实现三层BP神经网络

这篇博客详细介绍了如何用Python实现一个三层BP神经网络,包括二分类问题,sigmoid激活函数的应用,训练过程和常见优化策略。作者强调了初始化权重、数据归一化、隐藏层节点数量以及动量因子等关键点,并提供了代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题外话

看论文,仿真实现,最基本的能力!研一的时候定要多看看论文,提升自己的代码能力!

引言

本篇博客默认读者有一定的BP神经网络的基础,BP神经网络的基本知识就不阐述了!

BP神经网络结构

本文内容:
1. 二分类的三层BP神经网络
2. 激活函数为sigmoid函数
3. 由于是二分类,输出函数和隐藏层函数都为sigmoid函数
4. 计算下一层节点的公式:y=wx+b

步骤

大概步骤:
1. 初始化weight和b的数据
2. 根据y=wx+b,来计算结果y
3. 根据loss_function来更新weight和b,根据梯度下降法,可以查看参考网址1

代码

https://github.com/paulpig/machine_learning/blob/master/fnn.py

注意点

此处为本篇博客的重点,也许你也像我一样能够根据参考网址,将代码编写出来了,但是无论训练多少次,实验结果都非常差!
本文提供四种思路:
1. 增加隐藏层的节点数量
2. 多增加一个输入层节点,将它作为偏移量b,或者每层每个节点都添加偏移量b,两者的效果是一样的!
3. weight的初始化定要慎重,weight的初始化大小要和节点的值相差不大,建议在(-2,2)之间取随机数!千万注意不可过大,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值