softmax_cross_entropy_with_logits 与 softmax_cross_entropy_with_logits_v2 有何不同?

机器算法验证 机器学习 监督学习 张量流 反向传播
2022-01-30 11:25:31

具体来说,我想我想知道这个说法:

默认情况下,TensorFlow 的未来主要版本将允许梯度流入 backprop 上的标签输入。

当我使用tf.nn.softmax_cross_entropy_with_logits. 在同一条消息中,它敦促我查看tf.nn.softmax_cross_entropy_with_logits_v2. 我查看了文档,但它只指出tf.nn.softmax_cross_entropy_with_logits_v2

反向传播将同时发生在 logits 和标签中。要禁止反向传播到标签,请在将标签张量提供给此函数之前通过 stop_gradients 传递标签张量。

tf.nn.softmax_cross_entropy_with_logits's 相反:

反向传播只会发生在 logits 中。

作为这个主题的新手(我正在尝试通过一些基本教程),这些陈述不是很清楚。我对反向传播的理解很浅,但是前面的陈述实际上是什么意思?反向传播和标签是如何连接的?tf.nn.softmax_cross_entropy_with_logits_v2与原版相比,这将如何改变我的工作方式?

1个回答

你完全有理由感到困惑,因为在监督学习中不需要反向传播到标签。它们被认为是固定的基本事实,只需要调整权重以匹配它们。

但在某些情况下,标签本身可能来自可区分的来源,即另一个网络。一个例子可能是对抗性学习在这种情况下,两个网络都可能从错误信号中受益。tf.nn.softmax_cross_entropy_with_logits_v2这就是引入的原因请注意,当标签是占位符时(这也是典型的),梯度是否通过流动没有区别,因为没有变量可以应用梯度。