当前位置: 首页 > news >正文

【机器学习】主动学习-增加标签的操作方法-样本池采样(Pool-Based Sampling)

Pool-Based Sampling

Pool-based sampling 是一种主动学习(Active Learning)方法,与流式选择性采样不同,它假设有一个预先定义的未标注样本池,算法从中选择最有价值的样本进行标注,以提升模型的性能。这种方法广泛应用于需要人工标注的场景,例如文本分类、图像识别等。


核心思想

  1. 预先准备一个 未标注数据池(Unlabeled Data Pool)。
  2. 使用初始标注数据训练一个模型。
  3. 算法根据特定的选择策略,从未标注池中挑选最有价值的数据点。
  4. 将选中的数据点交给 Oracle(标注者)进行标注。
  5. 用新标注的数据更新模型。
  6. 重复上述过程,直到达到停止条件(如标注预算耗尽或模型精度满足要求)。

主要步骤

  1. 初始化:

    • 准备一个初始的小型标注数据集,用于训练初始模型。
    • 定义一个未标注样本池。
  2. 选择样本:

    • 基于选择策略,从未标注样本池中选出最有助于提升模型性能的样本。
  3. Oracle 标注:

    • 将选中的样本交由 Oracle(人工或自动标注系统)标注。
  4. 模型更新:

    • 使用新增的标注样本重新训练或微调模型。
  5. 循环迭代:

    • 重复选择、标注和更新的过程。
  6. 停止条件:

    • 达到预设的停止条件,如标注数量限制、预算耗尽或模型性能满足预期。

选择策略

选择策略决定了从未标注池中挑选哪些样本进行标注。以下是常见的选择策略:

  1. 不确定性采样(Uncertainty Sampling):

    • 选择模型最不确定的样本。例如:
      • 最小置信度法(Least Confidence): 挑选模型预测概率最高的类别置信度最低的样本。
      • 最大熵法(Maximum Entropy): 挑选预测分布熵值最大的样本。
  2. 基于信息增益(Information Gain):

    • 选择能够最大化模型信息增益的样本。
  3. 密度加权方法(Density-Weighted Methods):

    • 同时考虑样本的不确定性和它与数据分布的代表性,确保模型泛化能力。
  4. 查询实例多样性(Diversity Sampling):

    • 选择与当前标注样本差异较大的样本,避免模型过拟合局部分布。
  5. 基于错误减少(Error Reduction):

    • 选择标注后对模型总体错误率降低最大的样本。

优点

  1. 高效标注:

    • 只标注最有价值的样本,降低标注成本。
  2. 简单易用:

    • 使用现有的未标注样本池,无需处理实时数据流。
  3. 可控性强:

    • 数据池是预定义的,可以针对特定需求优化选择策略。

缺点

  1. 标注依赖:

    • 标注仍然依赖 Oracle,标注成本可能较高。
  2. 计算成本:

    • 每次迭代需要对未标注池的所有样本进行选择策略的评估,可能增加计算复杂度。
  3. 数据池局限性:

    • 依赖于初始未标注池的多样性,数据池如果不够丰富可能影响模型性能。

实际应用场景

  1. 文本分类:

    • 从海量未标注文本中选择最有助于提升分类器性能的文本进行人工标注。
  2. 图像识别:

    • 从图像池中挑选最模糊或不确定的图像请求人工标注。
  3. 医学诊断:

    • 从患者数据中选择可能代表罕见或边界情况的数据进行医生标注。
  4. 推荐系统优化:

    • 选择对推荐系统模型最重要的用户行为数据进行分析和标注。

对比其他采样方法

方法数据来源采样方式适用场景
Pool-Based Sampling预定义的未标注池从数据池中选择最有价值的样本标注成本高,数据池丰富时
Stream-Based Sampling实时数据流动态决定是否标注当前数据点实时数据环境,连续数据输入
Query Synthesis无预定义数据算法主动生成查询实例,向 Oracle 请求标注数据稀缺或模型需主动探索

总结:
Pool-based sampling 是一种经典的主动学习方法,尤其适用于需要从大量静态数据中选择最有价值样本的场景。通过设计合适的选择策略,能够显著提升模型性能,同时大幅减少标注工作量。

http://www.lryc.cn/news/520761.html

相关文章:

  • 【Rust自学】11.9. 单元测试
  • 深入理解Web存储机制:Cookie、SessionStorage与LocalStorage的区别
  • SpringBoot之BeanDefinitionLoader类源码学习
  • 【芯片封测学习专栏 -- 2D | 2.5D | 3D 封装的区别和联系】
  • 从硬件设备看Linux
  • open3d+opencv实现矩形框裁剪点云操作(C++)
  • git 本地操作
  • PL/SQL语言的文件操作
  • linux lsof 和 fuser命令介绍
  • [Python学习日记-76] 网络编程中的 socket 开发 —— 介绍、工作流程、socket 模块用法和函数介绍
  • vue(七) vue进阶
  • [Transformer] The Structure of GPT, Generative Pretrained Transformer
  • Django Admin 自定义操作封装
  • http和https有哪些不同
  • PL/SQL语言的数据库交互
  • 亿道三防丨三防笔记本是什么意思?和普通笔记本的优势在哪里?
  • 从项目代码看 React:State 和 Props 的区别及应用场景实例讲解
  • Vue 学习之旅:核心技术学习总结与实战案例分享(vue指令下+计算属性+侦听器)
  • freertos的基础(二)内存管理:堆和栈
  • vue \n 换行不不显示
  • GPT 系列论文精读:从 GPT-1 到 GPT-4
  • 在 Ubuntu 上安装和配置 Redis
  • Excel中双引号问题
  • 【机器学习】主动学习-增加标签的操作方法-流式选择性采样(Stream-based selective sampling)
  • elementUI项目中,只弹一个【token过期提示】信息框的处理
  • SpringBoot开发—— SpringBoot中如何实现 HTTP 请求的线程隔离
  • 【LLM】25.1.11 Arxiv LLM论文速递
  • 单片机实物成品-012 酒精监测
  • 使用葡萄城+vue实现Excel
  • 【Uniapp-Vue3】@import导入css样式及scss变量用法与static目录