基于BP神经网络的传染病确诊人数预测,BP神经网络的详细原理
创始人
2025-05-29 16:50:36
0次

目标

背影
BP神经网络的原理
BP神经网络的定义
BP神经网络的基本结构
BP神经网络的神经元
BP神经网络的激活函数,
BP神经网络的传递函数
数据
神经网络参数
基于BP神经网络传染病预测的MATLAB代码
效果图
结果分析
展望

背影

人工智能发展越来越快,本文用BP神经网络实现对传染病的预测

BP神经网络的原理

BP神经网络的定义

人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果。作为一种智能信息处理系统,人工神经网络实现其功能的核心是算法。BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法,它的基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方差为最小。

BP神经网络的基本结构

基本BP算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行,而调整权值和阈值则从输出到输入的方向进行。正向传播时,输入信号通过隐含层作用于输出节点,经过非线性变换,产生输出信号,若实际输出与期望输出不相符,则转入误差的反向传播过程。误差反传是将输出误差通过隐含层向输入层逐层反传,并将误差分摊给各层所有单元,以从各层获得的误差信号作为调整各单元权值的依据。通过调整输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。

bp神经网络的神经元

神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
神经网络由多个神经元构成,下图就是单个神经元的图1所示:
在这里插入图片描述
。。。。。。。。。。。。。。。。。。。。。。。。图1 ,神经元模型

bp神经网络激活函数及公式

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/29edde342c3945939ad5945145ca8509.png在这里插入图片描述

BP神经网络传递函数及公式

图2是Sigmoid函数和双极S函数的图像,其中Sigmoid函数的图像区域是0到1,双极S函数的区间是正负1,归一化的时候要和传递函数的区域相对应,不然,可能效果不好
神经网络就是将许多个单一的神经元联结在一起,这样,一个神经元的输出就可以是另一个神经元的输入。
例如,下图就是一个简单的神经网络:在这里插入图片描述
在这里插入图片描述

基于BP神经网络的衣服识别

数据

通过采集设备直接采集,采集两个人的,每个人采集6个动作,每个动作做40次

神经网络参数

三层神经网络,传递函数logsig , tansig,训练函数自适应动量因子梯度下降函数,学习率0.1,学习目标0.0001,最大迭代次数100

MATLAB编程代码

clc%清除命令窗口变量
clear%清除工作空间变量
close all%关闭FIGURE图像

数据

num1 = [0 0 0 0 0 2 0 0 0
0 0 0 0 0 2 1 0 0
4 0 0 0 0 2 5 0 0
14 2 0 0 0 2 19 15 2
20 4 0 0 0 4 39 34 1
51 5 0 0 0 4 90 84 1
33 5 0 0 0 4 123 118 0
14 7 0 0 0 4 137 130 0
46 6 0 0 0 5 183 177 0
82 10 0 0 0 5 265 255 0
40 10 0 0 0 5 305 294 1
90 13 0 0 0 5 395 367 15
81 16 0 1 12 5 463 410 37
90 17 0 0 0 5 553 471 65
90 24 0 0 0 5 643 532 87
72 27 0 0 0 5 715 578 110
54 30 0 0 0 5 769 615 124
35 28 0 0 4 5 800 634 138
19 31 0 0 1 5 818 664 123
20 39 0 0 8 5 830 663 128
18 41 0 0 13 5 835 656 138
15 42 0 0 17 5 834 651 141
19 43 0 0 17 5 836 643 150
11 43 0 0 42 5 805 615 147
5 40 0 0 33 5 777 595 142
7 39 0 0 70 5 715 548 128
3 36 0 0 57 5 661 506 119
1 29 0 0 35 5 627 479 119
1 11 0 0 94 5 534 423 100
1 10 0 0 98 5 437 344 83
1 5 0 0 64 5 374 297 72
0 5 0 0 44 5 330 265 60
1 3 0 0 39 5 292 236 53
2 3 0 0 52 5 242 195 44
0 1 0 0 50 5 192 155 36
0 1 0 0 0 4 192 155 36
0 1 0 0 0 4 192 155 36
0 0 0 0 0 4 192 156 36
0 0 0 0 2 4 190 154 36
0 0 0 0 0 4 190 154 36
0 0 0 0 8 4 182 148 34
0 0 0 0 7 4 175 145 30
0 0 0 0 16 4 159 134 25
0 0 0 0 6 4 153 133 20
1 0 0 0 1 4 153 134 19
0 0 0 0 0 4 153 134 19
0 0 0 0 0 4 153 134 19
0 0 0 0 4 4 149 130 19
0 0 0 0 0 4 149 130 19
0 0 0 0 1 4 148 129 19
0 0 0 0 2 4 146 127 19
0 0 0 0 1 4 145 127 18
0 0 0 0 7 3 138 121 17
0 0 0 0 4 3 134 117 17
0 0 0 0 71 3 63 56 7
0 0 0 0 17 3 46 41 5
0 0 0 0 8 3 38 34 4
0 0 0 0 9 3 29 26 3
0 0 0 0 15 3 14 13 1];

代码

n1 = (size(num1,1));
num = [];
for ii = 1:n1-2
num = [num;[reshape(num1(ii:ii+1,:),1,18) num1(ii+2,[2 3 4 5 6 8 9 1 7])]];
end
n = randperm(size(num,1));
input_train=num(n,1:25)‘;%训练数据的输入数据
output_train=num(n,[26 27])’;%训练数据的输出数据
input_test=num(1:57,1:25)‘;%测试数据的输入数据
output_test=num(1:57,[26 27])’; %测试数据的输出数据
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);%训练数据的输入数据的归一化
[outputn,outputps]=mapminmax(output_train);%训练数据的输出数据的归一化de
%% BP网络训练
% %初始化网络结构
net=newff(minmax(inputn),[25,2],{‘logsig’,‘tansig’},‘traingdx’);
%net.trainParam.max_fail = 9;
net.trainParam.epochs=2000;%最大迭代次数
net.trainParam.lr=0.01;%学习率
net.trainParam.goal=0.0001;%学习目标
%网络训练
net=train(net,inputn,outputn);
%% BP网络预测
%预测数据归一化

inputn_test=mapminmax(‘apply’,input_test,inputps);

%网络预测输出
an=sim(net,input_test);

%网络输出反归一化
BPoutput=round(mapminmax(‘reverse’,an,outputps));

%% 结果分析
figure(1)
plot(BPoutput(1,:),‘r-o’)%预测的结果数据画图-代表虚线,O代表圆圈标识,r代表红色
hold on
plot(output_test(1,:),‘k-*’);%期望数据,即真实的数据画图,-代表实现,就是代表的标识,k代表黑色
legend(‘预测输出’,‘期望输出’)%标签
title(‘BP神经网络测试效果’,‘fontsize’,12)%标题 字体大小为12
ylabel(‘新增确诊’,‘fontsize’,12)%Y轴
xlabel(‘样本’,‘fontsize’,12)%X轴

figure
plot(BPoutput(1,:),‘r-o’)%预测的结果数据画图-代表虚线,O代表圆圈标识,r代表红色
hold on
plot(output_test(1,:),‘k-*’);%期望数据,即真实的数据画图,-代表实现,就是代表的标识,k代表黑色
legend(‘预测输出’,‘期望输出’)%标签
title(‘BP神经网络测试效果’,‘fontsize’,12)%标题 字体大小为12
ylabel(‘累计确诊’,‘fontsize’,12)%Y轴
xlabel(‘样本’,‘fontsize’,12)%X轴

%预测误差
error=BPoutput-output_test;
figure
plot(error(1,:),‘-*’)
title(‘BP网络预测试误差’,‘fontsize’,12)
ylabel(‘新增确诊误差’,‘fontsize’,12)
xlabel(‘样本’,‘fontsize’,12)

figure
plot(error(2,:),‘-*’)
title(‘BP网络预测测试误差’,‘fontsize’,12)
ylabel(‘累计确诊误差’,‘fontsize’,12)
xlabel(‘样本’,‘fontsize’,12)

效果图

在这里插入图片描述
在这里插入图片描述

结果分析

从效果图上看,BP神经网络能很好的实现对传染病的预测,BP神经网络是一种成熟的神经,相对于其他神经网络,拥有很多的训练函数,传递函数,可以调节的参数非常多,对各种问题都可以达到一个比较理想的效果,关键看如何调试参数,选择训练传递函数,有疑问或者其他应用方面,欢迎大家扫描下面的二维码

展望

针对神经网络供工具箱,可以自己写函数的代入并原本的工具箱函数,可以有很多种改进方法

相关内容

热门资讯

今日科普作弊器!久久互娱作弊器... 今日科普作弊器!久久互娱作弊器AI插件,久久互娱多功能原来真的有作弊器插件久久互娱是不是有人用挂微扑...
揭秘!常胜棋牌透视功能脚本,常... 揭秘!常胜棋牌透视功能脚本,常胜棋牌都是是有透视脚本(有辅助挂辅教程)1、在常胜棋牌插件功能辅助器技...
科技揭秘透视挂!丫丫衡阳字牌3... 科技揭秘透视挂!丫丫衡阳字牌3透视挂AI软件,丫丫衡阳字牌3多功能总是是有透视挂软件1、许多玩家不知...
玩家必备教程透视挂!葫芦岛爱玩... 玩家必备教程透视挂!葫芦岛爱玩麻将透视挂AI攻略,葫芦岛爱玩麻将多功能确实有透视挂攻略1、下载好葫芦...
玩家实测!微乐陕西三带透视功能... 玩家实测!微乐陕西三带透视功能插件,微乐陕西三带一贯有透视插件(详细教程辅助)微乐陕西三带能透视中分...
重大通报外挂!闲逸斗地主外挂A... 重大通报外挂!闲逸斗地主外挂AI方法,闲逸斗地主多功能一贯是有外挂方法闲逸斗地主能透视中分为三种模型...
一分钟了解!棋牌游辅助功能攻略... 一分钟了解!棋牌游辅助功能攻略,棋牌游本来真的是有辅助攻略(有辅助挂技巧)1、进入游戏-大厅左侧-新...
科技新动态辅助!老地方辅助AI... 科技新动态辅助!老地方辅助AI脚本,老地方多功能总是真的有辅助脚本1、每一步都需要思考,不同水平的挑...
如何分辨真伪!蜜瓜大厅辅助器功... 如何分辨真伪!蜜瓜大厅辅助器功能方法,蜜瓜大厅切实真的是有辅助器方法(有挂辅方法)在进入蜜瓜大厅软件...
一分钟秒懂开挂!姜堰23张开挂... 一分钟秒懂开挂!姜堰23张开挂AI教程,姜堰23张多功能切实存在有开挂教程1、姜堰23张公共底牌简单...