赞
踩
卷积神经网络(CNN)近年来已经取得了很大的成功,但研究者仍在进一步推进研究前沿,提出新的思路和方法。在本文中,技术分析师 Joshua Chou 将解读三篇有关卷积神经网络的 AAAI 2019 论文。其中第一篇提出了一种 dropout 改进方法,第二篇和第三篇则是图卷积网络方面的研究。
机器之心原创,作者:Joshua Chou,编辑:Haojin Yang。
分析师简介:Joshua 已于 2018 年取得多伦多大学应用科学硕士(MASc)学位。他的研究重心是格形码(lattice codes)、低密度奇偶校验(LDPC)码以及编码理论的其它方面。他也对凸优化和随机过程感兴趣。Joshua 目前在高通工作,是一位机器学习工程师,专注对推理的优化。
我在本文中介绍了选出的三篇 AAAI 2019 论文。所有这三篇论文都是众所周知的卷积神经网络的变体。第一篇论文是 Weighted Channel Dropout for Regularization of Deep Convolutional Neural Network,利用了一个简单的观察来提升 CNN 的表现。第二篇论文 Graph Convolutional Networks for Text Classification 研究了 CNN 的一种扩展——图卷积神经网络(GCNN)。GCNN 是直接操作图,是基于近邻节点和它们的属性推导节点的嵌入向量。第三篇论文 Bayesian Graph Convolutional Neural Networks for Semi-supervised Classification 讨论了贝叶斯框架下的 GCNN。也就是说,因为现实生活应用中使用的图有时候源自有噪声的数据或建模假设,所以图自身含有不确定性。因此,第三篇论文是通过向 GCNN 中引入概率和统计学来解决这种不确定性。下面我们开始详细解读。
近年来卷积神经网络(CNN)实现了很大的发展,这已经显著提升了很多不同应用的性能表现。深度 CNN 的成功原因很大程度上是其多个非线性隐藏层的结构,其中包含数以百万计的参数,因此能够学习输入和输出之间的复杂关系。
这项工作由 Hou 和 Wang 完成,受到了以下观察的启发。在一个 CNN 的卷积层的堆栈内,所有的通道都是由之前的层生成的,并会在下一层中得到平等的对待。这就带来了一个想法:这样的「分布」可能不是最优的,因为事实可能证明某些特征比其它特征更有用。当特征仍然可追溯时,对于更高层(更浅)来说尤其如此。Zhang et al. 2016 更进一步表明了这一点,他们表明,对于每张输入图像,更高层中仅有少量通道被激活,同时其它通道中的神经元响应接近于零。
由此,作者提出了一种根据激活的相对幅度来选择通道的方法,并可以进一步作为一种建模通道之间的依赖关系的特殊方法。他们这项工作的主要贡献是为 CNN 中卷积层的正则化提出了加权式通道丢弃(Weighted Channel Dropout/WCD)方法。
基本思想和一些注解
WCD 背后的主要思想如下:
相对而言,常规 dropout 是以随机方式掩蔽通道。下面的图 1 给出了传统 dropout 流程的示意图。
图 1:dropout 示意图
还有几点值得一提:
如前所述,WCD 的目标是为 CNN 中的卷积层堆栈提供正则化。这篇论文的标注方式如下。令 X = [x_1, x_2, ..., x_N] 表示层 I 的输出,X^ = [x^_1, x^_2, ..., x^_N^] 表示下一层的输入。N 和 N^ 表示通道的数量,x_i 和 x^_i 表示第 i 个通道。这篇论文考虑了以下情况。
此外,假设 N^ = N 成立。
第一步:通道评级
这一步涉及到为每个通道分配一个分数。这是使用 GAP 完成的。对于每个通道 i,它的分数可使用(2)式计算得到。
其中 W 和 H 分别是所有通道共享的宽度和高度。
第二步:通道选择
要决定一个通道是否被选中,方法是构建一个二元掩码。其中 mask_i 要么为 1,要么为 0,分别表示选择或不选择通道 i。为了构建这个掩码,首先要计算出一个概率 p_i 并将其分配给每个通道使用,以确定 mask_i。保留通道的概率 p_i 使用(3)式计算。
因为 P(mask_i = 1) = p_i,所以我们得出结论:有更高分数的通道更可能得到保留。
可以观察到,上述基于分数向量构建掩码向量的过程是加权式随机选择(WRS)的一种特例。由此可以实现这一步骤。算法 1 展示了 WRS 算法。更多信息请参阅 Efraimidis and Spirakis, 2006。
对于分数为 score_i 的每个通道 x_i,生成介于 0 和 1 之间的一个随机数 r_i,从而得到一个键值 key_i。接下来,选择其中 M 个最大的键值并将对应的 mask_i 设置为 1。
第三步:随机数生成器
这一步可被视为一个可选步骤,因为这更面向于更小的数据集。这是为了应对以下情况。在某个预训练模型的更高的卷积层,通道之间的差异大于更深卷积层中的情况。也就是说,仅有少量通道被分配了较大的激活值,其它激活值很小。如果网络仅根据这些层中的分数选择通道,那么有可能对于每张图像,被选择的通道序列在每次前向通过时都一样。因此,通过添加随机数生成器,即使 mask_i 已被设置为 1,对应的 x_i 仍有可能不被选择。
新提出的方法可总结为图 2 的形式。
图 2:加权式通道 dropout 示意图
实验和设置
理论上,WCD 可以插入任意 CNN 中任意的两个连续层之间。作者提出将 WCD 用于正则化卷积层的堆栈。作者进行了一些实验,将 WCD 整合进了 VGGNet (Simonyan and Zisserman 2014)、ResNet (He et al. 2016) 和 Inception (Szegedy et al. 2016) 等著名的网络中。
所有的模型都是使用 Caffe(Jia et al. 2014)在 Titan-X GPU 上实现。WCD 被添加到了训练阶段的网络中,原有的层保持不变。正如前面提到的,在早期卷积层中的通道更容易辨别和更好理解,因此作者在每个网络的更高、更浅层之后部署了 WCD。
实验使用了以下数据集:
图 3 展示了一些用作网络输入的数据集中的样本图像。
图 3:(a) CUB-200-2011、(b) Stanford Cars 和 (c) Caltech-256 中的图像示例
下面展示了被测网络(VGGNet、ResNet 和 Inception)的表现。此外,其中加入了基准表现(没有集成 WCD)以便比较。
可以看到,整合了 WCD 的模型总是优于基准。但是,这并不意味着整合了 WCD 的网络的表现接近当前最佳,比如 RA-CNN(Fu, Zheng, and Mei 2017)和 MA-CNN(Zheng et al. 2017)。这是因为 WCD 是一种相当通用的方法,可用于在小数据集上微调 CNN 时缓解过拟合问题,其可以整合进这些已有的模型中。
下面展示了在 Caltech-256 数据集上的结果。
前两行是在一个更大的测试集上得到的基准水平以及使用了 WCD 时的表现,而后两行是在一个包含 20 张图像的精简测试集(与训练集不重叠)上得到的基准水平以及使用了 WCD 时的表现。可以看到,WCD 在 Caltech-256 上也表现良好,能帮助实现优于基础模型的表现。
现在读者可能会问:除了额外的计算,在使用 WCD 时还需要什么权衡?答案是 WCD 在收敛之前会造成更高的训练(样本中)误差。换句话说,使用 WCD 时的收敛速度更慢。作者提供了使用 VGGNet-16 作为基础模型在 CUB-200-2011 上的结果。图 4 展示了其表现
图 4:WCD 对网络训练的影响,这是使用 VGGNet-16 作为基础模型在 CUB-200-2011 上的结果
如图中描述的那样,使用 WCD 时的训练误差曲线下降更慢,同时所得到的测试误差更低。这个实验发现支持这一说法:WCD 可以降低训练阶段中的过拟合。
在这篇论文中,作者提出了一种修改版的 dropout 作为一种 CNN 正则化方法。他们提出的方法 WCD 可用于卷积层的堆栈。这是一种轻量级的组件,仅需在训练阶段引入可忽略的少量计算成本,就能将其整合进任意已有模型中。
我认为这篇论文的有趣之处在于其采用了一个非常简单的观察,即更高 (更浅) 的卷积层通常更可解释;另一个观察是之前一层所生成的当前所有通道都会在下一层中得到平等对待。作者利用了这两个观察来取得更优的表现。
随着深度学习的持续提升,现在更优的表现往往是通过实现更复杂的算法或使用更多资源而「挤」出来的。看到有人使用这些简单的观察来低成本地提升表现,着实让人眼前一亮。这种类型的改进可能在机制上并不困难,但也确实需要一些运气和灵感才能想出来。因此,我认为这是一个值得讨论的有趣主题。
图神经网络(Graph Neural Networks/GNN)近年来越来越受欢迎。一些作者已经总结出了一些成熟的神经网络模型,比如一个用于处理结构化图的卷积神经网络(CNN)。Kipf 和 Welling 在 2017 年提出了图卷积网络(GCN),其在一些基准图数据集上取得了当前最佳的分类结果。
简而言之,GCN 是直接操作图的多层神经网络,并可基于近邻节点及它们的属性推导节点的嵌入向量。这是一种很有趣的网络模型,正在快速发展,因此我的目标是帮助读者进一步理解如何使用 GCN 以及讨论它们在文本分类中的一些应用。
术语和表示方法
GCN 本质上是操作图的 CNN。我们首先来看看一些所需的符号和术语。
GCN 操作的是这些信息,因此可以使用一层卷积自然地获取有关每个节点的直接近邻节点的信息。这篇论文的重点不是 GCN 的底层机制,而是如何构建要输入 GCN 的适当输入。
为文本 GCN构建图
现在我们进入这篇论文的核心。异构文本图既包含词节点,也含有文档节点。节点之间的边可分为两大类。
文档中的词出现
这是连接词节点和文档节点的边。词-文档边的权重是词-文档的词频-逆文档频率(TF-IDF)。词频是指词在文档中出现的次数,逆文档频率(IDF)是指包含该词的文档数量的对数尺度的逆向分数。
在计算 TF-IDF 时需要注意几点。在总结文本时,难点是寻找显著突出的 token。直观地看,人们可能会认为最常出现的 token 最重要。但是,很多文档中最常出现的词往往不能提供较多重要信息,比如 the、to、with、have(而不只是我们关注的词)。显著的 token 往往在多个不同文档中有较低的数量,而在某个文档中数量较大。TF-IDF 分数可以使用下列公式进行计算。
在这里 t 表示词,d 表示单个文本,D 为文本的集合。对此公式的理解如下:
它的第一部分 tf(t,d) 是用来计算每个词在单个文本中出现的次数。公式第二部分的详细表达如下,
上式中分子 D 表达文本集合,它也可被表示为 D=d_1, d_2, ... ,d_n,这里 n 是集合 (corpus) 中文本的数量。
分母的部分| {d ∈ D : t ∈ d} |表示词 t 出现在多少文本 d 中 (d ∈ D 限制 d 要属于文本集合 D 中). 这里需要指出的是,无论词 t 在某一个文本里出现了多少次,都只会被记录一次,因为我们只是要统计它是否出现过。分母加 1 的部分是为了避免分母为 0。
词共现
这是连接一个词节点与另一个词节点的边。连接两个词节点的边的权重使用逐点互信息(PMI)计算。PMI 度量非常类似信息论中的互信息,可以很好地直观理解。
以英语中文本分类或与文本相关的语言处理为例,这往往涉及到寻找简单的短语或寻找总是出现在一起(共现/ co-occurrence)的 token 对。可以直观地认为,如果两个 token 出现在一起的频率高于「随机」情况,则它们就是共现的。PMI 是一种描述这一情况的数学方法。因此,语言模型可能为任意的 token 序列分配一个概率 P(x_1, x_2, ..., x_k),其中更常见的序列有更高的概率。比如 P(「Los Angeles」) 是英语中「Los」和「Angeles」出现在一起的概率。语言模型可能包含不同长度的序列。
现在考虑一个能够读取「词袋(bag of words)」的 unigram(长度仅为 1 的序列)模型,P(「Los」) x P(「Angeles」) 是「Los Angeles」在这个(随机)unigram 模型中出现在一起的概率。然后可用下式计算 PMI。
PMI 为正表示词存在共现,也就是会出现在一起;PMI 为负则说明词没有出现在一起。
进一步解读 GCN
构建图之后,将其输入 Kipf and Welling (2017) 描述的 Text GCN 中。我们介绍的这篇论文关注的重点不是 GCN 的工作方式,而是要输入 Text GCN 中立即使用的图的构建。但是,我认为为了更好地理解这篇论文的结果,仍然需要对 GCN 进行一些介绍。我将在这里稍做停顿,稍微深度地讨论一下 GCN 以及它们实际计算的内容。有关 GCN 的更多细节可参考 Kipf 和 Welling 的另一篇论文:https://openreview.net/pdf?id=SJU4ayYgl
近似图卷积和逐层信息传播
GCN 的核心可写成下列等式:
式(3)。GCN 的逐层传播规则。
l+1 表示 l 层之后一层。在 l=0 层,H 矩阵是输入的图矩阵 G。W 是权重,A 和 D 分别是邻接矩阵和度矩阵。激活函数 σ 可根据情况选择,比如 ReLU 函数。
因此,每当信息运动到下一层时,网络都会通过等式(3)传递所有信息。取自 Kipf 和 Welling 的论文的下图 2 展示了这一过程。
图 2:用于半监督学习的多层图卷积网络(GCN)的示意图,其中有 C 个输入通道,输出层中有 F 个特征图
从图 2 中可以看到,输入层由输入特征图的「堆栈」构成(注意图中的层叠)。图的数量与特征的数量一样多,其中每个图都是又一个堆叠了所有属性的矩阵。GCN 的输出是特征图。
下图 3 是一个可视化 GCN 的简单示例。
图 3:GCN 结构的简单可视化
图 3 展示了一个简单的 GCN,其中有两个卷积层,带有 dropout 正则化和 ReLU 激活函数,输出位置是一个 softmax 分类器。
现在我们已经更清楚地理解了 GCN,下面会介绍实验结果。但在我们了解结果之前,我想简单谈谈我的一点看法。作者没有提到如何组织图的结构,即如何在邻接矩阵中为节点排序。我提到这一点的原因是节点可以代表文档、文本和单个词。我们马上就能看出,不同的节点类型似乎会带来额外的分析度。但是,给定一个邻接矩阵 A,以不同的节点顺序构建一个新的邻接矩阵 A',则 A 和 A' 是同构的。
因此,这让我相信(3)式中的输入图是旋转不变的(作者没有提到这一点,但我相信是这个情况)。其更新规则并不在意邻接矩阵,因为 1)它们与任意其它邻接矩阵是同构的,2)它们由度矩阵归一化,3)存在一个参数可训练的权重矩阵 W。直观地看,我认为 W 会「学习输入图的旋转」,并由此得到相同的结果。
实验
作者评估了 Text GCN 执行文本分类的能力。
作者用于比较的基准水平是当前最佳的文本分类和嵌入方法,比如 CNN、LSTM、Bi-LSTM、 PV-DM、fastText、SWEM 以及使用多种过滤器的不同 GCN。
实验中使用的数据集是 20-Newsgroups(20-NG)、Ohsumed 语料库、Reuters 21578 的 R52 和 R8、Movie Review(MR)。每个数据集的数据统计情况和详细描述请参阅下面的表格和链接。
实验设置如下。第一个卷积层的嵌入大小为 200,窗口大小为 20。窗口大小用于 TF-IDF 的计算。回忆一下,词频率是词出现在文档中的次数。在使用窗口的情况下,文档是根据窗口大小部分地读取。如果一个词出现在给定的窗口中,则计数增加。学习率设置为 0.02、dropout 率设置为 0.5,保留 10% 的训练集作为验证集。
实验结果见下表:
可以看到,除了一个数据集外,Text GCN 的准确度在其它所有数据集上都优于其它模型。作者文中并没有提供相应的解释,为何 Text GCN 在 MR 数据集上性能有所落后,我觉得可以从数据集的统计数字略窥倪端,MR 文本平均篇幅较短,可能因此导致其生成的图包含过少的信息量,影响了图网络的整体性能。
此外,通过改变窗口大小,作者也能得到不同水平的表现。因此,窗口大小可以被视为一个超参数,我们可以根据验证测试结果对其进行调整。图 4 给出了其表现上的差异。
图 4:不同窗口大小的准确度,(a)R8 数据集,(b)MR 数据集
根据实验结果,我们可以看到新提出的 Text GCN 实现了很好的文本分类结果。
在这篇论文中,作者提出了一种全新的文本分类方法,即文本图卷积网络(Text GCN)。Text GCN 能获取全局词共现信息以及使用有限标注的文档来执行所需任务。Text GCN 在多个基准数据集上都优于多种当前最佳方法,表现出色。
我认为这篇论文能帮助读者了解越来越流行的图卷积神经网络,这也是我介绍这篇论文的原因。卷积神经网络已经出现了一些时日了,现在已经相当成熟,现在也正得到不断的扩展和改进。我认为即使最少量的改进也值得关注。
我要介绍的第三篇论文基于图卷积神经网络(我们将使用该论文的表示方法,将其写成 GCNN)。如上一篇论文介绍的那样,GCNN 已被用于解决节点和图的分类问题,并且相当成功。但是,当前的实现将不确定性整合进图结构的能力有限,也就是说,GCNN 虽然理解图的节点和边,因为这是其中关系的基本真值描述,但应用中使用的图本身往往源自有噪声的数据或建模假设,得到的图有更高的熵。
当我们处理不确定性时,我们自然会想到概率。而当我们想到概率时,我们会想到贝叶斯法则。将贝叶斯框架整合进 GCNN 是这篇论文的重心。这篇论文针对的是某些随机图参数和节点标签的联合后验的推断。作者提出了贝叶斯 GCNN 框架,并开发了一种迭代式的学习流程来到达最终图。
表示方法和术语
这篇论文的表示方法和术语类似于前一篇论文(也有些许不同),这里我们简要介绍一下。我们观察到的图为 G_obs = (V, E),由 N 个节点的集合 V 与边集合 E 构成。对于每个节点 i,都有一些相关的度量数据(或导出特征),表示为 x_i。对于节点的某个子集 L ⊂ V, 存在度量标签 Y_L = {y_i : i ∈ L}。在分类任务中,标签 y_i 可以意味着类别;在回归任务中,y_i 可以是实数值。这篇论文的任务目标是使用特征 x 和观察到的图结构 G_obs 来估计无标签节点的标签。
GCNN 执行这一任务的方式是在神经网络架构中执行图卷积运算。收集到的特征向量将作为矩阵 X 的行,即 GCNN 的层。在每个卷积层,前向传播都根据等式(1)和(2)定义。
等式 (1) 和 (2)。GCNN 的逐层传播规则
等式(1)和(2)是和前一篇论文一致的公式,只有一点不同——没有度矩阵与 A_G 相乘。但是,解读仍然是一样的。一个 L 层网络的最后一层输出表示为 Z = H^(L)。神经网络权重的训练通过反向传播执行,目标是最小化被观察的标签 Y 和网络预测 Z 之间的误差度量。
考虑以下设定。
在这里,权重被建模为贝叶斯方法中的随机变量,并且有基于它们的一个先验分布。因为这些权重是随机变量,输出 f(x) 也是一个随机变量。在这一框架下,新输入 x 的输出可被视为给定 x、X、Y 并整合了 W 的后验分布。这可以表示为下面的等式(3)。
p(y|x, W) 这一项可被视为一个似然;在分类任务中,可通过将 softmax 函数应用于神经网络的输出,使用类别分布来建模这一项。
现在,我们将后验计算表示为等式(5),等式(5)的目标是计算节点标签的后验概率。
其中 W 是一个随机变量,表示贝叶斯 GCNN 在图 G 上的权重,λ 表示特征化一系列随机图的参数。在下一节,我们将会看到贝叶斯 GCNN 执行半监督节点分类任务的方式。
实验设置和数据集
下面我们来看使用贝叶斯框架的 GCNN 在半监督节点分类上的表现。这个实验测试的是贝叶斯 GCNN 预测未知文档标签的能力。这类似于上面的论文 Graph Convolutional Networks for Text Classification 中讨论的文本分类。使用的数据集包括引用数据集(Sen, Namata, and others 2008),比如 Cora、CiteSeer 和 Pubmed。在这些数据集中,每个节点表示一个文档,并且有与其相关的稀疏词袋特征向量。每当一个文档引用另一个文档时,就会形成边。忽略引用的方向,并构建一个带有一个对称邻接矩阵的无向图。表 1 给出了这些数据集的统计情况。
表 1:实验中使用的数据集的总结概括
作者将他们的工作与最早的 GCNN(Kipf and Welling 2017)ChebyNet(Defferrard, Bresson, and Vandergheynst 2016)和图注意网络(GAT)(Velickovic et al. 2018)进行了比较。此外,其超参数设置和 Kipf and Welling 的 GCNN 一样。具体来说,这个 GCNN 有两层,其中隐藏单元数为 16,学习率为 0.01,L2 正则化参数为 0.0005,dropout 率为每层 50%。除了之前的研究(Kipf and Welling 2017)探索过的每类别 20 个标签的训练设置之外,作者还在限制更严格的数据场景(每类别仅有 10 或 5 个标签可用)中测试了这些算法的表现。
将数据集划分为训练集和测试集的方式有两种,第一种是源自(Yang, Cohen, and Salakhutdinov 2016)的固定式数据分割。第二种划分类型是随机的,其中每一轮的训练集和测试集都是随机创建的。这能为模型表现提供更为稳健的比较,因为特定的数据划分方式会在训练标签有限的情况中产生显著的影响。
下列表 2、3、4 展示了实验的结果。
表 2:在 Cora 数据集上的预测准确度(预测正确的标签所占百分比)
表 3:在 Citeseer 数据集上的预测准确度
表 4:在 Pubmed 数据集上的预测准确度
可以看到,GCNN 几乎在所有实验中都优于其它网络。值得注意的是,当不确定性较高时(即标签的数量较少时),更是如此。这一点非常直观,因为当数据和标签更少时,贝叶斯 GCNN 在计算没有标签的节点的最大后验(MAP)估计以及选择最优近似上有优势。另一方面,其它设置依赖「基本真值」标签提供有关节点和标签的信息,在没有标签时不会提供任何信息。当然,计算节点的潜在标签的概率需要额外的计算成本,也就是说,对于有 L 个标签的每个不确定的节点,网络必须计算出每个标签的 L 个概率以决定每个不确定节点应该与哪个标签关联。
但是,可以预见,随着给定标签数量的增长(图中「基本真值」更多),其它框架将开始优于贝叶斯 GCNN。此外,随着给定标签数量的增长,贝叶斯 GCNN 不仅会失去优势,而且由于计算缺失的标签的概率需要额外的计算成本,还会具有较大的劣势。
可以看到,另一个影响结果的因素是图复杂度(graph complexity)。在 Pubmed 数据集上尤其如此。在使用 Pubmed 数据集时,原始的 GCNN 显著优于贝叶斯 GCNN。Pubmed 数据集比 Cora 和 CiteSeer 数据集大很多,这会得到更加复杂的图。我相信这是由于以下直观原因。边的数量比节点数量多很多的图是「连接很紧密的」的图。在「基本真值」设定中,具有标签的节点意味着给定的节点-标签关系是绝对确定的。因为边的数量远多于节点的数量,所以每个节点的绝对信息都会被传播给网络中的更多节点,从而得到「信息更丰富」的图。我认为这就是贝叶斯 GCNN 在这种情况下优势不再的原因。
在这篇论文中,作者提出了贝叶斯图卷积神经网络,提供了一种通过参数随机图模型整合不确定图信息的方法。随着 GCNN 的继续普及,我认为值得研究 GCNN 的潜在改进空间。这篇论文本质上是通过引入概率来度量不确定性,添加了一个非常自然的层来求解涉及不确定性的问题。
我选择评阅的这三篇 AAAI 2019 论文全都与卷积神经网络这一主题有关。卷积神经网络近年来已经取得了非常大的成功,并且已经发展出了取决于当前任务的复杂配置。我会简单总结一下我在阅读这些论文时想到的要点。一般来说,我会谈到当前的状态,什么信息是可用的,我们可以利用这个额外信息吗,我们要怎么做以及已经做了什么?
Weighted Channel Dropout for Regularization of Deep Convolutional Neural Network
Graph Convolutional Networks for Text Classification
Bayesian Graph Convolutional Neural Networks for Semi-supervised Classification
希望我讨论这三篇论文的思路是清晰的。我选择关注 GCNN 的原因之一是我们可以看到深度学习和传统分析技术(这里是基于图的分析和概率分析)之间的隔离情况正在逐渐消失。这将为不同的领域带来进一步的合作,并有望在未来创造更激动人心的成果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。