如何使用 tanh() 激活器将图像标签表示为用于 MNIST 分类的向量?
How to represent image label as a vector for MNIST classification with tanh() activator?
我正在训练完全连接的神经网络来对 MNIST 数据集进行分类。输出层中最饱和神经元的索引定义网络输出(从 0 到 9 的数字)。
我想使用tanh()
激活函数(仅供学习)。
将图像标签表示为向量(用于生成将被反向传播的误差向量)的正确方法是什么?
对于 sigmoid()
激活器,该向量可以是零向量,在分类数字的位置只有 1
。这是否意味着对于 tanh()
它应该是 -1
的向量而不是 0
的向量(基于函数的范围)?一般指导是什么?
如果您在这种情况下使用tanh
,是的,您可以将图像标签设置为-1 或1。在这种情况下,'correct' 位将被推向正无穷大,'wrong' 位将被推向负无穷大。
一般来说,我建议改用 softmax
。他们的关系很好解释here。 (tanh
只是 sigmoid*2-1
)。虽然 sigmoid 执行二进制 class 化问题(这是一个 '7' 还是不是),但 softmax 执行多 class class 化(这是什么数字最有可能是).不同之处在于 softmax 代表所有输出的概率分布(如果我非常有信心这是一个“1”,那么它是“3”或“4”或其他的概率较低),而多个独立的 sigmoid 确实不在乎。
在这种情况下,由于您的输出是一个单热向量,因此每个数字的值肯定是相互关联的(即来自“1”的高响应应该会抑制其他响应)。使用softmax将使训练更稳定并给出更好的结果。
我正在训练完全连接的神经网络来对 MNIST 数据集进行分类。输出层中最饱和神经元的索引定义网络输出(从 0 到 9 的数字)。
我想使用tanh()
激活函数(仅供学习)。
将图像标签表示为向量(用于生成将被反向传播的误差向量)的正确方法是什么?
对于 sigmoid()
激活器,该向量可以是零向量,在分类数字的位置只有 1
。这是否意味着对于 tanh()
它应该是 -1
的向量而不是 0
的向量(基于函数的范围)?一般指导是什么?
如果您在这种情况下使用tanh
,是的,您可以将图像标签设置为-1 或1。在这种情况下,'correct' 位将被推向正无穷大,'wrong' 位将被推向负无穷大。
一般来说,我建议改用 softmax
。他们的关系很好解释here。 (tanh
只是 sigmoid*2-1
)。虽然 sigmoid 执行二进制 class 化问题(这是一个 '7' 还是不是),但 softmax 执行多 class class 化(这是什么数字最有可能是).不同之处在于 softmax 代表所有输出的概率分布(如果我非常有信心这是一个“1”,那么它是“3”或“4”或其他的概率较低),而多个独立的 sigmoid 确实不在乎。
在这种情况下,由于您的输出是一个单热向量,因此每个数字的值肯定是相互关联的(即来自“1”的高响应应该会抑制其他响应)。使用softmax将使训练更稳定并给出更好的结果。