ICI-FSL
方法阐述#
算法流程:初始化分类器->生成伪标签->ICI可信度筛选->扩充训练集->重复迭代直到收敛
符号定义#
| 符号 | 含义 |
|---|---|
| $C_{base}$ | 基础类别集 |
| $C_{novel}$ | 新类别集 |
| $D_{base}=(I_i,y_i),y_i\in C_{base}$ | 基础数据集 |
| $D_{novel}=(I_i,y_i),y_i\in C_{novel}$ | 新数据集 |
| $S,|S|=c\times s$ | - 从目标新类别数据集$D_{novel}$中采样的少量带真实标签的样本集合 - 遵循c类-m样本范式,在每个epoch中,从新类别中随机选c个类,每个类选s个标记样本组成支持集 |
| 查询集 | - 来自目标新类别数据集$D_{novel}$的带真实标签样本集合 - 每个epoch中,与支持集来自同一c类,每个类选q个标记样本 |
| 未标记集 | - 来自$D_{novel}$的无真实标签样本集 -不参与输出训练,数量远多于支持集 |
算法流程#
| 步骤 | 详细阐述 |
|---|---|
| 特征提取与降维 | - 使用预训练于基础数据集$D_{base}$的ResNet12作为特征提取器$f(\cdot)$,提取标记样本$S$和未标记样本$U_{novel}$的特征 - 使用局部线性嵌入将特征降维至低维$d=5$ |
| 初始化分类器 | 使用支持集$S={(x_i,y_i)}$($y_i$为真实标签)训练初始线性分类器,分类器使用简单的结构:逻辑回归/线性SVM |
| 伪标签生成 | 使用初始分类器生成伪标签,即 $ \hat y_i = g(f(I_u)) $ 式中: - $g(\cdot)$ 为分类器 - $I_u$ 为未标记样本 - $\hat y_i$ 为伪标签 |
| ICI学习 |
ICI 可信度度量#
含附带参数的广义线性模型#
为衡量伪标签可信度,构建包含附带参数的线性模型,将特征于标签映射建模:
$$ y_i=x_i^T\beta^\star+\gamma_i^\star+\epsilon_i $$
式中,
- $y_i$:是样本$i$的标签,可以是真实标签或伪标签
- $x_i\in \mathbb{R}^{d}$:为模型提取特征
- $\beta^\star\in\mathbb{R}^{d\times c}$ 系数矩阵
- $\gamma_i^\star\in \mathbb{R}^{1\times c}$ 核心可信度指标,修正样本$i$归属某一类别的概率
- $\Vert \gamma_i^\star\Vert_2$ 越大,样本$i$归类难度越高;正确预测样本的 $\gamma^\star$ 趋于0
- $\epsilon_i$ 独立sub Gaussian噪声,均值为0,方差有界
为了凸显附带参数的系数性,进而区分可信样本,引入对于 $\gamma$ 项的稀疏惩罚项,优化目标为
$$\underset{\beta,\gamma}{\arg\min}\sum_{i=1}^{n}\left[\Vert y_i-x_i^T\beta-\gamma_i\Vert_2^2+\lambda R(\gamma_i)\right]$$
式中,
- $R(\gamma_i)$ 为稀疏惩罚项
定义:
- $H=X(X^TX)^\dagger X^T$
- $\tilde X=I-H$
- $\tilde Y=\tilde X Y$
简化上述方程,使用Glmnet中的块坐标下降算法求解
$$\hat \gamma=\underset{\gamma}{\arg\min}\frac{1}{2}\Vert \tilde Y-\tilde X \gamma \Vert_F^2+\lambda R(\gamma)$$
拓展至逻辑回归#
构建包含附带参数的逻辑回归模型:
$$Y_{i,c}=\frac{\exp(X_i\cdot\beta_c^\star+\gamma_{i,c}^\star)}{\sum_l \exp(X_l\cdot\beta_c^\star+\gamma_{l,c}^\star)}+\epsilon_{i,c}$$
重构特征矩阵 $\bar X=(X,I)$和系数矩阵 $\bar \beta^\star=(\beta^\star,\gamma^\star)^T$,将上式转化为标准逻辑回归:
$$Y_{i,c}=\frac{\exp(\bar X_i\cdot \bar \beta_c^\star)}{\sum_i \exp(\bar X_i\cdot \bar \beta_c^\star)}+\epsilon_{i,c}$$
优化目标为带稀疏正则化的负对数似然函数
$$\underset{\bar\beta=(\beta,\gamma)^T}{\arg\min} -\frac{1}{n} \sum_i(\sum_l Y_{i,l}(\bar X_i\cdot \bar \beta_{\cdot,l}-\log(\sum_l \exp(\bar X_i\cdot \bar\beta_{\cdot,l}))))+\lambda_1R(\beta)+\lambda_2 R(\gamma)$$
式中,$\lambda_1=\alpha\lambda_2$,当$\alpha=0.5$的时候最优。使用部分牛顿算法求解。
迭代训练流程#
- 输入:支持集 $(X_i,y_i)$,查询集$X_t$,未标记集$X_u$
- 初始化:支持集特征矩阵 $X_{c\times s+U,d}=[X_s;X_u]$,初始化分类器
- 迭代,直到收敛
- 使用当前支持集训练分类器
- 为未标记集生成伪标签 $Y_u$
- 用ICI对联合集 $(X,[Y_s;Y_u])$排序,筛选高可信度子集 $(X_{sub},Y_{sub})$ 扩充支持集