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

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

文章目录

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

一、什么是BP神经网络

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

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

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

2.1 BP神经网络的逻辑模型

符号说明:

符号 说明
X i X_i Xi 输入数据
W i j W_{ij} Wij 权重
β i \beta_i βi 偏置

BP神经网络分为输入层、隐藏层和输出层。以下图为例,由输入层输入数据,向隐藏层传输一个带有权重(W)的数据。由此原理可知,下一层的“神经元”收到的数据是 X i ∗ W i X_i*W_i XiWi
神经网络入门必备——BP神经网络_第1张图片
一般激活函数为 l o g s i g logsig logsig,其表达式为:
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1

所以在隐藏层中,收到上一层的数据,处理方式为
l o g s i g ( X i W i j + X i + 1 W i j + 1 + β i ) logsig(X_iW_{ij}+X_{i+1}W_{ij+1}+\beta_i) logsig(XiWij+Xi+1Wij+1+βi)
则上表视图中 y y y的表达式为: y = ∑ m = 0 m < 5 l o g s i g ( W m ∑ i = 0 i < 2 ∑ j = 0 j < 5 W i j X i + β 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神经网络的权重迭代原理

符号说明:

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

BP神经网络采用的梯度下调权重的方式,经过数据处理后,对数据进行均方误差函数计算,公式如下:
E ( W , b ) = 1 m ∑ i = 1 m 1 k ∑ j = 1 k ( y ^ i j − y i j ) 2 E(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
数据通过均方误差计算,得到符合期望的值后输出得到合适的值,并得到 W W W b b b
神经网络入门必备——BP神经网络_第2张图片

三、BP神经网络训练示例

这是一个模拟的数据,以工作、家庭、娱乐三个方面得出幸福度。
神经网络入门必备——BP神经网络_第3张图片
在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')

训练完成后,会得出一个对比图(蓝色为原始图像,红色为预测图像)
神经网络入门必备——BP神经网络_第4张图片
得到训练模型后,写入代码或者在命令框内输入

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

即可得到一个由BP神经网络预测的幸福度
神经网络入门必备——BP神经网络_第5张图片

四、BP神经网络的缺点

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

你可能感兴趣的:(人工智能,神经网络,人工智能,机器学习)