深度学习初探(五)神经网络

层方式实现

全连接层本质上是矩阵的相乘相加运算,实现并不复杂。但是作为最常用的网络层之 一,TensorFlow 中有更加高层、使用更方便的层实现方式:layers.Dense(units, activation), 只需要指定输出节点数 Units 和激活函数类型即可。输入节点数将根据第一次运算时的输入 shape 确定,同时根据输入、输出节点数自动创建并初始化权值矩阵 W 和偏置向量 b, 使用非常方便

我们把神经网络从输入到输出的计算过程叫做前向传播(Forward propagation)。神经网络的前向传播过程,也是数据张量(Tensor)从第一层流动(Flow)至输出层的过程:从输入数 据开始,途径每个隐藏层,直至得到输出并计算误差,这也是 TensorFlow 框架名字意义所 在

从另一个角度来理解神经网络,它完成的是特征的维度变换的功能,比如 4 层的 MNIST 手写数字图片识别的全连接网络,它依次完成了784 → 256 → 128 → 64 → 10的特 征降维过程。原始的特征通常具有较高的维度,包含了很多底层特征及无用信息,通过神 经网络的层层特征变换,将较高的维度降维到较低的维度,此时的特征一般包含了与任务 强相关的高层特征信息,通过对这些特征进行简单的逻辑判定即可完成特定的任务,如图片的分类。

卷积神经网络

如何识别、分析并理解图片、视频等数据是计算机视觉的一个核心问题,全连接层在 处理高维度的图片、视频数据时往往网络参数量巨大,训练非常困难。通过利用局部相关性和权值共享的思想,Yann Lecun 在 1986 年提出了卷积神经网络(Convolutional Neural Network,CNN)。随着深度学习的兴盛,卷积神经网络在计算机视觉中的表现几乎碾压了 所有其他的模型算法,呈现统治计算机视觉领域之势。

循环神经网络

除了具有空间结构的图片、视频等数据之外,序列信号也是非常常见的一种数据类型,其中一个最具代表性的序列信号就是文本数据。如何处理并理解文本数据是自然语言 处理的一个核心问题。卷积神经网络由于缺乏 Memory 机制和处理不定长序列信号的能力,并不擅长自然语言处理任务。循环神经网络(Recurrent Neural Network,RNN)在 Yoshua Bengio, Jürgen Schmidhuber 等人的持续研究下,被证明非常擅长处理序列信号。 1997 年,Jürgen Schmidhuber 提出了 LSTM 网络,作为 RNN 的变种,它较好地克服了 RNN 缺乏长期记忆、不擅长处理长序列的问题,在自然语言处理中得到了广泛的应用。基于LSTM 模型,Google 提出了用于机器翻译的 Seq2Seq 模型,并成功商用于谷歌神经机器 翻译系统(GNMT)。

注意力(机制)网络

RNN 并不是自然语言处理的最终解决方案,近年来随着注意力机制(Attention)的提出,克服了RNN训练不稳定、难以并行化等缺陷,在自然语言处理和图片生成等领域中 逐渐崭露头角。注意力机制最初在图片分类任务上提出,但逐渐开始侵蚀 NLP 各大任务。 2017 年,Google 提出了第一个利用纯注意力机制实现的网络模型 Transformer,随后基于 Transformer 相继提出了一系列的用于机器翻译的注意力网络模型,如 GPT,BERT,GPT-2 等。在其他领域,基于注意力机制,尤其是自注意力(Self-attention)机制构建的网络也取得 了不错的效果,比如基于自注意力机制的 BigGAN 模型等

图神经网络

图片、文本等数据具有规则的空间、时间结构,称之为 Euclidean Data。卷积神经网络和循环神经网络被证明非常擅长处理这种类型的数据。而像类似于社交网络、通信网络, 蛋白质分子结构等一系列不规则的空间拓扑结构的数据,它们显得力不从心。2016 年, Thomas Kipf 等人基于前人在一阶近似的谱卷积算法上提出了图卷积网络(Graph Convolution Network,GCN)模型。GCN 算法实现简单,从空间一阶邻居信息聚合的角度 也能直观理解,在半监督任务上取得了不错效果。

你可能感兴趣的:(深度学习)