多标签分类问题详情 及 医学影像分类的思考
最近在做眼底图像的多标签分类,读了一下武大的刘威威老师的综述The Emerging Trends of Multi-Label Learning1,本人也看了一点医学影像分类和天然图像多标签分类的文章。本文次要总结一下浏览之后对多标签分类(multi-label classification, MLC)问题的了解,以及对于医学影像上的多标签问题的特点的一点思考。
综述的概括
为了偷懒这里就不列各个办法的援用了,在概括综述内容的根底上加了一点本人的了解,是跳着读的所以只有局部内容。
综述构造
MLC 问题的钻研重点蕴含几个方面:
-
Extreme MLC: XMLC, 就是类别数十分大的 MLC 场景。随着大数据时代的到来,这个场景的钻研意义重大。
- 大部分工作是基于 SLEEC 之后做的,次要有基于 one-vs-all 分类器、树、embedding 三种思路。
- 实践层面须要针对标签稠密,解决长尾散布问题。
-
MLC with missing/nosiy label:非全监督学习的 MLC 版本,次要针对标签的问题进行解决。
- missing label:预设有的类别无 label
- semi-supervised:传统半监督学习的迁徙,局部 data 有 label,局部没有
- partial multi-label: 局部 label 不可信,即含糊标签的场景
-
online MLC for stream data:因为当初 web 端实时产出大量流数据,针对线上实时场景的 MLC 被大量关注。
- 流数据无奈预读到内存里获取全局,个别须要实时处理每个工夫戳
- 现有 offline MLC model 在序列数据上的成果个别
- online MLC 畛域目前在试验和实践上暂无特地好的成果(very limited)
§4 Deep Learning for MLC
- BP-MLL
最早在 MLC 中应用 NN 构造的是 BP-MLL, 它提出了一种 pairwise 的 loss 函数,如下:
$$
E_{i}=\frac{1}{\left|y_{i}^{1}\right|\left|y_{i}^{0}\right|} \sum_{(p, q) \in y_{i}^{1} \times y_{i}^{0}} \exp \left(-\left(F\left(x_{i}\right)^{p}-F\left(x_{i}\right)^{q}\right)\right)
$$
其中 $p,q$ 别离为预测为 1 和 0 的类别,应用 $e^{-x}$ 模式惩办项,使得不同的类别间差值尽可能大,整体是一种 rank loss 的思路。
在随后的钻研中发现,BP-MLL 能够应用 cross-entropy loss,再加上一点 ReLu/Dropout/AdaGrad 之类的 trick,能够再经典 BP-MLL 无奈利用的大规模文本分类的场景取得新的 SOTA 性能。
- C2AE
经典的 Embedding 办法只能获取 label 自身的语意 dependency,不可能获取更高维的分割,C2AE(Canonical Correlated AutoEncoder)是第一个基于 Embedding 的 MLC 办法,它通过自编码器提取特色,利用 DCCA(deep canonical correlation analysis)基于特征提取 label 间的分割,属于 embedding 层。
C2AE 整体指标函数定义如下:
$$
\min _{F_{x}, F_{e}, F_{d}} \Phi\left(F_{x}, F_{e}\right)+\alpha \Gamma\left(F_{e}, F_{d}\right)
$$
$F_x, F_e, F_d$ 别离为 特色映射、编码函数、解码函数,$\alpha$ 是均衡两个惩办项的权重项。$\Phi, \Gamma$ 别离为 latent 空间 (feature 和 encoding 之间) 和 output 空间上 (encoding 和 decoding 之间) 的 loss。
借鉴了 CCA 的思路,C2AE 使 instance 和 label 的分割尽可能大(最小化差距)
$$
\begin{aligned}
\min _{F_{x}, F_{e}} &\left\|F_{x}(X)-F_{e}(Y)\right\|_{F}^{2} \\
\text {s.t.} & F_{x}(X) F_{x}(X)^{T}=F_{e}(Y) F_{e}(Y)^{T}=I
\end{aligned}
$$
自编码器应用和上文类似的 rank loss,使得不同类别的 code 差异尽可能大。
$$
\begin{array}{l}
\Gamma\left(F_{e}, F_{d}\right)=\sum_{i=1}^{N} E_{i} \\
E_{i}=\frac{1}{\left|y_{i}^{1}\right|\left|y_{i}^{0}\right|} \sum_{(p, q) \in y_{i}^{1} \times y_{i}^{0}} \exp \left(-\left(F_{d}\left(F_{e}\left(x_{i}\right)\right)^{p}-F_{d}\left(F_{e}\left(x_{i}\right)\right)^{q}\right)\right)
\end{array}
$$
后续的 DCSPE, DBPC 等工作进一步晋升了文本分类上的 SOTA 性能和推理速度。
- patial and weak-supervised MLC
CVPR 2020 中 D. Huynh 的Interactive multi-label cnn learning with partial labels和 CVPR 2019 中 T. Durand 的Learning a deep convnet for multi-label classification with partial labels(以下依据坐着名称简称 D 和 T)做了相干钻研。
T 应用 BCE Loss 训练有标签局部,而后应用 GNN 提取标签间分割。试验证实局部标注的大数据集比全标注的小数据集成果要好,进一步证实了 partial label 的 MLC 畛域的钻研意义。
D 在 T 的根底上,应用流形学习的思路,将 label 和 feature 的流形平滑度作为 BCE Loss 函数的 cost,再应用半监督的思路,CNN 学习和 similarity 同步进行(我没看这篇文章,听综述的这种形容相似于 $\pi$ 模型或者 teacher-student 构造)。
- SOTA 的 Advanced MLC
分类链:ADIOS 把 label 切分成马尔科夫毯链(Markov Blanket Chain),能够提取 label 间的关系,而后丢进 DNN 训练。
CRNN:有 2 篇文章把类别作为序列,应用 CRNN 或者 C -LSTM 解决。更进一步对于类别序列的程序应用 attention/RL 进行学习,寻找最优程序。CVPR 2020 和 AAAI 2020 各有一篇此思路的,应用 optimal completion distillation+ 多任务学习 / 最小 alignment 的思路,都是尝试动静调整 label sequence 的 order(order-free)。
graph 相干
- 2 建设一个类别间的有向图,而后应用 GCN 训练。
- SSGRL3 应用 embedding 进行 semantic decoupling, 而后应用 GNN 学习 label+feature 形成的 -semantic,强化 instance 和 label 特色,以学习更高维的 label 间的分割。
- 4 对 GCN 和 CNN 的一些 layer 间增加连贯,从而实现 label-aware 的分类学习
- 5 应用 GCN 获取 rich semantic info,再应用 non-local attention 获取长语意关联。
- 6 应用深度森林,一种 tree ensemble 形式,不依赖回传机制。提出了 MLDF(multi-label Deep Forest),据说能够更好地解决过拟合,在 6 种指标上获得了 SOTA 的成果,是 lightweight 设计的一个摸索。
医学影像的 MLC 思考
以前看医学图像宰割的文章(DeepIGeoS),国泰对于医学图像的非凡点概括为:
- 低对比度,高噪声,存在空腔
- 患者间 scale 和 feature 差别微小
- 疾病间的不平均表征
- 医生定义不同会造成 ground-truth 特色不统一
这次要针对与宰割而言,因为个别宰割工作的 CT 和 MRI 图像是高 Intensity 的灰度图像,感觉在 MLC 场景中 1 和 2 根本都不咋实用。
3 在 MLC 中体现为不同类别的 feature 的不平均,例如有的疾病可能可观测症状笼罩很大区域,有的就只是很小的局部会呈现可观测的症状,感觉相似于 FPN 的 multi-scale 策略对于特征提取会有一些帮忙,不过这是一个很 general 的揣测,具体成果须要在具体的场景下多做试验。
4 能够分割上 MLC 中的 partial label 问题,如果对于疾病的判断是不确定的,例如医生对一个患者得出几种可能病症,此时又没有进一步查看,那么兴许能够设计一种办法预测各个 label 的置信度,哈哈哈感觉这是一个 paper 的 idea 了,惋惜场景和数据的要求感觉有些刻薄。
另外值得一提的就是类别不均衡,因为一些疾病的病例较少,可能收集到的 data 里只有个位数的正例,此时这个类别很可能基本学不到啥,目前想法不是很清晰,过几天有工夫再专门调研一下这个问题。
最初就是医学图像脍炙人口的半监督,如果有局部没有标注的数据和一些标注的数据,拿来做半监督对性能也能晋升一些,尽管不局限医学图像,然而因为医学标注获取较难,半监督的利用也特地广,大有可为吧能够说。
参考文献
- W. Liu, X. Shen, H. Wang, and I. W. Tsang,“The Emerging Trends of Multi-Label Learning,”arXiv:2011.11197 [cs], Dec. 2020, Accessed: Jan. 08, 2021. [Online]. Available: http://arxiv.org/abs/2011.11197. ↩
- Z. Chen, X. Wei, P. Wang, and Y. Guo,“Multi-label image recognition with graph convolutional networks,”in CVPR, 2019, pp. 5177–5186. ↩
- T. Chen, M. Xu, X. Hui, H. Wu, and L. Lin,“Learning semanticspecific graph representation for multi-label image recognition,”in ICCV, 2019, pp. 522–531. ↩
- Y. Wang, D. He, F. Li, X. Long, Z. Zhou, J. Ma, and S. Wen,“Multilabel classification with label graph superimposing,”in AAAI, 2020, pp. 12 265–12 272. ↩
- P. Tang, M. Jiang, B. N. Xia, J. W. Pitera, J. Welser, and N. V. Chawla,“Multi-label patent categorization with non-local attention-based graph convolutional network,”in AAAI, 2020. ↩
- L. Yang, X. Wu, Y. Jiang, and Z. Zhou,“Multi-label learning with deep forest,”CoRR, vol. abs/1911.06557, 2019. ↩