FCN、UNet、UNet++ 3 模型医学图像分割对比:ISLES 脑梗数据集 Dice 系数实测
2026/7/7 11:37:44
KTO(Kahneman-Tversky Optimization)的核心思想源于行为经济学的前景理论。该理论指出人类决策时对收益和损失存在非对称心理反应,表现为损失厌恶(loss aversion)效应。传统RLHF依赖二元偏好对数据,而KTO通过量化这种心理差异,实现单样本绝对标注下的有效优化。
KTO的损失函数包含两个关键组成部分:
数学表达为:
L K T O = E [ w ( y ) ( 1 − σ ( β Δ ( y ) ) ) ] \mathcal{L}_{KTO} = \mathbb{E}[w(y)(1-\sigma(\beta \Delta(y)))]LKTO=E[w(y)(1−σ(βΔ(y)))]
其中Δ ( y ) \Delta(y)Δ(y)表示样本评分与参考值的偏差,w ( y ) w(y)w(y)是方向敏感权重函数。
相比传统偏好学习方法,KTO具有显著优势:
模型训练时需注意:
实验数据显示,在相同标注预算下,KTO相比DPO等方法的胜率提升达15-20%,且在长文本生成等复杂任务中优势更为明显。
https://github.com/ContextualAI/HALOs
classDummyKTOTrainer(UnpairedPreferenceTrainer):"""A fake version of KTO (not the actual one!) meant to introduce you to the HALOs repo."""defloss(self,policy_chosen_logps:torch.FloatTensor,policy_rejected_logps:torch.FloatTensor,reference_chosen_logps:torch.FloatTensor,reference_rejected_logps:torch.FloatTensor)->Tuple[torch.FloatTensor,torch.FloatTensor,torch.FloatTensor]:chosen_KL=(policy_chosen_logps-reference_chosen_logps).mean().clamp(min=0)rejected_KL=(policy_rejected_logps-reference_rejected_logps).mean().clamp(min=0)chosen_logratios=(policy_chosen_logps-reference_chosen_logps)rejected_logratios=(policy_rejected_logps-reference_rejected_logps)losses=torch.cat((1-F.sigmoid(self.config.loss.beta*(chosen_logratios-chosen_KL)),1-F.sigmoid(self.config.loss.beta*(rejected_KL-rejected_logratios))),0)chosen_rewards=self.config.loss.beta*(policy_chosen_logps-reference_chosen_logps).detach()rejected_rewards=self.config.loss.beta*(policy_rejected_logps-reference_rejected_logps).detach()returnlosses,chosen_rewards,rejected_rewards