资讯详情

使用迁移学习做信号分类

人工智能技术广泛应用于图像和信号数据,涉及通信电子、生物医学和健康等行业。例如,在医疗卫生行业,人工智能技术广泛应用于数字健康、生物信号分析和患者监测。

时间序列是一组按时间顺序排列的数字序列,是最常见的信号形式。基于时间序列的人工智能技术可以进行股票预测、音乐推荐和疾病诊断。在本系列视频中,我们将使用真实的心电图数据集进行演示MATLAB各种深度学习方法和框架在时间序列信号分类中的应用。

视频将分为两部分。

l 在第一部分,我们将首先简要介绍深度学习,包括其概念和工作流程。之后,我们将演示如何使用迁移学习ECG信号,即心电图信号的分类。最后是总结。

l 在第二部分,我们将首先介绍什么是小波散射,然后关注如何使用小波散射技术,即不变散射卷积网络进行自动特征提取,并使用长期和短期记忆网络LSTM(Long Short-Term Memory)分类心电图信号。

深度学习是促进当前人工智能总体趋势的关键技术。它的起源可以追溯到计算的早期人工智能,后来发展到机器学习,现在被认为是机器学习的子集。

l 20世纪50年代开发的人工智能技术包括任何能使机器模仿人类智能的技术;

l 20世纪80年代出现的机器学习是指机器可以在不依赖预定方程式或模式的情况下从数据中学习任务

l 2010年左右的深度学习也是一种机器学习方法,是指利用多层神经网络直接从图像、文本或声音数据中学习表达和任务。

深度学习已经成为我们日常生活的一部分,包括流行的消费者应用

l 智能音箱中的语音识别

l 手机摄像头的面部检测

l 以及汽车自动驾驶系统等

在传统或浅层的机器学习技术中,通常需要从图像和其他数据中学习不同的信息,即特征必须手动设计,分类器必须手动选择。

在深度学习中,我们删除了一些步骤。深度学习是一种端到端的机器学习技术,这意味着给出网络原始数据和任务,如实施类似的分类,深度学习不仅可以自动学习模型,还可以自动学习特征,即用户自动完成特征提取和建模步骤。

深度学习和机器学习的另一个区别是,深度学习算法随数据而扩展,而浅层学习则趋同。这意味着,当我们向网络添加更多的示例和培训数据时,浅层学习方法将停滞在一定的性能水平上,而深层学习网络通常会继续改进。

在MATLAB Academy它提供了一些机器学习和深度学习的课程。感兴趣的学生可以去看看。其中,机器学习入门之旅和入门之旅免费提供给您。

让我们来看看机器学习和深度学习工作流中涉及的典型步骤。

l 第一步是访问和探索数据,包括从不同的数据源读取数据,如不同格式的文件、数据库和传感器

l 第二步通常是预处理步骤。在此步骤中,原始数据被处理或转换为机器学习/深度学习算法。预处理操作包括清理混乱的数据,如去除离群值、插入缺失值等;应用各种数据简化和转换技术,只保留最相关的信息;并利用图像特征、提取特征或预测因素等领域知识。

l 一旦数据预处理,第三步是开发预测模型。在这一步中,我们对使用的机器学习和深度学习技术以及技术的各种参数有很大的灵活性。典型的任务包括训练和比较多个模型,优化模型参数,验证模型性能,以确保鲁棒性。

l 最后一步是整合培训模型,快速构建和准确部署它们。该模型可以在嵌入式系统上运行,并作为独立应用程序共享或部署在云上。

对于不同的数据类型,我们通常选择不同的机器学习技术。例如,对于数字数据,我们通常使用传统的机器学习或LSTM,卷积神经网络通常用于图像数据CNN。对于时间序列或文字数据,LSTM和CNN都可以用。

在这个例子中,我们将演示如何使用预选训练CNN快速开发分类器ECG迁移学习信号。CNN输入是图像,我们首先需要使用时频转换将一维信号转换为二维图像。

时频表示可以捕捉信号的时频内容。通常的时频表示包含:

l 傅里叶短时间变化产生的频谱图 (Spectrogram),

l 梅尔频谱图,即模拟人耳听觉对实际频率的敏感性,在频谱图中添加梅尔滤波函数

l 由连续小波变换产生的尺度图(scalogram)

l 常数Q变换等

在这个例子中,我们使用尺度图。

利用CNN在进行深度学习时,我们首先将原始信号进行时频变换,产生原始信号的时频表示,然后将时频图作为输入来训练深度网络。训练后的网络是整个过程的输出。对于新信号,通常先进行时频转换,然后输入训练模型,输出新信号的分类。

我们还使用了迁移学习技术。它的基本思想是加载一个训练有素的网络,比如AlexNet,然后替换最后几层来学习我们数据的特征。比如原始的AlexNet支持1000个分类,现在我们的数据只包括三个分类。因此,我们可以将其替换到最后几层,使其成为支持三个分类的网络。较少的分类可以使网络进行更快地学习。之后,我们可以训练和评估网络的准确性和部署。迁移学习比从空白开始构建学习网络更省时省力。

让我们来看看MATLAB代码

l 基于连续小波变换的心电图分类,主要分为准备信号、小波时频表示和训练预训练网络三部分。

l 在准备信号部分,我们首先需要加载数据,可以看到数据由162个采样信号组成,每个信号代表以下心脏的健康: ARR指心律失常,CHF指充血性心力衰竭,NSR心律正常。

l 我们可以通过Signal Analyzer App探索信号的时间和频率信息。在我的另一个视频中:MATLAB信号处理理Apps详细介绍了简介。这里就不展开了。

l 然后,我们可以查看两种不同心电图信号的时域信号图和频谱图。从这些图中可以看出,在传统的时频分析下,两种信号的差异并不是很明显。

l 我们使用连续的小波变换来获得信号清晰的时频性能和增强的频谱细节。我们可以看到,在连续小波变换生成的规模图中,峰值是清晰的;在正常信号下,黄线代表的峰值分布规则,在心律失常信号下,峰值间隔较大,有时较小,不是很均匀;此外,在心律失常的下半部分有一些活动,但没有正常的信号。我们可以将这些表示保存为图像,并训练预配置的卷积神经网络。

l 为了生成信号的时频表示,我们首先创建一个滤波器组,在对每一个信号去做小波变换,我们具体是如何生成所有信号的时频表示的,请参看PrepareSignalData_cn.mlx实时脚本。

l 以后我们用imageDatastore指向标记数据的目录,并自动创建训练和测试集

l 第三部分是训练预训练网络。我们将加载经过预训练的预训练 Alexnet网络. 这个网络可以通过附加功能管理器下载。为了减少网络可以区分的类型,我们只重新训练最后几层。我们用新的 fullyConnectedLayer 和新的 classificationLayer 替换它们。当然,你也可以使用它Deep Network Designer App 以图形形式执行此操作。

l 我们可以在设置解算器和初始学习率等参数后开始训练。

l 这是用一个GPU我们可以看到,随着迭代次数的增加,准确率趋于100%,错误率趋于0.

l 最后,我们在测试集中使用训练模型,并显示混淆矩阵来评估训练模型。

综上所述,通过基于迁移学习的心电图分类用例,我们可以看到为了使用它CNN对于一维信号信号的迁移,我们首先将信号转换为一个频繁的表示。您可以定制和训练您的神经网络,以自动从这些表示中学习特征。最后,我们可以看到,除了观察信号和其他操作外,还可以实现信号迁移学习MATLAB代码量很小,基本不到10行

在这部分视频中,我们主要介绍了深度学习的概念和工作过程。然后我们演示了如何使用迁移学习来分类心电图信号。在本视频的第二部分,我们将介绍另一个有效的使用不变散射卷积网络LSTMs心电图分类的方法。视频第二部分见!

标签: 电流传感器常见分类

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台