大规模多标签文本分类 - 重新设计神经网络

Large-scale Multi-label Text Classification —Revisiting Neural Networks

2014 European Conference on Machine Learning and Knowledge Discovery in Databases

Jinseok NamJungi KimEneldo Loza MencíaIryna GurevychJohannes Fürnkranz

介绍

在这篇文章中,我们直接建立BP-MLL并展示一个简单的单一隐藏层NN如何在大规模多标签文本分类任务中实现最先进的性能。我们建议的关键修改是(i)通过用交叉熵代替BP-MLL的成对排名损失以及(ii)在深度学习领域(例如整流线性单元(ReLUs))中使用最近的发展来提高效率和更有效的训练,DropoutAdaGrad

用于多标签分类的神经网络

在本节中,我们提出了一个基于神经网络的多标签分类框架,该框架由单个隐藏层组成,并与神经网络的优化技术的最新发展一起运行,这使得模型能够更快更好地收敛,我们的方法包括两个模块:产生标签分数的神经网络(第3.2-3.5节),以及使用阈值技术将标签分数转换为二进制的标签预测器。

Ranking Loss(PWE) vs. Cross Entropy(CE)

 ![Alt text](./1542434950388.png)

通过实验从上方左图可以看出,CE的损失函数相对PWE损失函数更陡峭,参数更新的就会越快。使用ReLU激活函数比tanh激活函数更陡峭,参数更新也会更快。

深度学习的最新技术

Rectified Linear Units(2010 ICML提出)

整流线性单元(ReLU)已被提出作为隐藏层上的激活单元,并显示出更好的泛化性能。ReLU禁用负激活(ReLU(x)= max(0,x)),以便在训练期间要学习的参数数量减少。这种稀疏特性使得ReLUs在传统性能方面优于传统的激活单元,如sigmoid和tanh。

AdaGrad学习率调整(2011 ML提出)

和之前的固定的学习速率不同,AdaGrad是自适应学习速率方法,Adagrad 的算法会使用一个小批量随机梯度 gt 按元素平方的累加变量 st。在时间步 0,adagrad 将 s0 中每个元素初始化为 0。在时间步 t,首先将小批量随机梯度 gt 按元素平方后累加到变量 st:
s t s t 1 + g t g t , \boldsymbol{s}_t \leftarrow \boldsymbol{s}_{t-1} + \boldsymbol{g}_t \odot \boldsymbol{g}_t,
其中 ⊙ 是按元素相乘。接着,我们将目标函数自变量中每个元素的学习率通过按元素运算重新调整一下:
x t x t 1 η s t + ϵ g t , \boldsymbol{x}_t \leftarrow \boldsymbol{x}_{t-1} - \frac{\eta}{\sqrt{\boldsymbol{s}_t + \epsilon}} \odot \boldsymbol{g}_t,
其中 η 是学习率,ϵ 是为了维持数值稳定性而添加的常数,例如 10−6。这里开方、除法和乘法的运算都是按元素进行的。这些按元素运算使得目标函数自变量中每个元素都分别拥有自己的学习率。

通过Dropout训练进行正则化(2012 arxiv提出)

原则上,随着网络中隐藏层和隐藏单元的数量增加,其表达能力也增加。如果给出一个大量的训练样例,那么训练更大的网络将比使用更小的网络获得更好的性能。训练这样一个大型网络时的问题是,由于需要学习大量参数,模型更容易陷入局部最小值。

Dropout 训练是一种防止巨大参数空间过度拟合的技术。它的关键思想是通过随机丢弃一些隐藏单元的激活来解耦激活相同输出的隐藏单元。本质上,这对应于训练具有较小隐藏层的网络集合,并组合它们的预测。
然而,不需要明确地计算和组合所有可能的隐藏层的单独预测,但是可以从整个网络近似地重建集合的输出。因此,Dropout 训练具有与集合技术类似的正则化效果

猜你喜欢

转载自blog.csdn.net/csdn_47/article/details/84188480