数模 04BP神经网络代码
2023-09-11 14:20:23 时间
由于内容过于简单,在学习深度学习时已经会了,matlab代码需要的请评论,下面为之前学过的python代码
BP神经网络结构:
w = [0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65]
b=[0.35,0.65]
I=[5,10] # 输入
import numpy as np
# 激活函数
def sigmoid(z):
return 1.0/(1 + np.e**(-z))
# 调用激活函数
def f1(w,b,I):
#FP
h1 = sigmoid(w[0]*I[0] + w[1]*I[1] + b[0])
h2=sigmoid(w[2]*I[0]+w[3]*I[1]+b[0])
h3=sigmoid(w[4]*I[0]+w[5]*I[1]+b[0])
o1=sigmoid(w[6]*h1+w[8]*h2+w[10]*h3+b[1])
o2=sigmoid(w[7]*h1+w[9]*h2+w[11]*h3+b[1])
#BP
t1=-(0.01-o1)*o1*(1-o1)
t2=-(0.99-o2)*o2*(1-o2)
#更新w
w[6] = w[6] - 0.5 * (t1 * h1)
w[8] = w[8] - 0.5 * (t1 * h2)
w[10] = w[10] - 0.5 * (t1 * h3)
w[7] = w[7] - 0.5 * (t2 * h1)
w[9] = w[9] - 0.5 * (t2 * h2)
w[11] = w[11] - 0.5 * (t2 * h3)
w[0] = w[0] - 0.5 * (t1*w[6] + t2*w[7])*h1*(1-h1)*I[0]
w[1] = w[1] - 0.5 * (t1*w[6] + t2*w[7])*h1*(1-h1)*I[1]
w[2] = w[2] - 0.5 * (t1*w[8] + t2*w[9])*h2*(1-h2)*I[0]
w[3] = w[3] - 0.5 * (t1*w[8] + t2*w[9])*h2*(1-h2)*I[1]
w[4] = w[4] - 0.5 * (t1*w[10] + t2*w[11])*h3*(1-h3)*I[0]
w[5] = w[5] - 0.5 * (t1*w[10] + t2*w[11])*h3*(1-h3)*I[1]
print("-"*20)
print(w)
print("-"*20)
return w
for i in range(1000):
print('第%d个'%i)
w=f1(w,b,I)
输出结果如图:
相关文章
- 学习深度神经网络,竟有如此简单的入门方法
- (《机器学习》完整版系列)第5章 神经网络——5.3 SOW网络(“灯阵”面板)、Elman网络(将训练集转化时序数据)、Boltzmann机(达到Boltzmann分布)
- 循环神经网络实现文本情感分类之使用LSTM完成文本情感分类
- 【GRNN调制识别】基于GRNN神经网络和功率谱的信号调制方式识别
- 基于BP神经网络的手写体数字识别matlab仿真实现
- BP神经网络算法的matlab代码
- 小白学数据之什么是神经网络
- 构建分割模型的基本库 使用几行代码构建和训练用于图像分割的神经网络模型(教程含源码)
- 【转载】 深度学习之卷积神经网络(CNN)详解与代码实现(一)
- 【机器学习——BP神经网络】——Python实现、模型保存与调用
- 【机器学习】神经网络BP理论与python实例系列
- 代数与逻辑:作业四 神经网络