E ( p ∣ y 1 , … , y N ) = − 1 N ∑ i = 1 N log p ( y i ∣ x i ) (1) E(p|y_1,\dots,y_N)=-\frac{1}{N}\sum_{i=1}^N\text{log}\;p(y_i|\textbf{x}_i) \tag{1} E(p∣y1,…,yN)=−N1i=1∑Nlogp(yi∣xi)(1)
今天求佛x_i =1,明天中彩票的概率和明天不中彩票的概率
Self-training 是最简单的半监督方法之一,其主要思想是找到一种方法,用未标记的数据集来扩充已标记的数据集。算法流程如下:
Self-training 最大的问题在就在于伪标签非常的 noisy,会使得模型朝着错误的方向发展。以下文章大多数都是为了解决这个问题
E ( p , q ) = − 1 N ∑ i = 1 N ∑ y = 1 K q ( y ∣ x i ) log p ( y ∣ x i ) (2) E(p,q)=-\frac{1}{N}\sum_{i=1}^N\sum_{y=1}^K q(y|\textbf{x}_i)\text{log}\;p(y|\textbf{x}_i) \tag{2} E(p,q)=−N1i=1∑Ny=1∑Kq(y∣xi)logp(y∣xi)(2)
若后验概率分布(密度函数) q ( y ∣ x i ) = δ ( y − y i ) q(y∣x i)=δ(y−y_i) q(y∣xi)=δ(y−yi)是确定的,那么等式(1)和等式(2)就是等价的,即
E ( p , q ) = E ( p ∣ y 1 , … , y N ) E ( p , q ) = E ( p ∣ y_1 , … , y_N ) E(p,q)=E(p∣y1,…,yN)
在本方法中,优化分布q就等价于重写分配标签,这会导致退化解。
为了避免退化解问题,该方法为标签的重新分配添加了均等划分约束。
一开始以为这是贝叶斯公式 P(A|B) = P(B|A) * P(A) / P(B)
,后来发现这有点类似”任意信号都可以用冲激信号的组合表示”。
min p , q E ( p , q ) subject to ∀ y : q ( y ∣ x i ) ∈ { 0 , 1 } and ∑ i = 1 N q ( y ∣ x i ) = N K (3) \mathop{\text{min}}_{p,q}\; E(p,q)\quad\text{subject to}\quad\forall y:q(y|\textbf{x}_i)\in\{0,1\}\; \text{and}\sum_{i=1}^N q(y|\textbf{x}_i)=\frac{N}{K} \tag{3} minp,qE(p,q)subject to∀y:q(y∣xi)∈{0,1}andi=1∑Nq(y∣xi)=KN(3)
该约束意味着每个样本 x i x_i xi 都会被均等的分配至每个标签上,也就是整体N个样本被均匀分配到K个类别上。
优化以上目标函数中的q是一个难以优化的组合优化问题。但是,其可以看做是一个相对容易求解的最优运输问题的实例。
Transportation polytope 是一个数学概念,用于描述运输问题的解空间。在运输问题中,需要确定如何将一组货物从供应地点运送到需求地点,以最小化总运输成本。
一个例子:考虑一个运沙子的问题,第一堆沙子的分布为r=(0.6,0.4),第二堆沙子的分布为c=(0.2,0.6,0.2)。下表就描述了一种搬运方式: 即把0.6的第一堆沙子全搬到第二堆, 把0.4的第二堆沙子平均搬到的第一堆和第三堆.
0.2 | 0.6 | 0.2 | |
---|---|---|---|
0.6 | 0 | 0.6 | 0 |
0.4 | 0.2 | 0 | 0.2 |
给定2 × 3的代价矩阵M,如果求最小cost就成了最优化问题。从r映射到c的代价可以用传输矩阵(transport matrix)(或联合概率)量化为:
d M ( r , c ) : = m i n Q ∈ U ( r , c ) ∑ i , j Q i , j M i , j = ⟨ Q , M ⟩ d_{\color{red}M}(r,c):=min _{Q ∈ U ( r , c )} \sum_{i,j}Q_{i,j}{\color{red}M}_{i,j}= ⟨ Q, M ⟩ dM(r,c):=minQ∈U(r,c) i,j∑Qi,jMi,j=⟨Q,M⟩
因此在分布 r 、c 约束下,问题解空间可以做如下定义:
U ( r , c ) : = { Q ∈ R + K × N ∣ Q 1 = r , Q ⊤ 1 = c } U(r,c):=\{Q\in\mathbb{R}_+^{K\times N}|Q\textbf{1}=r,Q^\top\textbf{1}=c\} U(r,c):={Q∈R+K×N∣Q1=r,Q⊤1=c}
模型估计的
、大小为K × N 的联合概率矩阵(N个样本得到的分布)。这里放松矩阵Q为transportation polytope上的元素,即
U ( r , c ) : = { Q ∈ R + K × N ∣ Q 1 = r , Q ⊤ 1 = c } (4) U(r,c):=\{Q\in\mathbb{R}_+^{K\times N}|Q\textbf{1}=r,Q^\top\textbf{1}=c\} \tag{4} U(r,c):={Q∈R+K×N∣Q1=r,Q⊤1=c}(4)
其中, 1 \textbf{1} 1表示具有合适维度的全1向量,所以r和c是矩阵Q在行和列上的投影。在本方法的例子中,需要Q是均等划分数据的条件概率分布矩阵,即需要满足
r = 1 K 类别数 ⋅ 1 , c = 1 N 样本数 ⋅ 1 r=\frac{1}{K类别数}\cdot\textbf{1},\quad c=\frac{1}{N样本数}\cdot\textbf{1} r=K类别数1⋅1,c=N样本数1⋅1
使用新的符号重写等式(3)的目标函数为
E ( p , q ) + l o g N = ⟨ Q , − l o g P ⟩ ( 5 ) (5) E ( p , q ) + log N = ⟨ Q , − log P ⟩ (5) \tag{5} E(p,q)+log N=⟨Q,−log P⟩(5)(5)
其中,⟨ ⋅ ⟩ 是两个矩阵的Frobenius点积,log应用在每个元素上。
因此,基于目标函数(3)来优化Q等价于求解下面的问题
m i n Q ∈ U ( r , c ) ⟨ Q , − l o g P ⟩ ( 6 ) min Q ∈ U ( r , c ) ⟨ Q , − log P ⟩ (6) minQ∈U(r,c) ⟨Q,−log P⟩(6)
这是一个线性规划问题,其可以在多项式时间内求解。在实际求解中,该线性规划可能涉及数百万个样本和上千个类别。传统求解运输问题的算法很难求解这种规模的问题,本文采用了一种称为Sinkhorn-Knopp的快速求解方法。这相当于引入正则化项
min Q ∈ U ( r , c ) ⟨ Q , − log P ⟩ + 1 λ KL ( Q ∥ r c ⊤ ) (7) \mathop{\text{min}}_{Q\in U(r,c)}\;\langle Q,-\text{log}\; P\rangle+\frac{1}{\lambda}\text{KL}(Q\parallel rc^\top) \tag{7} minQ∈U(r,c)⟨Q,−logP⟩+λ1KL(Q∥rc⊤)(7)
其中,KL 是Kullback-Leibler 散度, r c ⊤ r c^⊤ rc⊤能够被看作是K × N的概率矩阵。添加这个正则化项的好处是,最小化等式(7)能够被重写为,推导过程添加链接描述
Q = d i a g ( α ) P λ d i a g ( β ) (8) Q = diag ( α ) P ^λ diag ( β ) \tag{8} Q=diag(α)Pλdiag(β)(8)
当λ非常大时,目标函数(7)等价于目标函数(6)。但是,即使只使用适度的λ,两个目标函数也往往具有类似的优化目标。λ的选择是收敛速度和运输问题求解精确度的一个折中。在本文中,使用一个固定的λ是合理的,因此本文感兴趣的是最终聚类和表示学习的结果,而不是准确的求解运输问题。
通过求解等式(6)来学习模型 h ∘ Φ h ∘ Φ h∘Φ 和标签分配Q,其中Q是概率矩阵,而模型 h ∘ Φ h ∘ Φ h∘Φ决定了预测结果 P y i = softmax y ( h ∘ Φ ( x i ) ) P_{y_i}=\text{softmax}_y(h\circ\Phi(\textbf{x}_i)) Pyi=softmaxy(h∘Φ(xi)) 。交替执行两面的两个步骤
步骤1:表示学习
给定一个当前的标签分配Q,通过最小化等式(6)来更新h ∘ Φ 的参数。这相当于普通分类问题的交叉熵损失函数。
步骤2:自标注
给定当前的模型h ∘ Φ ,计算对数概率P PP。然后通过使用等式(8)进行迭代更新来寻找Q
∀ y : α ← [ P λ β ] y − 1 ∀ i : β i ← [ α ⊤ P λ ] i − 1 \forall y:\alpha\leftarrow[P^\lambda\beta]_y^{-1}\quad\forall i:\beta_i\leftarrow[\alpha^\top P^\lambda]_i^-1 ∀y:α←[Pλβ]y−1∀i:βi←[α⊤Pλ]i−1
每次迭代更新都涉及到O ( N K )复杂度的矩阵乘法。所以,在数百万样本和上千个标签的情况下,速度也很快。在实际训练中,在ImageNet上使用GPU的话,可以在2分钟内达到收敛。
需要类似Deep一样的对所有样本数据的操作吗?是的
- 如果将数据的索引i看作是概率为 p ( i ) = 1 / N p ( i ) = 1 / N p(i)=1/N 的均匀分布随机变量,且后验概率重写为数据索引i的概率 p ( y ∣ x i ) = p ( y ∣ i ) p ( y ∣ x i ) = p ( y ∣ i ) p(y∣xi)=p(y∣i)和 q ( y ∣ x i ) = q ( y ∣ i ) q ( y ∣ x i ) = q ( y ∣ i ) q(y∣xi)=q(y∣i) 。那么,等式(5)可以重写为
图片速览 深度聚类 Deep Clustering for Unsupervised Learning of Visual Features(ECCV2018)
https://www.youtube.com/watch?v=d64KBkTOV_Q
https://papertalk.org/papertalks/4148
https://arxiv.org/pdf/1911.05371v3.pdf
https://medium.com/machine-intelligence-and-deep-learning-lab/self-labeling-via-simultaneous-clustering-and-representation-learning-6383dbf6f65e
https://blog.csdn.net/bqw18744018044/article/details/124218207