什么是zero-shot 、few shot
时间: 2025-02-11 12:13:58 浏览: 22
Few-Shot 学习与 Zero-Shot 学习的概念
Few-Shot 学习
Few-shot 学习是指机器学习模型能够在仅有少数几个样例的情况下完成新任务的能力。这种技术特别适用于数据稀缺的情况,在实际应用中非常有价值,因为获取大量标注数据往往成本高昂且耗时。
对于 few-shot learning 来说,算法通常会利用预先积累的知识来帮助理解和泛化到新的类别上。例如,如果一个图像分类器已经被训练用来区分猫、狗和其他常见宠物,则当面对从未见过的新物种如狐狸时,只需提供少量带有标签的例子就能快速调整并学会识别这一新类别[^1]。
def train_few_shot_model(model, support_set, query_set):
"""
训练少样本学习模型
:param model: 预先训练的基础模型
:param support_set: 支持集,含少量标记样本
:param query_set: 查询集,用于评估性能的数据集合
"""
# 更新模型参数以适应新类别的特点
updated_parameters = fine_tune_on_support_set(support_set)
predictions = []
for sample in query_set:
prediction = predict_with_updated_params(sample, updated_parameters)
predictions.append(prediction)
return predictions
Zero-Shot 学习
Zero-shot 学习则更进一步,它允许模型在完全没有看到过目标类别的任何实例的前提下做出预测。这听起来似乎不可能实现,但实际上通过引入额外的信息源——比如属性描述或语义表示——使得这样的推断成为可能。具体而言,zero-shot 方法依赖于跨模态映射机制,即将不同类型的特征空间关联起来,从而即使是在缺乏直接观察的情况下也能建立起合理的判断依据[^2]。
考虑这样一个场景:给定一组已知动物种类及其视觉外观特征(如颜色、形状),以及文字形式的其他未知生物特性说明;借助这些辅助资料,系统应当有能力推测出未曾接触过的实体是什么样子,并据此作出相应决策。
from sklearn.metrics.pairwise import cosine_similarity
def zero_shot_predict(known_features, unknown_descriptions, new_instance_description):
"""
使用零样本学习进行预测
:param known_features: 已知类别的特征向量矩阵
:param unknown_descriptions: 未见类别对应的自然语言描述列表
:param new_instance_description: 新实例的文字描述字符串
"""
similarities = []
for desc in unknown_descriptions:
sim_score = calculate_semantic_similarity(new_instance_description, desc)
similarities.append(sim_score)
best_match_index = np.argmax(similarities)
predicted_class_vector = get_corresponding_feature_vector(best_match_index, known_features)
return predicted_class_vector
两种方法的主要差异在于它们对待新颖事物的方式:
- 样本需求:few- 信息来源:前者主要依靠有限数量的实际观测来进行归纳推理,后者更多地依赖间接知识(如文本描述或其他形式的相关线索)来填补空白。
相关推荐


















