2016-04-25 106 views
4

我刚刚通过TensorFlow教程(https://www.tensorflow.org/versions/r0.8/tutorials/mnist/pros/index.html#deep-mnist-for-experts)。TensorFlow交叉熵教程

我对此两个问题:

  1. 为什么它使用cost function with y_ * log(y)?难道不是y_ * log(y) + (1-y_) * log(1-y)

  2. TensorFlow如何计算我使用cost functiongradient?我们不应该在某个地方告诉TensorFlow如何计算gradient

谢谢!

+0

渐变下降功能已编程。你可以挖掘源代码来找到它。 –

回答

5
  1. 当y = 1或0,则可以使用Y_ *日志(Y)+(1-Y_)*日志(1-Y),但是当y是一个热编码,Y = [0 1]或[1 0],我们使用y_ * log(y)。事实上,它们是一样的。

  2. 一切都是TensorFlow中的图形,包括您的成本函数。

enter image description here

因此,每个节点都知道它们的操作和局部梯度。 Tensorflow使用反向传播(链式规则)使用图形计算渐变。

+0

为什么所有的图都这么小?我无法阅读其中的任何内容,包括这一个。我可以下载SVG吗? –

+0

@BSeven我只是想显示“成本”是图中的一个节点。你可以运行TensorBoard来获得更好的图表。 –

+0

您也可以在IPython笔记本中查看图形[此处](http://nbviewer.jupyter.org/github/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/deepdream/deepdream.ipynb)(查找show_graph) –