什么可以作为深度学习系统中使用的先验知识的例子?

人工智能 深度学习 特征工程 归纳偏置
2021-11-11 09:26:38

众所周知,机器学习算法期望特征工程作为初始步骤。现在,考虑以下段落,取自Eli Stevens、Luca Antiga、Thomas Viehmann的教科书Deep learning with PyTorch1.1 深度学习革命,关于特征工程在深度学习中的作用

另一方面,深度学习处理从原始数据中自动找到此类表示,以便成功执行任务。在 1 与 0 示例中,过滤器将在训练期间通过迭代查看示例和目标标签对来改进。这并不是说特征工程与深度学习无关。我们经常需要在学习系统中注入某种形式的先验知识。然而,神经网络摄取数据并根据示例提取有用表示的能力是深度学习如此强大的原因。深度学习从业者的重点不是手工制作这些表示,而是在数学实体上进行操作,以便它自主地从训练数据中发现表示。通常,这些自动创建的功能比手工制作的要好!与许多颠覆性技术一样,这一事实导致了观点的改变。

该段落明确表示我们需要将某种形式的先验知识注入到学习系统中。对于我们在深度学习系统中使用的这种先验知识,有什么具体的例子?

1个回答

当涉及到像先验知识这样的通用表达式时,我会区分至少两种情况

  • 提供给模型的通用额外信息,如果与特征工程不同,则非常接近。
  • 用于在训练期间初始化或指导模型的字面先验概率分布。

对于第一种情况,我们可以提供很多示例。最直观的可能是在计算机视觉中使用掩码。假设我们想要清洁图像(即去雾)作为自动驾驶汽车系统的预处理步骤。然后我们可以训练一个模型,并且不仅将相机捕获的图像提供给它,而且还提供使用另一个模型估计的深度掩码。在这种情况下,另一个模型作为先验分布工作,因为模型没有学习它,它只是利用图像附带的额外信息。在此处输入图像描述

对于第二种情况,有特定类别的模型可以学习,有时需要先验分布作为输入,我最熟悉的是贝叶斯神经网络在此处输入图像描述

为什么要为这些模型提供先验?嗯,至少有两个原因:有时我们有关于我们试图描述的系统的信息,所以我们可以提高训练效率,例如我们可能试图拟合抛硬币模型,但我们知道硬币是不公平的,模型返回的结果概率不应该是 50/50。第二个原因是,有时我们还想训练不仅返回原始概率,而且估计这些概率的不确定性水平的模型。为此,模型学习数据的后验概率,并通过更新初始先验来做到这一点。请注意,此类模型的先验也可以随机初始化。