이 논문의 출발점은 저널 기사이지만,이 기사는에 초점을 맞추고 원칙과 프로세스의 추정의 불확실성 문헌 다른의 이전 보고서의 문구와 함께.
독창적 인
Bhattacharyya A, 프리츠 M, B 쉴레. 장기 온 - 보드 불확실성 [J]에서 교통 장면에있는 사람들의 예측. 2017.
원래 중요한 참조 문서
켄달 A, 갈 Y. 무엇 불확실성 우리는 컴퓨터 비전에 대한 베이지안 깊은 학습? [J]에 필요합니까. 2017.
주요 단어와 기본 개념 :
각 차량, 보행자 예측 블록인지 불확실성 기회 샘플링 불확실성 및 베르누이 분포 왜곡 추정 강하 몬테카를로 통합, 베이 즈 정리와 베이 즈 추론, 베이지안 네트워크
최근에 읽은 "장기가 온보드 불확실성에서 교통 장면에있는 사람들의 예측",이 논문에서 제시 기능 모델 보행자 프레임 위치를 예측하기 위해 차를 이동의 관점을 기반으로, 동시에 불확실성의 두 가지 유형을 평가 할 수 있습니다 (모델 불확실성 불확실성 데이터).
신경 네트워크의 추정의 불확실성 에 대한 지식은 더 확률 이론, 이론에서 응용 프로그램으로 변환도 대략적인 추정치를 사용하여 문제가 관련되어, 그래서 더 작은 도전을 가져 없었다 지식의이 부분과의 초기 접촉을 포함한다. 탐험의 몇 일 후, 또는 많은 세부 사항은 아직 이론적 인 추론의 하단에 도착하지 않은 있지만, 우회를 많이 가지고 있지만, 불확실성을 추정하기 위해 베이지안 신경망에 의한 원칙과 프로세스를 찾을 수 있습니다. 당신은 신경 네트워크의 원래 함수의 추정 증가 불확실성 것을 발견 할 것이다 구조의 변화에서가 (단지 등 기능, 드롭 아웃 층, 출력의 손실의 일부를 기존 수정) 매우 단순하게 보이지만, 뒤에 엄격한 수학적 논리가있다 드라이브.
![](https://img2018.cnblogs.com/blog/1616500/201909/1616500-20190901103556207-1086992381.png)
그것은 이론적 근거를 설명
불확실성 개의 카테고리로 분류되어 있지만, 다른 하나는 데이터의 불확실성이고, 모델의 불확실성이고, 다른 목적은 두 개의 비 불확실성 위치한다. 모델 (분배주의)의 예측 결과를 사용하여 배포, 그것은 측정 불확도의 수단이 될 수 있습니다.
훈련 데이터 모델 자체 주어진 경우의 모델에 의해 생성 된 예측 모델 (즉 불확실성에 의해 측정) 사후 분포를 갖는다. 베이 즈의 정리에 의해 예측 모델의 분포를 얻기 위해, 사후 분포 모델 (상태 변수 분포의 영향을 제거하기위한, 주 변화) 변화된 필요는 없다.
이상적인 수준에서 분포의 주 변화를 예측하는 최종 배포 모델의 적분 형태를 얻기 위해 모든 모델을 소모하지만, 때문에 네트워크의 깊이의 복잡성의 실제 수준은, 거기에 두 가지 측면 비현실적인 - 추상적 인 및 통합 운영 모델을 나타내고 , 착륙, 응용 프로그램에 대신 샘플링 분리 조작에 의해 최적의 "적분은"(최종적으로 우리가 예측의 분포에 대한 자세한 설명을 필요로하지 않기 때문에, 단지 차이는 샘플링 방법에 기초하고있다하는 분산 계산 입증 강하).
이상적인 유통 모델은 샘플링 요구 사항을 충족 할 수없는, 따라서 대략적인 유통 모델의 샘플링 분포를 도입 할 필요가 새로 도입 분포가 많은 매개 변수에 의해 결정되는 매개 변수를 조정해야합니다 원래 모델 분포를 근사하기 위해, 방법은 최소한의 목적 함수를 최적화하는 클리어 명령으로 우연히 원래의 근사 분포 발산 지표 KL 분포. 따라서, 예측 분포를 해결 + 전환 샘플 (다시 전파하여) 동작의 실제에 최적화 이론으로부터 소외 동작을 달성했다.
모델 사양
이 절에서는 나중에 표준 불확실성 추론 식 및 기반을 구축하기 위해 설계 모델 프레임 워크 저널 기사에 대해 설명합니다.
모델 소개
차량은 제 차량 주행 (속도 및 조향각)이고, 두 가지 중요한 측면 중 하나 보행자 추적을 고려 보행자 시각의 궤도를 예측한다. 이 모델에 대한 책임 흐름의 이러한 두 가지 측면의 두 시퀀스 기능을 위해 특별히 디자인 :
- 예측 주행 유량 : 모델도의 하단부는 전체적으로 매우 통상적 인 seq2seq 구조이다. 공지 및 주행 정보 형성된 특징 벡터로 시각 정보로 인코딩 \ ([VIS V_ {}, {V_ ODO}] \) , 그리고 주행 정보의 예측을 형성하는 디코더에 의해 디코딩.
- 예측 블록 보행자 유량 : 모델도 상부 전체적인 프레임 구조로부터는 seq2seq이지만, 많은 변경 사항 베이지안 신경망 될. 인코더가 내장 보행자 프레임 정보 및 주행 정보의 형성을 통해 인코딩 \ (V_ {BBOX} \) 보행자에게 프레임 예측 데이터를 제공하는 특징 벡터 각 스텝 입력 [특징 벡터의 주행 흐름 예측 주행]을위한 디코더 분산 불확실성은 (우리가 필요로하는 데이터가 불확실성의 불확실성 정도의 부분 참고).
![](https://img2018.cnblogs.com/blog/1616500/201909/1616500-20190901103607609-48936595.png)
명세서
주행 : \ (^ O T (S T ^ D ^ T)는 \ =) 속도 및 스티어링 각도를 나타내고, \을 (O_p는 = O을 TM이 ^ {}, ..., {T}는 ^ O) (] \) 대표 공지 된 주행 정보 \ (O_f = [T O +. ^ {1}, ..., {T + N-O} ^] \) 예측 유동 주행 거리계를 나타낸다.
보행자 박스 : \ (B_i ^ T = \ {(X_ {TL} Y_ {TL}) (X_ {BR} Y_ {BR}) \} \) \ (B_p = B_i ^ {(TM)}, ... b_i ^ {T}를] \) 공지 보행자 정보 블록을 나타내고 (\ b_f = T + B_i. 1 ^ {}, ..., {T + N-B_i ^을}] \) 예측 보행자를 나타낸다 상자. 또한,이 \ (\ sigma_x, \ sigma_y \) , 가우시안 분포에 의해 설립 된이 가정에 (나중에 설명 할 것이다)이 관찰 된 잡음 모델
预测分布:最终所求不确定性所依赖的预测分布具体指的就是\(B_f\)的后验分布。
\(B_f\)是行人框预测流输入\(B_p,O_p,O_f\)所产生的,因此\(B_f\)的后验分布可以写成:
\[p(B_f|B_p,O_p,O_f)\]
当然,若考虑由数据库真值\(\{X,Y\}\)推断出模型的概率分布\(p(f|X,Y)\)(f是模型),\(B_f\)的后验分布更准确地写成:
\[p(B_f|B_p,O_p,O_f,X,Y)\]
不确定性估计
不确定性分类
在贝叶斯模型中,有两类主要的不确定性:模型不确定性和数据不确定性。
- 模型不确定性(又称认知不确定性,epistemic uncertainty):
- 主要代表模型参数的不确定性,这种不确定常常来自于我们对收集的用于训练数据的无知(Ignorance),例如当数据集中缺乏某类数据时,模型中对应处理这种场景的参数的不确定性就变大了,结果就是,如果测试时给一个这类的数据,模型表现可能很差。
- 模型不确定性在现有诸多的深度神经网络中都没有被考虑,因为推理预测的后验分布过于困难,变分推理(Variational Inference)是一种流行的方法,其目的在于使用已有的数据样本,驱动简化版的分布去拟合真实的后验分布,而这个拟合指标通过变换某些无法求出的分布,从而变得可以计算。Gal等人发表的论文显示,在神经网络上的带dropout训练过程可被理解为以Bernoulli为假设分布的变分分布拟合过程。(当然,若要达到拟合效果,损失函数等结构都要调整,这篇文章也正是基于此。)
- 模型不确定性可以被消除:通过增大数据集。
- 数据不确定性(又称偶然不确定性,aleatoric uncertainty):
- 数据不确定性主要是观测噪音,如传感器噪音或者动作噪音。数据不确定相较模型不确定性在神经网络运用更多,通过分析输出的分布,可以评估该类不确定性。例如之前提到的Social LSTM模型,输出是二维位置高斯分布的五个参数\((\mu_1, \mu_2,\sigma_1,\sigma_2,\rho)\),通过预测这五个参数就反映了数据不确定性。
- 数据不确定性不可以被消除。
- 文章的一篇重要引文用了”formalize“来表示对于这两类不确定性的定义:模型不确定制定在参数的分布上,通过先验分布预设模型,在给予一些训练数据后观察这个分布的变化;数据不确定性制定在输出的分布上,通过分析不同输入对应输出的方差。根据笔者来看,文章最终在估计这两类不确定性时,只有数据不确定性按定义来的,模型不确定性的估计文章通过Gal. 等人的结论成功转移到了估计输出分布上。
下图是一个逐像素级别的不确定度估计,应用场景是CV常见的semantic segmentation。
![](https://img2018.cnblogs.com/blog/1616500/201909/1616500-20190901103650881-293373533.png)
不确定性估计的过程(结合本文情景)
根据之前不确定性的分类介绍,我们也可以大致感受到需要重点考虑的模型不确定性,因此文章中也花大篇幅来讲这个方面。
模型不确定性
Part1 - 用简化分布拟合真实模型分布
模型不确定性可通过模型的预测分布来求得,具体来说就是预测分布的方差。要得到预测结果的后验分布,由贝叶斯定理,我们可以这样求出:
\[p(B_f|B_p,O_p,O_f,X,Y) = \int p(B_f|B_p,O_f,O_p,f)p(f|X,Y)df\]
这其实就是考虑模型\(f\)的所有情况,而后将\(f\)的每种情况经\(\{X,Y\}\)推理出的后效概率乘以在该情况下预测的分布,将所有情况累加起来就是预测分布。
但是,理论很丰满,现实很骨感,看看这个式子就知道实际操作是不现实的,主要有\(f\)代表的模型表述抽象和积分操作难达成两个方面的问题。因此,在实际操作时模型做了简化:
简化一 - 将抽象的模型\(f\)用模型中有限的参数\(w\)表示:
\[p(B_f|B_p,O_p,O_f,X,Y)=\int p(B_f|B_p,O_f,O_p,w)p(w|X,Y)dw\]
简化二(基于简化一) - 将不可求的\(p(w|X,Y)\)分布用简化的伯努利分布\(q(w)\)代替,使得dropout采样操作能够顺利进行(采样稍后要用到,本质是用离散的数据点去近似求积分):
\[p(B_f|B_p,O_p,O_f)=\int p(B_f|B_p,O_p,O_f,w)q(w)dw\]
*由于\(\{X,Y\}\)实际上是笼统指代,在实际问题中\(X={B_p,O_p,O_f},Y={B_f}\),因此最后写成的条件概率表达式也省略了这个部分。
- 注1:简化一的结果中,$p(w|X,Y)={p(Y|X,w)p(w) \over p(Y|X)} \(,但是\)p(Y|X)$是不能得到的,因此须用简单分布拟合。
- 注2:伯努利变换分布的定义式为\(q(W_k)=M_k \centerdot diag([z_{i,j}]^{C_k}_{j=1})\),左边是近似分布\(q(w)\)的所有可变参数形成的矩阵,右边是个仅有0,1的对角阵(由伯努利二元分布生成)。两者做矩阵乘法,相当于以伯努利分布的将矩阵中的某些列置零。
Question - 为什么采用伯努利分布?
如果再仔细观察一下\(q(W_k)=M_k \centerdot diag([z_{i,j}]^{C_k}_{j=1})\)这个定义的简单分布,若将\(M_k\)等价于模型中原有的权重矩阵,那么这个分布在采样(sample,在连续的分布上采样,从而产生样本点)实际上和机器学习中流行的dropout层概念是一致的,将某列指令表示将该神经元失活。
事实上,当把这个分布落实到本文中RNN的Encoder和Decoder上时,这是这样操作的。
Part2 - 仅需预测分布的方差?用采样替代积分吧!
Part1中的预测分布经多次简化后最后得到式子如下:
\[p(B_f|B_p,O_p,O_f)=\int p(B_f|B_p,O_p,O_f,w)q(w)dw\]
可以看到,公式中还是存在积分运算,要实际使用还是有困难。不过,我们获取预测分布的目的是用分布方差代表模型不确定,要估计方差不需要大费周章地用积分把整个分布求出来,仅需采样一定规模的样本点就可以估计。
\(p(B_f|B_p,O_p,O_f)\)的具体采样过程:在伯努利分布的\(q(w)\)采样得到\(w\)的样本\(w^t\),再用\(w^t\)所代表的模型生成预测\(b^t\),\(b^t\)即为预测分布的一个采样样本点。因此对预测分布的采样是通过对\(q(w)\)采样间接实现的。(合理性在总结部分有说明原因)
假设采样了T次,最终预测分布的方差:
\[Var(epistemic)={1 \over T}({\Sigma^T_{i=1}(\hat b_i^t)^T \hat b_i^t - {1 \over T}(\Sigma^T_{i=1}(\hat b_i^t)^T)(\Sigma^T_{i=1}\hat b_i^t))}\]
用方差代表不确定度对模型进行评估已经属于训练后的测试阶段,是\(q(w)\)中参数已经优化好后的行为(因为这样才能代表原始的\(p(f|X,Y)\))。
而在伯努利分布上采样其实就是dropout操作,但此时dropout是在测试阶段使用的,并且目的与传统的防止过拟合也不同了。
Part3 - 简化分布中参数的优化
Part1中定义的伯努利变换\(q(w)\)是具有参数的,参数恰当,\(q( w)\)才能是\(p(w|X,Y)\)的恰当估计。因此我们还需要根据评价指标对其中的可变参数\(M_k\)进行优化,KL散度是评价真实分布和拟合分布相关性的指标,当完全拟合时为零。
文章中对KL散度进行了演算,最后得到的右边部分(演算过程我没有深究):
\[KL(q(w)||p(w|X,Y))\ \propto KL(q(w)||p(w)) - \Sigma_t\int q(w)log(b_t^{t+n}|b_t^{t+n-1},B_p,O_p,O_f,w)dw\]
*\(\propto\)代表成比例,演算将原KL散度转换成了两部分:\(q(w)\)与先验分布的散度、与数据有关的负似然部分。
如果我们将KL散度推导式作为目标函数进行神经网络训练,那么在右边部分我们还是可以看到有对\(w\)的积分,在实现时,我们使用蒙特卡洛积分替代原有积分,其本质也就是以一定策略根据多次对\(w\)采样估计出积分的大小。同时我们假设模型预测噪音呈现4-D的高斯分布,\(N(b_i^t,\Sigma_i^t)\)(其中\(\Sigma_i^t\)是\(diag(\sigma_x^t,\sigma_y^t,\sigma_x^t,\sigma_y^t)\)的对角矩阵)。
KL推导式负似然对数部分:通过解析模型输出得到高斯分布的参数\((b_i^t,\Sigma_i^t)\),使用PDF算法就可以求出(log和PDF公式中的e指数抵消了)。
KL推导式函数的KL散度部分:当权重参数的先验分布是均值为0的高斯分布时,KL散度恰好对应就是L2正则化。
相比KL推导式,目标函数新增的:\(log(\hat \sigma_i^2)\)这部分是新提出的,为了防止模型把方差\(\Sigma_i\)弄得巨大以至于负似然对数部分的损失变为0了。
针对本文的实际场景,最终模型的优化目标就是:
\[Loss = {1 \over 4N}\Sigma^N_i \Sigma^n_j||\hat b_i^{t+j}-b_i^{t+j}||^2_2(\hat \Sigma _i^{t+j})^{-2}+\lambda \Sigma_W||W_k||_2+log(\hat \sigma_i^2)\]
参数优化属于训练部分,而估计积分大小时对\(w\)进行了采样,采样操作其实又dropout操作,但此时dropout的目的不在于防止过拟合,而是采样。
Question - Dropout 辨析
至此,本文模型中对于dropout操作的辨析有两个方面:
- 测试阶段和训练阶段dropout均要使用,目的是对模型参数的伯努利分布进行采样,但是训练是为了蒙特卡洛积分以估计连续积分,而测试是估计模型不确定性。
- 本文两处使用dropout的目的与传统避免过拟合的目的是不同的。
数据不确定性
相比模型,数据不确定性的估计在神经网络中见得更多(例如Social LSTM的二维高斯分布假设),本文也沿用这样的方式,假设RNN解码器输出的数据满足4-D高斯分布,通过解析这些数据得到高斯分布的参数\(N(b_i^t,\Sigma_i^t)\)(和上文所假设的一致),那么数据不确定性就可被视作:
\[Var(Aleatoric)={1 \over T}((\Sigma^T_{i=1}(\hat \sigma_i^t)_x+\Sigma_{i=1}^T(\hat \sigma_i^t)_y)\]
*T是在估测模型不确定性时的采样次数
与模型不确定性的评估方式不同,我们是直接让模型输出数据不确定性,而不是分析同一组输入经多个模型样本得到的输出的统计性质。
Question - 方差预测并没有对应的label进行监督,在训练时又是如何引导模型正确估计方差的呢?
请看上文中的Loss函数定义,与输出方差有关的有:\((\hat \Sigma_i^{i+j})^{-2}\)和\(log(\hat \sigma_i^2)\)。现在不妨将其方差的意义抹去,只看做输出的一个参数:
- 首先,上述该参数有关的两部分互相牵制,限制参数在一个合理区间上(不会过大或过小)。
- 其次,\((\hat \Sigma_i^{i+j})^{-2}\)要实现的功能是令Loss函数加重对某些性质数据的关注,同时减小对某些性质数据的关注,从认知角度上来说,置信度高(噪音低)的更应该被关注,因为这样使得Loss函数对噪音更优抵抗力,因此该参数被训练成表示噪音高低,这恰好与方差的意义对应上了。
*上述这些在论文中都是在实验完成后基于概率论理论进行的后验解释。
不确定性合计
\[Var = Var(epistemic) + Var(Aleatoric)\]
由不确定性的计算:通过输入含有观测噪音的数据,透过在模型分布上多次采样得到的模型样本,得到输出的样本,这些样本所在的分布主要由数据和模型分布所决定的,通过分析样本分布的特点,就综合得到了数据和模型的分布特点,进而得到两类不确定性。
总结与心得体会
阅读了部分参考文献,看了许多与贝叶斯网络和概率论相关的博客,感觉对文章中一些理论理解还是比较模糊,主要还是由于这个方面的基础知识比较欠缺,许多概念和约定意义都不了解。不过,现阶段对“不确定性”估计还是有些体会(也许是错误的),写在这里:
不确定性-犯罪者?受害者?伤害评定?:
- 造成两种不确定性的根本来源都是数据,一种靠大数据可以被消除,另一种不可被消除。
- 两种不确定性所存在的对象(受害者)是不同的,偶然不确定性存在对象是数据本身(由观察限制导致的噪音),认知不确定性存在的对象是模型的参数。
- 要得到最准确不确定性的方式就是评估不确定性所在的对象本身(模型/输入数据),但从现实情况看,这种理想方式是不可行的,因此,选择从其他方面进行评定:Gal and Ghahramani 在2016年证明如果在推理时(也就是训练之后)打开dropout并进行相关操作,就可以充当认知不确定性测量工具;对于偶然不确定性,我们通过观察不同输入对应的输出分布进行判断,令模型自主习得方差的估计。
贝叶斯神经网络:传统意义上的神经网络中,我们研究的是权重的值,并根据训练数据\(\{X,Y\}\)进行优化;而在贝叶斯神经网络中,我们研究的是权重的分布,一个贝叶斯网络可以被等价视为无限个同结构的传统神经网络,并且伴随着由\(\{X,Y\}\)所决定的概率分布。
本文行人框流模型的实质:一个带有dropout层的贝叶斯神经网络框架,实现从输入数据到行人框、方差(偶然不确定性)的映射功能,并完成认知不确定性的近似。
神经网络的两类优化目标:根据是否了解神经网络参数有的先验概率,我们将神经网络优化策略分为Maximize Likelihood Estimation(最大化似然估计)和Maximize Aposteriori Estimation(最大化后验概率估计)。可以形象地理解为,在优化参数时,MLS将力求做到对于训练数据中的\(\{X,Y\}\),输入X模型将力求输出为Y的概率为最大,而MAP除了考虑数据以外,其还要考虑参数的先验分布;MLS纯粹地数据依赖性使得在你不清楚模型在做什么的情况下都能做出预测结果,但是弊端很明显在于数据的质量,例如小样本的投硬币实验很可能使得模型对投硬币概率做出错误的估计。
\(KL(q(w)||p(w|X,Y))\)通用化简过程:
友情链接:重要的学习资料。同时,在学习过程中走了不少弯路,但觉得有些弯路还是值得记下来以备后续使用的。
- 不确定性类别介绍 - 评估方法 - 推荐系统应用 Taboola工程师博客三连发:
- 概率论基础概念博客系列 - “极大似然估计” :链接
- 概率论基础概念博客系列 - “贝叶斯推理”:链接
- 概率论基础概念博客系列 - “边缘化”:链接
- SegNet——一个用dropout采样模型分布计算语义分割不确定度的经典模型:链接
- 如何使用dropout预测不确定的实操过程:链接
- 变分推断(Variational Inference)——用简单分布逼近真实分布的数学推导:链接
说在最后,本文是笔者第一次接触贝叶斯网络与相关的概率论知识,纵使查阅诸多资料,但短时间内对该部分内容掌握通透还是不现实,文中也可能存在一些错误和理解偏差,敬请读者阅读时多加留意和思考,也欢迎指出文章中的问题。