其他
【深度学习】为什么深度学习是非参数的?
首先简单地思考一下如何将问题设置成分类的形式; 接下来回顾偏差-方差分解,并在偏差-方差权衡的背景下,在VC-维数和非参数上进行探讨; 研究一些关于插值神经网络和双下降的文献; 在文末做一个非常简单的实验,用图形直观地讲解为什么双下降现象会发生。
正式设置一个机器学习问题为了有些趣味,让我们先设置一个问题。首先从数据开始。假设我们标记了数据,即是满足Px,y分布的输入数据x(比如图片)和标签y。如此一来我们得到:
分布Px,y固定且未知。对于i = 1……N来说,可获得样本 , 。 数学分析通常假设样本是独立的。 通常来说,我们需要假设标签y和输入x间有y= 的函数关系,即是说,标签是精确的、没有歧义的,但并非总是如此。
第一次尝试通常是将经验风险或者经验损失
对偏差-方差分解和偏差-方差平衡的简单介绍
对于最小二乘损失L=(f(x)−y)2(最基本的回归估计量)来说,把预期损失分解成几个部分是很容易的。其诀窍在于,我们需要意识到我们的训练数据本身是一个从n次乘积分布请注意,均方误差的偏差-方差分解是一个根据数学定理(或至少一个引理)成立的方程,所以是普遍适用的,不需要任何条件。
从僵化中解脱出来,带来自由的结构从某种程度上说,从上述极端情况转向更温和的条件也表明了我们在实践中可以做些什么。
增加候选函数的集合
一种方法是,以一组非常严格的函数作为候选函数,然后有意义地扩大候选函数的空间,以获得(假设是嵌套的)序列F0⊂F1⊂…. 关键想法是,进一步研究可以让模型更好地适应数据,而我们则须知道何时停止这种深入。Vapnik和Chervonenkis 的结构风险最小化原理就是这么做的,尽管该原理没有使用偏差-方差分解,而是使用了预期损失(风险)与D上的观察损失(经验风险)的边界,和一个依赖于训练数据集大小N 和函数集最后,传统标准比如赤池信息量准则尝试告诉你应该“投资”多少参数来达到低的负对数可能性。但是Bishop在其引言中发现,这些方法并不是很有效。
非参数估计:正则化
经典的非参数估计从另一个极端开始。如果我们取某个函数空间,如在接下来要做的就是正则化。最著名的例子可能是增加一个规范项从而导致Tikhonov正则化,所以我们的损失看起来会是这样
许多流行的正则回归方法(例如Lasso)适合这种类型的框架。
赞美VC界
让我们讲回VC 界,正式一点以便增强直觉。关键的概率界限是为了准确性(或者说0-1的风险)贝叶斯放一边
在贝叶斯环境下,正则化可以被解释为最大后验(MAP)估计,或者——如果我们经历了定义先验的麻烦——我们也可以对所有f∈F的估计进行积分。这告诉了我们深度学习的什么?当我们将model.parameters()(这里我用的是PyTorch)传递给优化器时,深度学习看起来好像是参数化的。但其实它不是!看起来这种正则化方法正是深度学习运作的理论框架——有时人们对此知之甚少。我们的模型足够大,从“道德上看来”足以成为非参数,尽管我们还没有完全理解,但我们所做的大多数事情(比如augmentation, norm layers和 dropout)其实都是正则化。这也是M. Belkin等人所写的《协调现代机器学习实践和偏差-方差权衡》(Reconciling modern machine learning practice and the bias-variance trade-off)的主题和他们早期研究的主题,即泛化性能的关键是由某个特定函数空间范数衡量的函数的规律性或平滑性。 我们有必要仔细看看M. Belkin等人(我认为这是首次)对双下降现象的描述:
M. Belkin等人把条件中的“传统(classical)”和“现代(modern)”等限定词用引号括了起来。“现代”条件是一种十分之非参数的学习,具有一种我们还需要更加深入理解的正则化。 在多参数的条件下,偏差-方差思维似乎仍然是完全适用的,但非参数回归可能是比“限制容量”的候选集更好的参考框架。
VC理论对于用噪声标签拟合模型有什么启示?通过上面的讨论,我们了解到当一个模型处于VC界有用的限定条件中(比如当小模型处于“传统”条件中),如果训练数据 D来自与原始数据相同的分布 Px,y,测试集的测试精度(很可能)接近训练精度。换句话说,这个条件意味着我们假设Px,y有相同的损坏程度(和损坏种类)。但这意味着如果模型学习了,且学会了不被损坏的训练数据分散太多注意力,也就是说,在训练数据上,正确标签会挤出损坏标签。
特征和学习让对深度学习的直觉化变得困难的原因之一是Ansatz领域的自适应特性。我这么说的意思是,我们没有一个固定的特征提取器(由手动构造,并由核机中使用的核家族给出)将学习应用到特征上。通常,我们将最后一层的输入视为特征(通过word2vet式损失、原型网络、基准无监督学习等方式学习的向量表示方法),或者我们可能在MLP分类器头之前的卷积层末尾分割卷积网络。传统的做法是将学习后的分类器放在固定的特征提取器上,E. Hoffer等人的想法却相反,他们甚至建议对分类器进行固定,即只对特征提取器进行训练。因此,我们可能会试图通过假装提取特征来简化我们的直觉。在P. Nakkiran等人的标题图片实验中,当使用t-SNE等降维机制将通过无噪声数据学习到的特征可视化时,添加标签噪声相当于在每个类对应的点的blob上添加噪声。考虑到这一点,我们可以进行一个类似的实验,这个实验甚至比M. Belkin等人的人工数据实验更简单,那就是:理解深度学习。
对标签噪声、容量、双下降和实验测试误差的直觉
在最左边width(参数)值1到5附近,我们的原型比类少,模型拟合程度不高(欠拟合),因为模型不能代表所有的类。 在width5附近,我们有10个(或者适当地更多)原形,但是,在每一个原型的训练中损坏标签都被挤出了,所以这些损坏标签没有发挥作用。 在width5到10这个范围,原型收集损坏的标签。由于每个原型都有一个用在推断阶段的“影响范围”,所以存在一个相当大的空间,在这个空间中损坏原型与测试是非常相关的。 在width10以外的范围,我们增加了更多的原形。原型之间变得更近,在推断阶段中损坏的标签原型也被“挤出”,因此它们的“影响范围”就会变得更小(因为比起拥有3个损坏原形,同一个类拥有5个非损坏原型中的3个的概率更大)。
在插值条件中挤出错误标记的数据
我们可以做一个非常简单的插值条件的模拟。我们来思考一个由2d标准单位法线提取并沿着水平轴移动±2的点的二分类问题,并从每个类别的分配中抽取25%的点。为了得到一个插值条件,我们使用一个具有明显峰值的核。为了有一个易分析处理的质量并将其标准化为1,我们使用核对抗示例
但是,随着数据的增加,当坏分类的区域和被随机抽样的数据点击中的概率减小时,随机抽样点到下一个坏样本的距离也减小了。这意味着除了利用模型的不良连续性(即输入的小变化会导致提取的特征发生大的变化),插值条件也能使对抗例子更容易产生,因为我们只需要特征的小变化。特征噪声类似于标签噪声
但是,双重下降不是也发生在没有损坏标签的情况下吗? 我们“仅仅”需要格外小心地处理我们的训练数据吗?好吧,没这么简单。高维特征在本质上可能比低维特征噪声更多:想象一下在高维空间(比如d)中有一个两类线性分类。我们有了有向量结论综上,我们学到了什么呢?
在我看来,噪音需要在推断阶段而不是在训练阶段挤出特征,由此我们看出深度学习模型的本质是非参数的。这与KDE实验非常接近。 即使我们有很好的标签(你有的,对吧?),深度学习中的高特征维度会导致特征中的噪音,而这些噪音的行为与标签中的噪音类似。
本文仅做学术分享,如有侵权,请联系删文。
适合初学者入门人工智能的路线及资料下载 (图文+视频)机器学习入门系列下载 机器学习及深度学习笔记等资料打印 《统计学习方法》的代码复现专辑 机器学习交流qq群955171419,加入微信群请扫码