民主协同学习(Democratic Co-Learning), 一种单视图半监督技术. 首先在完整的标记数据 L \mathbf{L}L 上分别训练每个模型 m i m_imi, 然后模型对未标记的数据 U \mathbf{U}U 进行预测. 如果大于一半的模型 M MM 同意样本的标签, 则将该样本 { ( x i , y ^ i ) } \{(x_i,\hat{y}_i)\}{(xi,y^i)} 添加到 m i m_imi 的训练集中. 重复此过程, 直到不再添加更多样本. 最终预测通过以模型的置信区间加权的绝对多数投票法得出.
论文地址: Democratic Co-Learning
会议: ICTAI 2004
任务: 分类
Democratic Co-Learning 算法
Democratic Co-Learning 也是采用单视图多学习器的策略, 像是民主投票, 以多数票的形式进行数据挑选.
定义 L \mathbf{L}L 为标记数据集, U \mathbf{U}U 为无标记数据集, A 1 , … , A n A_1,\dots,A_nA1,…,An 为分类器, 每个分类器对 U \mathbf{U}U 中的未标记数据 x xx 预测一个类别 c i ∈ C = { c 1 , … , c r } c_i \in \mathcal{C}=\{c_1,\dots,c_r\}ci∈C={c1,…,cr}, 并令 c k c_kck 表示多数分类器预测一致的结果(将这些分类器的集合称为多数团体(Majoritty Group)). 将这些结果加入到 L \mathbf{L}L 中, 然后继续进行训练, 直到满足没有可挑选的未标记数据为止. Democratic Co-Learning 算法如下图所示:
初始阶段, 初始化模型:
- 使用不同学习算法 A i A_iAi 在 L i \mathbf{L_i}Li 上训练分类器 H i H_iHi.
- 使用 H i H_iHi 为 U \mathbf{U}U 上的每个示例 x xx 预测一个标签值 c j c_jcj, 令 c k c_kck 为
majority prediction.
民主优先采样阶段, 选择未标记示例给专家标记, 并加入对应训练集:
- 计算 H i H_iHi 在 L \mathbf{L}L 上的 95% 置信区间 [ l i , h i ] [l_i,h_i][li,hi] 和平均置信度 ( l i + h i ) / 2 (l_i+h_i)/2(li+hi)/2.
- 初始化 n nn 个 L ′ \mathbf{L}'L′, 如果多数团体的平均置信值之和大于少数团体的平均置信值之和, 则将 ( x , c k ) (x,c_k)(x,ck) 加入到 L i ′ \mathbf{L_i}'Li′ 中.
评估阶段, 评估将 L i ′ \mathbf{L_i}'Li′ 添加到 L i \mathbf{L_i}Li 中是否提升准确率:
- 计算 H i H_iHi 在 L i \mathbf{L}_iLi 上的 95% 置信区间 [ l i , h i ] [l_i,h_i][li,hi], 然后分别计算在 L i \mathbf{L}_iLi, L i ′ \mathbf{L}'_iLi′ 和 L i ∪ L i ′ \mathbf{L}_i \cup \mathbf{L}'_iLi∪Li′ 上的错误率 q i q_iqi, e i ′ e'_iei′ 和 q i ′ q'_iqi′.
- 如果 q i ′ > q i q'_i>q_iqi′>qi 则将 L i ′ \mathbf{L_i}'Li′ 添加到 L i \mathbf{L_i}Li 中
重复以上操作直到 L 1 , ⋯ L n \mathbf{L}_1,\dotsm\mathbf{L}_nL1,⋯Ln 不再变化为止. 最终通过 Combine 函数返回一组分类器, Combine 算法见集成策略小节.
标签选择标准
- 当其他大多数分类器同意未标记样本 x i x_ixi 的标签时, 才将该样本 { ( x i , c k ) } \{(x_i,c_k)\}{(xi,ck)} 添加到分类器 H i H_iHi 的训练集中.
- 多数团体中分类器的平均置信度之和大于少数团体中的平均置信度之和, 其中分类器的平均置信度为 ( l + h ) / 2 (\mathcal{l}+\mathcal{h})/2(l+h)/2, l \mathcal{l}l 和 h \mathcal{h}h 由 95% 置信区间 [ l , h ] [l,h][l,h] 定义.
使用置信度加权的投票, 可以消除大多数分类器以非常低的置信度做出相同错误预测的可能性.
民主优先采样(Democratic Priority Sampling)
基于主动学习(Active Learning)的思想, 在 Democratic Co-Learning 中, 首先使用标记数据 L \mathbf{L}L 训练 k kk 个不同的分类器 H 1 , … , H k H_1,\dots, H_kH1,…,Hk. 然后, 可以使用 QBC(Query-By-Committee) 中的投票熵来选择要主动标记的示例. 但是, 我们还希望将每个分类器的置信度纳入优先级估计中, 因此, 定义了一个置信加权投票熵, 通过计算由分类器的平均置信度加权的投票熵, 将每个单独分类器的置信度纳入优先级估计中.
令 r rr 为不同的标签的个数, G i ( x ) G_i(x)Gi(x) 为分类器 H 1 , … , H k H_1,\dots, H_kH1,…,Hk 的集合. 定义未标记示例 x xx 的优先级为:
P r i o r i t y ( x ) = − ∑ i = 1 r W i ( x ) W log W i ( x ) W Priority(x)=-\sum_{i=1}^r\frac{W_i(x)}{W}\log\frac{W_i(x)}{W}Priority(x)=−i=1∑rWWi(x)logWWi(x)
其中:
- W i ( x ) = ∑ H j ∈ G i ( x ) w j W_i(x)=\sum_{H_j \in G_i(x)}w_jWi(x)=∑Hj∈Gi(x)wj.
- w j w_jwj 为 H j H_jHj 的 95% 置信区间的平均值.
- W = ∑ j = 1 k w j W=\sum_{j=1}^k w_jW=∑j=1kwj
将具有最高优先级标签的示例提供给专家进行标记. 然后使用更大的标记数据池重新计算假设, 并重复该过程.
tips: 主动学习(Active Learning)的大致思路就是: 通过机器学习的方法获取到那些比较"难"分类的样本数据, 让专家(人工)再次确认和审核, 然后将人工标注得到的数据再次使用学习模型进行训练, 逐步提升模型的效果, 将人工经验融入机器学习的模型中.
集成策略
为了更好的组合分类器, 除了要求每个标签的票数外, 还考虑每个单独分类器的置信度值(以 95% 置信区间的平均值衡量). 将分类器分为 r rr 个组, 每组对应一个可能的标签, 每个组的大小为 n nn, 使用 s = n + 0.5 n + 1 s=\frac{n+0.5}{n+1}s=n+1n+0.5 的 Laplace 校正来避免在组规模太小时导致的投票频率为零和偏向0.5的投票加权. 具有最高discounted confidence value的分类器组用于预测示例. 当组内分类器的置信度方差较大时, 上述调整可能无效. 因此, 忽略任何置信度值小于 50% 的分类器, Combine 算法如下图所示:
- 1.计算 H i H_iHi 在 L \mathbf{L}L 上的 95% 置信区间 [ l i , h i ] [l_i,h_i][li,hi] 和平均置信度 w i = ( l i + h i ) / 2 w_i=(l_i+h_i)/2wi=(li+hi)/2.
- 2.对于每个示例 x xx, 如果 H i ( x ) H_i(x)Hi(x) 的预测 w i > 0.5 w_i>0.5wi>0.5, 则将 H i H_iHi 添加到分组 G j G_jGj 中.
- 3.计算每个分组 G j G_jGj 的平均置信均值 C ‾ G j \overline{C}_{G_j}CGj, 并使用 Laplace 进行校正.
- 4.选择最大 C ‾ G j \overline{C}_{G_j}CGj 对应的组 G k G_kGk, 得到最终分类器组合 H i ∈ G k H_i \in G_kHi∈Gk.