Reference: G. Maicas, C. Nguyen, F. Motlagh, J. C. Nascimento and G. Carneiro, “Unsupervised Task Design to Meta-Train Medical Image Classifiers,” 2020 IEEE 17th International Symposium on Biomedical Imaging (ISBI), 2020, pp. 1339-1342, doi: 10.1109/ISBI45749.2020.9098470.
Introduction
- 为了解决缺少标注数据的问题,有以下预训练的方法:
- 有监督的预训练。模型在别的数据集上训练,这个模型能解决另一个数据集上的分类问题
- 使用clustering的无监督预训练
- 无监督重建图片的云训练。通过重建训练集上的图片来完成预训练。
- 然而上述的预训练方法所使用的目标函数可能和下游的目标完全无关。
- 为了解决以上问题,可以使用multiple instance learning (MIL) or multi-task learning,但这些方法又需要大量的个标注数据。
- Meta learning能完美实现少标注高相关的预训练需求。但是在医学图像分类领域,大量手动设计的分类任务是罕见的。
- 这个论文解决的问题:通过无监督聚类来生成大量元任务
- 结论:Results show that our proposed approach produces classification results that are significantly better than other unsupervised and supervised pre-training methods, and competitive to supervised meta-training.
Main Method
Target task
- Distinguish images: no malignant findings, or malignant findings. Binary classification.
Unsupervised Design of Classification Tasks
-
Denote the input as v \mathbf{v} v in an unlabelled dataset.
-
θ \theta θ-parameterised model: 将输入投射到特征空间
f θ ( v ) ∈ R D f_{\theta}(\mathbf{v}) \in \mathbb{R}^{D} fθ(v)∈RD
-
ω \omega ω-parameterised classifier: 产生一个K类之一的伪标签(One-hot-encoding),仅表示属于聚类产生的K类中的哪一类,而与原始任务中的分类标签无关。
g ω ( f θ ( v ) ) ∈ { 0 , 1 } K g_{\omega}\left(f_{\theta}(\mathbf{v})\right) \in\{0,1\}^{K} gω(fθ(v))∈{0,1}K
-
Objective functions
-
First one:
θ ∗ , ω ∗ = arg min θ , ω 1 ∣ D ∣ ∑ i = 1 ∣ D ∣ ℓ ( g ω ( f θ ( v i ) ) , y ~ i ) \theta^{*}, \omega^{*}=\arg \min _{\theta, \omega} \frac{1}{|\mathcal{D}|} \sum_{i=1}^{|\mathcal{D}|} \ell\left(g_{\omega}\left(f_{\theta}\left(\mathbf{v}_{i}\right)\right), \widetilde{\mathbf{y}}_{i}\right) θ∗,ω∗=argθ,ωmin∣D∣1i=1∑∣D∣ℓ(gω(fθ(vi)),y i)
- ∣ D ∣ |\mathcal{D}| ∣D∣ 为总样本数量
- 网络产生的伪标签应该接近聚类产生的伪标签
-
Second one:
min C 1 ∣ D ∣ ∑ i = 1 ∣ D ∣ min y ~ i ∥ f θ ∗ ( v i ) − C y ~ i ∥ 2 2 \min _{\mathbf{C}} \frac{1}{|\mathcal{D}|} \sum_{i=1}^{|\mathcal{D}|} \min _{\widetilde{\mathbf{y}}_{i}}\left\|f_{\theta^{*}}\left(\mathbf{v}_{i}\right)-\mathbf{C} \widetilde{\mathbf{y}}_{i}\right\|_{2}^{2} Cmin∣D∣1i=1∑∣D∣y imin∥fθ∗(vi)−Cy i∥22
- C \mathbf{C} C:K 类的聚类中心
- 聚类产生伪标签
-
每次优化都会都会产生新的模型参数、聚类中心、伪标签。使用轮廓系数来判断聚类的质量。选择质量最高的。
-
-
Silhouette coefficient: 用来判断聚类质量
κ = 1 ∣ D ∣ ∑ i = 1 ∣ D ∣ b ( i ) − a ( i ) max ( a ( i ) , b ( i ) ) \kappa=\frac{1}{|\mathcal{D}|} \sum_{i=1}^{|\mathcal{D}|} \frac{b(i)-a(i)}{\max (a(i), b(i))} κ=∣D∣1i=1∑∣D∣max(a(i),b(i))b(i)−a(i)
- a ( i ) a(i) a(i):样本 i i i 到其他同簇样本的平均距离。又称为样本 i i i 的同簇样本平均距离。簇中所有 a ( i ) a(i) a(i) 的均值成为簇不相似度
- b ( i ) b(i) b(i):定义 b i , j b_{i,j} bi,j 为样本 i i i 到其他某簇 C j C_j Cj 所有样本的平均距离,又称为样本 i i i 到簇 C j C_j Cj 的不相似度。样本 i i i 的簇间不相似度定义为 b ( i ) = m i n { b i , 1 , b i , 2 , … , b i , K } b(i) = min\{b_{i,1}, b_{i,2}, …, b_{i,K}\} b(i)=min{bi,1,bi,2,…,bi,K}。 b ( i ) b(i) b(i) 越大,越说明样本 i i i 不属于其他簇。
- 轮廓系数范围: [ − 1 , 1 ] [-1,1] [−1,1] 。接近1说明样本 i i i 聚类合理;接近0说明在两个簇的边界,接近-1说明应该分到另一个簇
Meta-training with the Unsupervised Classification Tasks
-
聚类完成后,以聚类为单位,选择0、1类数据,来组成task。现在已将任务分成 K K K 类,从其中随机选择 i i i 个label为0,从剩下的 K − i K-i K−i 个中选择 k k k 个标记为1,这两个一起组成一个二元分类任务。因此,一共可以组成 L L L 个任务:
L = ∑ i = 1 K − 1 ∑ k = 1 min ( i , K − i ) ( K i ) × ( K − i k ) 1 + δ ( i − k ) L=\sum_{i=1}^{K-1} \sum_{k=1}^{\min (i, K-i)} \frac{\left(\begin{array}{c}K \\i\end{array}\right) \times\left(\begin{array}{c}K-i \\k\end{array}\right)}{1+\delta(i-k)} L=i=1∑K−1k=1∑min(i,K−i)1+δ(i−k)(Ki)×(K−ik)
-
这个聚类实际上企图组成任务的分布,比如说某类 k k k 中的样本数量较多,也就说明这些样本所包含在feature在真实样本中出现的次数更多。因为抽到每个类的可能性是等价,一个类包含的样本越多,这些共同feature就会在真实训练中见到更多次,从而让训练样本特征分布更符合真实样本的特征分布。
-
类比transfer learning,只要新任务和其他domain的任务在feature的分布上类似,就可以通过少量数据进行微调以适应新任务。至于对于这个feature改分类到0和1,其实并不重要。而以上步骤主要就是为了去拟合大量数据的feature分布,最后随便分类一个标签。
-
Same as MAML consisting of a Bayesian hierarchical model (Erin Grant, Chelsea Finn, and et al., “Recasting gradient-based meta-learning as hierarchical bayes,” in ICLR, 2018.)
-
Updating parameters:
ϕ l ∗ = ψ − α ∇ ϕ l [ − log p ( Y l ( t ) ∣ , V l ( t ) , ϕ l ) ] \phi_{l}^{*}=\psi-\alpha \nabla_{\phi_{l}}\left[-\log p\left(\mathcal{Y}_{l}^{(t)} \mid, \mathcal{V}_{l}^{(t)}, \phi_{l}\right)\right] ϕl∗=ψ−α∇ϕl[−logp(Yl(t)∣,Vl(t),ϕl)]
( t ) (t) (t) for training, V \mathcal{V} V for inputs, Y \mathcal{Y} Y for labels. ϕ \phi ϕ denotes the classifier meta parameter, and ϕ l \phi_l ϕl represents the parameter for task T l \mathcal{T}_{l} Tl.
Results
- Significantly better than baselines
- 在聚类时设置的类越多效果越好(原文使用K=3,4,5进行实验)