题外话
看论文,仿真实现,最基本的能力!研一的时候定要多看看论文,提升自己的代码能力!
引言
本篇博客默认读者有一定的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)之间取随机数!千万注意不可过大,