机器学习模型的“能力”是什么?


15

我正在研究Carl Doersch撰写的有关变式自动编码器的教程。在第二页中指出:

此类框架中最受欢迎的框架之一是本教程的主题“变体自动编码器” [1,3]。该模型的假设很弱,并且通过反向传播训练很快。VAE确实可以近似,但是在给定大容量模型的情况下,这种近似引入的误差可以说很小。这些特征促使它们迅速普及。

过去,我已经阅读了有关大容量模型的这类说法,但似乎没有找到明确的定义。我也发现了这个相关的stackoverflow问题,但对我来说,答案非常不令人满意。

是否有模型容量的定义?你能衡量吗?

Answers:


13

能力是一个非正式术语。它与模型复杂度非常接近(如果不是同义词)。这是一种谈论模型可以表达的模式或关系有多复杂的方法。您可能期望容量较高的模型比容量较低的模型能够建模更多变量之间的更多关系。

从口语能力的定义中进行类比,您可以将其视为模型从越来越多的数据中学习的能力,直到它完全被信息“填充”为止。

有多种形式化容量并为其计算数值的方法,但重要的是,这些只是容量的一些可能“操作化”(与如果有人想出一个公式来计算美感的方式差不多,您将意识到该公式只是对美的一种错误解释)。


VC维度是容量的数学严格表示。但是,模型的VC维与模型拟合数据的实际能力之间可能会有很大的差距。即使知道VC dim会限制模型的泛化误差,但这通常过于宽松以至于无法用于神经网络。

此处看到的另一项研究是使用神经网络中权重矩阵的谱范数来衡量容量。理解这一点的一种方法是频谱范数限制了网络的Lipschitz常数。

估计模型容量的最常见方法是计算参数数量。参数越多,一般容量就越高。当然,通常较小的网络要比较大的网络更好地建模更复杂的数据,因此此方法也远非完美。

衡量容量的另一种方法可能是使用随机标签来训练模型(Neyshabur等人)-如果您的网络可以正确记住一堆输入以及随机标签,则本质上表明该模型可以记住所有这些数据点单独。可以“学习”的输入/输出对越多,容量就越高。

ϵ


1
这是一个比stackoverflow更好的答案,谢谢。在看到松散定义的术语用作其他事物的理由时,我仍然有些麻烦,但是我想这就是该领域向前发展的方式。
安德烈斯·马拉菲奥蒂(AndrésMarafioti),

1
“模型的VC维度与模型的实际容量之间可能会有很大的差距。” 这是一个极具误导性的陈述,因为“实际能力”没有精确定义。实际上,VC维可以很好地衡量模型的容量。仅仅因为神经网络似乎可以解决某些问题,但这并不能使它们“功能强大”。实际上,在大多数情况下,人们认为神经网络正在解决一个问题,而他们正在解决一个更简单的问题,并且实际上,它们常常灾难性地失败(因为它们被“意外地”训练为解决一个简单的问题)。
nbro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.