先验知识可以在深度神经网络中编码吗?

人工智能 神经网络 深度学习 深度神经网络 算法偏差 归纳偏置
2021-10-18 23:56:23

我正在阅读 Gary Marcus 的《深度学习的批判性评价》他的批评之一是神经网络在解决问题时没有结合先验知识。我的问题是:有没有尝试在深度神经网络中编码先验知识?

4个回答

神经网络包含先验知识。这可以通过两种方式完成:第一种(最常见且更稳健)是数据增强。例如在卷积网络中,如果我们知道我们正在查看的对象的“值”(无论是什么,类/回归)是旋转/平移不变的(我们的先验知识),那么我们会通过随机旋转/移位来增加数据. 第二个是带有一些附加项的损失函数。

是的,我们可以在深度学习器中做到这一点。

例如,假设我们有一个输入向量 likes(一个,b)并且根据先验知识,我们知道一个2+b2也很重要。因此,我们可以将此值添加到向量 likes(一个,b,一个2+b2).

作为另一个示例,假设日期时间在您的数据中很重要,但未在输入向量中编码。我们可以将其作为第三维添加到输入向量中。

总之,它取决于先验知识的结构,我们可以将其编码到输入向量中。

为了增加 Foivos 的答案,

卷积神经网络是移位不变的。福岛将此介绍给他的 Neocognitron。有一条线索可以将尺度不变性引入 CNN。 https://arxiv.org/abs/1411.6369

此外,CNN 使用结构特征作为先验知识。

并且神经网络是局部平滑的。

它并不完美,但神经网络融合了很多先验知识。

这有点取决于您如何准确定义知识,以及您对经过训练的 NN 模型中的权重真正代表什么的看法。但是要以最直接的方式回答这个问题(希望不要听上去油嘴滑舌),那么是的,可以对 NN 进行预训练,然后您可以采用该模型并对其进行额外的训练,所以从某种意义上说,它是使用“先验知识”。

如果,OTOH,知识对你来说意味着一些不同的东西,并且你正在考虑编码在语义网络、概念图或类似性质的东西中的那种知识,那么我不知道 - 即兴 -将其集成到 ANN 中的任何直接方式。您可能能够做的是将 NN 与一种不同类型的推理器(用于推理语义网络/概念图)相结合,然后整合结果。AFAIK,最好的方法是一个未解决的研究问题。