Moku 3.3版本 带来了新的 神经网络 仪器 Moku:Pro 使用户能够实现人工神经网络,以实现快速、灵活的信号分析、去噪、传感器调节、闭环反馈等。如果您不熟悉神经网络的基础知识,或者想知道神经网络如何有益于您的研究和开发目标,请继续阅读以探索实际应用和教程。
首先,需要注意的是,“人工神经网络”(ANN)是这些系统的更准确术语,因为它们是基于软件的,而不是生物神经元。考虑到这一点,我们将使用术语“神经网络”来指代 ANN。在本介绍中,我们将仅考虑完全连接的神经网络,而不是复杂的设置,例如卷积、循环和变压器架构。
神经网络是由相互连接的节点(或称神经元)组成的系统,这些节点按层排列。第一层接收外部数据作为输入。每个后续神经元计算其来自前一层的输入的加权和,然后加上一个称为偏置的值。该值随后通过激活函数传递,激活函数引入非线性,使网络能够学习复杂的模式。最后一层产生网络的输出,而中间的所有层都称为隐藏层。通过训练,网络会调整其权重和偏置,以随着时间的推移提高其准确性。
用数学术语来说,把输入层想象成 否 1 矩阵,其中 N 是输入层的节点数,矩阵中每个元素对应激活值,如图1所示。

图 1:神经网络架构,显示输入层、隐藏层和输出层。
接下来是隐藏层。隐藏层及其中的节点数取决于模型的复杂性和可用的计算能力。隐藏层中的激活是使用前一层的激活组合来计算的,每个节点对输入层值应用不同的权重和偏差。这在图 2 中以线性代数术语显示。
图 2:隐藏层中的激活是使用前一层的激活组合来计算的。
如果输入层是 否 1 矩阵(\(n_1\), \(n_2\)),接下来的激活值是通过将其与一个乘以一个 中✕ 矩阵,其中 M 是隐藏层中的节点数。矩阵中的每个元素都是一个权重,用 \(w_{mn}\) 表示。, 意思是 MN 每一层都需要参数。结果是 中号 1 然后,将矩阵偏移一个偏置值(\(b_1\), \(b_2\)…)。计算出新的激活后,它们将通过“激活函数”。激活函数可以提供诸如裁剪和归一化之类的非线性行为,使网络比仅仅是一系列矩阵乘法时更强大。
每种激活函数都有其独特的特性,“正确”的选择很大程度上取决于应用场景。常见的激活函数包括 ReLU(修正线性单元),它计算效率高,但在某些训练场景下会遇到困难,因为它会截断负值。其他激活函数,例如 Tanh 和 Sigmoid 函数,可以产生平滑且有界的输出,适用于分类任务,但在深度网络中,由于曲线在大输入值处趋于平缓,可能会削弱学习能力。最后,线性函数在回归任务中表现良好,但会限制网络对复杂非线性模式进行建模的能力。不同的网络层可以使用不同的激活函数,具体选择取决于应用需求和网络架构。
经过几个隐藏层后,数据最终到达输出层。在输出节点中,激活值对应于一些感兴趣的参数。例如,假设从示波器收集的时间序列数据被输入到输入中,网络的目标是将信号分类为正弦波、方波、锯齿波或直流信号。在输出层,每个节点将对应这些选项之一,最高值激活代表网络对信号形式的最佳猜测。如果一个激活接近 1,而其他激活接近 0,则网络猜测的置信度很高。如果激活值相似,则表示对答案的置信度较低。
神经网络如何工作?
如果不调整隐藏层的权重和偏差,神经网络最终只不过是一个复杂的随机数生成器。为了提高模型的准确性,用户必须提供训练数据,其中输入数据集和预期答案都是已知的。然后,模型可以计算出自己对训练集的答案,并将其与真实值进行比较。计算出的差异称为成本函数,可以定量评估模型的性能。
该模型旨在通过训练降低成本函数。例如,均方误差 (MSE) 计算预测值与实际值之间平方差的平均值。优化器是用于有效最小化此成本函数的方法。Python 的机器学习包(例如 Keras)可以帮助选择合适的成本函数和优化器。
在计算给定数据集的成本函数后,可以通过各种微积分运算调整隐藏层的权重和偏差,以最小化成本函数为目标。这类似于向量微积分中的梯度下降概念,可以在文献 [1] 中进一步探讨。这个过程称为反向传播, 允许通过成本函数获得的信息通过各层向后传递,从而实现模型学习或自我调整,无需人工输入。
训练数据通常会在神经网络中运行多次。提供给模型的这些数据的每个实例称为一个时期。通常,一些训练数据将被保留用于验证。在验证过程中,训练好的网络用于从这个保留的数据集推断输出,并将其预测与已知的正确输出进行比较。这比单独的成本函数值更能准确地反映模型的性能,因为它表明模型能够将结果推广到新的和新颖的输入的能力。
神经网络有哪些不同类型?
神经网络虽然按照类似的原理运行,但可以根据应用采取各种形式。一些常见的神经网络示例包括:
- 前馈神经网络 (FNN):这是标准格式,例如上述示例中讨论的格式。在 FNN 中,数据通过网络向前传递,没有任何反馈或先前输入的记忆。一个典型的例子是图像,其中每个像素都是神经网络的输入,输出是该图像的分类。
- 卷积神经网络 (CNN):这是 FNN 的一个子类型,通常用于通过使用过滤器来检测图像中的特征。鉴于图像通常很大,这些过滤器的作用是将输入图像的尺寸减少到更少的权重。然后,隐藏层中的每个神经元都可以在整个输入中扫描相同的特征,从而使 CNN 对图像转换具有鲁棒性。
- 循环神经网络 (RNN):与前馈网络相反,RNN 涉及在隐藏层中使用反馈。反馈机制为系统提供了记忆,因此给定层的输出可以取决于先前的输入。这使得 RNN 成为顺序数据集(例如时间序列、语音和音频数据)的绝佳选择。
- 自动编码器:自动编码器是一种特殊的神经网络配置,通常是 FNN 或 CNN,它将给定数据编码到降维空间中,然后根据编码数据重建或解码数据。从概念上讲,这与统计学和生物信息学中有用的主成分分析 (PCA) 非常相似。
神经网络如何用于信号处理?
虽然神经网络在驱动大型语言模型、解读图像和翻译等方面很受欢迎,但它们在信号处理方面也非常有用。机器学习可以改善测量设置的一些示例包括:
- 控制系统:在某些系统中,很难提前知道实现特定控制状态所需的输入,或者换句话说,很难反转设备模型。在这种情况下,波形发生器或函数发生器探测设备,而示波器监视结果状态。然后,神经网络从当前状态和所需控制之间的差异中学习反向映射。当与 PID 控制器结合使用时,这可以实现 PID 参数的自调节 [2]。
- 传感器调节:神经网络可以获取传感器数据并补偿系统误差,例如电缆中的相位失真或延迟,或光电探测器中的光束错位。这种方法允许在数据传递到实验的下一阶段之前对其进行校正。
- 信号去噪:该技术使用神经网络作为自动编码器来提取信号的关键特征,然后根据这些特征重建信号。随机噪声不是关键特征,因此重建的信号应该是无噪声的,本质上是使用神经网络作为噪声过滤器,如图 3 所示。
- 信号分类:神经网络可以将输入信号(例如时间序列)与已知模板或一系列模板进行比较。这使用户能够快速对信号类别进行分类,识别数据集中的异常值或错误,检测随机事件,或根据 IQ 正交幅度识别量子态 [3]。
图 3:经过神经网络输入后重建的去噪信号。
基于FPGA的神经网络有哪些好处?
神经网络通常由 CPU 和/或 GPU 组合构建和运行。这种方法提供了惊人的计算能力,但也占用大量资源。大型 AI 模型耗能大,而且对于前面提到的信号处理应用类型来说,通常过于耗能。
相比之下,FPGA 本身的性能不如高端计算机强大。然而,它们的灵活性使其成为实现小型神经网络的理想选择。它们的并行处理能力有利于处理线性代数和其他复杂的数学运算,这些运算与信息在网络中的前向和反向传播有关。由于 FPGA 的空间容量和内存限制,单周期处理能力有限,因此在 FPGA 上进行大型神经网络的前馈传递通常需要更多的周期数。
基于 FPGA 的神经网络非常适合实验情况,因为它们处理实时数据的速度可以实现快速控制和决策,而无需与主机 PC 通信。FPGA 还具有可重构性,因此用户可以根据自己的需求快速配置神经网络。最后,由于尺寸紧凑,在 FPGA 上实现的神经网络可以帮助减少资源和能源消耗 [4][5]。
什么是Moku神经网络?
除了一套可重构的快速、灵活、基于 FPGA 的测试和测量仪器外, Moku:Pro 现在提供 Moku 神经网络得益于 FPGA 的多功能性和快速处理速度,神经网络可以与其他 Moku 仪器一起使用,例如 波形发生器, PID 控制器和 示波器 在信号分析、去噪、传感器调节和闭环反馈等应用中。
您可以使用 Python 开发和训练自己的神经网络,并使用 Moku 神经网络将其上传到 Moku:Pro 多仪器并行模式。这允许分析最多四个输入通道或一个时间序列数据通道,以及最多四个输出以实时处理实验数据——所有这些都在 Moku:Pro 上完成。Moku 神经网络具有最多五个密集层,每个密集层最多 100 个神经元,并根据您的应用提供五种不同的激活函数。
如果你有兴趣了解基于 FPGA 的 Moku 神经网络如何为你的研究带来好处,请查看此 分步教程。本指南介绍了所有基础知识,包括 Python 安装、Moku 神经网络构建和训练以及实现。如果您已经熟悉神经网络的基本概念,您可以找到高级的、现成的示例 开始.
需要视频教程? 点播观看我们的网络研讨会.您将学习如何实现基于 FPGA 的神经网络,以实现快速、灵活的信号分析、闭环反馈等。
参考文献
[1] K. Clark,课堂讲座,主题:“计算神经网络梯度”,CS224n,美国斯坦福大学,2019 年。 https://web.stanford.edu/class/cs224n/readings/gradient-notes.pdf
[2] J. Wang, M. Li, W. Jiang, Y. Huang, R. Lin,“基于FPGA的运动控制系统神经网络PID控制器设计”。 传感器, 卷。 22、没有。 3,第 889 页。 2022,XNUMX 年 XNUMX 月。 https://doi.org/10.3390/s22030889
[3] NR沃拉 et al., “基于 ML 驱动的 FPGA 实时量子态鉴别,实现中电路测量”,arXiv:2406.18807 [quant-ph],2024 年 XNUMX 月。
https://arxiv.org/abs/2406.18807
[4] A. El Bouazzaoui、A. Hadjoudja、O. Mouhib,“FPGA 上的实时自适应神经网络:通过动态分类器选择增强适应性”,arXiv:2311.09516v2 [cs.AR],2023 年 XNUMX 月。
https://arxiv.org/html/2311.09516v2
[5] C. Wang 和 Z. Luo,“基于 FPGA 的神经网络优化设计综述”, 应用科学, 第 12 卷,第 3 期,第 10771 页,2022 年 XNUMX 月。 https://doi.org/10.3390/app122110771

