发展背景

在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工神经网络的发展发挥了极大的作用,也被认为是一种真正能够使用的人工神经网络模型,它的出现曾掀起了人们研究人工神经元网络的热潮。单层感知网络(M-P模型)做为最初的神经网络,具有模型清晰、结构简单、计算量小等优点。但是,随着研究工作的深入,人们发现它还存在不足,例如无法处理非线性问题,即使计算单元的作用函数不用阀函数而用其他较复杂的非线性函数,仍然只能解决线性可分问题.不能实现某些基本功能,从而限制了它的应用。增强网络的分类和识别能力、解决非线性问题的唯一途径是采用多层前馈网络,即在输入层和输出层之间加上隐含层。构成多层前馈感知器网络。

20世纪80年代中期,David Runelhart。Geoffrey Hinton和Ronald W-llians、DavidParker等人分别独立发现了误差反向传播算法(Error Back Propagation Training),简称BP,系统解决了多层神经网络隐含层连接权学习问题,并在数学上给出了完整推导。人们把采用这种算法进行误差校正的多层前馈网络称为BP网。

BP神经网络具有任意复杂的模式分类能力和优良的多维函数映射能力,解决了简单感知器不能解决的异或(Exclusive OR,XOR)和一些其他问题。从结构上讲,BP网络具有输入层、隐藏层和输出层;从本质上讲,BP算法就是以网络误差平方为目标函数、采用梯度下降法来计算目标函数的最小值。

基本原理

在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工神经网络的发展发挥了极大的作用,也被认为是一种真正能够使用的人工神经网络模型,它的出现曾掀起了人们研究人工神经元网络的热潮。单层感知网络(M-P模型)做为最初的神经网络,具有模型清晰、结构简单、计算量小等优点。但是,随着研究工作的深入,人们发现它还存在不足,例如无法处理非线性问题,即使计算单元的作用函数不用阀函数而用其他较复杂的非线性函数,仍然只能解决线性可分问题.不能实现某些基本功能,从而限制了它的应用。增强网络的分类和识别能力、解决非线性问题的唯一途径是采用多层前馈网络,即在输入层和输出层之间加上隐含层。构成多层前馈感知器网络。

20世纪80年代中期,David Runelhart。Geoffrey Hinton和Ronald W-llians、DavidParker等人分别独立发现了误差反向传播算法(Error Back Propagation Training),简称BP,系统解决了多层神经网络隐含层连接权学习问题,并在数学上给出了完整推导。人们把采用这种算法进行误差校正的多层前馈网络称为BP网。

BP神经网络具有任意复杂的模式分类能力和优良的多维函数映射能力,解决了简单感知器不能解决的异或(Exclusive OR,XOR)和一些其他问题。从结构上讲,BP网络具有输入层、隐藏层和输出层;从本质上讲,BP算法就是以网络误差平方为目标函数、采用梯度下降法来计算目标函数的最小值。

代码实现:

部分代码展示:

%% Part1:BP神经网络回归拟合实现汽油辛烷值预测
% clear all
% clc
%% 训练集/测试集产生
load xinwan_data.mat
% 随机产生训练集和测试集
temp = randperm(size(NIR,1));%打乱60个样本排序
disp(temp(1:50))
% 训练集——50个样本
P_train = NIR(temp(1:50),:)';
T_train = octane(temp(1:50),:)';
% 测试集——10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);
%% 数据归一化% 训练集
%% 这里函数的作用就是对p_train数据进行归一化处理
[Pn_train,inputps] = mapminmax(P_train);
Pn_test = mapminmax('apply',P_test,inputps);
% 测试集
%% 这里函数的作用就是对T_train数据进行归一化处理
[Tn_train,outputps] = mapminmax(T_train);
Tn_test = mapminmax('apply',T_test,outputps);

预测结果如下图所示:

其中50个样本作为训练,10个样本作为测试,代码都是经过调节的,可以根据论文要求更换数据。

完整代码:请见详情

BP神经网络实现汽油辛烷值预测,《MATLAB源码+数据集》相关推荐

  1. 【PID优化】基于matlab粒子群算法优化BP神经网络PID控制【含Matlab源码 2022期】

    ⛄一.粒子群算法优化BP神经网络PID控制简介 BP神经网络PID控制算法 传统PID控制器作为一种线性控制器,具备结构,容易实现的优点,其基本原理是将系统的实际输出值和期望输出值之间的偏差按照比例. ...

  2. 【BP回归预测】基于matlab文化算法优化BP神经网络数据回归预测【含Matlab源码 2124期】

    一.文化算法及BP神经网络简介 1 文化粒子群算法原理 本文提出的文化粒子群算法采用文化算法的双层演化结构.[4]算法包含两个进化空间, 一个是由具体个体组成的群体空间;另一个是由在进化过程中获取的经 ...

  3. 【身份证识别】基于matlab GUI BP神经网络身份证识别【含Matlab源码 2239期】

    ⛄一.身份证号码识别简介 1 引言 当今是一个信息高度发达的时代,对于每个公民而言身份证那一连串的数字体现了个人信息的唯一性,出于保障公民合法权益和社会治安的考虑,越来越多的行业都开始建立自己的安全保 ...

  4. gadecod matlab,【预测模型】基于遗传算法优化BP神经网络房价预测matlab源码

    一.简介 1 遗传算法概述 遗传算法(Genetic Algorithm,GA)是进化计算的一部分,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法 ...

  5. qr-rls算法matlab实现,【预测模型】基于RLS算法进行预测matlab源码

    一.简介 1 概述 递归最小二乘(RLS)算法是一种典型的数据处理方法,由著名学者高斯在1795年提出,高斯认为,根据所获得的观测数据来推断未知参数时,未知参数最可能的值是这样一个数据,即它使各项实际 ...

  6. 【预测模型】基于Logistic混沌映射改进麻雀算法改进BP神经网络实现数据预测matlab源码

    1  模型 简介见这里. 2 部分代码 function [FoodFitness,FoodPosition,Convergence_curve]=SSA(N,Max_iter,lb,ub,dim,f ...

  7. 【预测模型】基于差分进化算法优化BP神经网络实现数据预测matlab源码

    1 算法介绍 2 部分代码 %% 差分进化算法应用于优化BP神经网络的初始权值和阈值%% 清空环境变量 clear all; clc; warning off load v357; load y357 ...

  8. 【预测模型】基于人工鱼群算法优化BP神经网络实现数据预测matlab源码

    1 算法介绍 1.1 BP神经网络 1. 反向传播算法应用领域 反向传播算法应用较为广泛,从字面意思理解,与前向传播相互对应.在简单的神经网络中,反向传播算法,可以理解为最优化损失函数过程,求解每个参 ...

  9. 【ELMAN预测】基于粒子群算法改进ELMAN动态递归神经网络实现数据预测matlab源码

    一.Elman神经网络介绍 1.特点 Elman神经网络是一种典型的动态递归神经网络,它是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特 ...

最新文章

  1. 优秀的PHP程序员至少应该了解PHP代码的优缺点(转)
  2. Redis整合Spring Data Redis 开发key和value乱码
  3. PHP微信开发框架LaneWeChat框架简介
  4. Mr.J--谈谈CSS和Html(font)
  5. mariadb multi-source replication(mariadb多主复制)
  6. 【ML】理解偏差和方差,过拟合和欠拟合
  7. TP5 验证-内置规则
  8. Github上多人协作方式之一
  9. 嵌入式专业名词整理(以后会不断完善)
  10. eclipse_开启出现弹窗_Subversive Connector Discovery
  11. Linux系列: 777 755区别
  12. Hej Stylus for Mac(手写笔画图工具)
  13. Excel从文本中提取数值
  14. 【大数据哔哔集20210124】有人问我Kafka Leader选举?我真没慌
  15. caffe配置 一生不可自决
  16. Android 震动马达系统
  17. Google AppSheet: 无需编程构建零代码应用
  18. PMP考试重点难点汇总
  19. 领域驱动设计(DDD)在爱奇艺打赏业务的实践
  20. Zip文件的解析与生成

热门文章

  1. Photoshop工具栏的使用
  2. react接收后端文件_React 文件流实现文件下载
  3. Python神经网络编程(一)之神经网络如何工作
  4. “量身定制CRM”——拓泰TOP CRM 打造企业DIY CRM系统
  5. ZigBee采集MPU6050数据
  6. torch_geometric.data.collate中collate()函数
  7. 企业为什么要去竞争?
  8. 乐观锁、悲观锁原理解析
  9. JAVA计算机毕业设计早教课程管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  10. 西南大学计算机考研备考经验分享907