【问题标题】:Neural Network With Sparse Output具有稀疏输出的神经网络
【发布时间】:2016-08-03 07:12:02
【问题描述】:

我有一个有趣的问题,可以简化为这个简单的任务。考虑一个神经网络(LSTM 或其他),它将学习复制稀疏度约为 1% 的稀疏二进制矩阵。

如果我们看一下仅猜测所有条目的 0 的成本函数,它将具有大约 100-% 的稀疏性,因此您只需猜测所有的 0 即可获得非常高的准确度。

有没有办法通过改变稀疏矩阵表示或成本函数来使神经网络脱离这个巨大的局部最小值?

谢谢!

【问题讨论】:

    标签: neural-network sparse-matrix lstm


    【解决方案1】:

    我看到这个问题已经存在 3 年了,所以我的回答可能对你来说不是最相关的,但对于任何偶然发现这个问题并寻找答案的人来说:

    这在很大程度上取决于使用的损失函数、优化器和激活函数的类型。我将主要从分类的角度讲,因为我在这方面有更多经验,不要误导。

    如何解决这个问题可能会有所不同,因为 1% 的稀疏性可能意味着这些矩阵由 99 个 0 元素和单个 1 元素填充(1.)。这可以以比 990 个零元素和 10 个值为 1 (2.) 的元素的情况高得多的精度来解决。

    1. 如果是前者,对我来说一个合理的解决方法似乎是在 输出 上使用 softmax 激活函数,以确保输出值的总和介于 0 和 1 之间,伴随着 分类交叉熵 损失和一些现代优化器(我更喜欢 Adam)。

    2. 在后一种情况下,我们不能使用 softmax,因为输出上有更多的 1 值元素,因此输出层元素的总和不能为 1。出于同样的原因,我们不能使用分类交叉熵。在这种情况下,输出层上的sigmoid激活函数、二元交叉熵损失和Adam优化器应该能够轻松克服了预测全零向量的巨大便利性。

    此处在非常高的稀疏度下的相关考虑可能是尝试以一种方式制定您自己的损失,即正确预测零值将在损失中被视为由非零值的准确性加权。这样,神经网络将不关心零值的准确性,直到非零值的准确性很高。考虑一个非常原始的损失 A,定义为,

    A=A1+A1A0,

    其中 A1 是非零值的准确度,A0 是零值的准确度。有了这种损失,预测正确值为 [0,1,0,0,0,0,0] 的 [0,0,0,0,0,0,0] 将使我们的准确度为 0 ,这使得以前的局部最小值相当陡峭。

    【讨论】:

      猜你喜欢
      • 2018-07-21
      • 1970-01-01
      • 2017-02-20
      • 2018-02-28
      • 2016-07-26
      • 2015-02-23
      • 2020-03-15
      • 2014-04-13
      相关资源
      最近更新 更多