一个问题是(深度学习)可能不是很鲁棒。可能会存在这种所谓的对抗样本,这有一个简单的例子,比如你有一个建筑物的图片,你可以用一个训练很好的神经网络分类得很准确。但是,我们如果加一些噪声,这些噪声可能是人检测不到的,合成一个图片之后却可以完全误导这个网络,甚至能够按照你的意愿误导分到某一个类。这是非常不好的性质,尤其是当我们在关键领域用深度学习的时候——一旦遇到这种情况,可能就会有一些比较致命性的错误发生。所以我们就想提出一个问题:机器学习或者深度学习本身能不能像人一样犯错误?人可能更多的时候是更鲁棒的,人可能会犯错误,但是人犯的错误相对都是比较直观、比较合理一点的——可能有某种道理在里面。
另外一个问题是深度学习大部分情况下都被我们当成一个黑箱。所以现在有很多的工作,包括我们自己的工作,都是试图去解释深度学习学到了什么。这里我们列了一个去年做的 CNNVis 的工作,能展示卷积网络每一层是什么、层和层之间是怎么关联的。这个方法非常受欢迎,也从一个侧面说明了大家对这个问题关心的程度。
在我看来,Deep Learning 本身属于机器学习的一个极端,它用了大量的训练样本,用了大量的计算资源。结果是我们在很多任务下,在特定环境、特定数据集上可以得到非常高的准确度,当然背后也有我们对网络结构的人为调整。
另外一极端是贝叶斯的学习方法,大家可能知道,2015 年的时候,在 AlphaGo 火之前,Science 有一篇文章就说怎么设计贝叶斯程序,在这种情况下可以用少量的训练样本帮助我们学非常精确的模型,当时展示的成果是这个贝叶斯程序可以(在手写体数字生成和识别任务上)通过视觉图灵测试。这从一个方面告诉我们:我们做学习的时候可以有不同的思路。