龙空技术网

什么是贝叶斯深度学习?

云悦科技 207

前言:

当前大家对“深度神经网络模型和贝叶斯网分别擅长”大概比较珍视,小伙伴们都需要知道一些“深度神经网络模型和贝叶斯网分别擅长”的相关资讯。那么小编在网上汇集了一些有关“深度神经网络模型和贝叶斯网分别擅长””的相关知识,希望看官们能喜欢,姐妹们一起来了解一下吧!

人工智能近期的进展显示,通过构建多层的深度网络,利用大量数据进行学习,可以获得性能的显著提升。目前,以神经网络为主的深度学习技术已经在众多领域获得应用,包括图像识别、人脸识别、自然语言处理等。但是,深度神经网络模型也面临多方面的挑战,其预测结果往往过于乐观,即“不知道自己不知道”。例如,对于分类的神经网络,模型的输出通常是一个“归一化”的向量(概率),使用者常把此概率解释成“置信度”,但实际上它并不能客观地反映不确定性。给定“猫”和“狗”两类训练数据,学习一个分类器,左边为“猫”类,右边为“狗”类。对于一个“无穷远”的测试数据,该分类器会非常“确信”地分为“狗”(或者“猫”)。但实际上,该测试数据已经远离训练集,具有“很高”的不确定性。为了让人工智能系统明确边界,“知道自己不知道”,需要合理地处理不确定性。不确定性一般分为两个方面:

偶然不确定性(aleatoric uncertainty)或数据不确定性。在真实环境下,由于随机噪声、信息缺失等因素,数据存在普遍的不确定性,例如,开放环境下的无人驾驶车辆在路测时会面临路况、交通、行人等各种未知的随机因素。在某些情况下,甚至会出现恶意的噪声,例如,在一张图片中加上少量的对抗噪声,虽然人眼无法察觉视觉效果上的区别,但足以让主流的深度神经网络产生误判。

认知不确定性(epistemic uncertainty)或模型不确定性。现在的模型“体量”越来越大,参数数量动辄达到千万或上亿,近期甚至出现千亿参数的模型(如GPT-3)。对于超大模型,我们需要关注一个问题:训练数据中的有用信息是否足够支持学习一个最优的模型?研究结果表明,数据集中“有用”信息的增长速度通常是远低于线性的。因此,有用信息的增长可能“跟”不上模型体量的增长速度。在这种情况下,会出现多个模型在训练集上表现无异,但在测试集上可能差别很大的现象。认知不确定性描述的是我们对真实模型的“无知”程度,在给定足够多数据时,是可以被消除的。但偶然不确定性是数据中固有的,不会随着数据集增大而减弱。

贝叶斯机器学习为处理不确定性提供了一套严谨的工具。其核心是贝叶斯定理(也称贝叶斯公式)。与传统深度学习仅关注单个模型不同,贝叶斯学习考虑了无穷多个可以拟合训练数据的模型,并基于此做出更精确的不确定性建模。具体来说,贝叶斯公式基于先验分布和似然函数推导出后验分布。先验分布是指在没看到数据之前,对模型不确定性的概率刻画;而似然函数则提供了一个对数据不确定性进行建模和推断的途径。贝叶斯公式充分结合先验分布和经验数据,综合得到模型的后验分布。

贝叶斯定理可以看作是一种信息处理系统,如上图所示,其输入为先验分布和数据似然,输出为模型的后验分布。当我们选择最小化KL散度时,该准则等价于贝叶斯公式。这种基于信息论的解释可以让贝叶斯方法更广泛地得到应用,例如:正则化贝叶斯(RegBayes)通过对一个特定的目标函数进行最优化,并结合适当的约束,得到更加符合学习任务的“后验分布”。RegBayes指导发展了一系列新算法,包括将最大间隔准则与贝叶斯推断融合、将专家知识(如一阶谓词逻辑表示的知识)融入到贝叶斯推断中等。

贝叶斯学习模型

传统的贝叶斯模型一般结构比较简单,变量之间的依赖关系比较明确。结合深度神经网络的进展,贝叶斯深度学习致力于将贝叶斯不确定性建模与深度神经网络的函数拟合能力相结合,充分发挥二者的互补优势,弥补单一深度神经网络存在的一些局限。

贝叶斯方法和神经网络的“联姻”由来已久,至少可以追溯到上世纪90年代。当时面临的困难和主要问题是数据缺乏和计算能力有限,很多神经网络的结构非常浅,深度模型很容易过拟合。早期探索的主要目的是希望对神经网络进行贝叶斯计算,或者利用贝叶斯方法选择合适的网络结构,克服过拟合,这种模型被称为贝叶斯神经网络(Bayesian neural networks)。其在预测时对后验分布的“无穷”多个模型进行“平均”。

在深度学习时代,随着神经网络变得越来越深,仍然可以到处看到贝叶斯方法的身影。例如,Dropout是一种简单有效的训练技巧,在每轮迭代时,随机丢掉一些权重,对保留的权重进行更新,这种策略被证明是行之有效的。但在辛顿最早提出Dropout的时候,并没有解释Dropout背后的原理。后来的研究发现,Dropout实际上是一个近似的贝叶斯神经网络。基于这种理解,可以通过多次采样,推导出更准确估计预测置信度的方法,称为MC-Dropout。

神经网络的结构搜索是近期很受关注的一个方向。10年前就有学者研究如何用贝叶斯方法随机生成神经网络的结构。具体地,该方法通过定义一个非参数化贝叶斯先验,刻画深度神经网络的结构(包括神经网络的层数、每一层神经元的个数、相邻层神经元之间的连接方式,甚至每个神经元的响应类型等),给定有限的训练数据,通过贝叶斯公式推断出后验分布,该后验分布描述了适合训练数据的各种可能的神经网络结构。当然,该方法也不完美,当时受限于算力和算法,只能学习相对浅层的网络结构。近期的一些研究进展在一定程度上克服了这个问题。

除了将贝叶斯方法用于深度神经网络,贝叶斯深度学习还包括另外一个重要的内容——将深度神经网络当作强大的函数拟合器,用于贝叶斯模型。这方面的工作也称为深度贝叶斯学习(Deep Bayesian Learning),近期的典型研究进展为深度生成模型:一个简单的隐变量(如均匀分布或标准高斯分布)经过适当的函数变换之后,可以建模复杂的数据分布。在实际应用中,我们能拿到的是训练数据,因此,需要“逆向工程”得到对应的变换函数。当我们不清楚变换函数的形式时,可以利用深度神经网络来定义一个可行解的集合,通过无监督训练得到(近似)最优的网络。这种方法被证明非常有效,可以将简单随机变量输入神经网络进行变换,然后得到信息丰富的图片,在表示学习和半监督学习等领域也有广泛的应用。

机器学习领域对深度生成模型有深入、系统的研究,可分为显式模型和隐式模型两类。显式的模型对数据产生的过程有明确的概率函数刻画,典型的例子包括变分自编码器(VAE)和基于可逆变换的流(flow)模型。隐式的模型不关心概率密度函数的形式,只关心样本产生的过程,例如生成对抗网络(GAN)就是一个典型的隐式模型。

标签: #深度神经网络模型和贝叶斯网分别擅长