什么是神经网络?
你需要知道三件事
神经网络(也称为人工神经网络)是一种自适应系统,它通过类似人脑的分层结构中相互连接的节点或神经元进行学习。神经网络可以从数据中学习,因此可以训练它识别模式、分类数据和预测未来事件。
神经网络将输入分解为抽象层。例如,它可以通过使用许多例子来训练来识别语音或图像中的模式,就像人类的大脑一样。它的行为是由各个元素的连接方式以及这些连接的强度或权重来定义的。这些权重在训练过程中根据指定的学习规则自动调整,直到人工神经网络正确执行所需的任务。
神经网络是一种机器学习方法,灵感来自于人类大脑中神经元如何相互传递信号。神经网络特别适合建模非线性关系,它们通常用于执行模式识别并对语音、视觉和控制系统中的物体或信号进行分类。
下面是神经网络在机器学习应用中如何应用的几个例子:
- 从语义上分割图像和视频
- 检测图像中的物体,包括行人和骑自行车的人
- 训练一个两足机器人走路使用强化学习
- 检测癌症通过指导病理学家根据细胞大小、团块厚度、有丝分裂等因素的均匀性将肿瘤划分为良性或恶性。
神经网络,特别是深度神经网络,因其在复杂的识别应用(如人脸识别、文本翻译和语音识别)方面的熟练程度而闻名。这些方法是推动先进驾驶辅助系统和任务创新的关键技术,包括车道分类和交通标志识别。
受生物神经系统的启发,神经网络结合了几个处理层,使用简单的元素并行操作。网络由一个输入层、一个或多个隐藏层和一个输出层组成。每一层都有几个节点,即神经元,每一层的节点使用上一层所有节点的输出作为输入,这样所有神经元通过不同的层相互连接。每个神经元通常被分配一个权重,在学习过程中进行调整,权重的减少或增加会改变该神经元信号的强度。
与其他机器学习算法一样:
- 神经网络可用于监督学习(分类、回归)和非监督学习(模式识别、聚类)。
- 模型参数是通过对训练数据的“学习”对神经网络进行加权来设置的,通常是通过优化权重来最小化预测误差
神经网络的类型
第一个也是最简单的神经网络是感知器,由弗兰克·罗森布拉特(Frank Rosenblatt)在1958年提出。它由单个神经元和一个具有s型激活函数的线性回归模型组成。从那以后,人们对越来越复杂的神经网络进行了探索,形成了今天的深度网络,它可以包含数百层。
深度学习是指具有多层的神经网络,而只有两层或三层连接神经元的神经网络又被称为浅神经网络。深度学习之所以变得流行,是因为它消除了从图像中提取特征的需要,这在以前挑战了机器学习在图像和信号处理中的应用。然而,尽管在图像处理应用中可以忽略特征提取,但一些形式的特征提取仍然普遍应用于信号处理任务,以提高模型精度。
工程应用中常用的神经网络类型包括:
- 前馈神经网络:由一个输入层、一个或几个隐藏层和一个输出层(典型的浅神经网络)组成
- 卷积神经网络(CNN):深度神经网络体系结构,广泛应用于图像处理,其特点是卷积层,通过共享权重的节点在输入之间移动窗口,将(通常是图像)输入抽象为特征映射
- 循环神经网络(RNN):带有反馈回路的神经网络体系结构,在输入中建模顺序依赖,如时间序列、传感器和文本数据;最流行的RNN类型是长短时记忆网络(LSTM)。
你可以在这里了解更多关于深度学习的信息:
建立神经网络的典型工作流程
开发AI应用程序,特别是神经网络,通常涉及以下步骤:
1.数据准备
- 你可以获得足够的标记训练数据,而训练深度神经网络所需的数据要多得多;标签应用程序,如图像,视频和信号标签,可以加快这个过程
- 您可以使用模拟来生成训练数据,特别是在从真实系统收集数据不切实际的情况下(例如,故障条件)。
- 您可以扩充数据,以表示训练数据中的更多可变性
2.人工智能建模
- 你可以在分类和回归学习中交互训练浅层神经网络统计和机器学习工具箱™,或者可以使用命令行函数;如果你想比较浅神经网络的性能与其他传统的机器学习算法,如决策树或支持向量机,或如果你只有有限的标记训练数据,这是推荐的
- 使用deep Network Designer或命令行函数交互地指定和训练神经网络(浅的或深的)深度学习工具箱™,它特别适合于深度神经网络,或者如果您需要定制网络架构和求解器的更大灵活性
3.模拟与测试
- 你可以把神经网络整合进去动态仿真模块®模型作为块,它可以促进与更大的系统的集成、测试和部署到许多类型的硬件
4.部署
- 从统计和机器学习工具箱中训练的浅层神经网络生成普通的C/ c++代码,用于部署到嵌入式硬件和高性能计算系统
- 从深度学习工具箱中训练的神经网络生成优化的CUDA和普通C/ c++代码,用于gpu和其他类型的工业硬件(ARM, FPGA)上的快速推断