Active Learning 原理

本文介绍了一种通过主动学习(Active Learning)来提高分类模型准确性的方法。通过挑选那些模型难以确定分类的样本进行人工标注,进而提升模型的整体性能。讨论了如何挑选信息量大的样本,并介绍了几种具体的挑选规则。

其实一直在用这种方式,提升分类模型精度,最近才发现这类方法有一个专业名词,active learning ,中文名 主动学习,其目的 挑选出未标注标签的样本,通过标注这些挑选出来的样本提升模型分类精度。

第一. 挑选样本,挑选哪些样本对模型提升精度有帮助呢?挑选那些对模型来说信息量大的样本,信息量大的定义又是什么呢?

第二. 信息量大,模型分类的过程中,分错的样本相较于分对的样本,对于模型的信息量大,正是因为模型不具备错误样本相关信息,所以导致分错,下面就是挑选信息量大的规则:

1. 所有分类结果中,每一个类别结果模型得到的概率都较小

2. 所有分类结果中,概率最大类别与概率次大类别对应的数值相差不大

3. 所有分类结果中,每一个类别对应的概率都相差不大,也就是熵大

所有上面的规则,都是该样本对于模型的信息量大的表现,挑选规则设定之后,通过下面流程:

1. 将小部分标准的样本 训练出一个分类模型

2. 训练好的分类模型 通过上述 挑选规则 将未标注样本 中的 信息量大的样本跳挑出,完成人工标注

3. 重复1,2步骤,指导所有样本被标注

active learning一方面减少标注量,另一方面保证标注的语料分布在分类面的附近。

牵扯出一个问题。就是标注样本中存在少量错误标注的样本,而这些样本对模型效果会产生较大影响,传统方法,就是遍历查找,现在可以通过,将样本随机分N份,取其中N-1份作为训练数据,剩余作为测试数据,这样,测试数据会得到一个预测标签,通过比较预测标签与实际标签的差异,判断是否标注错误

### 主动学习在机器学习中的概念 主动学习是一种半监督学习方法,在这种框架下,算法能够查询未标记数据集以获得特定样本的标签。这种方法特别适用于标注成本高昂的情况,因为可以显著减少所需的人工标注量[^2]。 ### 主动学习的工作原理 在一个典型的主动学习过程中,模型首先基于少量已知标签的数据进行训练。之后,该模型会选择最不确定或最有价值的部分无标签实例请求其真实标签,并将其加入到训练集中用于更新模型参数。这一过程会反复迭代直到达到预定条件为止[^3]。 ```python import numpy as np from sklearn.svm import SVC from modAL.models import ActiveLearner # 假设X_pool是特征矩阵,y_train_initial是最开始的小部分有标签数据,Y_true是真实的全部标签(仅作验证用途) learner = ActiveLearner( estimator=SVC(probability=True), X_training=X_train_initial, y_training=y_train_initial ) n_queries = 10 for idx in range(n_queries): query_idx, query_instance = learner.query(X_pool) # 这里模拟获取新标签的过程; 实际操作中应由领域专家提供. new_label = Y_true[query_idx] # 更新训练集并重新训练模型 learner.teach(X=query_instance.reshape(1, -1), y=new_label) ``` 此代码片段展示了如何利用`modAL`库实现SVM分类器上的简单主动学习循环。每次迭代都会挑选出当前模型最为困惑的一个样本来询问确切类别,从而逐步优化性能表现。 ### 图像分类中的自适应主动学习 针对图像识别任务,存在一种称为“自适应”的策略来增强传统主动学习的效果。这类技术不仅考虑单一样本的信息增益还评估整个批次的选择是否有助于提高泛化能力。具体来说就是设计更加复杂的采样机制使得所选图片能更好地代表整体分布特性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值