『资源』深度学习架构谱系
近几年,深度学习高速发展,出现了大量的新模型与架构,以至于我们无法理清网络类型之间的关系。在这篇文章中,香港科技大学(HKUST)助理教授金成勳总结了深度网络类型之间的谱系图,以便于我们索引不同类型网络的杰出研究成果。
金成勳在 GitHub 上梳理出的谱系图如下(点击图片放大查看),最后的蓝色字体部分是各分支内的杰出研究成果(附所有论文链接)。机器之心在此基础上对各个分支网络做了介绍、补充,希望对读者了解网络体系间的关联有所帮助。如有缺陷,欢迎大家留言补充。
Github 项目地址:https://github.com//hunkim/deep_architecture_genealogy
完整图
记忆网络
在记忆网络分支中,hunkim 标注了三篇重要论文:《记忆网络》、《端到端记忆网络》、《DMN:动态记忆网络》。神经编程是记忆网络的下一级分支,包含神经图灵机、混合计算等论文。
参考阅读:
- 深度 | Yann LeCun 最新演讲再谈预测学习:记忆网络和对抗训练是很有前景的方向
- 一周论文 | 记忆网络及其变体模型
- 业界 | MetaMind 发布论文:借助动态记忆网络 DMN 让机器更好地像人类般推理(附论文下载)
- 神经图灵机深度讲解:从图灵机基本概念到可微分神经计算机
卷积神经网络(CNN)
如下所示,CNN 除了包含执行目标识别任务的 AlexNet 等深度卷积网络,还包括很多优秀的模型用于处理目标检测、语义分割和超分辨率等任务。它们以不同的方式应用卷积过程处理不同的任务,并在这些任务上产生了非常好的效果。从基本上来说,卷积相对于最初的全连接网络有很多优秀的属性,例如它只和上一层神经元产生部分的连接,同一个卷积核可以在输入张量上重复使用,也就是说特征检测器可以在输入图像上重复检测是否有该局部特征。这是卷积网络十分优秀的属性,它大大减少了两层间参数的数量。
基于这些基础的卷积特性,我们可以构建不同的卷积模型处理不同的任务。以下是卷积网络的主要模型与领域:
参考阅读:
- 从入门到精通:卷积神经网络初学者指南
- 一文概览卷积神经网络中的类别不均衡问题
- 理解深度学习中的卷积
- 如何从信号分析角度理解卷积神经网络的复杂机制?
- 机器之心 GitHub 项目:从零开始用 TensorFlow 搭建卷积神经网络
循环神经网络(RNN)
循环神经网络(recurrent neural network)是深度学习的重要组成部分,它可以让神经网络处理诸如文本、音频和视频等序列数据。它们可用来做序列的高层语义理解、序列标记,甚至可以从一个片段生产新的序列。目前有很多人工智能应用都依赖于循环深度神经网络,在谷歌(语音搜索)、百度(DeepSpeech)和亚马逊的产品中都能看到 RNN 的身影。
基本的 RNN 结构难以处理长序列,然而一种特殊的 RNN 变种即「长短时记忆(LSTM)」网络可以很好地处理长序列问题。这种模型能力强大,在翻译、语音识别和图像描述等众多任务中均取得里程碑式的效果。因而,循环神经网络在最近几年得到了广泛使用。
参考阅读:
- LSTM、GRU 与神经图灵机:详解深度学习最热门的循环神经网络
- Google Brain 讲解注意力模型和增强 RNN
- 如何使用 TensorFlow 构建、训练和改进循环神经网络
- 如何用 PyTorch 实现递归神经网络?
Capsule Net
Capsule 是由深度学习先驱 Geoffrey Hinton 等人提出的新一代神经网络形式,旨在修正反向传播机制。在 Dynamic Routing Between Capsules 论文中,Geoffrey Hinton 这样介绍 Capsule:「Capsule 是一组神经元,其输入输出向量表示特定实体类型的实例化参数(即特定物体、概念实体等出现的概率与某些属性)。我们使用输入输出向量的长度表征实体存在的概率,向量的方向表示实例化参数(即实体的某些图形属性)。同一层级的 capsule 通过变换矩阵对更高级别的 capsule 的实例化参数进行预测。当多个预测一致时(本论文使用动态路由使预测一致),更高级别的 capsule 将变得活跃。」
Capsule 中神经元的激活情况表示了图像中存在的特定实体的各种性质。这些性质可以包含多种不同的参数,例如姿势(位置、大小、方向)、变形、速度、反射率、色彩、纹理等。而输入输出向量的长度表示了某个实体出现的概率,所以它的值必须在 0 到 1 之间。
机器之心也详细解读了上周 Hinton 公开的论文,这篇论文的亮点在于 Capsule 层的输入与输出都是向量,构建向量的过程可以认为是 PrimaryCaps 层利用 8 个标准的 Conv2D 操作产生一个长度为 8 个元素的向量,因此每一个 Capsule 单元就相当于 8 个卷积单元的组合。此外,在 Capsule 层中,Hinton 等人还使用了动态路由机制,这种更新耦合系数(coupling coefficients)的方法并不需要使用反向传播机制。
除了 Hinton 等人公布的 Capsule 论文以外,近日还有一篇 MATRIX CAPSULES WITH EM ROUTING 论文,该论文采用 EM Routing 修正原论文的 dynamic routing 从而实现更好的效果。
参考阅读:
- 终于,Geoffrey Hinton 那篇备受关注的 Capsule 论文公开了
- 先读懂 CapsNet 架构然后用 TensorFlow 实现,这应该是最详细的教程了
- 一篇新的 Capsule 论文:优于基准 CNN(ICLR 2018 盲审中)
生成模型
人工智能研究的最大难题之一是无监督学习(unsupervised learning),而面向无监督学习的深度学习方法以学习表征(learning representation)问题为核心,不同的算法都会定义一个目标函数,该目标函数可以让该学习器获取到其数据表征的关键方面以及一个可以表征数据的新空间。深度生成模型可以通过生成全新的样本来演示其对于数据的理解,尽管这些生成的样本非常类似于那些训练样本。许多这样的模型和之前的自编码器的思想有关,其有一个编码器函数将数据映射到表征,还有一个解码器函数(或生成器)将该抽象的表征映射到原始数据空间。此外,生成模型很多也应用到了 GAN 的思想,即通过判别器与生成器之间的对抗促使生成器生成非常真实的图像。
在变分自编码器中,我们需要通过样本训练一个编码器和解码器,在这过程中我们能得到中间的隐藏变量。若我们需要生成新的图像,那么只需要在隐藏变量采样并投入解码器就能完成生成。而在生成对抗网络中,我们会定义一个判别模型与生成模型。首先我们会将生成的样本混合真实样本投递给判别模型以训练其鉴别真假的能力,随后再固定判别模型并训练生成模型,以生成更真实的图像。