模型校准方法介绍

模型校准

在神经网络模型的应用中经常遇到指定准确率或者召回率的情况,大家都希望可以不调整模型,只调整阈值就满足指定准确率或者召回率,但是有时调整阈值时可以发现,当我们把阈值从0.5调整为0.6,0.7,0.8,0.9时,会发现模型准确率提高并没有按照线性提升。探查结果分布可以发现,模型的置信概率多分布在[0,0.1],[0.9,1]范围内,这种情况被称之为模型过度自信。随着模型复杂度的增加,模型的过度自信现象也会越发明显。

因此本文中的模型校准是指将模型的预测概率和真实置信度之间的差距缩小,并不会改变模型本身的精度,只是会使其更容易使用。下面会介绍几种模型校准方法,将模型的置信度和准确率之间的偏差缩小。

校准二分类模型

我们先介绍下使用校准二分类(标签结果 y i ∈ { 0 , 1 } y_i\in \{0,1\} yi{0,1})方法的背景,为了简单,我们默认模型的输出是正例的置信概率,由此我们可以使用下列方式表示整个模型。 x i x_i xi表示输入的第i个样本, p i p_i pi表示模型预测 x i x_i xi结果y=1的预测概率, z i z_i zi表示模型根据输入得到的非概率输出或logit。预测概率可以通过 p i = σ ( z i ) p_i=\sigma(z_i) pi=σ(zi)得到。二分类校准就是使用 y i , p i , z i y_i,p_i,z_i yi,pi,zi来得到校准概率 q i q_i qi。下面我们介绍下几种常用的二分类校准方法。

Histogram binning

将未经校准的预测概率 p i p_i pi分配到M个箱体中 ( B 1 , B 2 , . . . , B M ) (B_1,B_2,...,B_M) (B1,B2,...,BM),每个箱体具有相同的长度间隔或具有相同的采样点数目。每个箱体分配一个校准后的得分 θ m \theta_m θm.在测试时,如果预测概率 p i p_i pi落入到箱体 B M B_M BM中,则校正概率 p i p_i pi θ m \theta_m θm.

每个箱体的校准得分 θ i \theta_i θi通过最小化如下公式得到:
min ⁡ θ 1 , . . . , θ M ∑ m = 1 M ∑ i = 1 n I ( a m ≤ p i < a m + 1 ) ( θ m − y i ) 2 \min\limits_{\theta_1,...,\theta_M}\sum^M_{m=1}\sum^n_{i=1}\mathbb{I}(a_m\leq p_i<a_{m+1})(\theta_m-y_i)^2 θ1,...,θMminm=1Mi=1nI(ampi<am+1)(θmyi)2
上式中 I \mathbb{I} I表示指示函数, p i p_i pi为模型预测概率, θ m \theta_m θm为校准得分, y i y_i yi为真实结果。

Isotonic regression

此方法可以视为Histogram binning的推广,在Histogram binning中使用固定的箱体边界,而在此处,优化函数为箱体边界和校正得分联合最小化。
min ⁡ M θ 1 , . . . , θ M a 1 , . . . , a M + 1 ∑ m = 1 M ∑ i = 1 n I ( a m ≤ p i < a m + 1 ) ( θ m − y i ) 2 \min_{\substack{M\\ \theta_1,...,\theta_M\\a_1,...,a_{M+1}}} \sum_{m=1}^M\sum^n_{i=1}\mathbb{I}(a_m\leq p_i<a_{m+1})(\theta_m-y_i)^2 Mθ1,...,θMa1,...,aM+1minm=1Mi=1nI(ampi<am+1)(θmyi)2
其中 0 = a 1 ≤ a 2 ≤ . . . ≤ a M + 1 = 1 , θ 1 ≤ θ 2 ≤ . . . ≤ θ M 0=a_1\leq a_2\leq...\leq a_{M+1}=1,\theta_1\leq\theta_2\leq...\leq \theta_M 0=a1a2...aM+1=1,θ1θ2...θM,M是箱体个数, a 1 , a 2 . . . a M + 1 a_1, a_2...a_{M+1} a1,a2...aM+1是箱体边界, θ 1 , . . . , θ M \theta_1,...,\theta_M θ1,...,θM代表函数值。

Platt scaling

和前面介绍的几种方法不同,Platt scaling方法是一种参数化方法,在本方法中引入了参数a和b。通过在验证集上使用NLL loss学习参数a和b,我们可以得到经过校准后的概率输出 q i = σ ( a z i + b ) q_i=\sigma(az_i+b) qi=σ(azi+b) σ \sigma σ为sigmoid激活函数, z i z_i zi是神经网络中的非线性输出或logit。

NLL全称为Negative log likelihood,在Bengio 2015年的Deep Learning中被叫做交叉熵。给定一个概率模型 π ^ ( Y ∣ X ) \hat{\pi}(Y|X) π^(YX)和n个样本,我们可以使用如下公式定义NLL:
L = − ∑ i = 1 n log ⁡ ( π ^ ( y i ∣ x i ) ) L=-\sum_{i=1}^n\log(\hat{\pi}(y_i|x_i)) L=i=1nlog(π^(yixi))

多分类模型扩展

对于 K ≥ 2 K\geq 2 K2的多分类模型,我们仍可以和二分类中介绍一样,将样本 x i x_i xi输入模型得到一个预测得分 p i p_i pi。因为二分类中我们默认预测得分 p i p_i pi是预测正例的概率,所以类别会默认为 y = 1 y=1 y=1,但在 k ≥ 2 k\geq2 k2的多分类中会需要额外预测类别 y ^ i \hat y_i y^i.在这种情况下, z i z_i zi从标量变成一个向量, y ^ i \hat y_i y^i可以通过 y ^ i = a r g m a x i = 1 k ( z i ( k ) ) \hat y_i=argmax_{i=1}^k(z_i^{(k)}) y^i=argmaxi=1k(zi(k))得到,同时计算 p i p_i pi的激活函数也调整为softmax:
σ S M ( z i ( k ) ) = exp ⁡ ( z i ( k ) ) ∑ j = 1 K exp ⁡ ( z i ( j ) ) , p i = m a x    σ S M ( z i ( k ) ) \sigma_{SM}(z_i^{(k)})=\frac{\exp(z_i^{(k)})}{\sum_{j=1}^K\exp(z_i^{(j)})},\\ p_i=max\ \ \sigma_{SM}(z_i^{(k)}) σSM(zi(k))=j=1Kexp(zi(j))exp(zi(k)),pi=max  σSM(zi(k))

因此多分类校准就是使用 p i , y i , y ^ i 和 z i p_i,y_i,\hat y_i和z_i pi,yi,y^izi来得到经过校准的概率 q i q_i qi以及可能变化的类别预测 y ^ i ′ \hat y_i' y^i

Extension of binning methods

在上文提到的Histogram binning、Isotonic regression、Bayesian Binning into Quantiles想要扩展到多分类模型使用,一种直观的思路是将k分类问题转换为k个 k i    v s    k j ≠ i k_i \ \ vs\ \ k_{j\neq i} ki  vs  kj=i的二分类问题,即认为正例标签是 k i k_i ki,其他标签均为负例,由此得到关于标签 k i k_i ki的二分类概率校准。通过这种方式我们可以得到k个校准模型,每个模型都是针对特定类别的校准模型。在测试时,我们会得到一个校准概率的向量 [ q i ( 1 ) , . . . , q i ( K ) ] [q_i^{(1)},...,q_i^{(K)}] [qi(1),...,qi(K)], q i ( k ) q_i^{(k)} qi(k)是针对类别k校准得到的校准概率。新的类别 y ^ i ′ \hat y_i' y^i预测为这个校准向量 [ q i ( 1 ) , . . . , q i ( k ) ] [q_i^{(1)},...,q_i^{(k)}] [qi(1),...,qi(k)]中最大值所对应的类别,新的校准概率 q i q_i qi为其中最大值除以 ∑ k = 1 K q i ( k ) \sum_{k=1}^Kq_i^{(k)} k=1Kqi(k)

Matrix and vector scaling

上一小节我们没有提到Platt scaling,这里我们介绍下Platt scaling的多分类扩展方法。类似二分类,我们将之前使用的放缩参数a由标量变为向量W,使用类似的方式完成线性转换:
q i = max ⁡    σ S M ( W z i + b ) y ^ i ′ = a r g m a x    σ S M ( W z i + b ) q_i=\max \ \ \sigma_{SM}(Wz_i+b)\\ \hat y_i'=argmax\ \ \sigma_{SM}(Wz_i+b) qi=max  σSM(Wzi+b)y^i=argmax  σSM(Wzi+b)
参数W和b可以使用NLL在验证集上进行优化。另外由于W参数量随着K以平方数量增加,此处定义一种使用对角线矩阵的变体W。

Temperature scaling

Platt scaling还可以用更简单的方式扩展到多分类概率校准中,只需引入一个大于0的标量参数T.结合模型的logit输出 z i z_i zi,我们进行如下计算得到校准概率 q i q_i qi
q i = max ⁡    σ S M ( z i T ) q_i=\max \ \ \sigma_{SM}(\frac{z_i}{T}) qi=max  σSM(Tzi)
T被称作temperature,当T>1时可以平滑softmax的输出。具体而言,当 T → ∞ T\rightarrow \infty T,softmax时, q i q_i qi值接近 1 K \frac{1}{K} K1,而当 T → 0 T\rightarrow 0 T0时, q i q_i qi的值会逼近1。当T=1时,则回归到softmax的原始概率 p i p_i pi

在验证集上通过NLL函数优化参数T,因为参数T的引入仅改变输出概率,不会改变预测类别,所以校准后预测类别 y ^ i ′ \hat y_i' y^i y ^ i \hat y_i y^i保持一致。

在模型蒸馏中也会使用带有温度参数的softmax来平滑输出,便于学生模型进行学习。

参考论文:

On Calibration of Modern Neural Networks

Obtaining well calibrated probabilities using bayesian binning

Calibrated Structured Prediction

PREDICTING GOOD PROBABILITIES WITH SUPERVISED LEARNING

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SWAT(Soil and Water Assessment Tool)水文模型是一种用于地表水资源管理和水文研究的重要工具。为了确保模型的准确性和可靠性,需要进行模型校准。 SWAT水文模型校准指南的目的是通过调整模型参数以更好地模拟实际水文过程。下面我将简要介绍SWAT水文模型校准的几个关键步骤: 1. 收集数据:首先需要收集区域内的监测数据,包括降水量、蒸发量、河流流量等。这些数据将用于与模型输出结果进行比较,从而评估模型的准确性。 2. 参数选择:根据区域特点和研究目的,选择适当的模型参数进行校准。这些参数包括土壤水分保持能力、径流产汇系数、蒸散发参数等。 3. 校准方法:根据收集到的监测数据,通过试验和比较不同参数组合对模型进行校准。常用的校准方法有敏感性分析、贝叶斯校准等。 4. 模型评估:校准完成后,需要对模型进行评估以确定其准确性。评估方法包括比较模拟结果与监测数据的差异、计算误差指标(如均方根误差、相关系数等)等。 5. 参数调整:根据评估结果,对模型参数进行调整,以进一步提高模型的准确性。 6. 不确定性分析:对校准后的模型进行不确定性分析,了解模型的可靠性和稳定性。 总之,SWAT水文模型校准是一个逐步优化模型参数的过程,通过与实测数据的比对,提高模型的可靠性和适应性。校准指南提供了针对SWAT模型的具体步骤和方法,帮助研究人员更好地应用和调整该模型,为水资源管理和水文研究提供支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值