Multi-Head Multi-Loss Model Calibration论文速读

Multi-Head Multi-Loss Model Calibration

摘要

当然,我会按照你的要求逐步列出:

背景

  1. 提供有意义的不确定性估计对于机器学习模型在临床实践中的成功部署至关重要。
  2. 不确定性量化的核心是模型返回的预测与实际正确概率一致,即模型校准。
  3. 尽管已经提出了许多改善校准的方法,但没有任何技术能够与训练深度神经网络集成的简单但昂贵的方法相媲美。

方法

  1. 介绍了一种简化集成的形式,绕过了深度集成的昂贵训练和推断,但保持了其校准能力。
  2. 将网络末端的常见线性分类器替换为一组头部,这些头部受到不同损失函数的监督,以引入预测多样性。
  3. 每个头部都被训练来最小化加权的交叉熵损失,但这些权重在不同的分支中是不同的。
  4. 结果表明,由此产生的平均预测可以在不牺牲准确性的情况下实现出色的校准,在组织病理学和内窥镜图像分类的两个具有挑战性的数据集中。
  5. 实验表明,多头多损失分类器天生具有良好的校准性,优于其他最近的校准技术,甚至挑战了深度集成的性能。

代码地址

方法

Multi-Head Ensemble Diversity

在这里插入图片描述
图1. 展示了一个具有M=2个头部的多头多损失模型。图像 x x x经过神经网络 U θ U_{\theta} Uθ处理,然后被 M M M个头部 { f m } m = 1 M \{f_m\}_{m=1}^{M} {fm}m=1M线性转换,接着进行softmax操作 σ \sigma σ,转换成概率向量 { p m } m = 1 M \{p_m\}_{m=1}^{M} {pm}m=1M。最终的损失 L M H LMH LMH是每个头部加权交叉熵损失 L ω m − C E ( p m , y ) L_{\omega_m-CE}(p_m, y) LωmCE(pm,y)和平均预测 p μ = μ ( p 1 , . . . , p m ) p_{\mu} = \mu(p_1, ..., p_m) pμ=μ(p1,...,pm)的交叉熵损失 L C E ( p μ , y ) L_{CE}(p_{\mu}, y) LCE(pμ,y)的总和。我们调整分支之间的权重 ω m \omega_m ωm,以在训练过程中实现更多样化的梯度。

实验结果

在这里插入图片描述
在这里插入图片描述

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
calibration_curve是一个在机器学习中可用于评估分类模型校准性的函数,它可以帮助我们了解模型的预测概率与实际概率之间的偏差。而c-index是一个用于度量模型预测排序能力的评价指标。在Python中,我们可以使用scikit-learn库中的相关函数和工具进行处理。 首先,我们需要导入scikit-learn库中的calibration_curve和metrics模块: ```python from sklearn.calibration import calibration_curve from sklearn import metrics ``` 接下来,我们可以使用calibration_curve函数来计算校准曲线的数据,同时传入模型的预测概率和真实标签: ```python probs = model.predict_proba(X_test)[:, 1] true_label = y_test fraction_of_positives, mean_predicted_value = calibration_curve(true_label, probs, n_bins=10) ``` 在这个例子中,我们使用X_test作为测试数据集的特征,y_test作为测试数据集的真实标签。model是我们训练好的分类模型。 接着,我们可以使用matplotlib库来绘制校准曲线: ```python import matplotlib.pyplot as plt plt.plot(mean_predicted_value, fraction_of_positives, 's-', label='Calibration curve') plt.plot([0, 1], [0, 1], '--', color='gray', label='Perfectly calibrated') plt.xlabel('Mean predicted value') plt.ylabel('Fraction of positives') plt.legend() plt.title('Calibration curve') plt.show() ``` 最后,我们可以使用metrics模块中的c-index函数来计算c-index: ```python c_index = metrics.roc_auc_score(true_label, probs) ``` 这样,我们就可以通过使用calibration_curve函数来绘制校准曲线,并使用c-index函数来计算模型的c-index值,从而对模型的预测效果进行评估。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨小杨1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值