Open ywchan2005 opened 8 years ago
英文版:Little things about data massage for neural network
在設計類神經網絡時,有大約四處地方可供調控,從而令學習更有效。
這次實驗集中處理對輸入數據及預期輸出的調控。要令反向傳播學習(backpropagation learning)更易達成,我們需要將輸入數據標準化(standardization),以及將預期輸出進行重新縮放(rescaling)。
x' = ( x - x.mean() ) / x.var() y = ( y - y.min() ) / ( y.max() - y.min() )
輸入數據的標準化可以幫助穩定權重及偏權的調整,而預期輸出的數值應該遷就激勵函數(activation function)而作出調整。
以下是我們的類神經網絡要學習的數據。 y = cos(x1) * cos(x2) 以下是我們的類神經網絡。
m = Sequential() m.add( Dense( 16, input_dim=1, init='glorot_normal', activation='relu' ) ) m.add( Dense( 1, init='glorot_normal', activation='relu' ) ) m.compile( loss='mse', optimizer='adam' )
下圖是在訓練類神經網絡時所記錄的權重及偏權的調整和整體損失分數(total loss)。 權重調整 偏權調整 整體損失分數 我們的類神經網絡在訓練後的輸出跟預期輸出相似。 類神經網絡的輸出(綠);預期輸出(藍) 相反地,如果輸入數據沒有標準化,我們可以看出權重及偏權的調整比之前的不那麼平均,從而可能導致網絡中輸出神經元的飽和(saturation)。 權重調整 偏權調整 整體損失分數 我們的類神經網絡在訓練後的輸出仍未能跟預期輸出相似。 類神經網絡的輸出(綠);預期輸出(藍)
VC,軟件工程師,閒餘學習類神經網絡 學習筆記記錄於 http://www.medium.com/vclab
英文版:Little things about data massage for neural network
調控
在設計類神經網絡時,有大約四處地方可供調控,從而令學習更有效。
對數據的調控
這次實驗集中處理對輸入數據及預期輸出的調控。要令反向傳播學習(backpropagation learning)更易達成,我們需要將輸入數據標準化(standardization),以及將預期輸出進行重新縮放(rescaling)。
輸入數據的標準化可以幫助穩定權重及偏權的調整,而預期輸出的數值應該遷就激勵函數(activation function)而作出調整。
實驗結果
以下是我們的類神經網絡要學習的數據。 y = cos(x1) * cos(x2) 以下是我們的類神經網絡。
下圖是在訓練類神經網絡時所記錄的權重及偏權的調整和整體損失分數(total loss)。 權重調整 偏權調整 整體損失分數 我們的類神經網絡在訓練後的輸出跟預期輸出相似。 類神經網絡的輸出(綠);預期輸出(藍) 相反地,如果輸入數據沒有標準化,我們可以看出權重及偏權的調整比之前的不那麼平均,從而可能導致網絡中輸出神經元的飽和(saturation)。 權重調整 偏權調整 整體損失分數 我們的類神經網絡在訓練後的輸出仍未能跟預期輸出相似。 類神經網絡的輸出(綠);預期輸出(藍)
參考
關於筆者
VC,軟件工程師,閒餘學習類神經網絡 學習筆記記錄於 http://www.medium.com/vclab