作者|人工智能科学与技术评论编辑|骆驼最近在推特和Reddit上出现了激烈的争论。首先,弗朗索瓦·乔勒特、扬·乐村和其他人从远处辨别“什么是深度学习”。后来,大量研究者争论“贝叶斯神经网络是否有意义”在新的一年里,火药的味道很浓。这是否也意味着对深度学习的研究正进入一个混乱的时期?原因,不是歧视不清;没有论证,学习是不清楚的。所谓的贝叶斯神经网络
仅仅是将一般神经网络中的权重和偏差从某个值改变为一个分布。
根据一般理解,这种概率分布形式的参数表达式可以为网络推理提供不确定性估计。此外,通过使用先验概率分布的形式来表示参数并在训练期间计算许多模型的平均值,网络可以具有正则化效果,从而防止过度拟合
大约一个月前,OpenAI研究员卡莱斯·盖拉达发布了一系列推特信息:
。他指出,也许贝叶斯神经网络用处不大。一般的观点是:
1)我们将使用贝叶斯规则只有当有一个合理的参数先验,但没有人知道什么先验将编码神经网络的权重,所以我们为什么要使用这个先验?
2)许多正则化可以用贝叶斯来解释,但事实上每个人都可以给出正则化的解释。用贝叶斯理论解释正则化的意义是什么?
3)有些人可能会说BNNs可以让我们通过经验直接找到正则化。但是谁能保证正则化空间BNNs找到的是最优的呢?贝叶斯网络可以用于贝叶斯元学习框架但是没有理由相信这个应用程序会比其他元学习框架更好。
很快吸引了大量研究人员在推特上加入讨论,以回应卡莱斯的反对。大部分引文是基于历史发展、当前研究、实践经验和其他观点进行辩论的,无论是否得到批准。
1,贝叶斯神经网络有用吗?
为了澄清“贝叶斯网络是无用的”这一立场,最近卡莱斯·格拉达和雅各布·巴克曼重新梳理了他们的思路,并专门写了一篇博客。他们从贝叶斯网络的原理出发,详细阐述了“贝叶斯网络需要富含先验信息的先验知识来处理不确定性”的观点,并指出泛化的代价不可忽视。
1和贝叶斯神经网络具有不确定性的原因:泛化不可知apriori
为了说明apriori在贝叶斯网络中的重要性,Buckman在博客中引入了泛化不可知先验。使用这种“不可知先验”的贝叶斯推理不能减少模型的不确定性卡莱斯和巴克曼认为,如果要将贝叶斯框架用于深度学习,只有将先验知识与神经网络的泛化特性联系起来,才能取得良好的效果,而该方法是给具有良好泛化能力的函数以更高的概率。然而,目前学术界还没有足够的能力(作者猜测)来证明哪种先验情况能够满足条件。
此外,Buckman在他的博客中给出了一个具体的例子:
当一个数据集包含两个数据对时:一个给定输入,输出正确;另一种是给定输入,输出误差通过训练神经网络获得的参数必须使神经网络能够表达正确的输出和错误的输出。
即使模型在数据集上训练后可以获得条件概率,模型在测试集上的表现也可能很差。另外,通过定义一个先验概率,我们可以让,这意味着如果推广性好的函数得到的分布概率与推广性差的函数得到的分布概率相同然而,这个先验是有问题的:因为和数据的概率是1,并且因为先验概率是相似的,这意味着后验概率也是相似的(下面的公式)
注:事实上,对于某些数据,可能会产生错误的输出,即
综上所述,卡莱斯和巴克曼认为,在未知推广的先验条件下,无论数据集如何,模型的不确定性都不能降低。也就是说,贝叶斯神经网络工作的关键因素是它能够先验地区分泛化能力好的函数和泛化能力差的函数。
2,当前贝叶斯网络的泛化能力未知
当构造贝叶斯神经网络时,共识是使用相对简单的概率先验,即假设参数服从独立的高斯分布然而,高斯先验显然导致结构先验,而这些先验没有泛化能力,原因有二:1。高斯先验平滑分布概率2.在训练神经网络时,不管数据集是什么,最合理的策略似乎是给不同的泛化函数以相同的权重
也是一个不能忽略的计算问题。事实上,如何计算贝叶斯推理q(F|D)可能是贝叶斯神经网络(先验泛化不可知)具有合理效果的关键因素
3,理性批判BNNs
Carles和Buckman也在他们的博客中说,上述原因有一个推测成分,因为不可能知道什么因素决定了神经网络的泛化能力,所以执行贝叶斯推理的先验定义是不确定的。
贝叶斯神经网络只是一个神经网络,先验只是其中的一个超级参数卡莱斯和巴克曼认为,目前将贝叶斯加入网络不会带来任何好处。只有当一个好的先验能够被发现,推理的准确性能够被验证时,它才是有帮助的。
此外,他们还提到:作为一个领域,先验在贝叶斯框架中起着重要作用,这是毫无疑问的。因此,贝叶斯网络需要理性的批判,而“无信息的先验在不确定性下是好的”这种愚蠢的观点是不能被允许控制的。
2,反驳与批评:推特和Reddit战场
这个博客同时发布在推特和Reddit上,自然也吸引了两个平台上的反驳之声
1,推特战场:技术错误
在推特上,纽约大学数学和数据科学教授安德鲁·戈登·威尔逊说他们的观点是错误的:
在这个博客中有错误
1年,如果数据来自我们想要拟合的分布,那么随着我们使用的数据的规模增加,可能性将缩小到“好函数”,因为坏函数将越来越少出现,这也与我们的观察一致。
2,可以适应噪声的模型没有什么奇怪的,它也不同于“存在感应偏置,更倾向于选择有噪声的解决方案”在函数之前简单地添加一个标准的通用径向基函数可以支持噪声,但是它在建模结构化解决方案方面仍然更好。
3,对于通常用神经网络解决的问题,好解的数量通常比坏解的数量多。神经网络的结构包含有助于带来更好的泛化的归纳偏差。神经网络功能“与泛化无关”的说法有些不负责任。
4,事实上,在函数空间中创建许多不同的先验“广义不相关”是非常简单的,它们的行为将与神经网络非常不同。它们可以由普通结构组成,当然不会有任何泛化能力。在
5中,缺乏理想的验收后收缩可能发生在以下几种情况下:
假想空间不包含好的解;
个先验对于坏的解决方案过于自信(例如,给任何x分配相同的标签p)
,但神经网络具有很强的表达能力,这里的B情况与“具有模糊权重先验”完全相反!
除了技术讨论之外,我建议双方可以问更多的问题,学习更多的知识,并对贝叶斯深度学习持开放态度。也许你的“贝叶斯神经网络是不合理的”先验太强而无法理解(微笑)
Carles Gelada对此问题的回答是:
如果情况和你所说的一样,那么贝叶斯支持(不是我们的)有责任,特别是当他们声称模型可以提供很好的不确定性时。事实上,我们质疑的原因是,在每个初始值附近都有好的和坏的推广函数,所以他们的说法也是有问题的。
此外,关于“装配受损样品”的讨论不应与“装配噪音”混淆在讨论中,我们假设在分类任务中没有噪声,但是即使对于有噪声的分类任务,我们的观点也是有效的。
一个简单的测试可以表明,目前使用的先验并不是泛化独立的:训练一个好的函数,训练一个坏的函数,然后看看先验是否会给好的函数一个更高的概率。我怀疑事实并非如此,但在这里我需要贝叶斯支持者向我证明他们的先验性是好的。
2,Reddit回复:不够水平+双重标准
Reddit网民的反应更加激烈和情绪化。甚至那些获得最多好评的帖子也包含尖刻的批评和嘲笑
对手论点:
因为博客作者缺乏对贝叶斯推理的真正先验性的理解,我认为这个讨论非常无聊,甚至带有双重标准的味道所有深入学习的研究者(以及作者本人)都接受了神经网络的大规模使用。即使我们没有找到一个明确的泛化边界,我们仍然对神经网络理论知之甚少。但是由于神经网络的工作令人满意,这些问题都被视而不见——神经网络是好的和公正的
然而,现在作者要求贝叶斯神经网络在先验方面提供强有力的理论保证,尽管他们也承认贝叶斯神经网络是有效的...EMMM,你认为这像是小偷哭着抓小偷吗?做深入研究的人可以很好地传播负面评论...特别是
,我认为他们对任意和损坏的测试集c的讨论只是攻击他们自己创建的目标。让我给你解释一下:他们没有给出损坏数据的数量,但是他们声称f_theta在D_test上肯定会表现不好?他们的基础是什么?也就是说,例如,D是由一百万个好的数据点组成的数据集,c是D加上一个损坏的数据点,那么根据他们的理论,D_test上的测试误差肯定会特别差?
他们倾吐了大量的信息,最后只证明了破坏性的训练数据会降低贝叶斯神经网络测试的准确性…呃…那么这有什么奇怪的…
博主回答:
也许我们在博客上写得不够清楚我们考虑具有损坏数据的数据集,并不是说只要有损坏的数据就会有坏的预测性能(特别是在百万分之一的情况下),而是表明在神经网络拟合之后存在具有损坏数据和坏的泛化性能的数据集我们试图解释存在如果先验地给这样一个网络分配一个高概率,贝叶斯推理是没有好处的。
我们的博客不是要表达贝叶斯神经网络的无用性,而是要表达“如果没有好的先验,贝叶斯神经网络就不能带来好的不确定性估计”,“非信息先验的标准讨论方法有问题”,以及“要有好的不确定性估计,我们需要先了解神经网络的泛化”除了
之外,许多其他网友也认为原创博客在讨论态度上有问题。很难把他们的立场称为“冷静的观点”。一些简单的实验可以自己尝试。