一,主要思想
简单来说,这篇文章的主要思想就是设计了一个神经网络输出每个标签与所有其他类标签的差值,最后用这个差值计算出预测的标签值。
二,具体方案
1,网络的设计
他们设计了一个简单的三层MLP,即一个输入层+一个隐藏层+一个输出层。
- 输入层:输入了每个样本的特征(即输入层的神经元个数等于特征的维度数);
- 隐藏层:设置了40个神经元;
- 输出层:输出每类标签与其他类标签的差值(即 q(q-1) 个输出神经元,q为每个样本标签的个数)。
上图就表示第一类标签与其他(q-1)类标签的差值。
他们将这个差值记为
c
i
j
(
x
)
c_{ij}(x)
cij(x),即对于每个样本
x
x
x,它拥有的第
i
i
i 类标签与第
j
j
j 类标签的差值。
2,误差函数
其中,
p
^
i
(
x
)
\hat{p}^i(x)
p^i(x) 表示预测的样本
x
x
x 的第
i
i
i 个标签。
3,预测函数
首先,将每类标签由差值和其他类的标签表示,可以写出如下所有式子:
将上面所有式子求和得出:
又因为每个样本的所有标签值的和等于1,可以得到最终预测函数为: