假设我们有一个神经网络:
- 5个输入神经元
- 一些任意数量的隐藏层
- 3个输出神经元
假设我们正在使用大小为 32 的小批量。所以,
- 如果我们在神经网络中输入一个 5x32 矩阵,
- 然后我们将得到一个 3x32 的输出激活矩阵。
假设我们使用一个简单的 MSE 损失函数。我们取我们的 3x32 目标矩阵和 3x32 输出矩阵的差异,并对生成的新 3x32 矩阵中的每个条目进行元素平方,我们将其称为 M。
我感到困惑的是,我在 Theano 和其他深度学习库中看到了很多代码,这些代码将这个矩阵的平均值作为其成本函数(即输出一个标量,而不是一个向量)。
例如, T.mean(T.pow(T-Y, 2))
。为什么是这样?在我的示例中,Theano 不应该反向传播 M,而不是标量值吗?即使我使用小批量,这些库是否只是反向支持标量?