machine-learning - 使用单个输出分类为三类

标签 machine-learning nlp deep-learning sentiment-analysis lstm

我使用 LSTM 进行情感分类,并且有三个可选类别 - 负面/正面/中性。

我想知道是否有一种方法可以使用 -1:1 范围内的单个输出来进行此分类,而 -1 是中性类,0 是负类,1 是正类。

我知道sigmoid函数从0到1,tanh从-1到1,所以使用tanh可能是一个很好的线索,但是使用单个输出分类到三个不同的类别仍然有意义吗?

最佳答案

基本上,每个类(class)拥有三个单元比一个单元更有用 - 这最终会给您一个有助于分配适当类(class)的分数。这背后的直觉如下:

  1. 最终单元(tanh 或 sigmoid) - 在负类的情况下应在其输入中接收一个巨大的负数,在正类的情况下应接收一个巨大的正数。
  2. 因此,在提供输入的单元中,最后一个单元中应该有能够在正类别和负类别的情况下提供强输入的神经元。
  3. 现在看一下中性情况 - 然后还应该有一些单元可以为最终单元提供一定的输入,以防输入接近 0。这需要网络的额外复杂性,并且可能会损害训练,因为该单元不仅应该识别中性输入,还应该降低其他单位的输入的重要性。

因此,总而言之,要拥有一个可在 -1:1 之间处理最终输出的高效模型,您需要在网络中拥有与三个输出相同的单元。此外 - 您需要增加额外的复杂性,这将使“正”和“负”单元的输出在中性情况下不那么重要。所以 - 这宁愿损害你的训练而不是有任何帮助。

关于machine-learning - 使用单个输出分类为三类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383388/

相关文章:

python - TensorFlow:tf.layers 与低级 API

machine-learning - 使用 word2vec 来编码分类特征是个好主意吗?

nlp - 从标注器获取附加信息(主动/被动、时态...)

c# - 文本哈希技巧在 Python 和 C# 中产生不同的结果

python - Keras 的 BatchNormalization 和 PyTorch 的 BatchNorm2d 之间的区别?

machine-learning - 直观理解卷积神经网络中的 1D、2D 和 3D 卷积

optimization - 机器学习挑战: technique for collect the coins

matlab - Matlab 中的感知器训练

python - 机器学习 - 如何根据过去的特征预测一组固定字段

python - 在图像回归任务中尝试预测均值和标准差时无法获得良好结果