来自系列:面向工程师的深度学习
本视频介绍了深度学习的第一步:确保你有数据来训练网络。根据培训数据的类型和数量,了解深度学习是否适合您的项目。还可以了解如何使用合成数据进行培训。
在第一个视频中,我们涵盖了如何使用深度学习来解决实际的工程问题,特别是您尝试在数据中分类复杂模式的问题。我们离开了简要介绍了深入学习设计工作流程。
在此视频中,我们将专注于此工作流程的第一步:访问数据。Now I want to reiterate the caveat for this series is that I’m not trying to explain everything you need to know about deep learning, I just want to introduce some concepts and get you thinking about the scenarios in which deep learning might be the right choice to solve your engineering problems. And part of making that decision comes down to the type and amount of data that you have access to.
为了让这个对话更现实一些,我们将使用一个实际的工程例子:雷达和通信应用中的波形识别。真拗口!但如果你继续呆在这里,我会解释这意味着什么,以及如何访问数据和深度学习可以在解决这个问题中发挥重要作用。我是Brian,欢迎来到MATLAB技术讲座。
我将介绍为什么我们可能需要首先识别射频波形的两个用例:它们用于通信和雷达。
我们将从描述整个问题开始——你知道需求是什么吗?然后我们将讨论为什么传统的分类方法很难,以及为什么使用数据和深度学习来解决这个问题可能是有意义的。最后,我想谈谈我们如何通过模拟来综合训练数据而不是通过实地测量直接收集数据。
在我们讨论射频波形分类这个非常具体的问题时,请记住,从混乱的时间序列数据中得到有用的东西是一个常见的工程问题;例如,这在预测性维护中经常出现。所以,即使你不研究雷达或通信,我们将涵盖的大部分内容也适用于许多其他工程问题。
好了,讲完了,让我们回到交流。
为了远距离通信,我们需要能够把信息从发射机发送到接收机。这是通过选择载波频率来实现的,载波频率通过某种方式进行调制,从而对信息进行编码。例如,我们可以使用数字调制过程,如二进制相移键控(或BPSK)。简单地说,如果发射机发送的是0,那么载波信号的相位不受影响,而当发送1时,相位会偏移180度。只要接收者和发射者都期望相同的设置,即相同的载波频率,相同的调制方案和相同的波形参数,那么信息就可以在目的地被正确解码。
然而,接收方并不总是提前意识到这一切。例如,信号情报和监视系统可能只是监听信号,任何碰巧在那里的信号,通过检测调制方案,他们可以描述和识别发送信号的发射器类型。或者在5G和其他无线方案的情况下,如果有干扰和噪声淹没信号,最好了解和标记干扰的来源,以便它可以知道切换到什么频率和调制方案,以减少这种干扰。即使避免噪音不是最终目标,了解噪音是否来自特定的外部信号仍然是有帮助的,这样至少操作人员知道这不是他们看到的硬件问题。
雷达系统也是类似的情况。通过雷达跟踪和目标识别,我们发出无线电波探测环境,并聆听它们的反射。一种常见的方法是脉冲雷达信号;在传送和聆听之间交替。脉冲本身可以有不同的波形,比如矩形,线性频率调制,还有巴克编码。但不是你发送脉冲,因此你知道反射波形会是什么样子,假设你想在你自己被发现之前探测到雷达信号,那么它可能会有帮助,有一个系统可以搜索,比如说,一个4 GHz的带宽,找到并分类任何已知的雷达脉冲波形在传入信号中,然后再次能够确定发射这个信号的雷达类型。
这就是调制识别或波形识别的含义。我们需要一个或一组函数从天线接收原始的IQ信号并标记波形及其参数。所以,你可以开始看到这是如何形成一个深度学习的问题,我们可以学习这个分类模型使用标记的波形数据。
然而,我认为一个好的经验法则是,当传统的、基于规则的方法会起作用时,不要从深度学习或其他机器学习技术开始。所以,问题是,我们能依靠传统方法来分类波形吗?例如,为什么不使用我们的知识和技能在射频信号来编写一些代码或构建硬件处理输入信号在某种程度上使特征识别更加明显,然后挑出某些特性在处理数据,然后从编写代码,确定波形?这感觉就像建立一个系统,可以区分,比如说,这两种波形很直接,它们看起来很独特。不幸的是,事情可能会在短时间内变得相当复杂,这可能会使传统方法的模式识别变得困难或至少耗时。
为了给您展示一个例子,左边的图是线性频率调制脉冲的时域信号,具有随机扫描带宽、脉冲宽度、脉冲重复频率和扫描方向。右边的图是它的频域表示。LFM波形调制的载波信号频率更高,随机分布在20 MHz左右,这就是理想LFM波形的一个版本。
然而,有很多东西可以削弱这种信号。天气和物理障碍可以以不同的方式影响不同的频率,从而改变波形的形状,因为它传播通过它们,还有从无线电电子硬件扭曲导致白噪声和其他相位和频率补偿,我建模以下通过添加高斯白噪声。天线附近的障碍物也会反射,导致信号与自身的相位略有不同的版本相互作用。以及其他会影响接收信号的噪声和误差来源。
这是一个带噪声的线性调频波形,但这是另一个又一个。这就是问题的症结所在。我们的波形分类器需要能够识别所有这些线性频率调制。更重要的是,它还需要识别其他调制,看起来很像线性调频,占用相同的频率带宽,并受到相同的噪声源和误差。
因此,我们的解空间,也就是我们的分类算法需要工作的整个条件和场景集合是巨大的。设计一个使用基于规则的方法来处理所有这些变化的分类模型可能并不容易。但是,在大型、混乱和令人困惑的数据集中找到复杂的模式,正是深度学习方法可能会带来好处的问题,但要做到这一点,你需要访问训练数据。
作为对深度学习问题的过度简化,您可以建立一个网络体系结构来完成所有的数据处理、特征提取和波形识别任务。然后,如果你有足够的标记数据,你可以使用深度学习算法来调整这个网络,以准确地分类未标记数据中的波形。这就是我们的目标。但有足够的标记数据意味着什么,这些数据来自哪里?
好吧,回答我想首先说,无论你选择什么方法来设计你的分类算法,你需要数据。即使您正在构建基于规则的算法,您必须了解您的系统和信号,即它将能够看到能够写入这些规则。
这组数据与深度学习系统的需求之间的差异主要是数量问题。
当一个人在设计一个算法时,他们会带着关于问题的多年经验和知识,这有助于他们迅速排除某些显然不是解决方案的方法或想法。或者例如,他们知道白噪声是什么,所以他们可以更快地在频率图中识别它。然而,除非你从一个部分训练过的模型开始,否则我们用深度学习设计的分类网络没有经验或现有知识可供借鉴。它不知道什么是明显的。
因此,网络需要更多的标记数据的例子来理解信号的上升边等基本概念,更不用说将这些边合并成更抽象的概念,如波形和噪声。
因此,通过这种方式,我们正在使用更多的数据来抵消人类通常会带来的经验和知识。现在,我在这里谈论的是一种完整的端到端深度学习方法,原始信号被输入到网络中,然后给它贴上标签。这需要最多的数据来训练,因为我们没有用任何人类知识来补充网络。然而,情况并非总是如此。例如,一个人可以用他们的知识来进行预处理数据先说过滤它,或通过改变它的方式让一些特色更加明显,或只要提取明显功能在机器学习算法决定了分类。通过这种方式,我们使用人类的知识来缩小剩下的分类问题,这是需要学习的部分,因此一般需要较少的训练数据。
现在,无论您的问题都适合此曲线,底线是您需要一定量的良好标记数据,涵盖分类算法需要处理的整个解决方案空间。在我们的情况下,数据需要跨越所有调制方案,在许多不同的载波频率,噪声条件,带宽等中。
下一个问题是,如何获取这些标记数据?如果幸运的话,一种方法就是使用现有的数据库。例如,如果要处理图像,可以从ImageNet这样的图像数据库开始,然后使用自己的标记数据添加到该数据库中,以填补任何缺失的空白。然而,目前我认为大多数工程问题都是独一无二的,扩展或扩展现有数据库与从头创建自己的数据库一样是个大问题。
所以,剩下的另一个选择就是收集你自己的数据。这可以通过在野外放置一个发射器和接收器,发送不同参数的各种波形,同时调整环境——比如噪声参数和其他射频源。但你可以想象,这可能是相当困难和耗时的,特别是如果你试图控制天气,或不同的传播距离。
在某些情况下,与自动车辆一样,该领域仍然是最好的方法收集数据,因为道路上有数十亿辆汽车。该方法是将传感器放在一系列广泛的情景和条件下被人驱动的汽车上。然后随着时间的推移,建立了数百万辆驱动的里程,无数的标签,建立了一个数据库。
这也可能是我们用于波形数据库的方法。毕竟,世界上有数十亿个接收器,如果它们能记录接收到的信号,用它们设计的调制方案标记,然后保存在全球数据库中,那就太好了。
但是,在这种特殊情况下,有更快和更便宜的方式来访问标记的数据;这是通过模拟来产生它。
只要您了解您想要解决的解决方案空间的范围,那么您就可以构建一个将所有这些考虑在内的模拟。
例如,我们可以列出我们想要分类的调制方案及其具体参数,我们想要能够处理的损伤类型,硬件的变化,以及任何我们认为重要的东西。利用所有这些,我们可以建立一个模拟,在整个解决方案空间中生成真实的接收信号。只要您相信您的模拟能够代表真实信号的重要特性和特征,那么生成数百万个测试用例就会相对地快速和容易。
并且合成数据的好处是标签实际上是免费的,因为您需要标签以首先生成数据。
现在重要的是理解模拟数据什么时候有意义,什么时候没有。比如,如果你想建立一个网络,可以在音频信号中对单词进行分类,那么模拟人们说单词可能比收集大量真实的音频要困难得多。但是对于这个特殊的问题,物理学已经很好理解了,所以建立一个模型并生成数据是有意义的。
这正是该MATLAB示例中所证明的。我鼓励你检查一下这个,如果真的想要了解发生了什么,但现在我只是想快速突出几件事。
第一个部分是使用预先训练的网络来识别11种不同的调制类型。这是一个“嘿,如果你能找到已经找到了你想要的预先训练的网络,那么你已经完成了”。但如果你不能,你需要自己训练一个。因此,如果我们滚动过去,则下一节是生成波形数据的地方,可以用于培训新模型。您可以在此处看到它为每个调制类型生成10,000帧,因此我们将在几分钟内获得110,000个信号。
对于每个信号,它都添加了随机数量的白噪声、多径衰落和硬件偏移。思路是我们覆盖了整个期望解空间。再往下一点,它画出了一些随机信号你们可以看到它们在时域和频谱图上的样子。
现在,我们可以使用此模拟数据来培训网络,这对于此特殊情况约为一个小时,并最终正确标记了大约95%的模拟验证数据。除了谁真正关心这个网络可以标记模拟数据的谁真正关心?我的意思是它在模拟数据上受过训练,所以它当然学会了在认识它时做好,但实际测试是这个网络如何标记真正的RF数据。
在最后一节中,正是这样做的。软件定义的无线电发送各种波形,接收机记录信号并使用训练过的网络标记波形。根据混淆矩阵,它做得很好,大约99%的整体准确率。这看起来很神奇,但我们必须考虑到在这个测试中,两台收音机是静止的并且彼此相距两英尺这将限制传播噪声和多径衰落的数量,也许还有其他东西。这些都是相对清晰的信号。
真正的测试是在更真实的场景中验证硬件上的网络。但底线是,使用模拟数据训练网络是可能的,有时也是更可取的。只要仿真产生的信号与真实系统的条件非常匹配,或者比真实系统更剧烈,它就能在真实情况下工作。
好了,这节课就讲到这里。希望你们对如何收集标记数据有个想法对于你们要解决的特定工程问题。无论是从现有数据库中提取数据,还是自己收集真实数据,还是模拟数据。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。