巧借“示例”分析“序列到序列”分类【MATLAB篇】

简介: 巧借“示例”分析“序列到序列”分类【MATLAB篇】

一.前言


    在一次查询lstm的过程中,发现了《使用深度学习进行“序列到序列”分类》,感觉自己像发现了宝藏般的喜悦,便迫不及待的同大家分享,本想着自己写点见解进去,奈何文笔拙劣,精彩不及MATHWORK官方大师级别写的,在这里向官方致敬!


引用部分:要训练深度神经网络以对序列数据的每个时间步进行分类,可以使用“序列到序列”LSTM 网络。通过“序列到序列”LSTM 网络,您可以对序列数据的每个时间步进行不同预测。



一.加载序列数据


    加载人类活动识别数据。该数据包含从佩戴在身体上的智能手机获得的七个时序的传感器数据。每个序列有三个特征,且长度不同。


这三个特征对应于三个不同方向上的加速度计读数。 在绘图中可视化一个训练序列.绘制第一个训练序列的第一个特征,并按照对应的活动为绘图着色。


image.png



二. 定义 LSTM 网络架构。


    将输入指定为大小为 3(输入数据的特征数量)的序列。指定包含 200 个隐含单元的 LSTM 层,并输出完整序列。最后,在网络中包含一个大小为 5 的全连接层,后跟 softmax 层和分类层,以此来指定五个类。


    指定训练选项。将求解器设置为 'adam'。进行 60 轮训练。要防止梯度爆炸,请将梯度阈值设置为 2。


    使用 trainNetwork 以指定的训练选项训练 LSTM 网络。每个小批量都包含整个训练集,因此每训练一轮便更新一次绘图。序列非常长,因此处理每个小批量并更新绘图可能需要一些时间。

image.png


三.测试 LSTM 网络


    加载测试数据并对每个时间步的活动进行分类。加载人体活动测试数据。XTest 是一个维度为 3 的序列。YTest 是对应于每个时间步的活动的分类标签序列。


    使用 classify 对测试数据进行分类。


    也可以使用 classifyAndUpdateState 一次对一个时间步进行预测。这在时间步的值以流的方式到达时非常有用。通常,对完整序列进行预测比一次对一个时间步进行预测更快。有关如何通过在相邻的单个时间步预测之间更新网络来预测将来时间步的示例

引用自:使用深度学习进行“序列到序列”分类【MATLAB示例】


代码部分:


clear
close all
load HumanActivityTrain
XTrain
X = XTrain{1}(1,:);
classes = categories(YTrain{1});
figure
for j = 1:numel(classes)
    label = classes(j);
    idx = find(YTrain{1} == label);
    hold on
    plot(idx,X(idx))
end
hold off
xlabel("Time Step")
ylabel("Acceleration")
title("Training Sequence 1, Feature 1")
legend(classes,'Location','northwest')
numFeatures = 3;
numHiddenUnits = 200;
numClasses = 5;
layers = [ ...
    sequenceInputLayer(numFeatures)
    lstmLayer(numHiddenUnits,'OutputMode','sequence')
    fullyConnectedLayer(numClasses)
    softmaxLayer
    classificationLayer];
options = trainingOptions('adam', ...
    'MaxEpochs',60, ...
    'GradientThreshold',2, ...
    'Verbose',0, ...
    'Plots','training-progress');
net = trainNetwork(XTrain,YTrain,layers,options);
load HumanActivityTest
figure
plot(XTest{1}')
xlabel("Time Step")
legend("Feature " + (1:numFeatures))
title("Test Data")
YPred = classify(net,XTest{1});
acc = sum(YPred == YTest{1})./numel(YTest{1})
figure
plot(YPred,'.-')
hold on
plot(YTest{1})
hold off
xlabel("Time Step")
ylabel("Activity")
title("Predicted Activities")
legend(["Predicted" "Test Data"])






相关文章
|
28天前
|
数据可视化 数据安全/隐私保护 C++
开关磁阻电机(SRM)系统的matlab性能仿真与分析
本课题基于MATLAB 2022a对开关磁阻电机(SRM)系统进行性能仿真与分析,涵盖平均转矩、转矩脉动、自感与互感、功率及效率等关键参数的对比研究。通过程序仿真,生成了相电流、转子角度、机械转速等多维度数据关系图。SRM以其无刷、无永磁体的特点,具备高可靠性和低成本优势,其工作原理基于磁阻最小原则,通过控制定子绕组电流实现连续旋转运动。核心程序实现了不同电流下平均转矩的计算与可视化,为SRM优化设计提供了理论依据。
|
17天前
|
机器学习/深度学习 算法 数据安全/隐私保护
BOC调制信号matlab性能仿真分析,对比功率谱,自相关性以及抗干扰性
本内容介绍了一种基于BOC(Binary Offset Carrier)调制的算法,使用Matlab2022a实现。完整程序运行效果无水印,核心代码配有详细中文注释及操作步骤视频。理论部分阐述了BOC调制在卫星导航中的应用优势:相比BPSK调制,BOC信号功率谱主瓣更窄、自相关函数主峰更尖锐,可优化旁瓣特性以减少干扰,提高频谱利用率和同步精度,适合复杂信道环境下的信号接收与处理。
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于模糊神经网络的金融序列预测算法matlab仿真
本程序为基于模糊神经网络的金融序列预测算法MATLAB仿真,适用于非线性、不确定性金融数据预测。通过MAD、RSI、KD等指标实现序列预测与收益分析,运行环境为MATLAB2022A,完整程序无水印。算法结合模糊逻辑与神经网络技术,包含输入层、模糊化层、规则层等结构,可有效处理金融市场中的复杂关系,助力投资者制定交易策略。
|
1月前
|
机器学习/深度学习 资源调度 算法
基于入侵野草算法的KNN分类优化matlab仿真
本程序基于入侵野草算法(IWO)优化KNN分类器,通过模拟自然界中野草的扩散与竞争过程,寻找最优特征组合和超参数。核心步骤包括初始化、繁殖、变异和选择,以提升KNN分类效果。程序在MATLAB2022A上运行,展示了优化后的分类性能。该方法适用于高维数据和复杂分类任务,显著提高了分类准确性。
|
2月前
|
数据可视化 数据挖掘 BI
MATLAB学习之旅:数据统计与分析
在MATLAB中,我们掌握了数据导入、处理及插值拟合等基础技能。接下来,我们将深入数据统计与分析领域,学习描述性统计量(如均值、标准差)、数据分布分析(如直方图、正态概率图)、数据排序与排名、数据匹配查找以及数据可视化(如箱线图、散点图)。这些工具帮助我们挖掘数据中的有价值信息,揭示数据的奥秘,为后续数据分析打下坚实基础。
|
3月前
|
算法 人机交互 数据安全/隐私保护
基于图像形态学处理和凸包分析法的指尖检测matlab仿真
本项目基于Matlab2022a实现手势识别中的指尖检测算法。测试样本展示无水印运行效果,完整代码含中文注释及操作视频。算法通过图像形态学处理和凸包检测(如Graham扫描法)来确定指尖位置,但对背景复杂度敏感,需调整参数PARA1和PARA2以优化不同手型的检测精度。
|
4月前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
|
4月前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响
本内容介绍基于MATLAB 2022a的低密度奇偶校验码(LDPC)仿真,展示了完整的无水印仿真结果。LDPC是一种逼近香农限的信道编码技术,广泛应用于现代通信系统。BP译码算法通过Tanner图上的消息传递实现高效译码。仿真程序涵盖了不同Eb/N0下的误码率计算,并分析了码长、码率、迭代次数和信道类型对译码性能的影响。核心代码实现了LDPC编码、BPSK调制、高斯信道传输及BP译码过程,最终绘制误码率曲线并保存数据。 字符数:239
167 5
|
8月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
322 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
8月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
199 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现

热门文章

最新文章