当前位置: 首页 > 科技观察

机器学习的七大谣言,这些都是根深蒂固的执念_0

时间:2023-03-18 02:28:11 科技观察

在学习深度学习的过程中,我们经常会遇到各种谣言,各种习以为常的“执念”。在本文中,作者总结了机器学习研究中常见的七个误区。其中很多是我们之前固有的概念,最近新的研究对它们提出了质疑。所以在为机器学习填坑的生活中,赶紧查查这七个误区吧。那么以下七个问题是不是你的“执念”?TensorFlow是张量计算库吗?不听的话还是要用测试集调试调试模型……训练数据估计对模型训练有用。如何在没有批量归一化(BN)的情况下训练超深残差网络!注意力机制不是卷积网络的替代品吗?无论如何,图像数据集应该接近真实分布。主导分类的局部输入难道不能解释神经网络吗?谣言一:TensorFlow是张量运算库。事实上,TensorFlow是一个矩阵而不是一个张量运算库。两者的区别非常大。在NeurIPS2018论文ComputingHigherOrderDerivativesofMatrixandTensorExpressions中,研究人员展示了他们基于TensorCalculus的新自动微分库具有明显更紧凑的表达式树。.这是因为张量微积分使用索引符号,因此正向模式和反向模式被视为相同。相比之下,矩阵微积分为了符号方便而隐藏了索引,这通常会导致用于自微分的表达式树过于复杂。如果有矩阵乘法:C=AB。在正向模式下,有,在反向模式下,有。为了正确地做乘法,我们需要注意乘法的顺序和转置的使用。对于机器学习开发者来说,这只是标志上的一点混乱,但对于程序来说,却是一种计算开销。这是另一个例子,无疑更有意义:用于查找行列式c=det(A)。在正向模式下,有,在反向模式下,有。这里很明显不能用同一个表达式树来表示两种模式,因为这两种模式是由不同的操作组成的。一般情况下,TensorFlow和其他库(如Mathematica、Maple、Sage、SimPy、ADOL-C、TAPENADE、TensorFlow、Theano、PyTorch、HIPSautograd)实现的自动微分方法会在正向模式和反向模式中使用,导致不同的、效率较低的表达式树。在张量微积分中,通过索引标记保留了乘法的可交换性,这些问题很容易避免(具体实现原理请阅读论文原文)。研究人员测试了反向模式自动区分新方法的性能,并测量了计算Hessian矩阵所花费的时间。第一个问题是优化xAx形式的二次函数;第二个问题是解决一个逻辑回归;第三个问题是解决矩阵分解。在CPU上,新方法比TensorFlow、Theano、PyTorch和HIPSautograd等流行的自动微分库快两个数量级。在GPU上,研究人员发现新方法的加速更加明显,比流行的库高出大约三个数量级。意义:使用当前的深度学习库导出二次函数或高阶函数比它应该的更昂贵。这包括计算一般的四阶张量,例如Hessian(例如,在MAML中,和二阶牛顿法)。幸运的是,在“深度”学习中,二阶函数并不常见。但在“传统”的机器学习中,它们广泛存在:SVM对偶问题、最小二乘回归、LASSO、高斯过程……谣言二:机器学习研究人员不使用测试集进行验证。在课程中,我们将学习将数据集划分为训练集、验证集和测试集。模型会在训练集上进行训练,效果评估会在验证集上进行。获得的效果将用于指导开发者调整模型,从而获得在真实场景中效果非常好的模型。在调整模型之前不应使用测试集,以提供对模型在真实场景中的实际执行情况的无偏估计。如果开发人员在训练或验证阶段“作弊”使用测试集,那么模型很可能会遇到过度拟合数据集偏差的风险:这种偏差信息无法在数据集之外泛化。在竞争激烈的机器学习研究环境中,新算法/模型通常使用其在测试集上的性能进行评估。因此,对于研究者来说,没有理由写/提交一篇测试集效果不是SOTA的论文。这也说明,在机器学习研究领域,一般情况下,使用测试集进行验证是一种普遍现象。这种“作弊”行为意味着什么?在论文DoCIFAR-10ClassifiersGeneralizetoCIFAR-10?中,研究人员通过在CIFAR-10上构建新的测试集来调查这个问题。为此,他们解析并注释了来自TinyImages库的图像,就像原始数据收集过程一样。常用测试集导致过拟合?你真的能控制自己不根据测试集调整参数吗?研究人员选择CIFAR-10是因为它是机器学习社区中使用最广泛的数据集之一,也是NeurIPS2017年第二受欢迎的数据集(仅次于MNIST)。CIFAR-10数据集的创建也有详细记录并公开可用。在庞大的TinyImages库中,也有足够细粒度的标签数据,这使得在尽可能不引起分布偏移的情况下重建测试集成为可能。研究人员发现,许多神经网络模型在从原始测试集切换到新测试集时,准确率会出现显着下降(4%-15%)。但是,模型的相对排名保持相对稳定。一般而言,性能较好的模型的准确率下降幅度要小于性能较差的模型。这是一个令人振奋的消息,因为至少在CIFAR-10上,随着研究界发明了更好的机器学习模型/方法,“作弊”导致的泛化损失变得不那么严重了。误区三:神经网络训练过程使用了训练集中的所有数据点。俗话说数据是新的原油(财富),数据量越大,越能训练出相对不足、参数化过大的深度学习模型。在ICLR2019论文《深度神经网络学习过程中实例遗忘的实证研究》中,研究人员表明,几种常见的小型图像数据集存在显着冗余。令人震惊的是,在CIFAR-10中,我们可以丢弃30%的数据点,而不会显着影响测试集的准确性。当神经网络在时间t+1给出错误分类而在时间t给出准确分类时,它被称为遗忘事件。这里的“矩”指的是随机梯度下降(SGD)训练网络的更新次数。为了使记录遗忘事件变得可行,研究人员一次只在用于完成SGD更新的小批量数据上运行神经网络,而不是在数据集的单个样本上运行。对于没有经历遗忘事件的样本,称为难忘样本。研究人员发现,MNIST中91.7%的数据、permutedMNIST中的75.3%、CIFAR-10中的31.3%和CIFAR-100中的7.62%的数据是不可遗忘的样本。这是直观的,因为随着图像数据集的多样性和复杂性增加,神经网络应该忘记更多的样本。与不可遗忘的样本相比,可遗忘的样本似乎表现出更多不寻常和独特的特征。研究人员将它们比作SVM中的支持向量,因为它们似乎划定了决策边界。相反,不可忘记的样本编码了大部分冗余信息。如果样本按其难忘性排序,则可以通过删除大部分难忘性样本来完成数据集的压缩。在CIFAR-10中,可以删除30%的数据而不影响测试集的准确性,而删除35%的数据会导致测试准确性小幅下降0.2%。如果删除的数据中有30%是随机选择的,而不是基于不可忘记性,那将导致约1%的显着下降。同样,在CIFAR-100上,8%的数据可以被移除而不影响测试集的准确性。这些发现表明,在神经网络的训练中,存在显着的数据冗余,就像在SVM的训练中一样,可以去除非支持向量数据而不影响模型决策。意义:如果我们能够在开始训练之前确定哪些样本不会被遗忘,那么我们可以通过删除这些数据来节省存储空间和训练时间。误区4:我们需要批量归一化来训练超深残差网络。长期以来,人们一直认为“通过随机初始参数值和梯度下降直接优化监督目标函数(例如,正确分类的对数概率)来训练深度网络不会有很好的表现。”从那以后,出现了许多巧妙的随机初始化方法、激活函数、优化方法,以及残差连接等其他结构创新,以降低用梯度下降训练深度神经网络的难度。但真正的突破来自batchnormalization(以及其他后续的normalization技术)的引入,它通过限制深度网络每一层的激活值规模来缓解梯度消失和爆炸等问题。值得注意的是,在今年的论文FixupInitialization:ResidualLearningWithoutNormalization中,表明可以使用vanillaSGD有效地训练10,000层深度网络,而无需引入任何规范化方法。研究人员在CIFAR-10上比较了使用不同深度残差网络进行一个epoch训练的结果。并且发现虽然标准初始化方法在100层网络上失败了,但是Fixup和batchnormalization在10,000层网络上都成功了。通过理论分析,研究人员证明了“特定神经层的梯度范数有一个随网络深度增加的值作为预期的下界”,即梯度爆炸问题。为了避免这个问题,Fixup的核心思想是使用一个同时依赖于L和m的因子来调整每个L个残差分支上m个神经层的权重。“Fixup能够在CIFAR-10上以高学习率训练一个110层的深度残差网络,得到的测试集性能可与使用批归一化训练的相同结构的网络相媲美。研究人员还进一步展示了可比较的测试结果ImageNet数据集和基于Fixup-based神经网络的英德机器翻译任务,没有任何归一化谣言5:Attention>Convolution在机器学习领域,有一种说法正在被认可,attentionmechanismisabetteralternative重要的是,Vaswani等人指出“可分离卷积的计算成本与自注意力层与逐点前馈层相结合的计算成本相同”。甚至较新的GAN网络也表明自注意力比标准卷积更擅长建模长期、多尺度的依赖关系。在ICLR2019论文PayLessAttentionwithLightweightandDynami中cConvolutions,研究人员质疑self-attention机制参数在长期依赖建模中的有效性和效率。他们说,受自我注意启发而产生的卷积变体的参数效率更高。轻量级卷积是深度可分离的,在时间维度上进行softmax归一化,在通道维度上共享权重,并在每个时间步重用相同的权重(类似于RNN网络)。动态卷积是在每个时间步使用不同权重的轻量级卷积。这些技巧使得轻量级卷积和动态卷积比传统的不可分离卷积效率高出几个数量级。研究人员还证明,这些新的卷积可以在机器翻译、语言建模和抽象摘要等任务中使用相当或更少的参数来匹配或超过基于自我注意的基准。谣言六:图像数据集反映了真实图像在自然界的分布情况。我们可能会认为今天的神经网络在物体识别任务中比真人更有效。这不是真的。他们在ImageNet等精选图像数据集上的表现可能确实优于真人。但对于自然界的真实图像,他们在物体识别方面绝对不可能比正常成年人做得更好。这是因为从当前图像数据集中提取的图像与从整体上从现实世界中提取的图像并不相同,两者的分布也不相同。这是2011年的一篇较旧的论文:UnbiasedLookatDatasetBias,其中,基于12个流行的图像数据集,研究人员试图通过训练分类器来探索给定图像是否来自哪个数据集。存在数据集偏差。随机猜测应该有1/12=8%的时间是正确的,而实验结果的准确率超过75%。研究人员在HOG特征上训练了SVM,发现它在39%的时间内是正确的,这高于随机猜测。今天,如果你用最先进的CNN复制这个实验,你很可能会得到更好的分类器。如果图像数据集确实代表了自然界的真实图像,那么就不可能分辨出特定图像来自哪个数据集。但是数据中存在偏差,这使得每个数据集都可以识别。比如在ImageNet中,“赛车”太多了,不能认为代表了通常意义上的“汽车”的理想概念。研究人员在一个数据集上训练一个分类器,并评估在其他数据集上的性能,以进一步衡量数据集的价值。根据这个指标,LabelMe和ImageNet是偏差最小的数据集,在一篮子货币上的得分为0.58。所有数据集的分数都小于1,表明在其他数据集上训练的模型准确率较低。在没有数据集偏差的理想情况下,应该有一些分数高于1。误区7:显着图是解释神经网络的可靠方法。尽管神经网络通常被认为是黑盒模型,但已经有许多探索来解释它们。显着图或其他类似的为特征或训练样本分配重要性分数的方法是一种非常流行的形式。能够将图像分类为特定类别的基本原理,概括为图像的特定部分在模型的决策过程中所扮演的角色,是一个非常诱人的话题。有几种现有的计算显着图的方法,通常基于神经网络对特定图像的激活,以及在网络中传播的梯度。在AAAI2019的一篇论文《神经网络的解释是脆弱的》中,研究人员表明,可以通过引入难以察觉的扰动来破坏特定图像的显着图。“帝王蝶之所以被归类为帝王蝶,并不是因为翅膀的图案,而是因为背景中有一些不重要的绿叶。”高维图像通常位于深度神经网络建立的决策边界附近,因此容易受到对抗性攻击。对抗性攻击将图像移动到决策边界的另一侧,而对抗性解释攻击将图像沿同一决策区域内的决策边界轮廓移动。为了实现这种攻击,研究人员使用的基本方法是Goodfellow提出的FGSM(快速梯度符号法)方法的变体,这是最早引入的实现有效防御攻击的方法。这也表明其他更新和更复杂的对抗性攻击也可用于攻击神经网络的可解释性。影响:随着深度学习在医学成像等高风险场景中变得越来越普遍,解释神经网络得出的结论变得越来越重要。例如,虽然CNN将MRI图像上的小点识别为恶性癌性肿瘤是一件非常好的事情,但如果它们基于非常弱的解释方法,则不应将其视为理所当然。原文链接:https://crazyoscarchang.github.io/2019/02/16/seven-myths-in-machine-learning-research/【本文为专栏组织《机器之心》原创翻译,微信公众号《机器之心(id:almosthuman2014)》]点此查看本作者更多好文