Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Eric Nalisnick等作者

Diss所有深度生成模型,DeepMind说它们真的不知道到底不知道什么

尽管识别检测等任务在实际中应用广泛,但判别模型真的搞不定未见过的数据。因此很多研究者认为生成模型对输入建立了完整的概率分布,说不定它就可以检测到不在分布内的「新奇」样本,例如在猫狗数据集上训练的生成模型能知道手写数字与训练集不太一样。但近日 DeepMind 发表论文否定了这一观点,他们表示深度生成模型真的不知道它们到底不知道什么。

深度学习在应用层面获得了巨大成功,这些实际应用一般都希望利用判别模型构建条件分布 p(y|x),其中 y 是标签、x 是特征。但这些判别模型无法处理从其他分布中提取的 x,也就是说模型在没见过的数据上表现很差。例如,Louizos 等人表示仅仅旋转 MNIST 数字,模型就会预测错误。

表面上看,避免此类错误预测的方法是训练概率密度模型 p(x; θ)(θ 指参数)来逼近输入的真实分布 p ∗ (x),并拒绝为任何概率密度显著低于 p(x; θ) 的 x 进行预测。但是从直观上来说,判别模型并没有观察到足够的样本以作出可靠的决策,因此它们对异常样本的判断通常都是不准确的。

异常检测是另外一个刺激我们寻求精准概率密度的契机,这一应用导致研究者对深度生成模型的广泛兴趣。深度生成模型有很多种形式,比如变分自编码器生成对抗网络、自回归模型(PixelCNN)和可逆隐变量模型(Glow)。后两类模型尤其吸引研究者的注意力,因为它们提供了对边际似然度(marginal likelihood)的精确计算,且无需近似推断技术。

这篇论文调查了现代深度生成模型是否能够用于异常检测,并期望经过良好训练的模型对训练数据分配的概率密度高于其他数据集。但是,结果并非如此:在 CIFAR-10 数据集上训练模型时,VAE、自回归模型和基于流的生成模型在 SVHN 数据集上分配的概率密度高于训练数据。研究者发现这一观察结果非常令人困惑且并不直观,因为 SVHN 数据集中的数字图像与 CIFAR-10 数据集中的狗、马、卡车等图像视觉差异太大。

研究者继续在基于流的模型上研究这一现象,因为基于流的模型允许计算精确的边际似然度。初始实验表明雅可比行列式的对数项可能是导致 SVHN 高密度的原因,但是研究者发现该现象也适用于常量体积(constant-volume)流的情况。之后研究者介绍了一系列分析,展示了该现象可以从输入分布的方差和模型曲率的角度来解释。此外在实验中,基于流的模型剔除了一些关键实验变量,如常量体积 vs 非常量体积的变换效果。最后,分析结果提供了一些简单却通用的公式,用于量化两个数据集之间的模型概率密度之间的差异。研究者期望能有更多的工作研究深度生成模型在训练分布之外的属性,因为理解模型行为对它们在现实世界中的应用很关键。

论文:DO DEEP GENERATIVE MODELS KNOW WHAT THEY DON'T KNOW?

论文地址:https://arxiv.org/pdf/1810.09136.pdf

摘要:现实世界中部署的神经网络可能需要根据来自不同分布(而不是训练数据)的输入进行预测。许多研究表明,找到或合成神经网络非常自信但错误的输入非常容易。人们普遍认为,生成模型对于这种错误的置信度是鲁棒的,因为建模输入特征的密度可以用来检测新的、不符合分布的输入。在本文中,我们向这一假设发起了挑战。我们发现,来自基于流的模型、VAE 和 PixelCNN 的模型密度无法将普通物体(如狗、卡车和马)的图像(即 CIFAR-10)与门牌号码的图像(即 SVHN)区分开来,当模型在前者上进行训练时,后者的似然度更高。

我们的分析主要集中在基于流的生成模型上,因为它们是通过精确的边际似然性来训练和评估的。我们发现,即使我们将流模型限制为恒定体积转换,这种行为仍然存在。可以对这些转换进行一些理论分析,而且我们表明,这些似然度的差异可以通过数据的位置和差异以及模型曲率来解释,这表明这种行为非常普遍,而不仅仅局限于我们实验中使用的数据集对。我们的结果表明,在足够了解深度生成模型在分布外输入上的行为之前,尽量不要使用模型中的密度估计来识别类似于训练分布的输入。

3 启发性的观察结果

鉴于深度生成模型取得了令人印象深刻的进步,我们尝试测试他们的量化能力,即当输入来自不同的分布而不只是训练集时的分辨能力。这种对分布外数据的校准在安全领域等应用上非常重要,例如我们可以将生成模型当做判别模型来过滤输入。

对于本论文的实验,我们训练了与 Kingma & Dhariwal (2018) 的描述相同的 Glow 架构,只不过模型要小很多,因此我们能使用 1 块 GPU 在 NotMNIST 和 CIFAR-10 上训练模型。我们随后会计算对数似然函数(越高越好)和 BPD(bits-per-dimension,越低越好),这两个度量标准分别在相同维度的不同数据集 MNIST (28 × 28) 和 SVHN (32 × 32 × 3) 上计算得出(测试集)。我们期望模型能给出较低的概率,因为它不是在这两个数据集上训练的。

从 NotMNIST 和 MNIST 数据集开始,下图 1 的左表展示了每一个测试分割的平均 BPD,而模型只在 NotMNIST-Train 上进行训练。而对于 CIFAR-10 和 SVHN,下图 1 的右表展示了在训练数据集上的 BPD(CIFAR10-Train)、分布内的测试数据(CIFAR10-Test)和分布外的测试数据(SVHN-Test)。

图 1:测试分布外属性。对数似然(单位:bits per dimension)是 Glow (Kingma & Dhariwal, 2018) 在 MNIST、NotMNIST、SVHN 和 CIFAR-10 上的结果。

图 2:NotMNIST vs MNIST 和 CIFAR10 vs SVHN 的 Glow 对数似然图示。

图 3:在 CIFAR-10 上训练模型,在 SVHN 上测试模型:PixelCNN 和 VAE 的对数似然结果。所用 VAE 模型见 Rosca et al. (2018)。

4 深入理解基于流的模型

以上我们观察到了 PixelCNN、VAE 和 Glow 在 CIFAR-10 vs SVHN 数据集上的现象,我们现在缩小探索范围,聚焦于可逆生成模型

1.分解变量代换目标

图 4:分解 NVP-Glow 的似然度。该直方图展示了将 Glow 的对数似然分解为 z-分布和体积元的贡献。(a)和(b)展示了 NotMNIST-MNIST 的结果;(c)和(d)展示了 CIFAR-10-SVHN 的结果。

2.体积是罪魁祸首吗?

图 5:CV-Glow 的似然度。我们在 Glow 的常数体积变体上重复了 CIFAR-10 vs SVHN 的实验(仅使用了平移操作)。子图(a)展示了 CIFAR10-训练(黑色)、CIFAR10-测试(蓝色)和 SVHN(红色)的对数似然估计。我们观察到 SVHN 仍然能达到更高的似然度/更低的 BPD。子图(b)报告了训练过程中的 BPD 变化,表明该现象遍及整个训练过程,并且不能通过早停方法消除。

理论Deepmind深度生成模型生成模型
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

判别模型技术

在机器学习领域,有一种分类方法将模型分为判别模型和生成模型(generative model)两种。 判别模型是一种对未知数据y与已知数据x之间关系进行建模的方法,是一种基于概率理论的方法。已知输入变量x,判别模型通过构建条件概率P(y|x)分布预测结果,或试图直接从输入x的空间学习映射到标签{0,1}(如感知器算法)的函数。生成模型则是考虑x与y之间的联合分布。 在实际应用中判别模型非常常见,如:逻辑回归(logistic regression),支持向量机(support vector machine), 提升方法(Boosting),条件随机场(conditional random fields),神经网络(neural network),随机森林(random forests)典型的生成模型则包括:高斯混合模型(Gaussian Mixture Model),隐马尔科夫模型(hidden markov model),简单贝叶斯(naive Bayes)等。不难看出两者的区别。

变分自编码器技术

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

异常检测技术

在数据挖掘中,异常检测(英语:anomaly detection)对不符合预期模式或数据集中其他项目的项目、事件或观测值的识别。 通常异常项目会转变成银行欺诈、结构缺陷、医疗问题、文本错误等类型的问题。 异常也被称为离群值、新奇、噪声、偏差和例外。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

深度生成模型技术

深度生成模型基本都是以某种方式寻找并表达(多变量)数据的概率分布。有基于无向图模型(马尔可夫模型)的联合概率分布模型,另外就是基于有向图模型(贝叶斯模型)的条件概率分布。前者的模型是构建隐含层(latent)和显示层(visible)的联合概率,然后去采样。基于有向图的则是寻找latent和visible之间的条件概率分布,也就是给定一个随机采样的隐含层,模型可以生成数据。 生成模型的训练是一个非监督过程,输入只需要无标签的数据。除了可以生成数据,还可以用于半监督的学习。比如,先利用大量无标签数据训练好模型,然后利用模型去提取数据特征(即从数据层到隐含层的编码过程),之后用数据特征结合标签去训练最终的网络模型。另一种方法是利用生成模型网络中的参数去初始化监督训练中的网络模型,当然,两个模型需要结构一致。

似然函数技术

在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性。 似然函数在统计推断中有重大作用,如在最大似然估计和费雪信息之中的应用等等。“ 似然性”与“或然性”或“概率”意思相近,都是指某种事件发生的可能性,但是在统计学中,“似然性”和“或然性”或“概率”又有明确的区分。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

推荐文章
暂无评论
暂无评论~