2016-04-25 70 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) –