大多数深层体系结构都是通过组合和重组一组有限的体系结构基元来构建的。这些基元,通常称为神经网络层,是深层网络的基本构件。在本节中我们将对这些深度学习基元进行深入的介绍。然而,在本节中,我们将对许多深层网络中的常见模块进行简要概述。我们的目标是提供一个复杂的深层架构构建块的快速概览,以满足您的需求。深度学习的艺术由合并和重组这些模块组成。
完全连接层
完全连接的网络将输入列表转换为输出列表。由于任何输入值都可能影响任何输出值,因此这种转换被称为完全连接。这些层将有许多可学习的参数,即使对于相对较小的输入也是如此,但是它们有一个很大的优势,即假设输入中没有结构。这个概念如下图所示。
图1.一个完全连接的层。入站箭头表示输入,而出站箭头表示输出。互连线的厚度表示学习权值的大小。完全连接层通过学习规则将输入转换为输出
卷积层
卷积网络的输入具有特殊的空间结构。特别是,它假定空间上彼此接近的输入在语义上是相关的。这个假设对图像最有意义,因为相邻的像素很可能在语义上相互关联。因此,卷积层在图像处理的深层体系结构中得到了广泛的应用。这个概念如图1-2所示。
就像完全连接的层将列表转换为列表一样,卷积层将图像转换为图像。因此,卷积层可以用来执行复杂的图像转换,比如在照片应用程序中对图像应用艺术过滤器。
图2.一个卷积层。左边的红色形状表示输入数据,而右边的蓝色形状表示输出。在这个特殊的例子中,输入是shape(32, 32, 3),也就是说,输入是一个32像素×32像素的图像,带有三个RGB颜色通道。红色输入中突出显示的区域是一个“本地接受域”,一组输入被一起处理,以创建蓝色输出中突出显示的区域。
递归神经网络层
递归神经网络(RNN)层是允许神经网络从输入序列中学习的基本层。这一层假设输入按照可以从数据中学习的已定义的更新规则一步一步地发展。这个更新规则根据给定的所有先前出现的状态,在序列中显示下一个状态的预测。RNN如图1-3所示。
RNN层可以从数据中学习这个更新规则。因此,RNNs对于诸如语言建模之类的任务非常有用,在这些任务中,工程师试图构建能够预测用户将从历史记录中键入的下一个单词的系统。
图 3.一种递归神经网络(RNN)。输入在底部输入到网络中,输出在顶部提取。W表示学习的转换(在所有时间步骤中共享)。网络在左边以概念表示,在右边展开,以演示如何处理来自不同时间步骤的输入。
长短时记忆细胞
上一节给出的RNN层理论上可以学习任意的序列更新规则。然而,在实践中,这些层次无法从遥远的过去学习影响。这种遥远的影响对形成坚实的语言模型至关重要,因为复杂句子的意义可能取决于遥远单词之间的关系。长短时记忆(LSTM)细胞是对RNN层的一种改进,允许来自过去更深层次的信号进入到现在。LSTM单元格如图4所示。
图1 – 4.长短时记忆(LSTM)细胞。在内部,LSTM单元具有一组特殊设计的操作,这些操作在保留过去影响的同时,获得了传统RNN的大部分学习能力。注意,插图描述了许多LSTM变体中的一个。