“深度学习”和多级/分层建模有什么区别?

机器算法验证 机器学习 多层次分析 分层贝叶斯 深度学习
2022-02-05 21:51:20

“深度学习”只是多级/分层建模的另一个术语吗?

与前者相比,我更熟悉后者,但据我所知,主要区别不在于它们的定义,而在于它们在其应用程序域中的使用和评估方式。

看起来典型的“深度学习”应用程序中的节点数量更大,并且使用通用的层次形式,而多层次建模的应用程序通常使用模仿被建模的生成过程的层次关系。在应用统计(分层建模)领域中使用通用层次结构将被视为现象的“不正确”模型,而对特定领域的层次结构建模可能被视为颠覆了制造通用深度学习机器的目标。

这两个东西真的是同一台机器,有两个不同的名字,用两种不同的方式吗?

2个回答

相似

从根本上说,这两种算法都是为了回答机器学习应用中的一个普遍问题而开发的:

给定的预测变量(因子)x1,x2,,xp- 如何整合这些因素之间的相互作用以提高性能?

一种方法是简单地引入新的预测变量:xp+1=x1x2,xp+2=x1x3,但由于大量参数和非常具体的交互类型,这被证明是个坏主意。

多级建模和深度学习算法都通过引入更智能的交互模型来回答这个问题。从这个角度来看,它们非常相似。

不同之处

现在让我试着解释一下它们之间在概念上的巨大差异是什么。为了给出一些解释,让我们看看我们在每个模型中所做的假设:

多级建模:1反映数据结构的层可以表示为贝叶斯层次网络该网络是固定的,通常来自域应用程序。

深度学习:2这些数据是由许多因素的相互作用产生的。交互的结构是未知的,但可以表示为分层分解:通过转换较低级别的表示来获得更高级别的交互。

根本区别来自深度学习中的“交互结构未知”这句话。我们可以假设一些关于交互类型的先验,但是算法定义了学习过程中的所有交互。另一方面,我们必须为多级建模定义交互结构(我们只学习之后改变模型的参数)。

例子

例如,假设我们有三个因素x1,x2,x3我们定义{x1}{x2,x3}作为不同的层。

例如,在多级建模回归中,我们将得到交互作用x1x2x1x3,但我们永远不会得到交互x2x3. 当然,部分结果会受到误差相关性的影响,但这对于示例而言并不那么重要。

在深度学习中,例如在具有两个隐藏层和线性激活函数的多层受限玻尔兹曼机 ( RBM ) 中,我们将拥有所有可能的次数小于或等于 3 的多项式交互。

共同的优点和缺点

多级建模

(-) 需要定义交互的结构

(+) 结果通常更容易解释

(+) 可以应用统计方法(评估置信区间,检查假设)

深度学习

(-) 需要大量数据来训练(以及训练时间)

(-) 结果通常无法解释(以黑盒形式提供)

(+) 无需专业知识

(+) 一旦训练有素,通常优于大多数其他通用方法(不是特定于应用程序的)

希望它会有所帮助!

虽然这个问题/答案已经存在了一段时间,但我认为澄清答案中的几点可能会有所帮助。首先,作为分层方法和深度神经网络之间的主要区别提出的短语“这个网络是固定的”。是不正确的。分层方法并不比替代的神经网络更“固定”。例如,参见论文Deep Learning with Hierarchical Convolutional Factor Analysis,Chen 等。人。. 我想你也会发现定义交互的要求也不再是一个区别点。根据我的经验,分层建模中没有列出的几点是过度拟合问题的显着减少以及处理非常大和非常小的训练集的能力。挑剔的一点是,当使用贝叶斯分层方法时,置信区间和假设检验通常不是可以应用的统计方法。