人工智能 - 神经网络
什么是 Artificial Neural Networks (ANNs)?
Artificial Neural Networks (ANNs) 是并行计算设备,基本上是对大脑进行计算机建模的尝试。主要目标是开发一种系统,能够比传统系统更快地执行各种计算任务。
第一台神经计算机的发明者 Robert Hecht-Nielsen 博士将神经网络定义为 —
“一个由众多简单、高度互联的处理元素组成的计算系统,这些元素通过对外部输入的动态状态响应来处理信息。”
ANNs 的基本结构
ANNs 的思想基于这样的信念:人类大脑的工作可以通过使用硅和电线来模仿活体 neurons 和 dendrites 的正确连接。
人类大脑由 860 亿个称为 neurons 的神经细胞组成。它们通过 Axons 与其他数千个细胞相连。来自外部环境的刺激或来自感官器官的输入由树突接受。这些输入产生电脉冲,这些脉冲快速通过神经网络传输。然后,一个 neuron 可以将消息发送给其他 neuron 来处理问题,或者不将其转发。
ANNs 由多个 nodes 组成,这些 nodes 模仿人类大脑的生物 neurons。neurons 通过链接相连并相互交互。nodes 可以接受输入数据并对数据执行简单操作。这些操作的结果传递给其他 neurons。每个 node 的输出称为其 activation 或 node value。
每个链接都关联一个 weight。ANNs 具有学习能力,这是通过更改 weight 值来实现的。下面的插图显示了一个简单的 ANN —
Artificial Neurons 与 Biological Neurons 的比较
人工神经元与生物神经元之间的差异如下表所示。
| 特征 | Biological Neurons | Artificial Neurons |
|---|---|---|
| 结构 | 复杂,包括细胞体、树突和轴突。 | 简化的数学函数。 |
| 功能 | 通过动作电位和神经递质解释信号。 | 计算加权和并应用 activation function。 |
| 通信 | 使用化学和电信号进行神经元间通信 | 通过数值数据和数学模型通信 |
| 处理速度 | 由于化学过程,传输较慢。 | 基于电子处理,计算极快。 |
| 能效 | 高度节能,能够以少量能量运行。 | 通常能效较低,取决于架构和实现。 |
| 复杂度 | 高度复杂,涉及各种类型的 neurons 和胶质细胞,以及复杂的化学信号传导。 | 结构较简单,但可以通过神经网络中的 neuron 层来扩展以模拟复杂行为。 |
| 执行 | 在生物系统中实时运行。 | 在数字环境中运行,需要硬件和软件。 |
| 学习 | 通过经验学习,并能以复杂方式泛化。 | 通过数据集和优化技术学习,通常需要大量数据集。 |
ANNs 的类型
根据深度、隐藏层数量以及每个 node 的 I/O 能力等因素,神经网络被分类为不同类别。神经网络的类型包括 —
- Convolutional Neural Networks
- Deconvolutional Neural Networks
- Recurrent Neural Networks
- Feed-forward Neural Networks
- Modular Neural Networks
- Generative Adversarial Networks
ANN 的拓扑结构
有两种 Artificial Neural Network 拓扑结构 − FeedForward 和 Feedback。
FeedForward ANN
在这种 ANN 中,信息流动是单向的。一个单元向其他单元发送信息,但不会从这些单元接收任何信息。没有反馈循环。它们用于模式生成/识别/分类。它们具有固定的输入和输出。
FeedBack ANN
Feedback ANN 具有循环回馈的连接,这允许将信息反馈到结构中。这种结构能够处理序列数据和时序依赖关系,使其适用于时间序列预测和语言建模等任务。
ANN 的工作原理
在所示的拓扑图中,每条箭头表示两个神经元之间的连接,并指示信息流动的路径。每条连接都有一个权重,这是一个控制两个神经元之间信号的整数。
如果网络生成“良好或期望的”输出,则无需调整权重。然而,如果网络生成“差劲或非期望的”输出或出现错误,则系统会调整权重以改善后续结果。
ANN 中的机器学习
ANN 能够学习,并且需要进行训练。有几种学习策略 −
Supervised Learning: 它涉及一个比 ANN 本身更“博学”的教师。例如,教师提供一些示例数据,而教师已经知道这些数据的答案。
例如,模式识别。ANN 在识别时会提出猜测。然后教师向 ANN 提供答案。网络随后将自己的猜测与教师的“正确”答案进行比较,并根据错误进行调整。
- Unsupervised Learning: 当没有带有已知答案的示例数据集时,需要使用它。例如,搜索隐藏模式。在这种情况下,进行聚类,即根据现有数据集将元素集合分成组,按照某种未知模式进行分组。
- Reinforcement Learning: 这种策略基于观察。ANN 通过观察其环境做出决策。如果观察结果为负面,网络会调整其权重,以便下次能够做出不同的所需决策。
ANNs 的应用
它们能够执行人类容易但机器困难的任务 −
- 航空航天: 自动驾驶飞机、飞机故障检测。
- 汽车: 汽车引导系统。
- 军事: 武器定向和转向、目标跟踪、物体辨识、人脸识别、信号/图像识别。
- 电子: 代码序列预测、IC 芯片布局、芯片故障分析、机器视觉、语音合成。
- 金融: 房地产估价、贷款顾问、抵押贷款筛选、企业债券评级、投资组合交易程序、企业财务分析、货币价值预测、文档阅读器、信用申请评估器。
- 工业: 制造过程控制、产品设计和分析、质量检测系统、焊接质量分析、纸张质量预测、化学产品设计分析、化学过程系统的动态建模、机器维护分析、项目投标、规划和管理。
- 医疗: 癌细胞分析、EEG 和 ECG 分析、假肢设计、移植时间优化器。
- 语音: 语音识别、语音分类、文本到语音转换。
- 电信: 图像和数据压缩、自动化信息服务、实时口语翻译。
- 交通: 卡车制动系统诊断、车辆调度、路由系统。
- 软件: 人脸识别、光学字符识别等中的模式识别。
- 时间序列预测: ANNs 用于对股票和自然灾害进行预测。
- 信号处理: 神经网络可以被训练来处理音频信号,并在助听器中适当过滤它。
- 控制: ANNs 常用于物理车辆的转向决策。
- 异常检测: 由于 ANNs 擅长识别模式,它们也可以被训练在发生不符合模式的不寻常情况时生成输出。