我们将在Python中创建一个NeuralNetwork类,以训练神经元以给出准确的预测。该课程还将具有其他帮助程序功能。
1. 应用Sigmoid函数
我们将使用 Sigmoid函数 (它绘制一条“ S”形曲线)作为神经网络的激活函数。
2. 训练模型
这是我们将教神经网络做出准确预测的阶段。每个输入将具有权重(正或负)。
这意味着具有大量正权重或大量负权重的输入将对结果输出产生更大的影响。
我们最初是将每个权重分配给一个随机数。
本文参考翻译于此网站 —— 原文
表示m+1层网络,第i层节点数为 ,输入为 ,输入为
weight[m]=
threshold[m]=
delta_weight[m]=
delta_threshold[m]=
输入为 ,输入为
for k in range(1,m+1):#循环m次
----#
----#
初始化:
E_H[m]=
H_I[m]=
for k in range(m,0,-1):
----#1.
----#2.
----#3.
----#4.
weight[m]=weight[m]+delta_weight[m]
threshold[m]=threshold[m]+delta_threshold[m]
python实现的BP神经网络
https://github.com/dai-zb/BPNN_python.git
关于前置的数学知识,可以查看 https://blog.csdn.net/cufewxy1/article/details/80445023
首先是bpnn.py,实现了BPNeuralNetwork类。
然后是__init__.py,使用mnist手写数字数据集对我们的BPNN进行测试,准确率可达97%以上。