Zero-shot learning via attribute regression and calss prototype rectification论文解读

本文介绍了一种解决Zero-Shot学习中投影域偏移和hubness问题的新方法。通过类原型修正和交替学习策略,该方法能有效提高unseen类的识别精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本论文由Changzhi Luo,2018年发表于IEEE。zero-shot learning问题即是,在训练集中存在seen类和unseen类,在测试时,我们要区分出unseen类,并给出标签。seen类代表那些在训练集中有类原型,也有样本的类。unseen类指那些,只有类原型,或者说,只有语义描述,但是没有真实样本的类。

论文创新点:

  • 提出了一种类原型修正方法,将seen类和unseen类连接了起来,解决了投影域偏移的问题。
  • 提出了一种交替学习策略,即交替执行属性回归模型训练和类原型修正模型训练
  • 提出了一种新的目标函数,兼顾了属性回归模型精度和类原型差别
引子

现有的zero-shot learning (ZSL)问题都是利用中间级信息(如属性等),将信息从seen类传到unseen类。比如,从seen类中训练得到seen类样本和其标签之间的映射关系,再将这样的映射关系应用到unseen类。但是这样的方法,不可避免会造成两个问题:投影域偏移和hubness问题。根源在于,训练模型的时候,只使用了seen类,而忽视了unseen类。因此,本文也沿用了将ZSL问题视为属性回归问题,不过,在学习回归模型是,考虑所有类的数据分布,包括unseen类,从而对类原型进行修正,用修正过的数据重新训练模型。如此迭代往复,实验证明,这种方法可以缓解甚至解决投影域偏移和hubness问题。
投影域偏移问题:由seen类训练得到的投影模型和unseen类训练得到的投影模型不兼容。
hubness问题:有的样本会出现在其他类样本的最近邻列表里面,会导致精度下降。

类原型修正

类原型是一个类的向量表示方法,也被称之为类中心或者类范例。seen类存在样本,有其类原型。unseen类没有样本,但是也有其对应的类原型。在这里插入图片描述如上图所示,蓝色的代表一个样本,红色的代表类原型。相同形状的代表属于同一类。可以看到圆形,正方形,三角形,菱形有样本,也有对应的类原型,就是seen类。因为训练集中有其对应的样本。反之,剩下三个多边形只有类原型,没有样本,就为unseen类,训练集中没有其对应的样本。
之前的方法为只利用了seen类训练模型,在测试时,用的unseen类。换言之,测试标签和训练标签是互斥的,就算seen类和unseen类再相似,也会产生投影域偏移的问题。因此,我们必须引入一些额外的信息,称之为,side information,也被称为类的中级语义信息。即,我们可以通过一些映射,将类原型映射到语义空间去(就是通过一些函数,把样本变个样子,seen类和unseen类都有类原型,所以都可以映射)。这样的目的是,使得两个不同的类距离远一些,这样来了一个测试样本,我们按照同样的映射方式,将这个样本映射到语义空间。它离哪个类原型近,就是哪个类。但是用最邻近很容易产生hubness问题。因此,作者提出了类原型修正的方法,用在训练回归模型时,不断修正类(包括unseen类)原型。为了解决域偏移的问题,将unseen类和seen类一起训练模型。这样,用不断修正的所有类的类原型训练回归模型,既解决了投影域偏移的问题,也解决了hubness问题。
由于seen类有自己的样本,因此,可以用它的样本来修正类原型:
s^p=μ1sp+α1n∑i=1nsp(i)\hat s_p= \mu_1s_p + \alpha \frac{1}{n} \sum_{i=1}^ns_p^{(i)} s^p=μ1sp+αn1i=1nsp(i)
μ\muμ类似于冲量,防止震荡或发散;α\alphaα是权重参数,权衡人类标注类原型和语义表达均值。
对于unseen类,因为没有样本,所以不能用样本的语义表达均值修正类原型。本文采用了unseen类周围的seen类原型的关系,来修正unseen类原型。
s^p=μ2sp+β1k∑sj∈Nk(sq)g(sq,sj)sj\hat s_p= \mu_2s_p + \beta \frac{1}{k} \sum_{s_j\in N_k(s_q)}g(s_q,s_j)s_js^p=μ2sp+βk1sjNk(sq)g(sq,sj)sj
其中,β\betaβ类似于α\alphaα;
μ2\mu_2μ2类似于μ1\mu_1μ1;
g(A,B)=A∗B∣∣A∣∣∣∣B∣∣g(A,B)=\frac{A*B}{||A||||B||}g(A,B)=ABAB;
Nk(sk)N_k(s_k)Nk(sk)代表sqs_qsq周围的k个邻近类

损失函数
### Zero-Shot Learning 方法介绍 Zero-shot learning (零样本学习) 是一种特殊的机器学习范式,其核心目标是在没有任何标记数据的情况下完成对未知类别的预测或分类任务[^1]。这种技术的核心在于利用已知类别之间的语义关系或者属性描述来推断未知类别的特征。例如,在图像识别领域,如果模型已经学会了“狗”的概念以及“飞行”的动作含义,则可以通过组合这些已有知识去推测什么是“会飞的狗”这一未曾见过的新类别。 #### 技术实现原理 在 zero-shot 学习中,通常采用的方法是通过引入辅助信息(如属性向量、词嵌入或其他形式的知识表示),建立源域(seen classes)与目标域(unseen classes)之间桥梁。TransZero 提出了 attribute-guided transformer 的架构,进一步增强了跨模态间的信息传递效率和表达能力[^2]。这种方法不仅依赖于视觉特征提取网络的强大表征力,还融合了自然语言处理领域的最新成果,使得模型能够更好地捕捉到不同类别间的潜在关联性。 另外一个重要方面涉及到了图神经网络的应用——通过对节点及其边权重的设计模拟实体间的关系结构,从而促进更深层次的理解过程发生。比如 Compositional Zero-Shot Learning 开源项目就采用了类似的思路,并提出了新的图嵌入策略专门用于解决复杂组合型问题[^4]。 --- ### 应用场景分析 由于不需要额外收集大规模标注数据集即可扩展至全新领域的能力,zero-shot learning 已经被成功应用于多个重要方向: 1. **多模态理解** - 图像识别系统可以借助此技术快速适应新类型的对象检测需求。例如,“蓝色汽车”作为一个复合概念可能并未出现在原始训练集中;然而凭借先前积累的经验加上适当引导机制作用下仍可做出合理判断。 2. **智能交互服务优化** - 虚拟助手可以根据用户提出的个性化查询条件筛选资源。“查找由克里斯托弗·诺兰执导且属于科幻题材的一部影片”,即使这类特定搭配不曾显式呈现给算法本身也无妨达成预期效果。 3. **医疗诊断支持工具开发** - 当面对罕见疾病时,传统监督模式往往因为缺乏足够的病例资料难以奏效。而运用 zero-shot 思路则有可能突破此类局限性,仅需依靠现有医学常识体系即能尝试给出初步建议方案。 ```python import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased") model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased") def predict_zero_shot(texts, labels): inputs = tokenizer(list(labels), truncation=True, padding=True, return_tensors="pt") outputs = model(**inputs) probs = torch.nn.functional.softmax(outputs.logits, dim=-1).detach().numpy() results = [] for text in texts: input_ids = tokenizer.encode_plus( text, add_special_tokens=True, max_length=50, pad_to_max_length=True, return_attention_mask=True, return_tensors='pt' ) output = model(input_ids['input_ids']) result = {label: prob.item() for label, prob in zip(labels, output.logits[0])} results.append(result) return results texts = ["A red hat", "An airplane flying"] labels = ["red", "hat", "flying"] predictions = predict_zero_shot(texts, labels) print(predictions) ``` 上述代码片段展示了一个简单的基于 BERT 实现的 zero-shot 文本分类器例子,它可以评估输入句子相对于一组候选标签的相关程度。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值