yaboPP电子
技术文章

利用神经网络进行信号处理:神经网络设计中的验证

2020年1月28日,通过罗伯特Keim

本文解释了为什么当我们使用神经网络处理数据时,验证是特别重要的。

AAC关于神经网络发展的系列文章在这里继续探讨神经网络的验证以及神经网络在信号处理中的作用。

  1. 如何使用神经网络执行分类:什么是Perceptron?
  2. 如何用一个简单的感知器神经网络来分类数据
  3. 如何训练基本感知器神经网络
  4. 理解简单神经网络训练
  5. 神经网络训练理论导论
  6. 理解神经网络中的学习率
  7. 多层感知器的高级机器学习
  8. Sigmoid激活函数:多层感知器神经网络中的激活
  9. 如何训练多层感知器神经网络
  10. 理解多层感知器的训练公式和反向传播
  11. Python实现的神经网络架构
  12. 如何用Python创建多层感知器神经网络
  13. 利用神经网络进行信号处理:神经网络设计中的验证
  14. 神经网络训练数据集:如何训练和验证Python神经网络

神经网络信号处理的本质

神经网络与其他信号处理系统有着根本的不同。实现某种信号处理目标的“正常”方法是应用一种算法。

在该模型中,研究人员创建了一种以某种方式分析或修改信号的数学方法。存在用于从音频去除噪声的方法,在图像中找到图像,从热敏电阻的电阻计算温度,确定RF波形的频率内容等等。然后,设计者通过将该方法转换为可以由处理器执行并适应给定应用程序的需要的算法来构建研究人员的工作。

一个冷杉过滤器是一个信号处理系统的例子,我们可以用精确的数学方法评估和理解它。

另一方面,经过训练的神经网络是经验系统。

网络中的数学过程并不构成一种特定的算法,用于对手写字符进行分类,或预测龙卷风的形成,或开发极端航空机动的控制程序。相反,神经网络中的数学是框架这使得网络能够基于训练数据创建一个定制的计算模型。

我们理解允许神经网络学习并实现其所需功能的数学框架,但实际的信号处理算法是特定于训练数据、学习率、初始权重值和其他因素的。

与FIR滤波器不同的神经网络取决于许多不同的因素。

这就像孩子学习语言和成人学习语言的区别一样。

一个甚至从来没有听过“grammar”这个词的孩子可以重复地产生正确的动词形式,因为他或她的大脑已经自然地识别和保留了包含在儿童从与他们互动的老年人那里获得的大量语言输入数据中的模式。

然而,成年人通常无法获得所有这些输入,也可能无法以同样的方式吸收模式,因此我们记住并执行语言“算法”,使我们能够正确地变位动词和选择时态。

验证的重要性

神经网络可以解决极其复杂的问题,因为当给予大量输入时,它们会“自然地”发现数学模式,就像儿童发现语言模式一样。但这种信号处理方法绝不是绝对正确的。

想想说英语的孩子,他们把“went”说成“goed”,或者把“held”说成“held”。这些被称为过度正则化错误。他们已经注意到了过去时态的-ed模式,但由于某些原因——可能是数据不足,或者是认知特性——他们还没有完善他们的语言模型来解释过去时态中不规则的动词。

当然,没有人会因为一个4岁的孩子说“我去公园了”而斥责他。但是,如果一位杰出的政治家在发表一场重要的演讲时,反复地说“去”、“抓住”、“找到”、“知道”等等,听众就会非常不高兴(或完全困惑),演讲者的政治生涯可能会戛然而止。

这些过度正则化错误是一个很好的例子,说明训练后的神经网络在实现所需信号处理功能的能力上可能会出现意想不到的差距。尽管小差距似乎不重要,甚至有趣,当我们只是在做实验时,政治家的例子提醒我们,在实际应用中,它们可能是灾难性的。

当网络面对真实的应用数据时,训练不足和过度训练都可能导致意外的和有问题的行为。看到第4部分为更多的信息。

现在我们看到了为什么验证是神经网络发展的一个关键方面。训练是不够的,因为训练数据集本身是有限的,因此网络对该数据集的响应也是有限的。

此外,训练结果在一个“黑盒”计算系统中,我们不能分析和评估,就像它是一个典型的公式或算法。因此,我们需要验证,我将其定义为尽我们所能,确保网络能够成功地处理典型的现实生活输入数据,而不会在出现非典型数据时产生严重故障。

整理术语

我标识为“验证”的过程也可以称为“验证”或简单地称为“测试”。

在软件开发的上下文中,前两个术语有不同的含义。维基百科引用Barry Boehm的话说,验证旨在确定产品是否正在正确构建,验证旨在确定是否正在构建正确的产品。由于这两个问题都很重要,因此您将看到“V&V”缩写为“verification and validation”。

我不是软件工程师,所以希望这意味着我没有义务采用这种模式。我只是简单地使用术语“验证”来指我们为了确保训练的神经网络满足系统需求而执行的测试、分析和观察。

总结:验证到底是什么?

嗯,这取决于。

例如,NASA发表了一份相当长的文件,题为航空航天系统神经网络的验证与验证。“如果你比我对神经网络V&V更感兴趣,你可能会想从这份文档开始。如果你是一个真正的V&V狂热者,你应该考虑一下这本书人工神经网络验证和验证的方法和步骤;这本书长达293页,肯定超过了我对这个话题的了解至少三个数量级。

在我为实验或教学目的开发的简单神经网络的世界里,验证主要意味着在新的数据上运行训练过的网络,并评估分类的准确性,我们还可以包括微调,以帮助我们确定是否以及如何改善整体性能。

我们将在以后的文章中研究特定的验证技术。