精华内容
下载资源
问答
  • 简单谈谈模型的泛化性能

    千次阅读 2021-04-27 17:21:13
    泛化性能的首要因素是样本:防止过拟合就是提高泛化性能,训练的数据量越小越容易过拟合,模型泛化性不好首先应该考虑的是训练样本的数量和质量 提高泛化性能的本质是引入更多的噪声:为loss函数搜索最优解时加入...
    • 泛化性能的首要因素是样本:训练的数据量越小越容易过拟合,模型泛化性不好首先应该考虑的是训练样本的数量和质量

    • 提高泛化的本质是引入更多随机性:正则化,dropout,数据增强这些其实都相当于增加噪声,为loss函数搜索最优解时加入更多随机性,从而尽可能避免陷入局部最优(sharp minima),逼近一个相对全局更优的解(flat minima)

    • 无脑选择Adam类优化器不一定更好:Adam类优化器通常收敛速度很快,但是相比SGD更不容易收敛到一个flat minima的解,所以Adam训练得到的训练 loss可能会更低,但测试performance常常更差,也就是泛化性能更差。一般CV领域带动量的SGD更多,NLP领域Adam类优化器更多

    • 不需要一上来就考虑泛化的问题:搭建模型的初期先要保证模型的复杂度能够充分拟合数据(先避免欠拟合并且保证模型能正确训练),代价函数能够快速的下降,在训练集上达到一个非常高的准确率,再考虑泛化的问题。

      • check模型能正确训练的trick: 对一条或几条数据进行过拟合,绘制学习曲线观察loss能迅速下降并收敛到一个很低的值
      • 此时说明模型能正常梯度下降且在训练集上收敛精度很高,但是模型严重过拟合,这时再调整超参以及各种策略提升泛化性能
    • L1/L2正则化

      • 正则化就是在原来 Loss Function 的基础上,加了一些正则化项,常用的是L1和L2范数
      • L1 正则化,直接在原来的损失函数基础上加上权重参数的绝对值
      • L2 正则化,直接在原来的损失函数基础上加上权重参数的平方和
      • 一般L2范数比L1范数更受欢迎,深度学习里应用更平滑和稳定
    • dropout

      • 是指在深度学习网络的训练过程中,按照一定的概率将一部分神经网络单元暂时从网络中丢弃,相当于从原始的网络中找到一个更瘦的网络

    在这里插入图片描述

    • 早停法(Early Stop)
      • 需要和交叉验证(如k-fold cross validate)结合使用,在过拟合前就停止训练
      • 具体步骤
        • 将原始的训练数据集划分成训练集和验证集
        • 只在训练集上进行训练,并每个一个周期计算模型在验证集上的误差,例如,每15次epoch(mini batch训练中的一个周期)
        • 当模型在验证集上的误差比上一次训练结果差的时候停止训练
        • 使用上一次迭代结果中的参数作为模型的最终参数
    展开全文
  • 2019-05-25 09:06:50 这是专栏《AI初识境》的第9篇文章。所谓初识,就是对相关...今天来说说深度学习中的generalization问题,也就是泛化和正则化有关的内容。 作者&编辑 | 言有三 1 什么是generalizatio...

    https://www.toutiao.com/a6694764857343869454/

     

    2019-05-25 09:06:50

    这是专栏《AI初识境》的第9篇文章。所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法。

    今天来说说深度学习中的generalization问题,也就是泛化和正则化有关的内容。

    作者&编辑 | 言有三

    1 什么是generalization

    机器学习方法训练出来一个模型,希望它不仅仅是对于已知的数据(训练集)性能表现良好,对于未知的数据(测试集)也应该表现良好,也就是具有良好的generalization能力,这就是泛化能力。测试集的误差,也被称为泛化误差

    举个例子来说,我们在ImageNet上面训练分类模型,希望这个模型也能正确地分类我们自己拍摄的照片。

    在机器学习中,泛化能力的好坏,最直观表现出来的就是模型的过拟合(overfitting)与欠拟合(underfitting)。

    过拟合和欠拟合是用于描述模型在训练过程中的两种状态,一般来说,训练会是这样的一个曲线。下面的training error,generalization error分别是训练集和测试集的误差。

    「AI初识境」如何增加深度学习模型的泛化能力

     

    训练刚开始的时候,模型还在学习过程中,训练集和测试集的性能都比较差,这个时候,模型还没有学习到知识,处于欠拟合状态,曲线落在underfitting zone,随着训练的进行,训练误差和测试误差都下降。

    随着模型的进一步训练,在训练集上表现的越来越好,终于在突破一个点之后,训练集的误差下降,测试集的误差上升了,这个时候就进入了过拟合区间overfitting zone

    不过也不是说什么训练过程,都会满足上面的曲线。

    (1) 模型训练过程中,训练集的误差一定一直低于测试集吗?未必。

    如果这两个集合本来就取自于同样的数据分布,比如从一个数据集中随机采样,那么有可能测试的误差从一开始就低于训练集。不过,总体的趋势肯定是不变的,两者从一开始慢慢下降直到最后过拟合,训练集的误差低于测试集。

    (2) 模型的训练一定会过拟合吗?这也不一定!

    如果数据集足够大,很可能模型的能力不够始终都不会过拟合。另一方面,有很多的方法可以阻止,或者减缓模型的过拟合,比如正则化,这就是下面第二部分要说的。

    2 什么是Regularization

    Regularization即正则化,它本是代数几何中的一个概念,我们不说因为说不好。放到机器学习里面来说,所谓正则化,它的目标就是要同时让经验风险和模型复杂度较小

    「AI初识境」如何增加深度学习模型的泛化能力

     

    以上是我们的优化目标,V就是损失函数,它表示的是当输入xi预测输出为f(xi),而真实标签为yi时,应该给出多大的损失。那么我们不禁要问,有这一项不就行了吗?为什么还需要后面的那一项呢?R(f)又是什么呢?

    这就是回到上面的泛化误差和过拟合的问题了,一个机器学习系统,学习的是从输入到输出的关系,只要一个模型足够复杂,它是不是可以记住所有的训练集合样本之间的映射,代价就是模型复杂,带来的副作用就是没见过的只是略有不同的样本可能表现地就很差,就像下面这张图,只是更改了一个像素,预测就从Dog变成了Cat。

    「AI初识境」如何增加深度学习模型的泛化能力

     

    造成这种情况的问题就是学的太过,参数拟合的太好以致于超过了前面那个训练曲线的最低泛化误差临界点,究其根本原因是模型的表达能力足够强大到过拟合数据集。

    式子中的R(f),正是为了约束模型的表达能力,f是模型,R是一个跟模型复杂度相关的函数,单调递增。

    有同学可能会说,模型的表达能力跟模型大小,也就是参数量有关,限制模型的表达能力不是应该去调整模型大小吗?这里咱们从另一个角度来看模型的能力问题。

    如果我们限制一层神经网络的参数只能为0或者1,它的表达能力肯定不如不做限制,所以同样的参数量,模型的表达能力与参数本身也有关系,正则项就可以在参数上做文章。

    所以说正则化就用于提高模型的泛化能力,这里所说的仅仅是狭义上的参数正则化,而广义上的正则化方法众多,第3部分进行介绍。

    正则化的最终目标用一句土话来说,就是让网络学的不要太死,否则变成僵硬的书呆子。

    3 正则化方法有哪些

    正则化方法,根据具体的使用策略不同,有直接提供正则化约束的参数正则化方法如L1/L2正则化,以及通过工程上的技巧来实现更低泛化误差的方法,比如训练提前终止和模型集成,我将其称为经验正则化,也有不直接提供约束的隐式正则化方法如数据增强等,下面就从这三类进行讲述。

    1、经验正则化方法

    这里主要包含两种方法,即提前终止和模型集成

    (1) 提前终止

    前面我们看的训练曲线随着不断迭代训练误差不断减少,但是泛化误差减少后开始增长。假如我们在泛化误差指标不再提升后,提前结束训练,也是一种正则化方法,这大概是最简单的方法了。

    (2) 模型集成

    另一种方法就是模型集成(ensemable),也就是通过训练多个模型来完成该任务,它可以是不同网络结构,不同的初始化方法,不同的数据集训练的模型,也可以是用不同的测试图片处理方法,总之,采用多个模型进行投票的策略。

    在这一类方法中,有一个非常有名的方法,即Dropout。

    Dropout在2014年被H提出后在深度学习模型的训练中被广泛使用。它在训练过程中,随机的丢弃一部分输入,此时丢弃部分对应的参数不会更新。所谓的丢弃,其实就是让激活函数的输出为0。结构示意图如下。

    「AI初识境」如何增加深度学习模型的泛化能力

     

    因而,对于一个有n个节点的神经网络,有了dropout后,就可以看做是2^n个模型的集合了,使用的时候当然不能用2^n个模型来进行推理,而是采用了近似方法,即在使用的时候不进行权重丢弃。根据丢弃比例的不同,在测试的时候会给输出乘以相应的系数,比如某一层在训练的时候只保留50%的权重,在测试的时候是需要用到所有参数的,这个时候就给该层的权重乘以0.5。

    关于dropout的有效性,从结构上来说,它消除或者减弱了神经元节点间的联合,降低了网络对单个神经元的依赖,从而增强了泛化能力。不过也有另外的一些研究从数据增强的角度来思考这个问题。

    那么,就真的不担心dropout会把一些非常重要的神经元删除吗?最新的神经科学的研究以及DeepMind等研究人员通过对神经元进行随机删除来研究网络性能,发现虽然某些神经元确实很重要,它们会选择性激活特定输入,比如只对输入猫图特别敏感,对其他输入则完全不感冒,但是删除这一类神经元仍然不影响网络能识别到猫。

    这说明网络中未必少了谁就不行。不过反过来,上面说到的单个像素的攻击,则说明又有某些神经元至关重要。关于这其中的关系,仍然是研究热门,还是不断跟进更多最新的研究吧。

    「AI初识境」如何增加深度学习模型的泛化能力

     

    总之一句话,不怕删了谁。就dropout的使用方法而言,我们平常只更改dropout的比例,作者对此还有更多的建议。

    (1) 因为dropout降低了模型的性能,所以对于原本需要容量为N的网络才能解决的问题,现在需要N/p,p就是保留该节点的概率,这个概率通常在0.5~0.9之间,p=1就是普通的网络了。

    (2) 因为dropout相当于增加了噪声,造成梯度的损失,所以需要使用更大的学习率和动量项。与此同时,对权重进行max-norm等权重约束方法,使其不超过某个值。

    (3) 训练更久,很好理解。

    对dropout方法,还有很多的变种,包括dropout connect,maxout,stochastic depth等。

    一个神经元的输出实际上是由输入以及参数来共同决定,dropout把神经元的值设置为0了,那是不是也可以把参数设置为0呢?这就是drop connect,而且它可以比dropout更加灵活,可视为Dropout的一般化形式,从模型集成的角度来看,Dropout是2^n个模型的平均,那DropConnect呢?它应该更多,因为权重连接的数目比节点数本身更多,所以DropConnect模型平均能力更强。

    Drop Connect和Dropout均引入了稀疏性,不同之处在于Drop Connect引入的是权重的稀疏而不是层的输出向量的稀疏。

    另外,在dropout这一个思路上做相关文章的还有一些,比如maxout,是一种激活函数,它对N个输入选择最大的作为激活输出。比如随机pooling,是一种池化方法。比如stochastic depth,它用在带有残差结构的网络中,将某些res block直接设置为等价映射。还有backdrop,在前向的时候不drop,在梯度反传的时候才做。

    在这里不禁想给大家提两个问题

    (1) 你还能想到多少种drop方法?想不到就等我们下次专门说。

    (2) dropout应该怎么跟其他的方法结合,比如batch normalization,会强强联合得到更好的结果吗?

    2、参数正则化方法

    L2/L1正则化方法,就是最常用的正则化方法,它直接来自于传统的机器学习。

    L2正则化方法如下:

    「AI初识境」如何增加深度学习模型的泛化能力

     

    L1正则化方法如下:

    「AI初识境」如何增加深度学习模型的泛化能力

     

    那它们俩有什么区别呢?最流行的一种解释方法来自于模式识别和机器学习经典书籍,下面就是书中的图。

    「AI初识境」如何增加深度学习模型的泛化能力

     

    这么来看上面的那张图,参数空间(w1,w2)是一个二维平面,蓝色部分是一个平方损失函数,黄色部分是正则项。

    蓝色的那个圈,中心的点其实代表的就是损失函数最优的点,而同心圆则代表不同的参数相同的损失,可见随着圆的扩大,损失增大。黄色的区域也类似,周边的红色线表示的是损失相同点的轮廓。

    正则项的红色轮廓线示平方损失的蓝色轮廓线总要相交,才能使得两者加起来的损失最小,两者的所占区域的相对大小,是由权重因子决定的。不管怎么说,它们总有一个交叉点。

    对于L2正则化,它的交点会使得w1或者w2的某一个维度特别小,而L1正则化则会使得w1或者w2的某一个维度等于0,因此获得所谓的稀疏化。

    在深度学习框架中,大家比起L1范数,更钟爱L2范数,因为它更加平滑和稳定。

    3、隐式正则化方法

    前面说了两种正则化方法,第一种,通过对网络结构的修改或者在使用方法上进行调整。第二种,直接对损失函数做了修改。这两种方法,其实都应该算作显式的正则化方法,因为在做这件事的过程中, 我们是有意识地知道自己在做正则化。

    但是还有另一种正则化方法,它是隐式的正则化方法,并非有意识地直接去做正则化,却甚至能够取得更好的效果,这便是数据有关的操作,包括归一化方法和数据增强,扰乱标签。

    关于数据增强的方法,大家可以去有三AI公众号看。

    实验表明,隐式的方法比显式的方法更强,从batch normalization的使用替换掉了dropout,以及数据扩增碾压一切trick就可以看出。另外,批量随机梯度算法本身,也可以算是一种隐式的正则化方法,它随机选择批量样本而不是整个数据集,与上面的dropout方法其实也有异曲同工之妙。

    这么看来,其实data dependent方法更好,咱们前面的几期都说过,不要闷着头设计,从数据中学习才是王道。

    4 深度学习泛化能力到底好不好

    你说深度学习的泛化能力是强还是不强,感觉完全可以打一架。

    一方面,深度学习方法已经在各行各业落地,说泛化能力不好谁都不信,都已经经得起工业界的考验。关于如何定量的衡量泛化能力,目前从模型复杂度的角度有一些指标,可以参考[1]。

    但是另一方面,有许多的研究[2-3]都表明,仅仅是对图像作出小的改动,甚至是一个像素的改动,都会导致那些强大的网络性能的急剧下降,这种不靠谱又让人心慌,在实际应用的过程中,笔者也一直遇到这样的问题,比如下图微小的平移操作对输出概率的严重影响,真的挺常见。

    「AI初识境」如何增加深度学习模型的泛化能力

     

    正则化方法可以完美解决吗?甚至最强的数据增强方法能做的都是有限的,一个网络可以记忆住样本和它的随机标签[4],做什么正则化都没有作用。说起来神经网络一直在力求增强各种不变性,但是却往往搞不定偏移,尺度缩放。这就是为什么在刷比赛的时候,仅仅是对图像采用不同的crop策略,就能胜过任何其他方法的原因,从这一点来说,是一件非常没有意思的事情。

    或许,关于正则化,再等等吧。

    参考文献

    [1] Neyshabur B, Bhojanapalli S, Mcallester D A, et al. Exploring Generalization in Deep Learning[J]. neural information processing systems, 2017: 5947-5956.

    [2] Su J, Vargas D V, Sakurai K, et al. One Pixel Attack for Fooling Deep Neural Networks[J]. IEEE Transactions on Evolutionary Computation, 2019: 1-1.

    [3] Azulay A, Weiss Y. Why do deep convolutional networks generalize so poorly to small image transformations[J]. arXiv: Computer Vision and Pattern Recognition, 2018.

    [4] Zhang C, Bengio S, Hardt M, et al. Understanding deep learning requires rethinking generalization[J]. international conference on learning representations, 2017.

    展开全文
  • 这篇文章是我对我们MAPLE实验室(MAPLE),最近一年半来和GAN相关研究的一个简要的总结。本来是回答一个知乎上的问题的,现在做个简单的整理,做为一篇独立的...主要集中在:GAN是否能生成新的样本(泛化性)、如何去...

    这篇文章是我对我们MAPLE实验室(MAPLE),最近一年半来和GAN相关研究的一个简要的总结。本来是回答一个知乎上的问题的,现在做个简单的整理,做为一篇独立的文章发在这里。

    (我们今后会持续分享更多的技术和理论,敢兴趣的朋友可以关注这个知乎帐号)

    GAN的研究在最近1-2年内吸引了大量的工作,特别是和应用相关的研究。但相关的理论相对来说还比较少。主要集中在:GAN是否能生成新的样本(泛化性)、如何去评价、比较和量化这种泛化性?以及造成GAN的mode collapse的原因是什么?怎么解?

    进一步来说,泛化性和mode collapse这两个问题是独立,还是有本质的联系?

    首先,前一个问题“泛化性”是个非常重要的问题,这关系到GAN这类生成模型本身是不是有意义的 -- 它能不能生成和发现新的样本和变化模式,而不仅仅是记住已有的样本和模式。

    同时,这种泛化能力对提高基于GAN的半监督模型的性能也是非常重要的,因为只要具有泛化能力的模型,才能产生有价值的新样本来增强训练集,并帮助模型通过挖掘出更有信息的类内和类间变化来提高小样本情况下的分类准确度。

    第二个问题mode collapse,是在实际应用中真实发生的现象,如何去刻画这个现象的本质,并找出应对之道,也是我们重点关注的。另外,找出mode collapse 和泛化性的关系,通过现象去认识本质,也是今后需要重点关注的方向。

    ===================================

    以下是原文。

    目录

    一、理论

    二、评价指标论

    三、基于GAN的流型分析和半监督学习中的应用

    四、从几何角度研究Mode collapse问题

    五、泛化性和mode collapse 的关系

    ====================================

    一、理论

    关于GAN的理论,可以把GAN模型按照正则化、非正则化模型分成两大类。

    非正则化包括经典GAN模型以及大部分变种,如f-GAN,Least Square GAN,EBGAN等等。这些模型的共同特点是不对要生成的样本的分布做任何先验假设,尝试去解决一般性的数据样本生成问题。然而,由于缺少正则化的先验条件,其模型的泛化性是存疑的。

    换句话来说,泛化性说的是:所有模型都是需要先用有限的训练样本来训练的,那么由这些有限样本训练得到的模型可不可以从这些有限训练样本中生成出新的样本,而非简单地记着训练集?

    目前看来,无论从理论上还是实践上,非正则化的模型都无法证明他们的泛化能力。

    这时候,如果我们给要生成的数据加入一些先验的条件,比如这些“数据的分布密度在空间中变化速度是有限”的这样的条件,是不是就可以解决泛化性的问题。这就是构建正则化GAN的动机。

    目前看来,正则化模型的从理论上是成功的,已经从理论上证明了他们的泛化性能。这些模型包括Loss-Sensitive GAN, WGAN等。他们都是基于Lipschitz正则条件。对严格证明感兴趣的朋友可以参看论文 Loss-Sensitive Generative Adversarial Networks on Lipschitz Densities [pdf] 和我们的系列分享齐国君:条条大路通罗马LS-GAN:把GAN建立在Lipschitz密度上​zhuanlan.zhihu.com

    齐国君:广义LS-GAN(GLS-GAN) :现在 LS-GAN和WGAN都是这个超模型的特例了​zhuanlan.zhihu.com

    随之而来的可以进一步研究的问题是:除了Lipschitz正则化条件,还有没有其他的正则化先验条件,可以从理论上保证泛化性?这个问题比较理论,但对深入理解GAN模型可以做什么和不可以做什么具有非常重要的意义。这点就像很多物理定理一样,都有其适用范围。宣称适用一切条件的方法肯定是不存在的。理解算法的适用范围就是 GAN理论要回答的问题。

    二、评价指标

    当然,仅仅从理论上分析GAN模型的泛化性是不够的。我们还需要实验去验证他们。很遗憾的是,目前用来衡量不同GAN模型的实验指标都存在很大的问题。比如Inception Score,它用来衡量生成图片的质量,基于的假设是:高质量的图片,用一个分类网络(inception)对它进行分类后得到的类别应该是明确的。遗憾的是,任何一个分类器都很难覆盖所有可能的图片类别、而它的分类准确度也不可能是完美的。而且,即便有这么一个分类器,高inception score从逻辑上也只是个高质量图片的必要非充分条件。

    更重要的是,inception score完全不反应模型的泛化性,即生成正式新图片的能力。所有第二个可以研究的问题是:我们如何设计一个指标去比较不同GAN模型的泛化能力,这点也是至关重要的。

    目前,已经有了一些有益的尝试。比如,同样地在Loss-Sensitive Generative Adversarial Networks on Lipschitz

    Densities [pdf]这篇论文里,提出了一个MRE(Minimum Reconstruction

    Error)的指标来度量泛化性。

    它是这样工作的。在一个数据集上,比如CIFAR-10,把它分成训练集、验证集和测试集三个部分。我们在训练集上训练一个GAN模型,在验证集上调试超参数,这样模型在训练过程中就没有用到任何测试样本。那么,如果GAN有泛化性,它就有能力比较好地去生成这些未见到的测试样本。

    下面这份图给出了MRE的测试结果。可以看到,正则化的GAN,包括LS-GAN, GLS-GAN, WGAN, WGAN-GP比非正则话的结果DCGAN要好,而且训练过程更加得稳定,不像DCGAN那里存在不稳定地波动。

    图:随训练过程,在测试集上MRE的变化。

    同时,如下图结果,从数值上看,GLS-GAN (Generalized Loss-Sensitive GAN),比其他GAN模型,不管正则化的还是非正则化的,就要有更小的MRE误差。这点不难理解,因为其他正则化模型都是它的一个特例。

    图:在tiny ImageNet上,最终在测试集上的MRE。越小泛化性越高。

    换句话来说,也回到理论问题上,目前的正则化都是基于Lipschiz条件的,GLS-GAN是Lipschiz正则化里最大的一个超类。如下图所示。

    图:正则化与非正则化GAN模型。

    那么有没有其他的,同样基于Lipschiz正则条件的,不包含在GLS-GAN里的模型,也是一个未解答的问题。

    显然MRE的思路秉承了一般机器学习问题的评测思路,基于对训练数据、验证数据和测试数据集的划分。

    那么,一个新的问题是,有没有更加直接的指标可以不依赖于具体数据集,可以对GAN模型的泛化性进行更加直接地度量?

    今天先写到这里,后面有时间接着谈一谈GAN在算法和应用方面的可能方向,特别是小训练样本下的思路。

    三、基于GAN的流型分析和半监督学习中的作用

    接着昨天的讨论。

    具有泛化能力GAN的一个重要作用是:我们第一次有了一个比较理想的工具,可以用来表示和描述数据流型(manifold)。之前,如果我们想表示流型,一般是借助于一个图模型(Graph)。在图模型里,我们用节点表示数据点,用边表示数据直接的相似性。有了Graph,我们可以定量计算数据点上函数的变化。比如,在分类问题中,我们感兴趣的函数是分类函数,输出的是数据点的标签。有了基于Graph的流型,我们就可以建立一个分类模型:它输出的分类标签在相似样本上具有最小的变化。这个就是一种平滑性的假设,是基于图的半监督方法的核心假设。

    图:基于图的流型表示和半监督分类。

    尽管这种基于图的半监督方法取得了很大的成功,但是它的缺点也是很明显的。当数据点数量非常巨大的时候,构建这样一个Graph的代价会非常大。为了解决这个问题, Graph为我们提供了一个很好的基础。通过训练得到的生成器G(z),其实就是一个非常好的流型模型。这里z就是流型上的参数坐标,通过不断变化z,我们就可以在高维空间中划出一个流型结构。

    有了这样一个流型和它的描述G,我们可以在数据流型上研究各种几何结构。比如切向量空间、曲率,进而去定义在流型上,沿着各个切向量,函数会如何变化等等。好了,这里GAN就和半监督学习联系起来了。以前我们是用Graph这种离散的结果去研究分类函数的变化,并通过最小化这种变化去得到平滑性假设。

    现在,有了流型直接的参数化描述G(z),我们就能直接去刻画一个函数(比如分类问题中的分类器)在流型上的变化,进而去建立一个基于这种参数化流型的半监督分类理论,而非去借助基于图的流型模型。

    具体来说,半监督图流型中,我们常用到Laplacian矩阵来做训练;现在,有了参数化的流型后,我们就可以直接定义Laplace-Beltrami算子,从而实现半监督的训练。下面是基于这个方法在一些数据集上得到的结果。更多的结果可以参考这篇论文“Global versus Localized Generative Adversarial Networks”[pdf]。

    这里,有个比较精细的问题。通常的GAN模型,得到的是一个全局的参数话模型:我们只有一个z变量去参数化整个流型。事实上,在数学上,这种整体的参数化王是不存在的,比如我们无法用一个参数坐标去覆盖整个球面。这时我们往往要借助于通过若干个局部的坐标系去覆盖整个流型。

    同时,使用局部坐标系的另一个更加实际的好处是,我们给定一个目标数据点x后,整体坐标系G(z)要求我们必须知道对应的一个参数坐标z;而使用局部坐标系后,我们就直接可以在x附近去建立一个局部坐标系G(x,z)去研究流型周围的几何结构,而不用去解一个逆问题去去它对应的z了。这个极大地方便了我们处理流型上不同数据点。

    图:流型的局部化参数表示。(“Global versus Localized Generative Adversarial Networks”[pdf])

    沿着这个思路,我们可以利用参数化的局部坐标和它表示的流型来研究一系列问题。

    1. 比较理论的研究可以专注于,有了这些局部参数表示,如何去定义出一整套黎曼流型的数学结构,比如局部的曲率,黎曼度量,和如果沿着流型去算测地线和两个数据点之间的测地距离。

    2. 从应用的角度,给定了一个图像x,用局部表示G(x,z)可以对这个x在它的局部领域中做各种编辑操作或者控制图像的各种属性。这个可以结合有监督的对局部参数的意义进行训练。

    当然,从几何和流型参数化的角度还可以给出对GAN更深入的理解,比如对mode collapse问题。今天先写到这里,后面继续讨论如何从流型collapse 的角度来解释和避免GAN的mode collapse。

    四、从几何角度研究Mode collapse问题

    当然,从几何和流型参数化的角度还可以给出对GAN更深入的理解,比如对mode collapse问题。在GAN的相关研究中,mode collapse是一个被广泛关注的问题。有很多相关的论文在从不同角度来研究和解决这个问题。

    而基于Localized GAN所揭示的几何方法,我们可以从流型局部崩溃的角度来

    解释和避免GAN的mode

    collapse。具体来说,给定了一个z,当z发生变化的时候,对应的G(z)没有变化,那么在这个局部,GAN就发生了mode collapse,也就是不能产生不断连续变化的样本。这个现象从几何上来看,就是对应的流型在这个局部点处,沿着不同的切向量方向不再有变化。换言之,所有切向量不再彼此相互独立--某些切向量要么消失,要么相互之间变得线性相关,从而导致流型的维度在局部出现缺陷(dimension

    deficient)。

    为了解决这个问题,最直接的是我们可以给流型的切向量加上一个正交约束(Orthonormal

    constraint),从而避免这种局部的维度缺陷。下图是在CelebA 数据集上得到的结果。可以看到,通过对不同的切向量加上正交化的约束,我们可以在不同参数方向上成功地得到不同的变化。上图:在给定输入图像的局部坐标系下对人脸的不同属性进行编辑。

    上图:在给定输入图像的局部坐标系下对人脸的不同属性进行编辑。

    值得注意的是,尽管我们是从局部GAN的角度推导和实现了对切向量的正交化约束,这个思路和方法同样适用于传统的整体GAN模型。我们只需要在训练整体GAN模型的同时,在每个训练数据样本或者一个batch的子集上也加上这个约束来求取相应的下降梯度就同样可以训练整体GAN模型;这个方向可以引申出未来的相关工作。

    五、泛化性和mode collapse 的关系

    表面看来,这两个问题是不同的,一个是在研究能不能生成新样本,一个是研究生成样本的多样性。

    但从道理上来说,有良好泛化性的模型,因为可以较好的逼近真实样本的分布,所以应该不存在生成样本多样性不足的问题的。

    但反之则不然:即便没有mode collapse,也不能保证生成器模型的泛化性。所以从这点让来看,泛化性是个更广义的问题。

    从某种意义上,泛化性可以看作是因,而mode collapse是它表现出来的现象。

    但是不是研究mode collapse 就不重要了呢?这个也不是这样子的。对mode collapse这个典型想象的理解,可以有助于为研究生成器的泛化性提供非常有价值的样本。

    比如,在发生mode collapse的地方,该点的密度函数显然会存在一个很高的峰值,在这个峰附近,密度函数的Lipschitz常数会变得很大。这个提示我们,通过对生成密度做Lipschitz正则化,是有利于帮助我们解决mode collapse问题,同时提高生成器的泛化性的。LS-GAN的成功也证实了这点。

    而另一方面,我们上面介绍的通过对切向量做正交约束,进而防止流型维度缺陷和mode collapse的方法, 是不是也能为我们打开一扇从几何角度提高生成器泛化性的思路呢?这个可以留待后续的研究来揭示。

    展开全文
  • 如何理解泛化是深度学习领域尚未解决的基础问题之一。为什么使用有限训练数据集优化模型能使模型在预留测试集上取得良好表现?这一问题距今已有 50 多年的丰富历史,并在机器学习中得到广泛研究。如今有许多数学工具...

    文 / Google Research 团队 Hanie Sedghi 和哈佛大学 Preetum Nakkiran

     

    如何理解泛化是深度学习领域尚未解决的基础问题之一。为什么使用有限训练数据集优化模型能使模型在预留测试集取得良好表现?这一问题距今已有 50 多年的丰富历史,并在机器学习中得到广泛研究。如今有许多数学工具可以用来帮助研究人员了解某些模型的泛化能力。但遗憾的是,现有的大多数理论都无法应用到现代深度网络中,这些理论在现实环境中显得既空泛又不可预测。而理论和实践之间的差距 在过度参数化模型中尤为巨大,这类模型在理论上能够拟合训练集,但在实践中却不能做到。

    在《Deep Bootstrap 框架:拥有出色的在线学习能力即是拥有出色的泛化能力》(The Deep Bootstrap Framework: Good Online Learners are Good Offline Generalizers)(收录于 ICLR 2021)这篇论文中,我们提出了一个解决此问题的新框架,该框架能够将泛化与在线优化领域联系起来。在通常情况下,模型会在有限的样本集上进行训练,而这些样本会在多个训练周期中被重复使用。但就在线优化而言,模型可以访问无限的样本流,并且可以在处理样本流的同时进行迭代更新。在这项研究中,我们发现,能使用无限数据快速训练的模型,它们在有限数据上同样具有良好的泛化表现。二者之间的这种关联为设计实践提供了新思路,同时也为从理论角度理解泛化找到了方向。

     

    Deep Bootstrap 框架

    Deep Bootstrap 框架的主要思路是将训练数据有限的现实情况与数据无限的“理想情况”进行比较。它们的定义如下:

    • 现实情况(N、T):使用来自一个分布的 N 个训练样本训练模型;在 T个小批量随机梯度下降 (SGD) 步骤中,照常在多个训练周期中重复使用这N 个样本。这相当于针对经验损失(训练数据的损失)运行 SGD 算法,这是监督学习中的标准训练程序。

    • 理想情况(T):在 T 个步骤中训练同一个模型,但在每个 SGD 步骤中使用来自分布的新样本。也就是说,我们运行相同的训练代码(相同的优化器、学习速率、批次大小等),但在每个训练周期中采用全新的训练样本集,而不是重复使用相同的样本。理想情况下,对于一个几乎达到无限的“训练集”而言,其训练误差和测试误差之间相差无几。

    图片

    在 SGD 迭代期间 ResNet-18 架构理想情况及现实情况的测试软误差。可以看到,两种误差非常相近

    一般而言,我们认为现实情况和理想情况不会有任何关联,因为在现实世界中用于模型处理的来自分布的示例数量是有限的,而在理想世界中模型处理的示例数量是无限的。但在实践中,我们发现现实情况模型和理想情况模型之间的测试误差非常相近。

    为了将此观察结果量化,我们通过创建一个名为 CIFAR-5m 的数据集模拟了一种理想情况。我们使用 CIFAR-10 训练了一个生成模型,然后利用该模型生成约六百万个图像。选择生成这么多图像的目的是为了使此数据集对于模型而言具有“近乎无限性”,从而避免模型重复采样相同的数据。也就是说,在理想情况下,模型面对的是一组全新的样本。

    图片

    来自 CIFAR-5m 的样本

    下图给出了几种模型的测试误差,对比了它们在现实情况(如重复使用数据)和理想情况(使用“全新”数据)中使用 CIFAR-5m 数据训练的表现。蓝色实线展示了 ResNet 模型在现实情况下使用标准 CIFAR-10 超参数针对 50000 个样本训练 100 个周期的表现。蓝色虚线展示了同样的模型在理想情况下使用五百万个样本一次性训练完毕的表现。出人意料的是,现实情况和理想情况下的测试误差非常接近,在某种程度上模型并不会受到样本是重复使用还是全新的影响。

    图片

    现实情况下的模型使用 50000 个样本训练 100 个周期,理想情况下的模型使用五百万个样本训练一个周期。图中的线展示了测试误差以及 SGD 步骤的执行次数

    这个结果也适用于其他架构,如多层感知架构(红线)、视觉 Transformer(绿线),以及许多其他架构、优化器、数据分布和样本大小设置。从这些实验中,我们得出了一个关于泛化的新观点,即能使用无限数据快速优化的模型,同样能使用有限数据进行良好的泛化。例如,ResNet 模型使用有限数据进行泛化的能力要优于 MLP 模型,其原因在于 ResNet 模型使用无限数据进行优化的速度更快。

     

    基于优化行为理解泛化

    我们从中得出一个重要的观察结果,即直到现实情况开始收敛前,现实情况和理想情况下的模型在所有时刻的测试误差都非常接近(训练误差 < 1%)。因此,我们可以通过研究模型在理想情况下的行为来理解它们在现实情况下的表现。

    也就是说,模型的泛化可以通过研究其在两种框架下的优化表现来理解:

    1. 在线优化:其用于在理想情况下观察测试误差的减小速度

    2. 离线优化:其用于在现实情况下观察训练误差的收敛速度

    因此,研究泛化时,我们可以相应地研究上述两个方面,它们仅涉及优化问题,因此在概念上较为简单。通过这项观察,我们发现出色的模型和训练程序均符合两个条件:(1) 能在理想情况下快速优化;(2) 在现实情况下的优化速度较慢。

    所有深度学习设计方案都能通过了解它们在这两方面的表现来进行评估。例如,一些改进,比如卷积、残差连接和预训练等,其主要作用是加速理想情况的优化,而另一些改进,比如正则化和数据增强等,其主要作用则是减慢现实情况的优化。

     

    应用 Deep Bootstrap 框架

    研究人员可以使用 Deep Bootstrap 框架来研究和指导深度学习设计方案。它所依循的原则是:每当我们做出影响现实情况泛化能力的更改时(架构、学习速率等),我们都应考虑它对以下两方面带来的影响:(1) 理想情况的测试误差优化(越快越好)以及 (2) 现实情况的训练误差优化(越慢越好)。

    例如, 预训练在实践中通常用于促进小数据体系中的模型泛化。然而,人们对预训练发生作用的机理知之甚少。我们可以使用 Deep Bootstrap 框架,通过观察预训练对上述两方面形成的影响研究这个问题。我们发现,预训练的主要作用是促进理想情况的优化 (1),即使网络能够“快速学习”在线优化。预训练模型泛化能力的增强几乎总能带来其在理想情况下优化能力的提高。下图比较了使用 CIFAR-10 训练的视觉 Transformers (ViT) 在 ImageNet 上从零开始训练和预训练之间的差别。

    图片

    预训练的作用:经过预训练的 ViT 在理想情况下的优化速度更快

    我们还可以使用此框架研究数据增强。在理想情况下的数据增强相当于对每个新样本进行一次增强,而不是对同一个样本进行多次增强。此框架意味着好的数据增强均符合两个条件:(1) 不会严重损害理想情况的优化(即增强样本的分布不会过于“失范”),(2) 抑制现实情况的优化速度(以使现实世界花更多时间拟合其训练集)。

    数据增强的主要作用通过第二条:延长现实情况的优化时间来实现。关于第一条,一些激进的数据增强 (混合/剪切) 可能会对理想情况造成不良影响,但这种影响与第二条相比不值一提。

     

    结语

    Deep Bootstrap 框架为理解深度学习的泛化和经验现象提供了一个新角度。我们非常期待能够在未来看到它被用于理解深度学习的其他方面。尤为有趣的是,泛化可以通过纯粹的优化方面的考量来描述, 这在理论上和许多主流方法相悖。至关重要的是,我们需同时考虑在线优化和离线优化,单独考虑二者中的任何一个都是不够的,它们共同决定了泛化能力。

    Deep Bootstrap 框架还揭晓了为什么深度学习对于许多设计方案都异常稳健,原因是许多中架构、损失函数、优化器、标准化和激活函数都具有良好的泛化能力。这个框架揭示了一个普适定律:基本上任何具有良好在线优化表现的设计方案,其都能在离线状态下有良好的泛化表现。

    最后,现代神经网络既可能过参数化(如使用小型数据任务训练的大型网络),也可能欠参数化(如 OpenAI GPT-3、Google T5 或 Facebook ResNeXt WSL)。而 Deep Bootstrap 框架表明,在线优化是在这两种模式中取得成功的关键因素。

     

    致谢

    感谢我们的合著者 Behnam Neyshabur 对论文的巨大贡献以及对于博文的宝贵反馈。感谢 Boaz Barak、Chenyang Yuan 和 Chiyuan Zhang 对于博文及论文的有益评论。

     

    想了解更多框架模型,请点击下方链接,访问 TensorFlow 中国官网了解详情。

    TensorFlow.google.cn

    展开全文
  • 泛化 过拟合 将模型在训练数据上拟合得⽐在潜在分布中更接近的现象称为过拟合(overfitting),⽤于对抗过拟合的技术 称为正则化(regularization)。 训练误差和泛化误差 训练误差(training error)是指,我们的模...
  • 然而,纯分类模型严重依赖于给定的源数据,往往分布不均衡,进一步限制了目标分类器的泛化能力。为了解决这一问题,作者探索了目标域上的自监督旋转方式,以增强样本空间,增强了特征提取和目标分类器的学习。 ...
  • 极限学习机( ELM) 在训练过程中无须调整隐层节点参数,因其高效的训练方式被广泛应用于分类和回 归,然而极限学习机也面临着结构选择与过拟合等严重问题。为了解决此问题,针对隐层节点增量数目对收敛 速度以及训练...
  • CoinRun在复杂性方面取得了理想的平衡:环境比传统的平台游戏(如Sonic)简单,但仍对最先进的算法提出了有价值的泛化挑战。 即使是令人印象深刻的RL策略,也经常在没有监督学习技术(如dropout和batch ...
  • 量化深度强化学习算法的泛化能力

    千次阅读 2018-12-25 07:30:09
    CoinRun 在复杂性方面取得了令人满意的平衡:这个环境比传统平台游戏如《刺猬索尼克》要简单得多,但它仍是对现有算法的泛化性的有难度的挑战。 泛化挑战 任务间的泛化一直是当前深度强化学习(RL)算法的难点。虽然...
  • 号相比,不那么明显、不那么严重、不那么频繁或不那么慢性,或者有一些内疚。 与老师的幽默“耍花招”会落到这里,规避规则和规定也是如此。 3 = 无信息; 控制不是问题。 4 = 轻松轻松的控制; 比较顺从和顺从。 5 ...
  • 从极少量样本中学习到泛化性能良好的模型是很困难的,因为极少的样本形成的数据分布往往与真实数据分布相差较大,在偏斜的数据分布上训练模型会导致严重的过拟合现象并严重破坏模型的泛化能力(见图1)。 在本文中...
  • 这个图可以明显的看出模型出现了非常严重的过拟合。 如果采用数据增强技术呢?曲线图如下: 从图中可以看到,虽然在训练数据集上的准确率有所下降,但在验证数据集上的准确率有比较明显的提升,说明模型的泛化...
  • 在模糊产生式系统中,产生式规则的前件的所有子命题、知识库中所有的规则被假定具有相同的重要性,使得其知识表示能力有严重的缺陷,为了提高模糊产生式规则的知识表示能力和泛化能力,在模糊产生式规则中引入整体权...
  • 极限学习机(ELM)在训练过程中无须调整隐层节点参数,因其高效的训练方式被广泛应用于分类和回归,然而极限学习机也面临着结构选择与过拟合等严重问题。为了解决此问题,针对隐层节点增量数目对收敛速度以及训练...
  • 在新数据中,深度学习系统执行(泛化)能力如何?其性能如何?要想建立AI系统的信赖度和可靠性,必须估计算法的泛化能力。 我们能信任AI吗?AI是否会像人类酗酒一样毫无顾忌?一但AI启动,是否会毁灭世界? 统计...
  • 这是专栏《AI初识境》的第9篇文章。所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法。今天来说说深度学习中的generalization问题,也就是泛化和正则化有...
  • 3D目标检测被广泛用于自动驾驶,但在德国收集的数据训练的检测器可以在美国的道路上表现的好吗?实验证明,这种情况会精度下降严重,作者进一步发现主要是不同场景中汽车的大小差异过大导致的,通过...
  • 但是近两年来,研究者们注意到一个非常严重的问题,就是这样训练出的序列对序列网络不具备组合泛化能力。本文介绍北大硕士郭一诺在这方面的两篇工作:第一篇是从方法的角度,提出层次化偏序解码模型,来提高语言的...
  • 点上方人工智能算法与Python大数据获取更多干货在右上方···设为星标★,第一时间获取资源仅做学术分享,如有侵权,联系删除转载于 :机器之心泛化一定需要随机训练吗?近来机器学习模型...
  • 作者提出了一个严重的问题,表明所有全局最小值是否都可以很好地概括,或者是否有办法确定一个全局最小值在泛化方面是否会优于另一个全局最小值? Manifesting the simple ‘kernel trick’ to uniquely identify a...
  • 本文介绍一篇最新发表在ICLR2021 Oral上的少样本学习工作,他们尝试从数据分布估计的角度去缓解少样本学习中的过拟合现象,并提出通过分布矫正(估计)...从极少量样本中学习到泛化性能良好的模型是很困难的,因为极...
  • 提出一种安全域概念下的堆叠降噪自动编码器和支持向量机集成模型相结合的暂态...算例结果表明,所提暂态稳定评估方法具有更高的评估准确率和一定的泛化能力;所提严重度分级方法能够直观表现不同运行方式的危险程度。
  • 本文介绍一篇最新发表在ICLR2021 Oral上的少样本学习工作,他们尝试从数据分布估计的角度去缓解少样本学习中的过拟合现象,并提出通过...从极少量样本中学习到泛化性能良好的模型是很困难的,因为极少的样本形成的数据
  • 来源 | 晓飞的算法工程笔记优化器(Optimizer)对于深度神经网络在大型数据集上的训练是十分重要的,如SGD和SGDM,优化器的目标有两个:加速训练过程和提高模型的泛化能力。目前,...
  • 我们可以直接做实验,拿到一个具体的精度,以及训练过程的变化曲线,观察出模型的泛化性能。 但是这样做,明显是很模糊主观的,而且也完全不知为何会表现出这样的泛化性能。 本文所说的这个分解方法就是要在理论上去...
  • 从极少量样本中学习到泛化性能良好的模型是很困难的,因为极少的样本形成的数据分布往往与真实数据分布相差较大,在偏斜的数据分布上训练模型会导致严重的过拟合现象并严重破坏模型的泛化能力(见图1)。在本文中...
  • 从极少量样本中学习到泛化性能良好的模型是很困难的,因为极少的样本形成的数据分布往往与真实数据分布相差较大,在偏斜的数据分布上训练模型会导致严重的过拟合现象并严重破坏模型的泛化能力(见图1)。 在本文中...
  • CoinRun 在复杂性方面取得了令人满意的平衡:这个环境比传统平台游戏如《刺猬索尼克》要简单得多,但它仍是对现有算法的泛化性的有难度的挑战。 泛化挑战 任务间的泛化一直是当前深度强化学习(RL)算法的难点。虽然...
  • 现实生活中,幼年经历过严重创伤或经历过极端环境(如战争)之后,会产生可能伴随终身的恐惧记忆,产生创伤后应激综合征(PTSD),而这种影响往往被认为是记忆泛化所致,因为人们发现,记忆精确性的降低也会导致轻度...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,013
精华内容 4,805
关键字:

严重泛化