最近做了一个BP神经网络,分享一下

头文件和库文件下载地址:  http://download.csdn.net/detail/sdust_dx/9537656

使用随机x 识别 y=sin(x)关系的例子,效果还基本不错。

测试数据:

int main()
{int InLayerNodesNum = 1;  //输入层节点数int MidLayerNodesNum = 8; //隐层节点数int OutLayerNodesNum = 1;cout <<  "输入层节点数(8): \r\n";cin >> InLayerNodesNum;int tLoop = 20000;         // 训练次数cout <<  "训练次数(10000): \r\n";cin >> tLoop;/* 造一组数据进行测试 */BPNet bpNet(InLayerNodesNum, MidLayerNodesNum, OutLayerNodesNum);const int N=50; const float Pi=3.1415926;srand(time(0));float** a = new float*[N];float** a2 = new float*[N];float** a3 = new float*[N];float** b = new float*[N];float** b2 = new float*[N];float** b3 = new float*[N];    //实际结果float** b3_bp = new float*[N];  //识别结果for(int i=0; i<N; i++){a[i] = new float[InLayerNodesNum];a2[i] = new float[InLayerNodesNum];a3[i] = new float[InLayerNodesNum];b[i] = new float[OutLayerNodesNum];b2[i] = new float[OutLayerNodesNum];b3[i] = new float[OutLayerNodesNum];b3_bp[i] = new float[OutLayerNodesNum];}for(int i=0;i<N;++i){a[i][0]=((2.0*(float)rand()/RAND_MAX)-1)*(Pi/2-1)+1;a2[i][0]=((2.0*(float)rand()/RAND_MAX)-1)*(Pi/2-1)+1;a3[i][0]=((2.0*(float)rand()/RAND_MAX)-1)*(Pi/2-1)+1;b[i][0]=2*sin(a[i][0])-0.7;b2[i][0]=2*sin(a2[i][0])-0.7;b3[i][0]=2*sin(a3[i][0])-0.7;}bpNet.train(a,b,N);bpNet.train(a2,b2,N);bpNet.sim(a3,b3_bp,N);cout << "a3     b3     b3-bp"for(int i=0;i<N;++i)cout<< a3[i][0] << " & " << b3[i][0]<<" -> "<<b3_bp[i][0]<<endl;}

使用真实数据进行BP计算的时候,吻合度就没有这么好,因为x[]和y之间没有明确的函数关系甚至有的时候还是一对多的。

(而且也没有对x[]进行特别的预处理,没有将其映射到更好的特征空间里,做了映射的话效果应该会更好,后续计划做k-l或类似于自动聚类的预处理)。

地震数据体反推测井曲线,实际上地震数据体代表了反射结果,测井曲线代表地层特征。与地震波动相关的测井曲线才会在理论上与地震数据体有关,而且这种关系是非线性的。 在试验中,输入层采用了6个输入节点(6维特征)

下图是实际数据的结果

BP神经网络(地震数据反推测井曲线)相关推荐

  1. 基于Matlab平台的BP神经网络进行数据拟合

    基于Matlab平台的BP神经网络进行数据拟合 上次讨论了基于Hopfield神经网络的数字识别,BP(Back Propagation)神经网络也可以进行相关的数字识别如手写数字识别等,由于BP神经 ...

  2. 【回归预测-BP预测】基于灰狼算法优化BP神经网络实现数据回归预测附matlab代码

    1 内容介绍 Mirjalili 等在 2014 年 提 出 了 灰 狼 优 化 ( Grey Wolf Optimizer,GWO) 算法,是一种新型群智能优化算法,通过模拟自然界中灰狼寻找.包围和 ...

  3. matlab模拟出现较大误差是什么原因,求助大神,使用BP神经网络预测数据,为什么误差很大?...

    随机产生了25组数据,利用公式求得结果矩阵,现用20组数据训练BP网络,剩下的5组进行预测,产生的结果误差为什么很大,请大神指教,不甚感激 由于金币只有1.5个,所以没办法发求助帖 %测试BP神经网络 ...

  4. 【BP预测】基于哈里斯鹰算法改进BP神经网络实现数据预测

    一. BP神经网络预测算法简介 1.人工神经网络简介 人工神经网络(ANN)是一种旨在模仿人脑结构及其功能的由多个非常简单的处理单元彼此按某种方式相互连接而形成的计算机系统,该系统靠其状态对外部输入信 ...

  5. 基于帝企鹅算法优化BP神经网络实现数据预测matlab代码

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

  6. m基于ESN+BP神经网络的数据预测算法matlab仿真,测试数据为太阳黑子变化数据

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工 ...

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

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

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

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

  9. bp神经网络对数据的要求,bp神经网络适用条件

    1.什么是BP神经网络? BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成:正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差 ...

最新文章

  1. HashSet中的add()方法( 五 )(详尽版)
  2. 英伟达显卡功率(频率)锁死
  3. (转载)关于安装Ubuntu系统时提示“分配到/的分区/dev/sdax开始于xxxx字节,使用磁盘的最小对齐,这可能造成非常差的性能...的解决办法
  4. Types of intraclass correlation coefficience (ICC)
  5. Linux 命令之 tar 命令-打包和备份的归档工具(附压缩/解压工具)
  6. Office 2016 (Preview)
  7. VSCode使用记录四:Ubuntu终端启动报错以及Ubuntu查看修改文件夹权限
  8. 深度学习:正则化方法
  9. Idea插件 Sonar
  10. 高通滤波与低通滤波的简单理解
  11. html图片颜色变深,利用CSS改变图片颜色的100种方法!
  12. 风场可视化:风场数据
  13. 【sketchup 2021】草图大师的辅助建模工具2【模型交错、照片匹配(重要)】
  14. linux计划定时自动删除目录下文件
  15. 关于机器人状态估计(10)-VSLAM与VIO的3D建图,重定位与世界观综述
  16. 【渝粤教育】电大中专Office办公软件 (14)作业 题库
  17. SQLServer实验 视图的使用-view 练习题
  18. ON_NOTIFY处理消息
  19. informatica 学习日记整理(转)
  20. PCIe4.0扩展坞设备

热门文章

  1. 吊打面试官系列之:常见测试开发面试题汇总,在面试的路上,总要先下手为强。
  2. Java对List集合进行排序
  3. stm8s103k3 周期 捕获_STM8S做输入捕获
  4. 单点登陆后续社交登录(以gitee为例)
  5. ip5108 c语言程序,IP5109,IP5108,IP5206,IP5105 移动电源5合一芯片介绍.pdf
  6. 自我表白,我很帅很酷的阳光的男孩
  7. Win11通过注册表修改文件默认打开方式
  8. 云小课|帮您高效快速上传组件至私有依赖库
  9. 数学和计算机联系论文,数学与计算机论文
  10. HTML中引入CSS方法