2017-05-30 78 views
0

我學習TensorFlow過程中感到困惑與神經網絡初始化。我應該使用神經網絡的多重初始化嗎?

有兩個原因,我發現它應該執行隨機初始化

  1. 避免對稱性破缺。 (使用初始化)
  2. 避免壞的局部極小。 (使用多個初始化,並選擇最好的一個)

我知道爲什麼這樣可避免對稱性破缺了,不過第二個原因還是讓我很迷惑的第一個原因。

在TensorFlow Getting Started教程中,他們使用隨機初始化,但多次。

回答

1

他們使用的初始化一次。然後訓練。沒有新的初始化,因爲這會覆蓋訓練後的權重。

一旦你的神經網絡收斂(=認爲「好」的結果),你可能會節省那些權重和從頭開始(=新的初始化),結果從第一次訓練過程中比較結果。

你可以重複這一幾次,然後用從最好的訓練(=從「最好的」初始化開始)的權重。

爲什麼你這樣做是因爲初始化,執行好這取決於你的神經網絡的體系結構的一個重要步驟的原因。所以你可能會說:每個人只能出生一次。但是如果你想培育一種新的愛因斯坦,你可能需要很多人才能找到一個。

+0

謝謝你,@friesel。但是,爲什麼我用'tf.truncated_normal'初始化的權重**只有一次**,它總是得到[即(https://www.tensorflow.org/get_started/mnist/pros)數據集的99.2%,測試精度?這種情況稱爲**凸函數**嗎? – zuanzuan