4

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

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

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

谢谢!

4

1 回答 1

4

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

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

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

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

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

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

A=A 1 +A 1 A 0 ,

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

于 2019-04-03T14:00:19.023 回答