AI 科技评论按:日前,一篇关于 BagNet 的 ICLR 论文引起了机器学习 Twitter 社区的广泛讨论。针对这篇论文,谷歌大脑工程师 Eric Jang 发布了一篇博客进行了解读。AI 科技评论编译如下。
声明:我并非这篇论文在 ICLR 中的审稿人,但我认为它非常值得被收录,并希望它能通过研究社区进一步推动研究者对该领域的研究。大家如果在这篇博客中发现任何错误或误解,请随时给我发送邮件进行指正。
论文:Approximating CNNs with Bag-of-local-Features models works surprisingly well on ImageNet,Wieland Brendel, Matthias Bethge
下载地址:https://openreview.net/forum?id=SkfMWhAqYQ
卷积神经网络(CNN)通过学习卷积来汇集局部特征,并进行空间上的池化来实现非深度学习图像识别。这些「卷积层」的连续应用能产生在广泛空间内聚合低级语义信息并扩展形成更高级信息的「层次化的特征」。
至于算法的解,那些热衷于深度学习的研究者相信,目前的卷积神经网络能聚合全局信息。不过也有另外一种观点认为,智能视觉理解要求「看到森林中的树木」。
在这篇 BagNet 论文中,作者发现对于 ImageNet 分类任务,与深度 AlexNet 模型(准确率为 84.7%)相比,BagNet 算法的表现出人意料地好:实现了 86% 的准确率(Top-5 准确率)。BagNet 的实现方法为:
将输入图像切分为 33×33 像素的图像块;
在每一个图像块上运行一个深度网络(1×1 卷积),从而获得类别向量;
根据空间对输出的类别向量进行求和(在所有的图像块上);
使用类别向量的最大值来预测类别。
深度 BagNet 的实现方法:A) 模型从小图像块中提取特征,其中每一个图像块都会喂养到一个线性分类器中,并为每个类别产生一个分对数热力图。之后求取特征空间内这些热力图的均值,并传送到 Softmax 函数得到最终的类别概率;B) ImageNet Top-5 准确率随图像块大小的变化而变化;C) VGG-16 分对数的相关性。
这一类比表明了,图像分类并不一定需要非线性模型来将一群局部特征聚合到全局表征中,而只需要「确认这是一群树木从而推断出这是一片森林」。
同时,该论文还有其他的一些实验结论:
相比于使用 17×17 像素的图像块(80%),BagNet 在使用 33×33 像素的图像块时表现要稍微好些。因此深度网络确实能够提取有用的空间信息(9x9 vs. 17x17 vs. 33x33),不过这可能并非是我们此前所预想的的全局空间范围(例如 112×112 或 224×224)。
BagNet 模型的空间分布特征在 bagging 步骤以外不会相互作用,这就带来了一个问题:深度网络大部分「能力」是否仅来自于对局部特征的检查。深度网络仅仅就是 BagNet 吗?如果是的话,BagNet 还是比较令人担忧的。
VGG 的做法看起来非常接近 BagNet(虽然我有点质疑作者实验中所用到的方法),而 DenseNet 和 ResNet 则似乎与 BagNet 的做法完全不同(作者在 rebuttal 中解释道,该结果可能因为模型在局部特征顶部采用了更加非线性的分类器或更大的局部特征大小)。
不管你是否认为 CNN 能够/应该将我们带入通用人工智能时代,本论文都以一些清晰的证据表明了,我们仅通过检查局部特征就可以构建异常强大的图像分类模型。一般而言,使用更具可解释性的模型来解决应用问题帮助会更大,我也很高兴看到这类模型在某些问题上表现得这么好。
在原理上,BagNet 与比深度学习早出现很久的广义加性模型(Generalized Additive Models)非常相似。GAM 的基本思想是,将非线性单变量特征(例如 f(xi),其中每个 xi 都为一个像素、 f 为一个神经网络)组合成一个简单的、可解释的特征,从而查询到每个变量所对应的边际预测分布。我尤其对 Lou 等人在论文(论文阅读地址:https://www.microsoft.com/en-us/research/wp-content/uploads/2017/06/kdd13.pdf)中提出的想法感到兴奋,他们提出将 GAM 松弛化以支持单变量特征提取器间的成对交互(2D 边际依旧可被人类理解)。
作者没有清晰地阐述这一点,不过快速浏览一遍论文后很容易得出这样的结论:「DNN 糟糕透了,它们不过就是 BagNets 罢了」。然而实际情况并非如此(作者的实验也表明了这一点)。
举一个反例:一个明显的反例就是,局部修改(有时单个像素)可能改变全局特征表征。因此很明显地,测试输入实际上是进行了全局形状集成的。而剩下的问题在于,全局形状集成是否发生在我们认为其应该发生的地方以及发生在哪个任务中。作为一个对 AGI 非常感兴趣的人,我现在对 ImageNet 的兴趣度下降了不少,恰恰就是因为它可以使用对图像缺乏全局理解的模型来解决。
作者们自己也多次提到了这点:我们需要比要求全局形状集成这类任务更加困难的任务。
在图像生成建模(如 GAN)这一任务中,patch 特征间的线性交互明显不足以对像素间的无条件联合分布进行建模。或者不妨考虑一下我最看好的强化学习任务——在自然环境中生存,这一任务中的智能体显然需要进行空间推理来解决追逐猎物或逃离捕食者等问题。设计一个人工生命体设置并看该生物体能否使用 bag-of-features 感知来真实地与使用非线性全局集成的生物体竞争(对此,我持怀疑态度),是非常有趣的。
如果我们训练出一个能够通过集成全局信息来提高性能(如分类任务),并最终仅在局部特征上过拟合的模型,那这将是一个非常有趣的结果——这意味着我们需要一个不允许模型以这种方式作弊的优化目标。对此,我认为「在自然环境中生存」是一项非常合适的任务,尽管我希望还能够找到另外一个对计算资源要求较低的任务。
最后是关于对可解释性与因果推理的探讨。在短期内,我可以看到 BagNet 在自动驾驶汽车领域所发挥的作用,该领域分别对于每个图像块的考虑可以实现计算的并行化,从而能够更好地加速对大型图像的处理。我们每一个人都希望自动驾驶汽车上的机器学习模型能够具有可解释性,不是吗?但是现在有一个心理学上的问题就是,人类更偏向于坐进使用黑盒子 CNN(「准确的、不可解释的以及可能错误的」)进行驾驶操作的汽车,还是使用 Bag-of-Features(「准确的、可解释的以及肯定错误的」)做决策的汽车。BagNet 的可解释性似乎与要求通过实现更好的泛化性机器学习方法来进行「因果推理」和「程序归纳」并不一致。我好奇社区中的成员认为我们应该怎样调和这两者间的差异。
为了实现更好的因果推断,现在有一种更积极的方式来看待这些方法。在设计端到端系统(如机器人、自动驾驶汽车)时,BagNet 这类方法可以作为其非常有用的健全检查:如果比起仅检查本地统计规律的方法(如 BagNet),你的深度网络的表现并没有好多少的话,就表明了你的模型依旧需要从更好的全局信息集成中获益。研究者甚至可以考虑对 BagNet 和 Advantage(DeepNet、BagNet)进行联合优化,从而让深度网络明确地提取出比 BagNet 所提取的更好的信息。我也一直在思考如何更好地为机器人验证我们的机器学习系统,而构建这种「零假设」模型则或许是核查机器没有采用愚蠢的方式去学习的正确方法。
via:https://blog.evjang.com/2019/02/bagnet.html