深度神经网络是显着的过度收回吗?

2021-04-05 15:31:22

如果您就像我一样,困惑的是为什么深神经网络可以概括到样本数据点而无剧烈过度装备,请继续阅读。

如果你就像我一样,在传统机器学习的经验中进入深度学习的领域,你可能经常在这个问题上思考:由于典型的深神经网络有这么多参数和训练错误,可以很容易地完美,它肯定会受到影响从实质上的过度装备。如何概括为样本数据点?

理解为什么深神经网络可以概括为什么某种程度上都让我想起了这个关于系统生物学的有趣文件 - “可以将一个生物学家可以修复收音机?” (Lazebnik,2002)。如果生物学家打算修理一个无线电机,如她如何在生物系统上工作,生活可能很难。由于没有显示无线电系统的完整机制,因此戳了小本地功能可能会给一些提示,但它几乎无法呈现系统内的所有相互作用,更不用说整个工作流程。无论您认为它与DL相关,都是一个非常有趣的阅读。

我想讨论一些关于帖子中深度学习模型的普遍性和复杂性测量的论文。希望,它可以阐明您对理解为什么DNN可以概括的人的思考道路。

假设我们有一个分类问题和数据集,我们可以开发许多模型来解决它,从拟合一个简单的线性回归,以记忆磁盘空间中的完整数据集。哪一个更好?如果我们只关心培训数据的准确性(特别是考虑到测试数据可能未知),那么记忆方法似乎是最好的 - 嗯,它不会发出正确的。

在决定哪种类型的属性时,有许多经典定理引导我们应该在这种情况下拥有什么类型的属性。

COMPAM的剃刀是一个非正式的解决问题原则,由奥克姆威廉州的14世纪威廉提出:

当我们面临着解释世界的多个候选理论的多个候选人并必须选择一个时,声明是非常强大的。对于一个问题来说,太多不必要的假设似乎是合理的,但更难以推广到其他并发症或最终导致宇宙的基本原则。

想到这一点,人们花了数百年来弄清楚天空在白天蓝色,但在日落时的红色是因为有同样的原因(瑞利散射),虽然两个现象看起来非常不同。人们必须为他们分开提出许多其他解释,但最终赢得了统一和简单的版本。

COMPAM剃须刀的原则可以类似地应用于机器学习模型。这种概念的正式版本称为最小描述长度(MDL)原理,用于比较竞争模型/解释所观察到的数据。

MDL中的基本思想是将学习作为数据压缩。通过压缩数据,我们需要在数据中发现具有高潜力的数据中的规律性或模式,以推广到看不见的样本。信息瓶颈理论认为,首先通过最小化泛化误差来培训深度神经网络,然后学习通过修剪噪声来压缩此表示。

同时,MDL将模型描述视为压缩传递的一部分,因此模型不能任意大。

MDL原理的两部分版本,:设\(\ mathcal {h} ^ {(1)},\ mathcal {h} ^ {(2)},\ dots \)是可以解释的模型列表dataSet \(\ mathcal {d})。它们中的最佳假设应该是最小化总和的假设:

\ [mathcal {h} ^ \ text {best} = \ arg \ min_ \ mathcal {h} [l(\ mathcal {h})+ l(\ mathcal {d} \ vert \ mathcal {h})] \ ] \(l(\ mathcal {d} \ vert \ mathcal {h})是用\(\ mathcal {h}编码时的数据\(\ mathcal {d} \)的描述的长度。 \)。

简单单词,最佳模型是包含编码数据和模型本身的最小模型。在此标准之后,无论在训练数据上实现如何达到良好的准确性,我都会在截面开始时提出的记忆方法听起来很可怕。

人们可能会争论冬季的剃刀是错的,因为鉴于现实世界可以任意复杂,为什么我们要找到简单的模型? MDL的一个有趣的视图是将模型视为“语言”而不是基本生成定理。我们希望在一小组样本中描述良好的压缩策略来描述规律性,并且它们不必成为解释现象的“真实”的生成模式。模型可能是错误的,但仍然有用(即,想到任何贝叶斯先前)。

Kolmogorov复杂性依赖于现代计算机的概念来定义对象的算法(描述性)复杂性:它是描述对象的最短二进制计算机程序的长度。在MDL之后,计算机基本上是最常见的数据解压缩器形式。

Kolmogorov复杂性的正式定义状态是:给定通用计算机\(\ Mathcal {U} \)和程序\(p \),让我们表示\(\ mathcal {u}(p)\)作为输出计算机处理程序和\(l(p)\)作为程序的描述性长度。然后,字符串\(s \)的Kolmogorov复杂性\(k_ \ mathcal {u} \)关于通用计算机\(\ mathcal {u})是:

\ [k_ \ mathcal {u}(s)= \ min_ {p:\ mathcal {u}(p)= s} l(p)\]注意,通用计算机是可以模仿任何其他计算机的动作的计算机。所有现代计算机都是通用的,因为它们都可以减少到图灵机。无论我们使用的哪些计算机都可以始终被编程,定义是普遍的,因为可以始终被编程以克隆\(\ Mathcal {U} \)的行为,同时编码此克隆程序只是一个常量。

Kolmogorov复杂性和Shannon信息理论之间存在很多连接,因为两者都与通用编码相关联。这是一个惊人的事实,即随机变量的预期kolmogorov复杂性大致等于其Shannon熵(请参阅报告的第2.3秒)。更多关于这个主题的这里是在这里的范围内,但在线有许多有趣的阅读。帮助自己:)

Occam的另一个数学形式化是所罗门组织的普遍感应推理理论(Solomonoff,1964年)。该原则是赞成基于其Kolmogorov复杂性来产生培训数据的“最短计划”的模型

与传统统计模型相比,深神经网络具有极大的参数。如果我们使用MDL来测量深度神经网络的复杂性并考虑参数的数量作为模型描述长度,它看起来很可怕。模型描述\(l(\ mathcal {h})\)可以很容易地延伸失控。

然而,具有许多参数对于神经网络获得高富有效力功率所必需的。由于其具有捕获任何灵活的数据表示的能力,因此深度神经网络在许多应用中取得了巨大的成功。

通用近似定理指出,具有以下内容的网络,其中一个是线性输出层,2)包含有限数量的神经元的至少一个隐藏层和3)一些激活函数可以近似于紧凑of \(\ mathbb {r} ^ n \)是任意准确性。最初证明了定理的符合赛族激活函数(Cybenko,1989)。稍后显示通用近似性质不具体到激活的选择(Hornik,1991),而是多层前馈架构。

尽管具有单层的前馈网络足以表示任何功能,但宽度必须是呈指数大的。通用近似定理不保证模型是否可以妥善学习或广泛化。通常,添加更多层有助于减少浅网络中所需的隐藏神经元的数量。

为了利用通用近似定理,我们可以始终找到一个神经网络,以在任何所需的阈值下以错误表示目标函数,但我们需要支付价格 - 网络可能会增长超大。

到目前为止我们讨论的普遍近似定理不考虑有限的样本集。张,等。 (2017)为两层神经网络的有限样本表达提供了整洁的证据。

一个神经网络\(c \)可以表示\(d \)尺寸的样本大小\(n \),如果:对于每个有限的样本集\(s \ subseteq \ mathbb {r} ^ d \) \(\ vert s \ vert = n \)和此示例中定义的每个函数集:\(f:s \ mapsto \ mathbb {r} \),我们可以找到一组权重配置,所以\(c \)所以那个\(c(\ boldsymbol {x})= f(\ boldsymbol {x}),s \ forall \ boldsymbol {x} \)。

存在具有Relu激活的双层神经网络,\(2n + d \)权重,其可以表示\(d \)尺寸的大小样本上的任何功能。

证明。首先,我们想构建一个双层神经网络\(c:\ mathbb {r} ^ d \ mapsto \ mathbb {r} \)。输入是\(d \)维矢量,\(\ boldsymbol {x} \ in \ mathbb {r} ^ d \)。隐藏层具有\(h \)隐藏单元,与权重矩阵\(\ mathbf {r} \ in \ mathbb {r} ^ {d \ times h} \)相关联,偏置向量\( - \ mathbf { b} \ in \ mathbb {r} ^ h \)和Relu激活函数。第二层输出具有权重向量\(\ boldsymbol {v} \ in \ mathbb {r ^ h \)的标量值和零偏差。

输入向量\(\ boldsymbol {x})的网络\(c \)的输出可以表示如下:

\ [c(\ boldsymbol {x})= \ boldsymbol {v} \ max \ max \ {\ boldsymbol {x} \ mathbf {w} - \ boldsymbol {b},0 \} ^ \ top = \ sum_ {i = 1 } ^ h v_i \ max \ {\ boldsymbol {x} \ boldsymbol {w} _ {(:, i)} - 给定样本集\(s = \ {\ boldsymbol {x} _1 ,\ dots,\ boldsymbol {x} _n \} \)和目标值\(\ boldsymbol {y} = \ {y_1,\ dots,y_n \} \),我们想找到适当的权重\(\ mathbf { w} \ in \ mathbb {r} ^ {d \ time h} \),\(\ boldsymbol {b},\ boldsymbol {v} \ in \ mathbb {r} ^ h \)所以\(c(\ boldsymbol {x} _i)= y_i,\ forall i = 1,\ dots,n \)。

让我们将所有样本点组合成一个批量作为一个输入矩阵\(\ mathbf {x} \ in \ mathbb {r} ^ {n \ times d} \)。如果设置\(h = n \),则\(\ mathbf {x} \ mathbf {w} - \ boldsymbol {b})将是大小\(n \ time n \)的方矩阵。

\ [\ mathbf {m} _ \ text {relu} = \ math \ {\ mathbf {x} \ mathbf {w} - \ boldsymbol {b},0 \} = \ begin {bmatrix} \ boldsymbol {x} _1 \ mathbf {w} - \ boldsymbol {b} \\\ dot to \\\ boldsymbol {x} _n \ mathbf {w} - \ boldsymbol {b} \\\ ex {b} \\\ ex {bmatrix} = [\ boldsymbol {x} _i \ boldsymbol {w} _ {(:,j)} - b_j] _ {i \ times j} \] \ [\ mathbf {w} _ {(:,j)} = \ boldsymbol {w} \ in \ mathbb { r} ^ {d},\ forall j = 1,\ dots,n \]让\(a_i = \ boldsymbol {x} _i \ boldsymbol {w} \),我们想找到一个合适的\(\ boldsymbol { w} \)和\(\ boldsymbol {b}),使得\(b_1< b_2< a_2< b_n< b_n< a_n&lt。这总是可以实现的,因为我们尝试用\(n \)约束和\(\ boldsymbol {x} _i \)解决\(n + d \)未知变量是独立的(即选择一个随机\(\ boldsymbol {w}) \),排序\(\ boldsymbol {x} _i \ boldsymbol {w} \),然后设置\(b_j \)作为介于之间的值)。然后\(\ mathbf {m} _ \ text {relu} \)变为较低的三角矩阵:

\ [\ mathbf {m} _ \ text {relu} = [a_i - b_j] _ {i \ times j} = \ begin {bmatrix} a_1 - b_1& 0& 0& \ dots& 0 \\\ vdots& \ ddots& & & \ vdots \\ a_i - b_1& \ dots& a_i - b_i& \ dots& 0 \\\ vdots& & & \ ddots& \ vdots \\ a_n - b_1& A_N - B_2& \ dots& \ dots& a_n - b_n \\\ end {bmatrix} \]它是一个非奇形方矩阵,如\(\ det(\ mathbf {m} _ \ text {relu})\ neq 0 \),所以我们总能找到合适的\( \ boldsymbol {v} \)来解决\(\ boldsymbol {v} \ mathbf {m} _ \ text {relu} = \ boldsymbol {y} \)(换句话说,\(\ mathbf {m的列空间} _ \ text {relu} \)是全部\(\ mathbb {r} ^ n \),我们可以找到列向量的线性组合,以获取任何\(\ boldsymbol {y} \))。

如我们所知,两层神经网络是普遍的近似器,看起来他们能够完美地学习非结构化随机噪声,这不太令人惊讶,如Zhang等人所示。 (2017)。如果图像分类数据集的标签随机抽沙,则深度神经网络的高富有效力功率仍然可以赋予他们实现接近零的训练损失。这些结果不会随着正则化术语而改变。

图1.使用随机标签或随机像素的CIFAR10上的拟合模型:(a)学习曲线; (B-C)标签损坏比例是随机混组标签的百分比。 (图像来源:Zhang的纸)

深度学习模型严重过度参数化,往往可以在培训数据上实现完美的结果。在传统的视图中,像偏差差异的权衡一样,这可能是一场灾难,无法概括看不见的试验数据。但是,正如往往的情况一样,这种“超细”(训练错误= 0)深度学习模型仍然在采样外测试数据上呈现了体面的性能。嗯...有趣,为什么?

传统的机器学习使用以下U形风险曲线来测量偏差差异折衷,并量化模型的更广泛。如果我被问到如何判断模型是否被过度填写,这将是第一件事涌入我的脑海。

由于模型变大(添加了更多参数),训练误差减少到接近零,但是一旦模型复杂性的增长,测试错误(泛化误差)开始增加以通过“底下”和“过度装箱”之间的阈值。在某种程度上,这与偶尔的剃刀很好。

图2. U形偏差 - 方差风险曲线。 (图像源:(左)纸(右)图6的这篇文章)

不幸的是,这不适用于深度学习模式。 Belkin等人。 (2018年)和解传统的偏差差异,提出了一种新的神经网络的新双U形风险曲线。一旦网络参数的数量足够高,风险曲线会进入另一个制度。

图3.用于深神经网络的新双U形偏差风险曲线。 (图像来源:原文)

参数的数量不是归纳偏差的良好衡量标准,定义为用于预测未知样本的学习算法的假设集。查看更多关于DL模型复杂性的更多讨论。

配备更大的模型,我们可能能够发现更大的函数类并进一步查找具有较小规范的内插功能,因此“更简单”。

如本文所示,经验遵守双U形风险曲线。然而,我正在努力重现结果。有一些生命的迹象,但为了产生类似于定理的相当光滑的曲线,必须照顾实验中的许多细节。

图4.不同数量的隐藏单元的一个隐藏层FC网络的培训和评估误差,由MNIST采样的4000个数据点培训。 (图像来源:原文)

正规化是一种控制过度装备和提高模型泛化性能的常用方式。有趣的是一些研究(Zhang,et al。2017)表明,明确的正则化(即数据增强,重量衰减和辍学)既不是必要的或足以减少泛化误差。

以CIFAR10训练的初始化模型为例(参见图5),正规化技术有助于采样外概括,但并不多。没有单一正规化似乎与其他条款无关至关重要。因此,规则方不太可能是泛化的根本原因。

图5. CIFAR10培训的初始模型的准确性,采用不同组合的采用数据增强和重量衰减。 (图像来源:原版表1)

参数的数量与深度学习领域的模型过度相关,表明参数计数不能表示深神经网络的真正复杂性。

除了参数计数之外,研究人员提出了许多方法来量化这些模型的复杂性,例如模型自由度(Gao& jojic,2016)或偏向代码(Blier& ollivier,2018)。

我想讨论这个问题的最新方法,名为内在的维度(Li等,2018)。内在尺寸直观,易于测量,同时仍然揭示了不同尺寸模型的许多有趣的特性。

考虑到具有大量参数的神经网络,形成高维参数空间,在这种高维目标景观上发生了学习。参数空间歧管的形状至关重要。例如,更光滑的歧管是有利于优化优化,通过提供更多的预测梯度并允许更大的学习率 - 这是批量标准化成功稳定训练(Santurkar,等,2019)的原因。

即使参数空间巨大,幸运的是,我们不必担心太多了解了在本地Optima中陷入困境的优化过程,因为它已经显示出目标景观中的本地最优点几乎总是留在马鞍点而不是山谷。换句话说,总是有一个包含路径的尺寸子集,以留下当地最佳,并继续探索。

图6.参数优化横向上各种关键点的图示。 (图片来源:这里)

内在尺寸的测量背后的一个直觉是,由于参数空间具有如此高的维度,因此可能没有必要利用所有尺寸来有效地学习。如果我们只穿过一片客观景观并且仍然可以学习良好的解决方案,所得模型的复杂性可能低于参数计数似乎的似乎。这基本上是内在的维度尝试评估。

说模型具有\(d \)尺寸,其参数表示为\(\ theta ^ {(d)} \)。为了学习,一个较小的\(d \)维子空间是随机采样的,\(\ theta ^ {(d)} \),其中\(d< d \)。在一个优化更新期间,不是根据所有\(d \)尺寸的梯度步骤,仅使用较小的子空间\(\ theta {(d)}} refaped以更新模型参数。

图7.参数向量的插图,用于直接优化\(d = 3 \)。 (图像来源:原文)

\ [\ theta ^ {(d)} = \ theta_0 ^ {(d)} + \ mathbf {p} \ theta ^ {(d)} \]其中\(\ theta_0 ^ {(d)})是初始化值和\(\ mathbf {p} \)是在训练前随机采样的\(d \ times d \)投影矩阵。 \(\ theta_0 ^ {(d)} \)和\(\ mathbf {p})不受培训和修复\(\ mathbf {p})。 \(\ theta ^ {(d)} \)被初始化为所有零。

通过搜索\(d = 1,2,\ dot,d \)的值,当出现解决方案时被定义为内在尺寸时。

事实证明许多问题具有比参数数量更小的内在尺寸。例如,在CIFAR10图像分类上,具有650k +参数的完全连接的网络仅具有9K内在尺寸,并且包含62K参数的卷积网络具有甚至的内在尺寸为2.9k。

图8.用于各种模型的测量内在尺寸\(d \),实现了90%的最佳性能。 (图像来源:原文)

内在尺寸的测量表明,深度学习模型明显比它们所似乎的更简单。 张等人。 (2019)调查了参数在不同层中的作用。 本文提出的基本问题是:“所有层都是平等的吗?” 短答案是:不可以。模型对某些层的变化更敏感,但不是其他层。 本文提出了两种类型的操作,可以应用于\(\ ell \) - th层的参数,\(\ ell = 1,\ dots,l \),在时间\(t \),\(\ θ^ {(\ e ......