证据深度学习:证据回归,回归/拟合任务的不确定性量化方法
证据回归理论旨在通过模型输出预测值及其不确定性,以量化预测的可靠性。传统方法如贝叶斯网络通过引入随机性来估计不确定性,但可能牺牲模型性能。证据回归通过构建新的网络结构,直接输出不确定性向量,并利用最大似然估计来学习似然分布。进一步,通过正态逆伽马分布建模均值和方差的分布,能够量化训练数据不足和自身误差带来的不确定性。最终,模型输出四个证据参数向量,拟合训练集的分布,从而更准确地评估预测的不确定性。
证据回归理论:
首先,对于一般的回归任务(重建属于回归任务),模型的输出为单一的预测值。如下图所示:
其中,x∈Rd,predict∈Rd\mathbf{x} \in \mathbb{R}^{d},\mathbf{predict} \in \mathbb{R}^{d}x∈Rd,predict∈Rd,即模型输入输出都是长度为ddd的向量。而为了量化模型输出的不确定性,我们期待的结果是得到一个长度也为ddd的向量,衡量每个频谱点的不确定性,即uncertainty∈Rd\mathbf{uncertainty} \in \mathbb{R}^{d}uncertainty∈Rd。
为了得到这个uncertainty\mathbf{uncertainty}uncertainty向量,最传统的方法是构造贝叶斯网络,或者近似贝叶斯网络(dropout、模型集成等)。这些方法的特点是,可以令网络的预测结果产生随机性(不同于前向传播为确定性事件的传统神经网络)。有了预测结果的随机性,就有了统计数据。可以通过多次前向传播来获取预测结果的方差,这个方差就可以作为衡量不确定性的uncertainty\mathbf{uncertainty}uncertainty向量。
然而,这些方法都不可避免地以"牺牲模型性能"来"换取不确定性",在我们的应用场景下是不可取的。
而将证据回归稍作改变,可以实现这个目的。
首先,我们要构建一个新的网络结构,使其直接输出uncertainty\mathbf{uncertainty}uncertainty向量,如下图所示:
其中,x∈Rd,predict∈Rd ,uncertainty∈Rd\mathbf{x} \in \mathbb{R}^{d},\mathbf{predict} \in \mathbb{R}^{d}\mathbf{\ },\mathbf{uncertainty} \in \mathbb{R}^{d}x∈Rd,predict∈Rd ,uncertainty∈Rd,即它们都是长度为ddd的向量。而训练集的标签数据也是同样长度的向量,label∈Rd\mathbf{label} \in \mathbb{R}^{d}label∈Rd。
那么为什么能够输出uncertainty\mathbf{uncertainty}uncertainty呢?
在确定性回归的背景下,我们假设我们的训练集label\mathbf{label}label是从均值和方差参数θ=(predict,uncertainty)\mathbf{\theta} = (\mathbf{predict},\mathbf{uncertainty})θ=(predict,uncertainty)的高斯分布中独立提取的。即如图所示:
其中,pnp_{n}pn代表输出向量predict\mathbf{predict}predict中的元素,unu_{n}un代表输出向量uncertainty\mathbf{uncertainty}uncertainty中的元素,lnl_{n}ln代表训练集标签向量label\mathbf{label}label中的元素。
如何让网络学习到似然分布呢?
利用最大似然估计(MLE)的思想,我们的目标是学习一个模型来推断θ\mathbf{\theta}θ,以最大化观察目标label\mathbf{label}label的可能性,具体是通过最小化负对数似然损失函数来实现的:
LNLL=−logp(ln∣pn,un)\mathcal{L}_{NLL} = - \log{p(l_{n}|p_{n}\mathbf{,}u_{n})}LNLL=−logp(ln∣pn,un)
其中p(ln∣pn,un)p(l_{n}|p_{n}\mathbf{,}u_{n})p(ln∣pn,un)是高斯分布N(pn,un)\mathcal{N(}p_{n},u_{n})N(pn,un)的概率密度函数,整理后可得:
LNLL=12log(2πun)+(ln−pn)22un\mathcal{L}_{NLL} = \frac{1}{2}\log{\left( 2\pi u_{n} \right) + \frac{{(l_{n} - p_{n})}^{2}}{2u_{n}}}LNLL=21log(2πun)+2un(ln−pn)2
以上就是,将网络输出建模成训练集的高斯分布,来量化不确定性。但是方法仍具有缺陷,当建模的高斯分布也具有不确定性时,网络不严谨。由此得到的进阶版就是"分布的分布"。
建模得到的高斯分布均值和方差也存在不确定性,也有相应的分布。
而通过统计结果可以发现,均值μ\muμ的分布服从正态分布,方差σ2\sigma^{2}σ2的分布服从逆伽马分布,因此可以构建正态分布与逆伽马分布的联合分布,即正态逆伽马分布:
μ,σ2∼NormalInvGamma(γ,υ,α,β)\mu,\sigma^{2}\sim NormalInvGamma(\gamma,\upsilon,\alpha,\beta)μ,σ2∼NormalInvGamma(γ,υ,α,β)
其中,γ,υ,α,β\gamma,\upsilon,\alpha,\betaγ,υ,α,β为分布参数,并且满足:
μ∼Normal(γ,σ2υ−1)\mu\sim Normal\left( \gamma,\sigma^{2}\upsilon^{- 1} \right)μ∼Normal(γ,σ2υ−1)
σ2∼Γ−1(α,β)\sigma^{2}\sim\Gamma^{- 1}(\alpha,\beta)σ2∼Γ−1(α,β)
其中,Normal(∙)Normal( \bullet )Normal(∙)为正态分布,Γ−1(∙)\Gamma^{- 1}( \bullet )Γ−1(∙)为逆伽马分布。正太逆伽马分布的二维分布如图2所示,可以清晰量化均值和方差的边缘分布。
有了均值和方差的分布,我们就能量化两种来源的不确定性了,其中,"训练数据不足"产生的不确定性体现在均值μ\muμ的分布不集中,"训练数据自身误差"产生的不确定性体现在方差σ2\sigma^{2}σ2的分布不集中。
如图3所示,中间的分布代表了"训练数据自身误差",而右侧的分布则代表"训练数据自身误差"和"训练数据不足"。
因此,对应波谱处理任务,应输出四个向量作为"证据"参数,所以,在前文的基础上,模型结构变成如下形式:
其中,x∈Rd,predict∈Rd ,mu∈Rd ,alpha∈Rd ,beta∈Rd\mathbf{x} \in \mathbb{R}^{d},\mathbf{predict} \in \mathbb{R}^{d}\mathbf{\ },\mathbf{mu} \in \mathbb{R}^{d}\mathbf{\ },\mathbf{alpha} \in \mathbb{R}^{d}\mathbf{\ },\mathbf{beta} \in \mathbb{R}^{d}x∈Rd,predict∈Rd ,mu∈Rd ,alpha∈Rd ,beta∈Rd,即它们都是长度为ddd的向量。而训练集的标签数据也是同样长度的向量,label∈Rd\mathbf{label} \in \mathbb{R}^{d}label∈Rd。模型同上文,可以视作去拟合训练集的每个点的分布,只不过分布变成了正态逆伽马分布(NIG),具体如下:
其中,pnp_{n}pn代表输出向量predict\mathbf{predict}predict中的元素,mnm_{n}mn代表输出向量mu\mathbf{mu}mu中的元素,ana_{n}an代表输出向量alpha\mathbf{alpha}alpha中的元素,bnb_{n}bn代表输出向量beta\mathbf{beta}beta中的元素,lnl_{n}ln代表训练集标签向量label\mathbf{label}label中的元素。
具体建模方式如下。
首先,我们的输出是四组参数向量γ,υ,α,β\mathbf{\gamma},\mathbf{\upsilon},\mathbf{\alpha},\mathbf{\beta}γ,υ,α,β,理应满足:
LNLL−NIG=−logp(ylabel∣γ,υ,α,β)\mathcal{L}_{NLL - NIG} = - \log{p(\mathbf{y}_{label}|\mathbf{\gamma},\mathbf{\upsilon},\mathbf{\alpha},\mathbf{\beta})}LNLL−NIG=−logp(ylabel∣γ,υ,α,β)
证据参数γ,υ,α,β\mathbf{\gamma},\mathbf{\upsilon},\mathbf{\alpha},\mathbf{\beta}γ,υ,α,β无法直接控制ylabel\mathbf{y}_{label}ylabel分布概率(没有这个PDF),但可以通过控制μ,σ2\mathbf{\mu,}\mathbf{\sigma}^{\mathbf{2}}μ,σ2间接控制,即:
KaTeX parse error: Expected '}', got '#' at position 520: …91aa15bd19c.png#̲pic_center) 
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)