使用神经网络进行信号处理:神经网络设计中的验证
本文解释了为什么在我们使用神经网络处理数据时验证特别重要。
AAC 关于神经网络开发的系列文章将继续介绍神经网络中的验证以及 NN 在信号处理中的作用。
- 如何使用神经网络进行分类:什么是感知器?
- 如何使用简单的感知器神经网络示例对数据进行分类
- 如何训练基本的感知器神经网络
- 了解简单的神经网络训练
- 神经网络训练理论简介
- 了解神经网络中的学习率
- 使用多层感知器进行高级机器学习
- Sigmoid 激活函数:多层感知器神经网络中的激活
- 如何训练多层感知器神经网络
- 了解多层感知器的训练公式和反向传播
- Python 实现的神经网络架构
- 如何在 Python 中创建多层感知器神经网络
- 使用神经网络进行信号处理:神经网络设计中的验证
- 训练神经网络数据集:如何训练和验证 Python 神经网络
神经网络信号处理的本质
神经网络与其他信号处理系统有着根本的不同。实现某种信号处理目标的“正常”方法是应用算法。
在这个模型中,研究人员创建了一种数学方法来以某种方式分析或修改信号。有一些方法可以去除音频中的噪声、查找图像中的边缘、根据热敏电阻的电阻计算温度、确定 RF 波形的频率成分等。然后,设计者以研究人员的工作为基础,将该方法转换为可由处理器执行并适应给定应用程序需求的算法。
FIR 滤波器是信号处理系统的一个例子,我们可以用精确的数学方式评估和理解它。
另一方面,经过训练的神经网络是一个经验 系统。
网络中发生的数学过程并不构成旨在对手写字符进行分类、或预测龙卷风的形成或为极端航空机动开发控制程序的特定算法。相反,神经网络中的数学是一个框架 使网络能够根据训练数据创建定制的计算模型。
我们了解允许神经网络学习并实现其所需功能的数学框架,但实际的信号处理算法特定于训练数据、学习率、初始权重值和其他因素。
与 FIR 滤波器不同,神经网络取决于许多不同的因素。
就像小时候学习语言和长大后学习语言的区别一样。
一个从未听过“语法”这个词的孩子可以反复产生正确的动词形式,因为他或她的大脑自然地识别并保留了儿童从与他们互动的老年人那里接收到的大量语言输入数据中包含的模式。
然而,成年人通常无法获得所有这些输入,也可能无法以相同的方式同化模式,因此我们会记住并实施语言“算法”,使我们能够正确地结合动词和选择时态。
验证的重要性
神经网络可以解决极其复杂的问题,因为当给予大量输入时,它们“自然地”找到类似于儿童寻找语言模式的数学模式。但这种信号处理方法绝不是万无一失的。
考虑说“goed”而不是“went”或“holded”而不是“held”的说英语的孩子。这些被称为过度正则化错误。他们已经采用了过去时的 -ed 模式,但由于某些原因——可能是数据不足或认知特质——他们还没有完善他们的语言模型来解释过去时不规则的动词。>
当然,没有人会因为说“我去了公园”而责备四岁的孩子。但是,如果一位著名政治家在发表重要演讲时反复说“通过”、“持有”、“找到”、“知道”等等,听众会非常不高兴(或完全困惑),并且演讲者的政治生涯可能会受到影响。戛然而止。
这些过度正则化错误是一个很好的例子,说明受过训练的神经网络在实现所需信号处理功能的能力方面可能存在意外差距。尽管微小的差距可能看起来不重要,甚至有趣,但当我们只是在进行实验时,政治家的例子提醒我们,它们在实际应用中可能是灾难性的。
当网络面对真实的应用数据时,训练不足和训练过度都会导致意外和有问题的行为。有关详细信息,请参阅第 4 部分。
现在我们明白为什么验证是神经网络开发的一个重要方面。训练是不够的,因为训练数据集本质上是有限的,因此网络对这个数据集的响应也是有限的。
此外,训练会产生一个“黑匣子”计算系统,我们无法像典型的公式或算法一样对其进行分析和评估。因此,我们需要验证 ,我将其定义为尽我们所能合理地确保网络能够成功处理典型的现实生活中的输入数据,并且在呈现非典型数据时不会产生严重的故障。
术语分类
我确定为“验证”的过程也可以称为“验证”或简称为“测试”。
在软件开发的上下文中,前两个术语具有不同的含义。维基百科援引 Barry Boehm 的话说,验证旨在确定产品是否正在正确构建,而验证旨在确定是否正在构建正确的产品。由于这两个问题都是必不可少的,因此您将看到“验证和验证”的缩写“V&V”。
我不是软件工程师,所以希望这意味着我没有义务采用这种范式。我只是使用术语“验证”来指代我们执行的测试、分析和观察,以确保经过训练的神经网络满足系统要求。
结束语:什么是验证?
嗯,这取决于。
例如,美国宇航局发布了一份相当长的文件,标题为“航空航天系统神经网络的验证和验证”。如果你比我对神经网络 V&V 更感兴趣,你可能想从这个文档开始。如果你是一个真正的 V&V 狂热者,你应该考虑这本书人工神经网络的验证和验证方法和程序;它有 293 页长,肯定比我对这个主题的了解至少高出三个数量级。
在我为实验或教学目的开发的简单神经网络的世界中,验证主要意味着在新数据上运行经过训练的网络并评估分类准确性,我们还可以包括微调,帮助我们确定整体性能是否以及如何改进。
我们将在以后的文章中介绍具体的验证技术。
工业机器人