论文笔记 Meta-Learning for Batch Mode Active Learning

本文探讨了如何使用元学习优化批处理模式的主动学习算法。通过构建一个在小样本上学习的模型,选择最具代表性和多样性的未标注样本进行标注,以提高分类器的性能。实验表明,这种方法优于传统的启发式方法,并且能够有效地处理数据中的干扰项。

batch 模式主动学习的元学习方法

摘要

什么是 batch 模式主动学习?挑选一批样例,立刻标注用于训练。

  • 优点:
    • 最符合逻辑。不必等整个挑选过程完成后,再训练。而是边挑选,边训练。
    • 能够最高效地利用人力进行标注。

本文的工作是,利用元学习来学习主动学习算法,在一个小训练集上,挑选一组最佳样例(未标注)来标注加入训练。
实验结果表明,本文提出的主动学习算法比传统的启发式方法更好。所构建的带标签训练集,能更好地改善分类器。

本文的缺点是没有提供源代码。

1 引言

主动学习方法的主流方法是启发式方法,例如,挑选的样例应该具有信息性、多样性、代表性。根据启发式挑选策略,选取 batch 中的最佳样例,这种启发式方法可以扩展到 batch 模式。但是,这会明显导致模型性能不最优,而且会产生过多的冗余样例。虽然有一些针对 batch 模式主动学习算法的研究,但是这些方法的复杂度很高,难以用于大数据集。而且,对主动学习的大多数研究工作都假设未标注样例至少属于我们感兴趣的某个类别。但是,真实数据并不服从这些约束条件,未标注数据通常由干扰项组成,这些干扰项并不属于我们要考察的任何类别。启发式方法可能认为这些干扰项对模型很重要,其实不然。因此作者对 batch 模式主动学习方法的研究兴趣如下:

  1. 应该直接优化其在挑选样例方面的效力。
  2. 挑选样例的算法复杂度应该是线性复杂度。
  3. 应该能够正确处理干扰项。

已有研究工作对主动学习的元学习方法进行了探索,但是还没有用于 batch 模式,也没有用于干扰项。

作者在小样本学习框架下,制定 batch 模式主动学习任务,目标是学到一个元学习模型来改善这个问题。作者在原型网络(Prototypical Networks )的基础上,增加了一个主动学习模型,用于挑选样例进行打标,来提高模型的分类准确率。实验表明,这种新方法比常用的启发式方法更好。

2 batch 模式主动学习的元学习方法

在这里插入图片描述

本文的另一个缺点是没有给出结构图。这张图是我根据自己的理解画的。

未标注数据集 U={ x~1,...,x~M}U=\{\tilde x_1, ..., \tilde x_M\}U={ x~1,...,x~M}

小样本学习任务参数 N-way,K-shot,B-batch

选出 U 的一个子集 A={ x~1,...,x~B}A=\{\tilde x_1, ..., \tilde x_B\}A={ x~1,...,x~B} 用于标注,然后添加到支持集 S,得到一个新的支持集 S′=S⋃AS'=S\bigcup AS=SA

S 的元素个数是 N*K,主动学习挑选样例后,只给 S 中的部分类别添加样例?还是所有类别都添加?每个类别添加的样例数量是否相同?B 的数值应该怎么设定?

目标是用 S’ 最大限度地提高分类器在查询集 Q 上的性能。

样例挑选过程:

  • A 的概率 p(A)=p(x~1,...,x~B)=∏i=1Bp(x~i∣x~1,...,x~i−1)p(A)=p(\tilde x_1, ..., \tilde x_B)=\prod_{i=1}^Bp(\tilde x_i|\tilde x_1, ..., \tilde x_{i-1})p(A)=p(x~1,...,x~B)=i=1Bp(x~ix~1,...,x~i1)
  • 假设已建立一个子集 A={ x~1,...,x~j∣j<B}A=\{\tilde x_1, ..., \tilde x_j|j<B\}A={ x~1,...,x~jj<B}
  • 参数化分布 p(x~∣A)=p(x~∣x~1,...,x~j)p(\tilde x|A)=p(\tilde x|\tilde x_1, ..., \tilde x_j)p(x~A)=p(x
### 基于上下文的离线元强化学习(COMRL)概述 基于上下文的离线元强化学习(Context-based Offline Meta-Reinforcement Learning, COMRL)是一种结合了元学习和离线强化学习的技术,旨在通过从一组预定义的任务中提取通用知识来加速新任务的学习。这种方法特别适用于数据有限或交互成本较高的场景[^1]。 COMRL的核心思想是利用元学习机制捕获任务之间的共享结构,并通过离线数据训练策略以适应未知但相关的新任务。这种方法通常包括以下关键组件: - **任务分布建模**:通过对任务的先验知识进行建模,生成适合的上下文表示。 - **策略优化**:基于上下文信息调整策略参数,使其能够快速适应新任务。 - **离线数据使用**:利用历史数据而非实时交互来提升策略性能。 ### 实现方法 #### 1. 上下文编码器的设计 上下文编码器是COMRL中的重要组成部分,用于从任务数据中提取上下文信息。一种常见的实现方式是使用神经网络对任务数据进行聚合,并生成一个固定维度的上下文向量。例如,可以通过以下代码实现一个简单的上下文编码器: ```python import torch import torch.nn as nn class ContextEncoder(nn.Module): def __init__(self, input_dim, hidden_dim, output_dim): super(ContextEncoder, self).__init__() self.fc1 = nn.Linear(input_dim, hidden_dim) self.fc2 = nn.Linear(hidden_dim, output_dim) def forward(self, x): x = torch.mean(x, dim=0) # 对任务数据进行平均操作 x = torch.relu(self.fc1(x)) return self.fc2(x) ``` #### 2. 策略网络的构建 策略网络需要能够根据上下文信息动态调整其行为。通常,这可以通过将上下文向量与状态输入拼接后传递给策略网络实现。以下是一个示例代码: ```python class PolicyNetwork(nn.Module): def __init__(self, state_dim, context_dim, action_dim): super(PolicyNetwork, self).__init__() self.fc1 = nn.Linear(state_dim + context_dim, 128) self.fc2 = nn.Linear(128, action_dim) def forward(self, state, context): x = torch.cat([state, context], dim=-1) x = torch.relu(self.fc1(x)) return torch.tanh(self.fc2(x)) # 假设动作空间为[-1, 1] ``` #### 3. 训练过程 在训练过程中,COMRL模型需要同时优化上下文编码器和策略网络。常用的损失函数包括策略梯度损失和值函数损失。以下是一个简化的训练框架: ```python def train_comrl(policy_net, context_encoder, data_buffer, optimizer): for batch in data_buffer: states, actions, rewards, contexts = batch predicted_actions = policy_net(states, context_encoder(contexts)) # 计算策略梯度损失 loss = -torch.mean(rewards * predicted_actions) optimizer.zero_grad() loss.backward() optimizer.step() ``` ### 相关研究论文 以下是一些关于COMRL的重要研究论文- **"Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks"** 提出了元学习的基本框架,为COMRL提供了理论基础[^2]。 - **"Offline Meta-Reinforcement Learning with Value Functions"** 探讨了如何在离线设置中应用元强化学习[^3]。 - **"Contextualized Meta-Policy Search"** 引入了上下文信息以增强策略的泛化能力[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值