[半监督学习] Combining Labeled and Unlabeled Data with Co-Training

论文地址: Combining Labeled and Unlabeled Data with Co-Training
会议: COLT 1998
任务: 分类

A FORMAL FRAMEWORK

定义一个实例空间 X = X 1 × X 2 X=X_1 \times X_2 X=X1×X2, 其中 X 1 X_1 X1, X 2 X_2 X2 对应于同一实例的两个不同"视图". 实例里的每个 x x x 都以成对的形式 ( x 1 , x 2 ) (x_1, x_2) (x1,x2) 给出. 假定每个视图都能进行正确的分类.

具体来讲, 定义 D \mathcal{D} D 是 实例 X X X 上的分布空间, 并且定义 C 1 , C 2 C_1,C_2 C1,C2 分别是在 X 1 , X 2 X_1,X_2 X1,X2 上的分类器. 假设在分布空间 D \mathcal{D} D 下具有非零概率的实例上的所有标签都与某个目标函数 f 1 ∈ C 1 f_1 \in C_1 f1C1 一致,并且也与某些目标函数 f 2 ∈ C 2 f_2 \in C_2 f2C2 一致, 也就是说, 如果 f f f 表示整个实例中的组合目标概念,那么对于任何使用标签 l \mathcal{l} l 观察到的实例 x = ( x 1 , x 2 ) x=(x_1,x_2) x=(x1,x2),我们有 f ( x ) = f 1 ( x 1 ) = f 2 ( x 2 ) = l f(x)=f_1(x_1)=f_2(x_2)=\mathcal{l} f(x)=f1(x1)=f2(x2)=l. 那么这就意味着 D \mathcal{D} D 将概率为零分配给任何实例 ( x 1 , x 2 ) (x_1, x_2) (x1,x2), 会使得 f 1 ( x 1 ) ≠ f 2 ( x 2 ) f_1(x_1) \neq f_2(x_2) f1(x1)=f2(x2).

PAC supervised learning setting
对于给定在 X X X 上的分布 D \mathcal{D} D, 如果它满足: D \mathcal{D} D 将概率零分配给 ( x 1 , x 2 ) (x_1, x_2) (x1,x2), 使得 f 1 ( x 1 ) ≠ f 2 ( x 2 ) f_1(x_1) \neq f_2(x_2) f1(x1)=f2(x2), 那么我们可以认为目标函数 f ( x ) = ( f 1 , f 2 ) ∈ C 1 × C 2 f(x)=(f_1, f_2) \in C_1 \times C_2 f(x)=(f1,f2)C1×C2 D \mathcal{D} D “兼容”. 也就是说, 如果在我们的框架中, f 1 , f 2 , D f_1,f_2,\mathcal{D} f1,f2,D 都是是合法的, 那么这对 f ( x ) = ( f 1 , f 2 ) f(x)=(f_1, f_2) f(x)=(f1,f2) D \mathcal{D} D 是兼容的.

A BIPARTITE GRAPH

[半监督学习] Combining Labeled and Unlabeled Data with Co-Training_第1张图片

将Co-trainign中分布 D \mathcal{D} D 视为加权二部图, 将其写为 G D ( X 1 , X 2 ) G_{\mathcal{D}}(X_1,X_2) GD(X1,X2), 简写为 G D G_{\mathcal{D}} GD. 如上图中所示, G D G_{\mathcal{D}} GD 的左侧节点对应于 X 1 X_1 X1 中的每个点, 右侧节点对应于 X 2 X_2 X2 中的每个点. 当且仅当实例 ( x 1 , x 2 ) (x_1,x_2) (x1,x2) D \mathcal{D} D 下具有非零概率时, 才存在边 ( x 1 , x 2 ) (x_1,x_2) (x1,x2). 给该边一个等于其概率的权重. 为方便起见, 删除与概率为零的视图相对应的度数为0的顶点.

在这种表示法中, C C C 中的"兼容"概念正是对应于此图的无交叉边分区的概念. 还可以合理地定义分区不兼容的程度, 作为它在 G G G 中引起的切割的权重. 换句话说, 在分布 D \mathcal{D} D 下的目标函数 f = ( f 1 , f 2 ) f=(f_1,f_2) f=(f1,f2) 的兼容程度可以被定义为 0 ≤ p ≤ 1 0 \leq p \leq 1 0p1, 且 p = 1 − P r D [ ( x 1 , x 2 ) : f 1 ( x 1 ) ≠ f 2 ( x 2 ) ] p=1-Pr_\mathcal{D}[(x_1, x_2):f_1(x_1) \neq f_2(x_2)] p=1PrD[(x1,x2):f1(x1)=f2(x2)].

ROTE LEARNING

C 1 = 2 X 1 , C 2 = 2 X 2 C_1=2^{X_1}, C_2=2^{X_2} C1=2X1,C2=2X2, 使所有划分与 D \mathcal{D} D 保持一致, 并且有一个学习算法, 它在任何一个实例上输出"I don’t know", 注: 这个实例的标签不能从它的训练数据和兼容性假设中推断出来. 令 X 1 , X 2 X_1,X_2 X1,X2 的基数 ∣ X 1 ∣ = ∣ X 2 ∣ = N \vert X_1 \vert=\vert X_2 \vert=N X1=X2=N, 假设这里的 N N N 大小为"medium size", 从这个意义上说, 收集 O ( N ) O(N) O(N) 个未标记的实例是可行的, 但标记它们却不是.

在此情况下, 仅给出单视图(如只有 X 1 X_1 X1), 为了涵盖 D \mathcal{D} D 的大部分, 我们需要观察 Ω ( n ) \Omega(n) Ω(n) 个标记的实例. 未知的第 ( m + 1 ) (m+1) (m+1) 个实例的标记的错误率为:
∑ x 1 ∈ X 1 P r D [ x 1 ] ( 1 − P r D [ x 1 ] ) m \sum_{x_1 \in X_1}{\rm Pr_{\mathcal{D}}}[x_1](1-Pr_{\mathcal{D}}[x_1])^m x1X1PrD[x1](1PrD[x1])m
另一方面, 如果我们有一个很大的未标记样本, 我们对每个实例的两个视图允许使用更少数量的标记样本. 假定在一个极端的情况下, 我们的未标记样本包含了 G D G_\mathcal{D} GD 中的每一条边. 如果 G D G_\mathcal{D} GD 中的连接部分分别为 c 1 , c 2 , … c_1,c_2,\dots c1,c2,, 和概率 P 1 , P 2 , … P_1,P_2,\dots P1,P2,, 那么给定 m m m 个标记示例, 第 ( m + 1 ) (m+1) (m+1) 个实例的标记的错误率仅为:
∑ c j ∈ G D P j ( 1 − P j ) m \sum_{c_j \in G_{\mathcal{D}}}P_j(1-P_j)^m cjGDPj(1Pj)m

LEARNING IN LARGE INPUT SPACES

x 1 x_1 x1 x 2 x_2 x2 在给定标签的情况下是条件独立的. 即给定标记时每个属性集都条件独立于另一个属性集.
P r ( x 1 , x 2 ) ∈ D [ x 1 = x ^ 1 ∣ x 2 = x ^ 2 ] = P r ( x 1 , x 2 ) ∈ D [ x 1 = x ^ 1 ∣ f 2 ( x 2 ) = f 2 ( x ^ 2 ) ] {\rm Pr_{(x_1,x_2)} \in \mathcal{D}}[x_1=\hat{x}_1 \vert x_2=\hat{x}_2]=Pr_{(x_1,x_2) \in \mathcal{D}}[x_1=\hat{x}_1 \vert f_2(x_2)=f_2(\hat{x}_2)] Pr(x1,x2)D[x1=x^1x2=x^2]=Pr(x1,x2)D[x1=x^1f2(x2)=f2(x^2)]
P r ( x 1 , x 2 ) ∈ D [ x 2 = x ^ 2 ∣ x 1 = x ^ 1 ] = P r ( x 1 , x 2 ) ∈ D [ x 2 = x ^ 2 ∣ f 1 ( x 1 ) = f 1 ( x ^ 1 ) ] {\rm Pr_{(x_1,x_2)} \in \mathcal{D}}[x_2=\hat{x}_2 \vert x_1=\hat{x}_1]=Pr_{(x_1,x_2) \in \mathcal{D}}[x_2=\hat{x}_2 \vert f_1(x_1)=f_1(\hat{x}_1)] Pr(x1,x2)D[x2=x^2x1=x^1]=Pr(x1,x2)D[x2=x^2f1(x1)=f1(x^1)]
Theorem 1: 给定初始化弱分类器 C 1 C_1 C1, 如果 C 2 C_2 C2 满足条件独立性假设且是可学习的, 则 Co-training 能从未标记的数据中学习出分布 ( C 1 , C 2 ) (C_1, C_2) (C1,C2). 条件独立假设意味着统计查询模型中任何可学习的分类器都可以从未标记的数据和初始弱有用的预测器中学习.

在标准分类噪声模型上定义一个变量, 其中正实例上的噪声率可能不同于负实例上的噪声率. 假设分类噪声率 ( α , β ) (\alpha,\beta) (α,β) 定义如下: 真阳性实例被错误标记的概率为 α \alpha α; 真阴性实例被错误标记的概率为 β \beta β.

Lemma 1: 如果分类器 C C C 在分类噪声模型中是可学习的, 那么只要满足 α + β < 1 \alpha + \beta < 1 α+β<1 (运行时间是多项式: 1 1 − α − β \frac{1}{1-\alpha-\beta} 1αβ1), 它在分类噪声 ( α , β ) \alpha, \beta) α,β) 中也可进行学习.

EXPERIMENTS

Co-training 算法描述如下:
在这里插入图片描述

  • 步骤1: 定义带标签的训练集 L \mathbf{L} L 和无标签集 U \mathbf{U} U.
  • 步骤2: 从 U \mathbf{U} U 中随机选择 u u u 个实例来创建样本缓冲池 U ′ \mathbf{U}' U. U = U \ U ′ \mathbf{U}=\mathbf{U} \backslash \mathbf{U}' U=U\U.
  • 步骤3: 分别考虑 x = x 1 × x 2 x=x_1 \times x_2 x=x1×x2 里的 x 1 x_1 x1 x 2 x_2 x2, 使用 L \mathbf{L} L 训练出分类器 h 1 h_1 h1 h 2 h_2 h2.
  • 步骤4: 用 h 1 h_1 h1 U ′ \mathbf{U}' U 中所有元素进行标记, 从中选出置信度高的 p p p 个正标记和 n n n 个负标记, h 2 h_2 h2 同理. U ′ = U ′ \ { U p ′ ∪ U n ′ } \mathbf{U}'=\mathbf{U}' \backslash \{\mathbf{U_p}' \cup \mathbf{U_n}'\} U=U\{UpUn}.
  • 步骤5: 将这些标记实例加入到 L L L 中, 即 h 1 h_1 h1 选出的 p + n p+n p+n 个标记实例加入到 x 2 x_2 x2 中, h 2 h_2 h2 选出的 p + n p+n p+n 个标记实例加入到 x 1 x_1 x1 中. 再随机从 U \mathbf{U} U 中选择 2 p + 2 n 2p+2n 2p+2n 个样本到 U ′ \mathbf{U}' U 中.
  • 步骤3到步骤5迭代 k k k 次.

Notice:

  1. 构造 pool 的目的是为了减少每轮计算置信度的次数.
  2. 这里是二分类, 如果在 n n n 分类情况下, 每个分类器选择 n 1 , n 2 , … n_1,n_2,\dots n1,n2, 个标记.

在该实验中 h 1 h_1 h1 h 2 h_2 h2 均使用朴素贝叶斯算法进行训练, 算法参数设置为 p = 1 , n = 3 , k = 30 p=1, n=3, k=30 p=1,n=3,k=30 u = 75 u=75 u=75. 实验结果如下:
在这里插入图片描述

[半监督学习] Combining Labeled and Unlabeled Data with Co-Training_第2张图片

你可能感兴趣的:(论文,机器学习)