首页 > 其他分享 >主动学习:让模型学得更快更精准

主动学习:让模型学得更快更精准

时间:2024-11-13 14:17:29浏览次数:3  
标签:采样 学得 模型 样本 学习 主动 精准 标注

目录

引言

1. 主动学习的基本概念

2. 主动学习的三大采样策略

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

    (2) 多样性采样(Diversity Sampling)

    (3) 基于不确定性和多样性的混合方法

3. 主动学习的流程

4. 主动学习的应用场景

    (1) 医学影像分析

    (2) 自然语言处理

    (3) 无人驾驶

5. 主动学习的Python代码实现

    代码说明

6. 总结


引言

        在机器学习中,训练数据的数量和质量对于模型的性能至关重要。然而,标签数据的获取往往耗时、昂贵,尤其在医学影像分析、无人驾驶等领域标注代价更高。主动学习(Active Learning)提供了一种更高效的学习方法:通过主动选择数据来标注,让模型以较少的数据获得更高的精度。在本篇博客中,我们将深入探讨主动学习的概念、常用方法及应用场景。

1. 主动学习的基本概念

        主动学习是一种学习范式,与传统的被动学习不同。在被动学习中,模型被动地接受并学习大量随机选取的已标注数据;而主动学习则让模型在训练过程中“主动”选择最有信息量的样本进行标注,从而在最小的标注成本下达到最优的模型性能

        主动学习的主要目标是找到“有价值”的数据点,这些数据点可以显著提升模型性能。这样,模型可以在有限的数据下快速学习并获得不错的效果。

2. 主动学习的三大采样策略

        主动学习通过选择那些对模型性能提升最有帮助的数据点。在选择数据点的过程中,常用的策略有以下几种:

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

        不确定性采样基于模型的不确定性来选择数据点。通常会选取模型预测置信度最低的数据点进行标注,因为这些数据是模型当前“最不确定”的部分,学习这些数据可以最大限度地提升模型性能。

  • 最大熵(Maximum Entropy):选择预测熵值最高的样本,反映了模型对该样本最不确定。
  • 最小置信度(Least Confidence):选择模型预测置信度最低的样本。
  • 最大边际(Margin Sampling):选择模型对前两类预测的置信度差最小的样本,适用于二分类问题。

    (2) 多样性采样(Diversity Sampling)

        多样性采样确保选取的数据样本具有代表性,而不是集中于模型“迷惑”的某些特定样本。在这种方法中,选取的数据通常是那些相互之间相似度较低的数据点。这样可以确保模型在全局上得到良好的训练,而不是仅在某一子集上表现良好。

        常见的方法包括聚类(Clustering)或使用覆盖最大化(Coverage Maximization)的方法来选取具有多样性的样本。

    (3) 基于不确定性和多样性的混合方法

        不确定性和多样性采样方法各有优缺点,前者关注难以分类的数据,而后者则关注样本的多样性。将二者结合起来,选择既具代表性、又具有高不确定性的数据点,往往可以获得更好的效果。例如,使用不确定性采样选择前100个样本,再从中按多样性采样选出最具代表性的若干样本。

3. 主动学习的流程

        主动学习的基本流程可以概括为以下几个步骤:

  1. 初始模型训练:从一小部分已标注数据开始训练初始模型。
  2. 数据采样:使用主动学习的采样策略选择未标注数据集中最有信息的数据点。
  3. 数据标注:将选定的数据样本交给标注员进行标注。
  4. 模型更新:将标注的新样本加入训练集,重新训练模型。
  5. 重复过程:循环以上步骤,直到达到模型精度要求或标注预算耗尽。

4. 主动学习的应用场景

        主动学习在需要大量数据标注的领域中表现尤为出色。以下是几个常见的应用领域:

    (1) 医学影像分析

        医学影像如X光片、CT扫描的标注通常需要专业医生,而这些标注的代价昂贵。主动学习可以帮助模型优先学习那些具有诊断价值的影像,从而减少标注成本。

    (2) 自然语言处理

        在文本分类、情感分析等任务中,主动学习可以让模型优先学习复杂句子和极端情感的样本,提高模型的整体表现。例如,在情感分析中,模型可以优先选择标注情绪强烈的句子,以加快学习速度。

    (3) 无人驾驶

        无人驾驶系统需要大量的环境数据来训练和测试。通过主动学习,无人驾驶系统可以优先标注那些复杂或极端的交通场景,快速提升模型在复杂场景下的表现。

5. 主动学习的Python代码实现

        以下是使用Python和Scikit-learn库实现主动学习的简单示例。我们将构建一个二分类模型,并使用不确定性采样策略来选择样本进行标注。

import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split

# 生成数据集
X, y = make_classification(n_samples=1000, n_features=20, n_informative=15, random_state=42)
X_train, X_pool, y_train, y_pool = train_test_split(X, y, test_size=0.95, random_state=42)

# 初始化模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 主动学习循环
n_queries = 10  # 查询次数
for _ in range(n_queries):
    # 1. 对未标注数据集进行预测
    probs = model.predict_proba(X_pool)
    
    # 2. 选择置信度最低的样本(不确定性采样)
    uncertainty = np.max(probs, axis=1)  # 每个样本预测概率的最大值
    query_idx = np.argmin(uncertainty)   # 选择置信度最低的样本
    
    # 3. 将样本加入训练集并重新训练
    X_train = np.vstack([X_train, X_pool[query_idx].reshape(1, -1)])
    y_train = np.append(y_train, y_pool[query_idx])
    model.fit(X_train, y_train)
    
    # 4. 从未标注数据集中移除已标注样本
    X_pool = np.delete(X_pool, query_idx, axis=0)
    y_pool = np.delete(y_pool, query_idx, axis=0)

    # 输出模型准确性
    y_pred = model.predict(X_train)
    accuracy = accuracy_score(y_train, y_pred)
    print(f"Iteration {_ + 1}, Training Accuracy: {accuracy:.4f}")

    代码说明

  • 不确定性采样:代码中采用了不确定性采样策略,选择未标注数据集中模型置信度最低的样本。
  • 更新训练集:每次选取最不确定的样本进行标注后,加入训练集,并重新训练模型。
  • 模型迭代:主动学习模型的准确性逐步提升,同时避免了对所有数据的标注。

6. 总结

        主动学习在需要大量标注的领域中极具价值,通过主动选择有信息量的样本进行标注,模型可以以较少的样本量获得较高的性能。不同的采样策略可以适应不同的应用场景,不确定性采样适合难以分类的样本,多样性采样则提高了样本的代表性。在实际应用中,灵活选择适合的采样方法,能够让模型在降低成本的同时获得更好的效果。

标签:采样,学得,模型,样本,学习,主动,精准,标注
From: https://blog.csdn.net/qq_56683019/article/details/143732589

相关文章

  • 使用 Flux 模型放大图片的 ComfyUI 工作流(附工作流)
    大家好!今天我很高兴与大家分享一个使用Flux模型放大图片的ComfyUI工作流。在这篇文章中,我们将介绍如何设置这个工作流、其独特功能,并一步一步教你如何使用它来获得高质量的放大效果。效果展示:工作流简介该工作流使用Flux模型对图片进行放大,同时保持高倍放大后的......
  • 基于YOLOV8模型的西红柿目标检测系统(PyTorch+Pyside6+YOLOv8模型)
    摘要:基于YOLOV8模型的西红柿目标检测系统可用于日常生活中检测与定位西红柿目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练数据集,使用Pysdie6库来搭建前端页面展示......
  • 零基础入门大模型教程,2024最详细的学习路线,让你少走99%弯路!
    第一阶段:基础理论入门目标:了解大模型的基本概念和背景。内容:人工智能演进与大模型兴起。大模型定义及通用人工智能定义。GPT模型的发展历程。第二阶段:核心技术解析目标:深入学习大模型的关键技术和工作原理。内容:算法的创新、计算能力的提升。数据的可用性与规模性......
  • 全面覆盖:AI大模型微调产品经理面试题集锦,非常详细收藏我这一篇就够了!
    前言这两天跟很多做程序员的朋友聊天,怎么看全网火爆的大模型。让我挺意外的是,大家的反馈普遍都很焦虑。在AI大模型微调领域的产品经理面试中,总会遇到一系列与技术细节、项目经验、市场趋势以及职业规划相关的问题。以下是一些建议的面试题及其回答示例:面试题1:请简述你对......
  • 高级算法LLM大语言模型算法特训 带你转型AI大语言模型算法工程师
    高级算法LLM大语言模型算法特训:转型AI大语言模型算法工程师的指南随着人工智能技术的飞速发展,大语言模型(LargeLanguageModel,LLM)作为自然语言处理(NLP)领域的重要组成部分,正逐步成为各行各业的关键技术支撑。本文将深入探讨高级算法LLM大语言模型算法特训的内容、过程及如何通过......
  • AI大模型全栈工程师培养计划,做ChatGPT浪潮中顶尖的超级个体知乎
    AI大模型全栈工程师培养计划:打造ChatGPT浪潮中的顶尖超级个体随着以ChatGPT为代表的AI大模型技术的迅猛发展,我们正迎来一场前所未有的技术革命。在这场革命中,AI大模型全栈工程师成为了推动技术革新、引领行业发展的核心力量。为了培养在ChatGPT浪潮中顶尖的超级个体,我们推出了AI......
  • AI正在重塑软件市场格局,大模型在软件开发中的应用逐渐成为主流趋势。
    一、AI大模型定义及概述  随着人工智能技术的飞速发展,AI大模型逐渐成为科技领域的热点。AI大模型是指利用深度学习等技术训练出的超大参数规模的神经网络模型,能够通过学习海量数据来提升自身的性能和准确性。在软件开发领域,AI大模型正以其强大的自主学习和推理能力,深刻改变着软......
  • NLP论文速读(斯坦福大学)|生成式奖励模型(Generative Reward Models)
    论文速读|GenerativeRewardModels论文信息:简介:   这篇论文探讨了如何提高现代大型语言模型(LLMs)的性能,特别是在强化学习从人类反馈(RLHF)过程中的效率和效果。RLHF方法虽然有效,但它需要大量的人类偏好数据来训练奖励模型,这不仅资源密集,而且技术上具有挑战性。此外,现......
  • 【金融风控】模型评分卡构建
    内容介绍掌握KS值的计算方法知道评分映射方法知道LightGBM基本原理掌握使用lightGBM进行特征筛选的方法应用toad构建评分卡模型【理解】模型构建流程实验设计新的模型能上线一定要比原有方案有提升,需要通过实验证明冷启动业务初期成长期波动期策略调整新增数......
  • SMoA: 基于稀疏混合架构的大语言模型协同优化框架
    在大语言模型(LLM)快速发展的背景下,研究者们越来越关注如何通过多代理系统来增强模型性能。传统的多代理方法虽然避免了大规模再训练的需求,但仍面临着计算效率和思维多样性的挑战。本文提出的稀疏代理混合(SparseMixture-of-Agents,SMoA)框架,通过借鉴稀疏专家混合(SparseMixtur......