分析师简介:Joshua 已于 2018 年取得多伦多大学应用科学硕士(MASc)学位。他的研究重心是格形码(lattice codes)、低密度奇偶校验(LDPC)码以及编码理论的其它方面。他也对凸优化和随机过程感兴趣。Joshua 目前在高通工作,是一位机器学习工程师,专注对推理的优化。
前言
引言
近年来卷积神经 络(CNN)实现了很大的发展,这已经显著提升了很多不同应用的性能表现。深度 CNN 的成功原因很大程度上是其多个非线性隐藏层的结构,其中包含数以百万计的参数,因此能够学习输入和输出之间的复杂关系。
这项工作由 Hou 和 Wang 完成,受到了以下观察的启发。在一个 CNN 的卷积层的堆栈内,所有的通道都是由之前的层生成的,并会在下一层中得到平等的对待。这就带来了一个想法:这样的「分布」可能不是最优的,因为事实可能证明某些特征比其它特征更有用。当特征仍然可追溯时,对于更高层(更浅)来说尤其如此。Zhang et al. 2016 更进一步表明了这一点,他们表明,对于每张输入图像,更高层中仅有少量通道被激活,同时其它通道中的神经元响应接近于零。
加权式通道丢弃
基本思想和一些注解
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
实验和设置
实验使用了以下数据集:
图 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 上也表现良好,能帮助实现优于基础模型的表现。
进一步讨论
图 4:WCD 对 络训练的影响,这是使用 VGGNet-16 作为基础模型在 CUB-200-2011 上的结果
如图中描述的那样,使用 WCD 时的训练误差曲线下降更慢,同时所得到的测试误差更低。这个实验发现支持这一说法:WCD 可以降低训练阶段中的过拟合。
总结
随着深度学习的持续提升,现在更优的表现往往是通过实现更复杂的算法或使用更多资源而「挤」出来的。看到有人使用这些简单的观察来低成本地提升表现,着实让人眼前一亮。这种类型的改进可能在机制上并不困难,但也确实需要一些运气和灵感才能想出来。因此,我认为这是一个值得讨论的有趣主题。
引言
简而言之,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 分类器。
测试 Text GCN
实验
实验中使用的数据集是 20-Newsgroups(20-NG)、Ohsumed 语料库、Reuters 21578 的 R52 和 R8、Movie Review(MR)。每个数据集的数据统计情况和详细描述请参阅下面的表格和链接。
实验设置如下。第一个卷积层的嵌入大小为 200,窗口大小为 20。窗口大小用于 TF-IDF 的计算。回忆一下,词频率是词出现在文档中的次数。在使用窗口的情况下,文档是根据窗口大小部分地读取。如果一个词出现在给定的窗口中,则计数增加。学习率设置为 0.02、dropout 率设置为 0.5,保留 10% 的训练集作为验证集。
结果
实验结果见下表:
图 4:不同窗口大小的准确度,(a)R8 数据集,(b)MR 数据集
根据实验结果,我们可以看到新提出的 Text GCN 实现了很好的文本分类结果。
总结
我认为这篇论文能帮助读者了解越来越流行的图卷积神经 络,这也是我介绍这篇论文的原因。卷积神经 络已经出现了一些时日了,现在已经相当成熟,现在也正得到不断的扩展和改进。我认为即使最少量的改进也值得关注。
引言
我要介绍的第三篇论文基于图卷积神经 络(我们将使用该论文的表示方法,将其写成 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:实验中使用的数据集的总结概括
将数据集划分为训练集和测试集的方式有两种,第一种是源自(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 在这种情况下优势不再的原因。
总结
结语
我选择评阅的这三篇 AAAI 2019 论文全都与卷积神经 络这一主题有关。卷积神经 络近年来已经取得了非常大的成功,并且已经发展出了取决于当前任务的复杂配置。我会简单总结一下我在阅读这些论文时想到的要点。一般来说,我会谈到当前的状态,什么信息是可用的,我们可以利用这个额外信息吗,我们要怎么做以及已经做了什么?
Weighted Channel Dropout for Regularization of Deep Convolutional Neural Network
Graph Convolutional Networks for Text Classification
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!