摘要: 分享对论文的理解. 原文见 Zhang, M.-L., & Zhou, Z.-H. (2006). Multi-label neural networks with applications to functional genomics and text categorization. IEEE Transactions on Knowledge and Data Engineering, 18, 1338–1351.
1. 论文贡献
The first multilabel neural network algorithm.
多标签学习的第一个神经网络算法.
2. 主要思想
The labels belonging to an instance should be ranked higher than those not belonging to that instance.
例: 如果图片里面有猫但没狗, 则猫对应的预测值应该比狗的大.
更实际的例子: 对猫这个标签的预测值为 0.6, 对狗为 0.3, 则惩罚较小 (机器学习里面一般惩罚值都大于 0); 否则惩罚很大.
进一步解读: 成对的比较.
3. 符号系统
符号 | 含义 | 说明 |
---|---|---|
X = R d \mathcal{X} = \mathbb{R}^d X=Rd | d d d 维特征空间 | |
Y = { 1 , 2 , … , Q } \mathcal{Y} = \{1, 2, \dots, Q\} Y={1,2,…,Q} | 标签空间 | 使用整数集合而不是 { − 1 , 1 } d \{-1, 1\}^d {−1,1}d |
h : X → 2 Y h: \mathcal{X} \to 2^\mathcal{Y} h:X→2Y | 分类器 | 使用幂集 |
f : X × Y → R f: \mathcal{X} \times \mathcal{Y} \to \mathbb{R} f:X×Y→R | 回归器 | 为每个对象的每个标签预测一个概率 |
说明:
- 从回归器到分类器, 只需要增加一个阈值.
- 有些 (更为流行的) MLL 评价指标并不需要输出 + 1 +1 +1 或 − 1 -1 −1, 而是标签的排序.
4. 算法核心
E
=
∑
i
=
1
m
E
i
=
∑
i
=
1
m
1
∣
Y
i
∣
∣
Y
i
‾
∣
∑
(
k
,
l
)
∈
Y
i
×
Y
i
‾
exp
(
−
(
c
k
i
−
c
l
i
)
)
,
(1)
E = \sum_{i=1}^m E_i = \sum_{i=1}^m \frac{1}{\vert Y_i \vert \vert \overline{Y_i} \vert} \sum_{(k, l) \in Y_i \times \overline{Y_i}} \exp(-(c_k^i - c_l^i)), \tag{1}
E=i=1∑mEi=i=1∑m∣Yi∣∣Yi∣1(k,l)∈Yi×Yi∑exp(−(cki−cli)),(1)
其中:
- Y i ‾ = Y ∖ Y i \overline{Y_i} = \mathcal{Y} \setminus Y_i Yi=Y∖Yi, 即 Y i Y_i Yi 的补集.
- c k i = f ( x i , k ) c_k^i = f(\mathbf{x_i}, k) cki=f(xi,k) 是神经网络对于 x i \mathbf{x_i} xi 第 k k k 个标签的预测值.
- 第一个求和是针对所有对象.
- 第二个求和本质上是双重循环, 如 ∣ Y i ∣ = 10 \vert Y_i \vert = 10 ∣Yi∣=10, Q = 100 Q = 100 Q=100, 则需要求 10 × 90 = 900 10 \times 90 = 900 10×90=900 对.
- 当 exp \exp exp 的参数小于 0 时, 损失较小, 否则相当大.
5. 小结
- 成对比较的思想.
- 一篇机器学习的论文, 一个损失函数就够了.
- 可以把 exp \exp exp 替换成另外的单增函数, 或者改变网络结构, 以此来进行小的创新.