神经网络入门必备——BP神经网络

文章目录

  • 神经网络入门必备——BP神经网络
    • 一、什么是BP神经网络
    • 二、BP神经网络的工作原理
      • 2.1 BP神经网络的逻辑模型
      • 2.2 BP神经网络的权重迭代原理
    • 三、BP神经网络训练示例
    • 四、BP神经网络的缺点

一、什么是BP神经网络

神经网络是模仿人的神经元处理方式而诞生的数学模型,BP神经网络是神经网络中最经典的一个,也是最早被广泛应用的一种神经网络模型之一。

BP神经网络由多个神经元组成,神经元之间通过连接权重进行连接。每个神经元接收输入信号并通过激活函数进行处理,然后将输出传递给下一个神经元。BP神经网络的名字来源于其训练算法,即反向传播算法,该算法是一种用于调整神经网络连接权重的方法。

二、BP神经网络的工作原理

2.1 BP神经网络的逻辑模型

符号说明:

符号 说明
XiX_iXi 输入数据
WijW_{ij}Wij 权重
βi\beta_iβi 偏置

BP神经网络分为输入层、隐藏层和输出层。以下图为例,由输入层输入数据,向隐藏层传输一个带有权重(W)的数据。由此原理可知,下一层的“神经元”收到的数据是Xi∗WiX_i*W_iXiWi
BP示意图
一般激活函数为logsiglogsiglogsig,其表达式为:
f(x)=11+e−xf(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1

所以在隐藏层中,收到上一层的数据,处理方式为
logsig(XiWij+Xi+1Wij+1+βi)logsig(X_iW_{ij}+X_{i+1}W_{ij+1}+\beta_i)logsig(XiWij+Xi+1Wij+1+βi)
则上表视图中yyy的表达式为:y=∑m=0m<5logsig(Wm∑i=0i<2∑j=0j<5WijXi+βj+βy)y=\sum_{m=0}^{m<5}logsig(W_m \sum_{i=0}^{i<2}\sum_{j=0}^{j<5}W_{ij}X_i+\beta_j+\beta_y)y=m=0m<5logsig(Wmi=0i<2j=0j<5WijXi+βj+βy)

2.2 BP神经网络的权重迭代原理

符号说明:

符号 说明
mmm 训练样本个数
kkk 输出个数
y^ij\hat y_{ij}y^ij 第i个样本第k个输出的预测值
yijy_{ij}yij 第i个样本第k个输出的真实值
bbb 权重阈值

BP神经网络采用的梯度下调权重的方式,经过数据处理后,对数据进行均方误差函数计算,公式如下:
E(W,b)=1m∑i=1m1k∑j=1k(y^ij−yij)2E(W,b)=\frac{1}{m} \sum_{i=1}^{m}\frac{1}{k} \sum_{j=1}^{k}(\hat{y}_{ij}-y_{ij})^2 E(W,b)=m1i=1mk1j=1k(y^ijyij)2
数据通过均方误差计算,得到符合期望的值后输出得到合适的值,并得到WWWbbb
在这里插入图片描述

三、BP神经网络训练示例

这是一个模拟的数据,以工作、家庭、娱乐三个方面得出幸福度。
在这里插入图片描述
在MATLAB中,将工作、家庭、娱乐三项作为输入数据,幸福度作为输出数据进行模型训练。

x1=[50,40,80,70];
x2=[30,20,40,40];
x3=[60,50,20,40];
y=[40,35,60,63];

input=[x1;x2;x3];  
output=y;
setdemorandstream(88888);
net = newff(input,output,5,{'logsig','purelin'},'trainlm');%%神经元5个
net.trainparam.goal = 0.0001; %%均方误差目标
net.trainparam.show = 400; %%每400次展示一次
net.trainparam.epochs = 15000;  %%训练15000次
[net,tr] = train(net,input,output); 
simout = sim(net,input); 
figure;
t=1:length(simout);
plot(t,y,t,simout,'r')

训练完成后,会得出一个对比图(蓝色为原始图像,红色为预测图像)
在这里插入图片描述
得到训练模型后,写入代码或者在命令框内输入

x=[30;60;50];          
  simy = sim(net,x)

即可得到一个由BP神经网络预测的幸福度
在这里插入图片描述

四、BP神经网络的缺点

1、训练时间长:BP神经网络的训练过程需要大量的迭代计算,因此训练时间较长;
2、由于BP神经网络采用梯度下降算法来优化网络权重,存在着陷入局部最小值的问题;
3、BP神经网络对输入数据的变化非常敏感。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐