这是来自张量流示例之一mnist_softmax.py。
即使梯度非零,它们必须是相同的,并且对应于十个类的所有十个权重向量应该完全相同并且产生相同的输出对数并因此产生相同的概率。唯一可以认为这是可能的情况是在使用tf.argmax()计算精度时,如果是关系,其输出是不明确的,我们很幸运并且导致92%的准确性。但是在训练完成后我检查了y的值,它们给出了完全不同的输出,表明所有类的权重向量都不相同。有人能解释一下这是怎么回事吗?
答案 0 :(得分:0)
虽然最好将参数初始化为小的随机数以破坏对称性并可能加速学习,但这并不一定意味着如果将权重初始化为零,您将获得所有类的相同概率。
原因是因为cross_entropy
函数是权重,输入和正确的类标签的函数。因此,对于每个输出'神经元',渐变将是不同的,这取决于正确的类标签,这将打破对称性。