大多数输入为 0 的神经网络如何训练?

人工智能 卷积神经网络 训练 反向传播 亚历克斯网
2021-11-08 12:02:26

考虑 AlexNet,它有 1000 个输出节点,每个输出节点对图像进行分类:

在此处输入图像描述

我在训练相似比例的神经网络时遇到的问题是,它做了任何合理的网络都会做的事情:它找到了减少错误的最简单方法,即恰好将所有节点设置为 0,就像绝大多数当时,他们就是这样。我不明白一个网络在 1000 次中有 999 次,节点的输出为 0,如何可能学会使该节点为 1。

但显然,这是有可能的,因为 AlexNet 在 2012 年的 ImageNet 挑战赛中表现非常出色。所以我想知道,当大多数输入的输出节点的期望值为 0 时,如何训练神经网络(特别是 CNN)?

1个回答

这是损失函数。

我使用的是平方和误差,我认为它不会产生负面影响,我不得不在我自己的时间来解释。原因如下:

从损失函数的角度来看,1000 次中有 999 次输出应该为 0,因此所有输出节点都会存在固有的大量偏向 0 的情况。但这只有在输出节点的期望输出为 0 时实际训练时才会发生,这就是在平方和/均值误差的情况下发生的情况。然而,在交叉熵损失的情况下,在这里得到了很好的解释,你可以看到唯一接收梯度的节点是应该向 1 训练的节点。这消除了对 0 的大量偏差,并惩罚了自信的误报,使其非常适合分类问题。

至于如何实现这样的回归我不知道,但至少这解决了分类问题的问题。