- 1. 感知器 (Perceptron(P)) :
- 2. 前馈 (Feed Forward (FF)) :
- 3. 径向基网络 (Radial Basis Network (RBN)) :
- 4. 深度前馈 (Deep Feed-forward (DFF)) :
- 5. 循环神经网络 (Recurrent Neural Network (RNN)):
- 6. 长 / 短期记忆 (Long / Short Term Memory (LSTM)) :
- 7. 门控循环单位 (Gated Recurrent Unit (GRU)):
- 8. 自动编码器 (Auto Encoder (AE)) :
- 9. 变分自动编码器 (Variational Autoencoder (VAE)) :
- 10. 去噪自动编码器 (Denoising Autoencoder (DAE) :
- 11. 稀疏自动编码器 (Sparse Autoencoder (SAE)) :
- 12. 马尔可夫链 (Markov Chain (MC)) :
- 13. 霍菲特网络 (Hopfield Network (HN)):
- 14. 波茨曼机 (Boltzmann Machine (BM)):
- 15. 受限玻尔兹曼机 (Restricted Boltzmann Machine (RBM)):
- 16. 深度信念网络 (Deep Belief Network (DBN)) :
- 17. 深度卷积网络 (Deep Convolutional Network (DCN)) :
- 18. 反卷积神经网络 (Deconvolutional Neural Networks (DN)) :
- 19. 深度卷积逆图形网络 (Deep Convolutional Inverse Graphics Network (DC-IGN)) :
- 20. 生成对抗网络 (Generative Adversarial Network (GAN)) :
- 21. 液态机 (Liquid State Machine (LSM)):
- 22. 极限学习机 (Extreme Learning Machine (ELM)):
- 23. 回声状态网络 (Echo State Network (ESN)) :
- 24. 深度残差网络 (Deep Residual Network (DRN)) :
- 25. Kohonen 网络 (Kohonen Networks (KN) ):
- 26. 支持向量机 (Support Vector Machines (SVM)):
- 27. 神经图灵机 (Neural Turing Machine (NTM)) :
神经网络主要类型及其应用指南
作者:Pratik Shukla,Roberto Iriondo
编译:McGL
公众号:PyVision(欢迎关注,专注 CV,偶尔 CS)
Main Types of Neural Networks and its Applications — Tutorial
目前深度学习中的神经网络种类繁多,用途各异。由于这个分支在指数增长,跟踪神经网络的不同拓扑有助于更深刻的理解。在本文中,我们将展示神经网络中最常用的拓扑结构。
图 2: 感知器: 大脑中信息存储和组织的概率模型[3] | 来源: 康奈尔航空实验室的弗兰克 · 罗森布拉特标记的感知器。纽约水牛城,1960
神经网络拓扑
1. 感知器 (Perceptron(P)) :
感知器模型也称为单层神经网络。这个神经网络只包含两层:
- 输入层
- 输出层
这种类型的神经网络没有隐藏层。它接受输入并计算每个节点的加权。然后,它使用激活函数 (大多数是 Sigmoid 函数) 进行分类。
应用:
- 分类
- 编码数据库 (多层感知器)
- 监控访问数据 (多层感知器)
2. 前馈 (Feed Forward (FF)) :
前馈神经网络是一种其中的节点不会形成循环的人工神经网络。在这种神经网络中,所有的感知器都被安排在输入层接收输入,输出层产生输出。隐藏层与外部世界没有联系,这就是为什么它们被称为隐藏层。在前馈神经网络中,一层的每个感知器与下一层的每个节点连接。因此,所有节点都是完全连接的。需要注意的是,同一层中的节点之间没有可见或不可见的连接。在前馈网络中没有后回路。因此,为了使预测误差最小化,我们通常使用反向传播算法来更新权值。
应用:
- 数据压缩
- 模式识别
- 计算机视觉
- 声纳目标识别
- 语音识别
- 手写字符识别
3. 径向基网络 (Radial Basis Network (RBN)) :
径向基函数网络通常用于解决函数逼近问题。区别于其它神经网络,它们有更快的学习速度和通用逼近能力。径向基神经网络和前馈神经网络的主要区别在于,径向基神经网络使用径向基函数作为激活函数。Logistic(sigmoid) 函数的输出值在 0 到 1 之间,用来判断答案是是或否。问题是,如果我们有连续的值,则用不了前馈神经网络。径向基神经网络确定生成的输出和目标输出距离多大。在连续值的情况下非常有用。总之,径向基神经网络使用其它的激活函数表现就和前馈神经网络一样。
应用:
- 函数逼近
- 时间序列预测
- 分类
- 系统控制
4. 深度前馈 (Deep Feed-forward (DFF)) :
深层前馈网络是使用多个隐藏层的前馈网络。只用一层隐藏层的主要问题是过拟合,因此通过增加隐藏层,可以减少过拟合,提高泛化能力。
应用:
- 数据压缩
- 模式识别
- 计算机视觉
- 心电图噪声滤波
- 金融预测
5. 循环神经网络 (Recurrent Neural Network (RNN)):
循环神经网络是前馈神经网络的一种改进形式。在这种类型中,隐藏层中的每个神经元接收具有特定时间延迟的输入。使用这种类型的神经网络,我们需要在当前的迭代中访问之前的信息。例如,当我们试图预测一个句子中的下一个单词时,我们首先需要知道之前使用的单词。循环神经网络可以处理输入并跨时共享任意长度和权重。模型大小不会随着输入的大小而增加,模型中的计算会考虑到历史信息。然而,这种神经网络的问题是计算速度慢。此外,它不能考虑当前状态的任何未来输入。它也无法记住很久以前的信息。
应用:
- 机器翻译
- 机器人控制
- 时间序列预测
- 语音识别
- 语音合成
- 时间序列异常检测
- 节奏学习
- 音乐创作
6. 长 / 短期记忆 (Long / Short Term Memory (LSTM)) :
LSTM 网络引入了一个记忆单元。他们可以处理间隔记忆的数据。如上可见,我们可以在 RNN 中考虑时间延迟,但如果我们有大量的相关数据,RNN 很容易失败,而 LSTMs 正好适合。另外,与 LSTMs 相比,RNN 不能记忆很久以前的数据。
应用:
- 语音识别
- 写作识别
7. 门控循环单位 (Gated Recurrent Unit (GRU)):
GRU 是 LSTM 的一个变种,因为它们都有相似的设计,绝大多数时候结果一样好。GRU 只有三个门,并且它们不维持内部单元状态。
a. 更新门 (Update Gate): 决定有多少过去的知识可以传递给未来。
b. 重置门 (Reset Gate): 决定过去的知识有多少需要遗忘。
c. 当前记忆门 (Current Memory Gate): 重置命运的子部分。
应用:
- 复调音乐模型
- 语音信号建模
- 自然语言处理
8. 自动编码器 (Auto Encoder (AE)) :
自动编码器神经网络是一个非监督式机器学习算法。在自动编码器中,隐藏神经元的数量小于输入神经元的数量。自动编码器中输入神经元的数目等于输出神经元的数目。在自动编码器网络中,我们训练它来显示输出,输出和输入尽可能接近,这迫使自动编码器找到共同的模式和归纳数据。我们使用自动编码器来更小的表示输入。我们还可以从压缩的数据中重建原始数据。该算法相对简单,因为自动编码器要求输出与输入相同。
- 编码器: 转换输入数据到低维
- 解码器: 重构压缩数据
应用:
- 分类
- 聚类
- 特征压缩
9. 变分自动编码器 (Variational Autoencoder (VAE)) :
变分自动编码器 (VAE) 使用一种概率方法来描述观测。它显示了一个特征集中每个属性的概率分布。
应用:
- 在句子之间插入
- 图像自动生成
10. 去噪自动编码器 (Denoising Autoencoder (DAE) :
在这种自动编码器中,网络不能简单地将输入复制到其输出,因为输入也包含随机噪声。在 DAE 上,我们制造它是为了降低噪声并在其中产生有意义的数据。在这种情况下,该算法迫使隐藏层学习更鲁棒的特征,以便输出是噪声输入的更精确版本。
应用:
- 特征提取
- 降维
11. 稀疏自动编码器 (Sparse Autoencoder (SAE)) :
在稀疏自动编码器网络中,我们通过惩罚隐藏层的激活来构造我们的损失函数,这样当我们将一个样本输入网络时,只有少数节点被激活。这种方法背后的直觉是,例如,如果一个人声称自己是 A、 B、 C 和 D 学科的专家,那么这个人可能在这些科目上更多的是一个通才。然而,如果这个人只是声称自己专注于学科 D,那么大概率预期可以从这个人的学科 D 的知识中得到启发。
应用:
- 特征提取
- 手写数字识别
12. 马尔可夫链 (Markov Chain (MC)) :
马尔可夫链是一个基于某些概率规则经历从一种状态到另一种状态转换的数学系统。过渡到任何特定状态的概率完全取决于当前状态和经过的时间。
例如,一些可能的状态可以是:
- 信件
- 数字
- 天气情况
- 棒球比分
- 股票表现
应用:
- 语音识别
- 信息及通讯系统
- 排队论
- 统计学
13. 霍菲特网络 (Hopfield Network (HN)):
在 Hopfield 神经网络中,每个神经元都与其它神经元直接相连。在这个网络中,神经元要么是开的,要么是关的。神经元的状态可以通过接受其它神经元的输入而改变。我们通常使用 Hopfield 网络来存储模式和记忆。当我们在一组模式上训练一个神经网络,它就能够识别这个模式,即使它有点扭曲或不完整。当我们提供不完整的输入时,它可以识别完整的模式,这将返回最佳的猜测。
应用:
- 优化问题
- 图像检测与识别
- 医学图像识别
- 增强 X 射线图像
14. 波茨曼机 (Boltzmann Machine (BM)):
波茨曼机网络包括从一个原始数据集中学习一个概率分布,并使用它来推断没见过的数据。在 BM 中,有输入节点和隐藏节点,一旦所有隐藏节点的状态发生改变,输入节点就会转换为输出节点。例如: 假设我们在核电站工作,安全必须是第一位的。我们的工作是确保动力装置中的所有组件都可以安全使用——每个组件都会有相关的状态,使用布尔值 1 表示可用,0 表示不可用。然而,还有一些组成部分,我们不可能定期测量它们的状态。
此外,没有数据可以告诉我们,如果隐藏的部件停止工作,发电厂什么时候会爆炸。在这种情况下,我们构建了一个模型,当组件更改其状态时,它会发出通知。这样,我们将得到通知检查该组件,并确保动力装置的安全。
应用:
- 降维
- 分类
- 回归
- 协同过滤
- 特征学习
15. 受限玻尔兹曼机 (Restricted Boltzmann Machine (RBM)):
RBM 是 BM 的一种变种。在这个模型中,输入层和隐藏层的神经元之间可能有对称的连接。需要注意的一点是,每一层内部都没有内部连接。相比之下,玻尔兹曼机可能有内部连接的隐藏层。这些限制让模型的训练更高效。
应用:
- 过滤
- 特征学习
- 分类
- 风险检测
- 商业及经济分析
16. 深度信念网络 (Deep Belief Network (DBN)) :
深度信念网络包含许多隐藏层。我们可以使用无监督算法调用 DBN,因为它首先学习而不需要任何监督。DBN 中的层起着特征检测器的作用。经过无监督训练后,我们可以用监督方法训练我们的模型进行分类。我们可以将 DBN 表示为受限玻耳兹曼机 (RBM) 和自动编码器 (AE) 的组合,最后的 DBN 使用概率方法得到结果。
应用:
- 检索文件 / 图像
- 非线性降维
17. 深度卷积网络 (Deep Convolutional Network (DCN)) :
卷积神经网络是一种神经网络,主要用于图像分类、图像聚类和目标识别。DNN 允许无监督地构造层次图像表示。DNN 被用来添加更复杂的特征,以便它能够更准确地执行任务。
应用:
- 识别面部,街道标志,肿瘤
- 图像识别
- 视频分析
- 自然语言处理
- 异常检测
- 药物发现
- 跳棋游戏
- 时间序列预测
18. 反卷积神经网络 (Deconvolutional Neural Networks (DN)) :
反卷积网络是一种反向过程的卷积神经网络。尽管反卷积网络在执行方式上类似于 CNN,但它在 AI 中的应用是非常不同的。反卷积网络有助于在以前认为有用的网络中找到丢失的特征或信号。卷积网络可能由于与其它信号卷积而丢失信号。反卷积网络可以接受一个向量输入并还原成照片。
应用:
- 图像超分辨率
- 图像的表面深度估计
- 光流估计
19. 深度卷积逆图形网络 (Deep Convolutional Inverse Graphics Network (DC-IGN)) :
深度卷积逆图形网络旨在将图形表示与图像联系起来。它使用元素,如照明,对象的位置,纹理,和其它方面的图像设计来进行非常复杂的图像处理。它使用不同的层来处理输入和输出。深度卷积逆图形网络利用初始层通过各种卷积和最大池化进行编码,然后利用后续层进行展开解码。
应用:
- 人脸处理
20. 生成对抗网络 (Generative Adversarial Network (GAN)) :
给定训练数据,GANs 学习用与训练数据相同的统计数据生成新的数据。例如,如果我们对 GAN 模型进行照片训练,那么一个经过训练的模型就能够生成人眼看起来真实可信的新照片。GAN 的目标是区分真实结果和合成结果,以便产生更真实的结果。
应用:
- 创造新的人体姿势
- 照片变 Emoji
- 面部老化
- 超分辨率
- 服装变换
- 视频预测
21. 液态机 (Liquid State Machine (LSM)):
液态机是一种特殊的脉冲神经网络。液态机由大量的神经元组成。这里,每个节点接收来自外部源和其它节点的输入,这些输入可能随时间而变化。请注意,液态机上的节点是随机连接的。在液态机中,激活函数替换为阈值级别。只有当液态机达到阈值水平时,一个特定的神经元才会发出输出。
应用:
- 语音识别
- 计算机视觉
22. 极限学习机 (Extreme Learning Machine (ELM)):
传统系统处理大量数据的主要缺点是:
- 基于梯度算法学习速度慢
- 迭代调优所有参数
极限学习机随机选择隐藏节点,然后通过分析确定输出权重。因此,这些算法比一般的神经网络算法更快。另外,在极限学习机网络中,随机分配的权重通常不会更新。它只需一步就能学会输出权重。
应用:
- 分类
- 回归
- 聚类
- 稀疏逼近
- 特征学习
23. 回声状态网络 (Echo State Network (ESN)) :
ESN 是循环神经网络的一个子类型。这里每个输入节点接收到一个非线性信号。在 ESN 中,隐藏的节点是稀疏连接的。隐节点的连通度和权值是随机分配的。在 ESN 上,最终的输出权重是可训练更新的。
应用:
- 时间序列预测
- 数据挖掘
24. 深度残差网络 (Deep Residual Network (DRN)) :
具有多层结构的深层神经网络训练很难,且需要花费大量的时间。它也可能导致结果退化。深度残差网络即使有很多层也可以防止结果退化。使用残差网络,其输入的一些部分会传递到下一层。因此,这些网络可以相当深 (它可能包含大约 300 层)。
应用:
- 图像分类
- 目标检测
- 语义分割
- 语音识别
- 语言识别
25. Kohonen 网络 (Kohonen Networks (KN) ):
Kohonen 网络是一种无监督算法。Kohonen 网络也称为自组织映射,当我们的数据分散在多个维度,而我们希望它只有一个或两个维度时,这非常有用。它可以认为是一种降维的方法。我们使用 Kohonen 网络可视化高维数据。他们使用竞争学习而不是纠错学习。
各种拓扑结构:
- 矩形网格拓扑
- 六边形网格拓扑
应用:
- 降维
- 水质评价与预测
- 沿岸水资源管理
26. 支持向量机 (Support Vector Machines (SVM)):
支持向量机神经网络是支持向量机和神经网络的混合算法。对于一组新的样本,它总是试图分为两类: 是或否 (1 或 0)。支持向量机通常用于二分类。这些通常不被认为是神经网络。
应用:
- 人脸检测
- 文本分类
- 分类
- 生物信息学
- 手写识别
27. 神经图灵机 (Neural Turing Machine (NTM)) :
神经图灵机结构包含两个主要组件:
- 神经网络控制器
- 记忆库
在这个神经网络中,控制器通过输入和输出向量与外界进行交互。它还通过与记忆矩阵交互来执行选择性读写操作。图灵机被认为在计算上等同于现代计算机。因此,NTM 通过与外部存储的交互,扩展了标准神经网络的能力。
应用:
- 机器人
- 制造人造大脑
希望你喜欢这篇关于神经网络主要类型的概述。如果你有任何反馈,或者有什么需要修改或重新审视的地方,请在评论中告诉我。
References:
[1] Activation Function | Wikipedia | https://en.wikipedia.org/wiki/Activation_function
[2] The perceptron: a probabilistic model for information storage and organization in the brain | Frank Rosenblatt | University of Pennsylvania | https://www.ling.upenn.edu/courses/cogs501/Rosenblatt1958.pdf
[3] Frank Rosenblat’s Mark I Perceptron at the Cornell Aeronautical Laboratory. Buffalo, Newyork, 1960 | Instagram, Machine Learning Department at Carnegie Mellon University | https://www.instagram.com/p/Bn_s3bjBA7n/
[4] Backpropagation | Wikipedia | https://en.wikipedia.org/wiki/Backpropagation
https://zhuanlan.zhihu.com/p/159305118