神经网络

什么是神经网络?

你需要知道三件事

神经网络(也称人工神经网络)是一种自适应系统,它通过类似人脑的分层结构,使用相互连接的节点或神经元进行学习。神经网络可以从数据中学习,因此可以训练它识别模式,对数据进行分类,并预测未来事件。

神经网络将输入分解成抽象层。例如,它可以像人类大脑一样,通过许多例子训练来识别语言或图像中的模式。它的行为是由其各个元素的连接方式以及这些连接的强度或权重来定义的。在训练过程中,这些权重会根据指定的学习规则自动调整,直到人工神经网络正确地执行所需的任务。

为什么神经网络很重要?

神经网络是一种机器学习方法,受神经元在人脑中彼此彼此的影响。神经网络特别适用于建模非线性关系,它们通常用于执行模式识别并在语言、视觉和控制系统中对物体或信号进行分类。

以下是神经网络如何在机器学习应用中使用的一些示例:

神经网络,尤其是深度神经网络,因其在复杂识别应用如人脸识别、文本翻译和语音识别方面的熟练程度而闻名。这些方法是先进的驾驶辅助系统和车道分类、交通标志识别等任务的关键技术。

神经网络是如何工作的?

受生物神经系统的启发,神经网络结合了几个处理层,使用简单的元素并行操作。网络由一个输入层、一个或多个隐藏层和一个输出层组成。每一层都有几个节点或神经元,每一层的节点使用前一层所有节点的输出作为输入,使得所有神经元通过不同的层相互连接。每个神经元通常都被赋予一个权重,在学习过程中调整权重,权重的减少或增加会改变该神经元信号的强度。

典型的神经网络结构。

与其他机器学习算法一样:

  • 神经网络可用于监督学习(分类、回归)和非监督学习(模式识别、聚类)
  • 模型参数是通过对训练数据的“学习”来加权神经网络来设定的,通常是通过优化权重来最小化预测误差

神经网络的类型

第一个也是最简单的神经网络是感知器,由Frank Rosenblatt在1958年提出。它由单个神经元和一个具有s形激活函数的线性回归模型组成。从那时起,越来越复杂的神经网络被探索,导致了今天的深层网络,它可以包含数百层。

深度学习是指多层神经网络,而只有两到三层连接神经元的神经网络也被称为浅神经网络。深度学习之所以变得流行,是因为它消除了从图像中提取特征的需要,而这在以前对机器学习在图像和信号处理中的应用提出了挑战。然而,尽管在图像处理应用中可以忽略特征提取,但一些形式的特征提取仍然普遍应用于信号处理任务,以提高模型的精度。

工程应用中常用的神经网络类型包括:

  • 前馈神经网络:由一个输入层、一个或几个隐藏层和一个输出层组成(典型的浅神经网络)
  • 卷积神经网络(CNN):广泛应用于图像处理的深度神经网络架构,其特征是卷积层,通过共享权重的节点在输入端移动窗口,将(通常是图像)输入提取到特征映射
  • 递归神经网络(RNN):具有反馈回路的神经网络结构,用于模拟输入中的顺序依赖关系,如时间序列、传感器和文本数据;最流行的RNN类型是长短期记忆网络(LSTM)

你可以在这里了解更多关于深度学习的信息:

用MATLAB开发神经网络

MATLAB®为机器学习,神经网络,深度学习,计算机视觉和自动驾驶应用提供专业工具箱。

只需几行代码,MATLAB就可以让您开发神经网络,而无需成为专家。快速入门,创建并可视化神经网络模型,将它们集成到现有的应用程序中,并将它们部署到服务器、企业系统、集群、云和嵌入式设备中。

典型的神经网络构建流程

开发人工智能应用,特别是神经网络,通常包括以下步骤:

1.数据准备

  • 你获得了足够的标记训练数据,而训练深度神经网络则需要更多的数据;标签应用程序,如图像,视频和信号标签,可以加快这一过程
  • 您可以使用模拟来生成训练数据,特别是如果从真实系统中收集数据是不切实际的(例如,故障条件)
  • 您可以增强数据以表示训练数据中的更多可变性

2.人工智能建模

  • 你可以在分类和回归学习中交互式地训练浅神经网络统计和机器学习工具箱™,或者可以使用命令行函数;如果你想比较浅神经网络与其他传统机器学习算法的性能,如决策树或支持向量机,或如果你只有有限的标记训练数据可用,这是推荐的
  • 使用深层网络设计器或命令行函数交互式地指定和训练神经网络(浅或深)深度学习工具箱™,它特别适合于深度神经网络,或者如果您需要在定制网络架构和求解器方面有更多的灵活性

3.仿真和测试

  • 你可以把神经网络整合进去金宝app®模型作为块,可以促进与更大的系统集成、测试和部署到多种类型的硬件

4.部署

  • 从统计学和机器学习工具箱中训练的浅神经网络生成简单的C/ c++代码,用于部署嵌入式硬件和高性能计算系统
  • 从深度学习工具箱中训练的神经网络中生成优化的CUDA和简单的C/ c++代码,用于gpu和其他类型的工业硬件(ARM, FPGA)上的快速推理