注意力机制 (Transformer)(TensorFlow)
灵长类动物的视觉系统接受了大量的感官输入,这些感官输入远远超过了大脑能够完全处理的程度。然而,并非所有刺激的影响都是相等的。意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。只关注一小部分信息的能力对进化更加有意义,使人类得以生存和成功。自19
世纪以来,科学家们一直致力于研究认知神经科学领域的注意力。基于注意力机制的Transformer
架构,该架构中使用了多头注意力(multi-head attention
)和自注意力(self-attention
)。自2017
年横空出世,Transformer
一直都普遍存在于现代的深度学习应用中,例如语言、视觉、语音和强化学习领域。
循环神经网络 (RNN)(TensorFlow)
门控循环单元
我们讨论了如何在循环神经网络中计算梯度,以及矩阵连续乘积可以导致梯度消失或梯度爆炸的问题。下面我们简单思考一下这种梯度异常在实践中的意义:
- 我们可能会遇到这样的情况:早期观测值对预测所有未来观测值具有非常重要的意义。考虑一个极端情况,其中第一个观测值包含一个校验和,目标是在序列的末尾辨别校验和是否正确。在这种情况下,第一个词元的影响至关重要。我们希望有某些机制能够在一个记忆元里存储重要的早期信息。如果没有这样的机制,我们将不得不给这个观测值指定一个非常大的梯度,因为它会影响所有后续的观测值。
- 我们可能会遇到这样的情况:一些词元没有相关的观测值。
- 我们可能会遇到这样的情况:序列的各个部分之间存在逻辑中断。
在学术界已经提出了许多方法来解决这类问题。其中最早的方法是“长短期记忆”(long-short-term memory,LSTM
),门控循环单元(gated recurrent unit,GRU
)是一个稍微简化的变体,通常能够提供同等的效果,并且计算的速度明显更快。
循环神经网络模型 (RNN)(TensorFlow)
我们学习了
序列模型 (循环神经网络)(TensorFlow)
简言之,如果说卷积神经网络可以有效地处理空间信息(图片),循环神经网络(recurrent neural network,RNN
)则可以更好地处理序列信息(文本)。循环神经网络通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。
稠密连接网络 (DenseNet)(TensorFlow)
ResNet
极大地改变了如何参数化深层网络中函数的观点。稠密连接网络(DenseNet
)在某种程度上是ResNet
的逻辑扩展。让我们先从数学上了解一下。
残差网络 (ResNet)(TensorFlow)
随着我们设计越来越深的网络,深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力,在这种网络中,添加层会使网络更具表现力,为了取得质的突破,我们需要一些数学基础知识。
含并行连结的网络 (GoogLeNet)(TensorFlow)
在2014
年的ImageNet
图像识别挑战赛中,一个名叫GoogLeNet
的网络架构大放异彩。GoogLeNet
吸收了NiN
中串联网络的思想,并在此基础上做了改进。这篇论文的一个重点是解决了什么样大小的卷积核最合适的问题。毕竟,以前流行的网络使用小到
网络中的网络 (NiN)(TensorFlow)
LeNet、AlexNet
和VGG
都有一个共同的设计模式:通过一系列的卷积层与汇聚层来提取空间结构特征;然后通过全连接层对特征的表征进行处理。AlexNet
和VGG
对LeNet
的改进主要在于如何扩大和加深这两个模块。或者,可以想象在这个过程的早期使用全连接层。然而,如果使用了全连接层,可能会完全放弃表征的空间结构。网络中的网络(NiN
)提供了一个非常简单的解决方案:在每个像素的通道上分别使用多层感知机。
使用块的网络 (VGG)(TensorFlow)
虽然AlexNet
证明深层神经网络卓有成效,但它没有提供一个通用的模板来指导后续的研究人员设计新的网络。与芯片设计中工程师从放置晶体管到逻辑元件再到逻辑块的过程类似,神经网络架构的设计也逐渐变得更加抽象。研究人员开始从单个神经元的角度思考问题,发展到整个层,现在又转向块,重复层的模式。使用块的想法首先出现在牛津大学的视觉几何组(visual geometry group
)的VGG
网络中。通过使用循环和子程序,可以很容易地在任何现代深度学习框架的代码中实现这些重复的架构。