什么是神经网络?为什么说神经网络很重要?神经网络如何工作?

发布时间:2024-07-16  

什么是神经网络?

神经网络是一个具有相连节点层的计算模型,其分层结构与大脑中的神经元网络结构相似。神经网络可通过数据进行学习,因此,可训练其识别模式、对数据分类和预测未来事件。

神经网络将您的输入细分为多个抽象层。比如,可通过大量示例训练其识别模式为语音还是图像,就像人类大脑的行为一样。神经网络的行为由其各个元素的连接方式以及这些连接的强度或权重确定。在训练期间,系统会根据指定的学习规则自动调整相关权重,直到神经网络正常执行所需任务为止。

为什么说神经网络很重要?

神经网络特别适合执行模式识别,用以识别语音、视觉和控制系统中的对象或信号并对其分类。它们还可以用于执行时序预测和建模。 下面只是神经网络的几个使用方式示例:


电力公司准确预测其电网上的负载,以确保可靠性,并优化他们运行的发电机的效率。

ATM 通过读取支票上的账号和存款金额的可靠方式接受银行存款。

病理学家依靠癌症检测应用的指导,根据细胞大小的均匀度、肿块密度、有丝分裂及其他因素将肿瘤分类为良性或恶性。

深度学习

针对两层或三层连接的神经元层运作的神经网络称为浅层神经网络。深度学习网络可以有许多层,甚至数百层。这两种都是直接通过输入数据学习的机器学习技术。 深度学习正在获得大量关注,这是有充分理由的。深度学习正在实现以前不可能实现的成果。 深度学习特别适合复杂鉴别应用场景,比如人脸辨识、文本翻译和语音识别。另外,深度学习也是高级驾驶辅助系统和任务(包括包括车道分类和交通标志识别)中使用的关键技术。

神经网络如何工作?

受生物神经系统的启发,神经网络通过简单元素操作的并行使用,将多个处理层结合在一起。它由一个输入层、一个或多个隐藏层和一个输出层组成。各层通过节点或神经元相互连接,每一层使用前一层的输出作为其输入。

daf731da-2b9c-11ee-a368-dac502259ad0.png

典型的神经网络架构。

神经网络使用的技术

用于设计神经网络应用场景的常见机器学习技术包括监督式学习和无监督学习、分类、回归、模式识别和聚类。

监督式学习

训练监督式神经网络生成响应样本输入的所需输出,使其专门适用于动态系统建模和控制、噪声数据分类和未来事件预测。Deep Learning Toolbox 包括四种监督式网络:前馈网络、径向基网络、动态网络和学习向量量化网络。 分类 分类是一种监督式机器学习,在该学习中,算法将“学习”从带标签的数据示例中对新的观察结果进行分类。

回归

回归模型描述一个响应(输出)变量与一个或多个预测元(输入)变量之间的关系。

模式识别

模式识别是计算机视觉、雷达处理、语音识别和文本分类方面的神经网络应用的一个重要组成部分。它的工作原理是,使用监督式分类或无监督分类基于关键功能将输入数据分类为对象或类。 例如,在计算机视觉方面,监督式模式识别技术可用于光学字符识别 (OCR)、人脸检测、人脸识别、对象检测和对象分类。在图像处理和计算机视觉方面,无监督模式识别技术用于对象检测和图像分割。

无监督学习

通过让神经网络持续根据新输入调整自身来训练无监督神经网络。无监督神经网络可根据包含未标记响应的输入数据的数据集进行推断。您可以使用它们来发现数据中的自然分配、类别和类别关系。 Deep Learning Toolbox 包括两种无监督的网络:竞争的层和自组织映射。

聚类

聚类是一个无监督学习方法,在该学习方法中,神经网络可用于分析探索性数据以发现数据中隐藏的模式或分组。此过程涉及按相似性对数据分组。聚类分析的应用包括基因序列分析、市场调查和对象识别。

使用 MATLAB 开发浅层神经网络

借助管理大型数据集所用的工具和函数,MATLAB 提供用于机器学习、神经网络、深度学习、计算机视觉和自动驾驶的专业化工具箱。 只需几行代码,MATLAB 就可以让您开发神经网络,而不需要成为专家。快速入门,创建和可视化模型,并将模型部署到服务器和嵌入式设备。 使用 MATLAB,您可以将结果整合到现有的应用程序中。MATLAB 可在企业系统、集群、云和嵌入式设备上自动部署您的神经网络。

用于设计神经网络的典型工作流程

每种神经网络应用场景均独一无二,但是开发网络通常遵循下列步骤:

访问和准备数据

创建神经网络

配置网络的输入和输出

调整网络参数(权重和偏差)以优化性能

训练网络

验证网络的结果

将网络集成到生产系统中

浅层网络的分类和聚类

MATLAB 和 Deep Learning Toolbox 可提供用于创建、训练和仿真浅层神经网络的命令行功能和应用。通过这些应用,您可以轻松开发神经网络以执行分类、回归(包括时序回归)及聚类等任务。在这些工具中创建网络后,您可以自动生成 MATLAB 代码以获取您的工作并自动执行任务。

网络的预处理、后处理和改进

预处理网络输入和目标可提升浅层神经网络训练的效率。预处理便于您详细分析网络性能。MATLAB 和 Simulink 提供的工具可助您完成下列任务:

使用主成分分析降低输入向量的维度

执行网络响应和相应目标间的回归分析

扩展输入和目标以便它们位于范围 [-1,1] 内

将培训数据集的平均和标准方差标准化

在创建网络时使用自动数据预处理和数据分段

提升网络的泛化能力可防止过拟合,这是神经网络设计的一个常见问题。在网络已记住训练集但尚未学会对新的输入进行泛化时会发生过拟合。过拟合会针对训练集产生一个相对小的误差,但在将新数据提供给网络时会产生更大的误差。 改善泛化的两个解决方案包括:

正则化

修改网络的性能函数(训练流程最小化的误差测量)。通过加入权重和偏差的规模,规则化通过训练数据生成一个性能良好的网络,并在接受提供的新数据时性能表现更加顺畅。

早停法

使用两个不同的数据集:训练集和验证集,前者用于更新权重和偏差,后者在网络开始过度拟合数据时用于停止训练。

db1869cc-2b9c-11ee-a368-dac502259ad0.jpg

用于分析网络性能的预处理绘图,包括连续训练代数的均方根误差验证性能(左上角)、误差直方图(右上角)以及用于训练、验证和测试阶段的混淆矩阵(底部)。

代码生成和部署

通过将 Deep Learning Toolbox 与 MATLAB Coder、GPU Coder 和 MATLAB Compiler 结合使用,您可以将受过训练的网络部署到嵌入式系统,或将其与种类广泛的生产环境进行集成。您可以使用 MATLAB Coder 为经过训练的网络生成生成 C 和 C++ 代码,该代码便于您在 PC 硬件上完成经过训练的网络仿真,然后将此网络部署到嵌入式系统。

您可以使用 MATLAB Compiler 和 MATLAB Compiler SDK 将经过训练的网络部署为 C/C++ 共享库、Microsoft.NET 程序集、Java 类以及来自 MATLAB 程序的 Python 程序包。您还可以在部署的应用程序或组件中训练网络模型。

Simulink 支持

Deep Learning Toolbox 提供一个用于在 Simulink 中构建浅层神经网络的模块集。所有模块都与 Simulink Coder 兼容。这些模块分为四个库:

传递函数模块,其提取一个网络输入向量并生成一个对应的输出向量。

网络输入函数模块,其提取许多加权的输入向量、权重层输出向量和偏差向量,并返回一个网络输入向量

权重函数模块,其将神经元的权重向量应用于输入向量(或一个分层输出向量)以获取神经元的加权输入值。

数据预处理模块,其将输入和输出数据映射到最适合神经网络直接处理的范围

或者,您可以在 MATLAB 环境中创建和训练您的网络,并自动生成用于 Simulink 的网络仿真模块。此方法还允许您以图形方式查看您的网络。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>