【问题标题】:Classifying to three classes using a single output使用单个输出分类为三个类
【发布时间】:2016-07-22 20:34:47
【问题描述】:

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

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

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

【问题讨论】:

  • 所以没有办法用单一输出训练单一分类器?我需要为这个任务训练三个分类器,对吧?
  • 如果是情绪分析,你只需要一个回归,输出0-1并分成3个范围0-0.33、0.33-0.66、0.66-1.0
  • 我已经尝试过这种方法,但结果很糟糕。此外,我有一个中性的训练集,我想使用它,所以我需要一个额外的输出。我现在正在尝试 one vs rest 方法。谢谢
  • cs231n.github.io/linear-classify 看看这个 - 我认为它可能会有所帮助。

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


【解决方案1】:

基本上,为每个班级设置三个单元而不是一个单元会更有用 - 这最终会为您提供有助于分配适当班级的分数。这背后的直觉如下:

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

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

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 2018-09-22
    • 2013-05-27
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多