[深度学习实战]Matlab-BP神经网络实战——光谱分析(下)

简介: 笔记

四、进行预测


  保存结果后,我们的工作区中出现了net,output,error(残差)

14.png

现在我们就可以通过函数sim来进行预测,把要预测的10组数据的输入拿进来:

Predict_Y=zeros(10,1);                       % 初始化,提高运行速度
for i=1:10 % 有10行
    Predict_Y(i,1)=sim(net,Predict_X(i,:)'); % 这里注意需要转置
end
% 成功得到预测值

在命令行窗口输入以下命令调用查看输出值Y:

disp(Predict_Y)


五、后记


 关于所使用到的Excel、Matlab技巧和神经网络的相关技巧心得


1、关于快速选取Excel文件中的数据

 Ctrl+方向键:如“Ctrl+↑”是快速到达表格的最顶端。

 取消选择需保证当前位置是空单元格,按下快捷键Ctrl+D。

 Ctrl+Shift+方向键:如“Ctrl+Shift+→”是快速选取这一行的内容,“Ctrl+Shift+↓”是选取右下的内容。


2、将临时变量转换为mat文件保存

 我们知道,如果每次都输出X和Y相当浪费时间,因此我们可以用文件形式保存。在工作区手动右键删除掉不需要的变量后将其保存为mat文件:

15.png



文件会默认保存在当前文件夹下,这时我们用load命令就可以直接导入数据


16.png


3、生成的神经网络的w和b在哪里找?

  还是先对数据进行训练17.png


 这里选择rows的原因是,完整的一行代表一组数据,输入和输出在同一行上18.png

数据集一般占比70%或80%

19.png

训练完成后,进入以上界面。其中,Validation Checks代表泛化性。

 需要注意的是,如果在训练过程中MSE(均方误差)不降反增,Validation Checks就自增1;当默认达到6次时,迭代终止。

 Epoch代表完成训练的次数,这里我们可以看到在第8次就完成了训练。

 当Performance和Gradient不再增加时,就代表完成了训练。


20.png

通过“Performance”我们可以看到:在第4次迭代时MSE最小,此时的MSE为0.70971。

 在这个函数中,我们可以看到b和w。

 由于隐藏层的个数是10,b1的个数就是10。

 由于一共有401个输入,那么IW_1的个数就是10*401。


4、如何生成预测值

 第一个方法是之前用过的sim仿真函数。

 第二个方法是使用我们生成的函数,但要注意把第二、三个参数删除(删掉选中部分)。

21.png

 随机生成一组数据验证一下(rand函数生成的值在[0,1]之间,这里只是举个例子):

22.png

 用我们生成的函数也是可以进行预测的。


5、怎么预测多输入多输出问题?

  这里没有很好的数据,所以matlab自带的数据集来做演示:

23.png

在这个数据集中input是14 * 4208,output是3 * 4208。即3个输出,14个输入,一共有4208组;这时完整的一列代表一组数据,所以选择matrixcolumn

24.png

因为工作区已经有我们刚刚生成的net,所以这里生成的是net1。

25.png

我们再随机生成一组数据来预测。由于这里B的列数等于输入向量的个数,因此无需再转置,最后得到的结果如ans所示:

26.png27.png

B=rand(14,5);是5组数据的意思,每组数据14个输入,返回5组3个输出值


6、资源获取(项目相关代码和光谱分析数据表格xlsx)

  项目相关代码和光谱分析数据表格xlsx如有需要,可私信我免费分享。希望这篇博文能帮助到你!

相关文章
|
14天前
|
机器学习/深度学习 数据可视化 算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
157 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
|
5天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
42 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
2月前
|
存储 安全 物联网
浅析Kismet:无线网络监测与分析工具
Kismet是一款开源的无线网络监测和入侵检测系统(IDS),支持Wi-Fi、Bluetooth、ZigBee等协议,具备被动监听、实时数据分析、地理定位等功能。广泛应用于安全审计、网络优化和频谱管理。本文介绍其安装配置、基本操作及高级应用技巧,帮助用户掌握这一强大的无线网络安全工具。
95 9
浅析Kismet:无线网络监测与分析工具
|
1月前
|
算法 人机交互 数据安全/隐私保护
基于图像形态学处理和凸包分析法的指尖检测matlab仿真
本项目基于Matlab2022a实现手势识别中的指尖检测算法。测试样本展示无水印运行效果,完整代码含中文注释及操作视频。算法通过图像形态学处理和凸包检测(如Graham扫描法)来确定指尖位置,但对背景复杂度敏感,需调整参数PARA1和PARA2以优化不同手型的检测精度。
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费市场分析的深度学习模型
使用Python实现智能食品消费市场分析的深度学习模型
152 36
空心电抗器的matlab建模与性能仿真分析
空心电抗器是一种无铁芯的电感元件,通过多层并联导线绕制而成。其主要作用是限制电流、滤波、吸收谐波和提高功率因数。电抗器的损耗包括涡流损耗、电阻损耗和环流损耗。涡流损耗由交变磁场引起,电阻损耗与电抗器半径有关,环流损耗与各层电流相关。系统仿真使用MATLAB2022a进行。
|
2月前
|
数据采集 机器学习/深度学习 人工智能
基于AI的网络流量分析:构建智能化运维体系
基于AI的网络流量分析:构建智能化运维体系
209 13
|
2月前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响
本内容介绍基于MATLAB 2022a的低密度奇偶校验码(LDPC)仿真,展示了完整的无水印仿真结果。LDPC是一种逼近香农限的信道编码技术,广泛应用于现代通信系统。BP译码算法通过Tanner图上的消息传递实现高效译码。仿真程序涵盖了不同Eb/N0下的误码率计算,并分析了码长、码率、迭代次数和信道类型对译码性能的影响。核心代码实现了LDPC编码、BPSK调制、高斯信道传输及BP译码过程,最终绘制误码率曲线并保存数据。 字符数:239
82 5
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费趋势分析的深度学习模型
使用Python实现智能食品消费趋势分析的深度学习模型
154 18
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##