神經網路訓練時精度問題

2021-07-24 08:24:58 字數 332 閱讀 4561

今天在tensorflow下,用三層網路結構訓練mnist上的資料時,精度出現了很大偏差,在此做個記錄,原因如下:

1.w,b初始化為0,很可能直接導致模型失效,無法收斂。因此可以對w初始化為隨機值解決(在cnn中,w的隨機化,也是為了使得同一層的多個filter,初始w不同,可以學到不同的特徵,如果都是0或某個值,由於計算方式相同,可能達不到學習不同特徵的目的)

2.隱藏層的啟用函式應該用relu較好

3.交叉熵的計算,是否取平均值問題,取平均值,就相當於除以乙個常數,那麼相對的cost值就較小,使得後續的學習率可以設的相對較大,也不影響精確。如果不取平均,學習率應該適當小,才可以避免取不到最小值。

神經網路訓練

學習了bp神經網路演算法,剛開始最終要的一點不明白的就是前一層和後一層 這裡指的只有三層,輸入層,隱藏層,輸出層 的權重,其實神經網路演算法中,前一層的每乙個節點和後一層的每乙個節點都有連線權重,初始權重是隨機的。而更新權重是通過輸出層的值來反向更新的。基本過程如下 1.輸入第乙個訓練樣本 對應的就...

訓練神經網路時如何確定batch size?

當我們要訓練乙個已經寫好的神經網路時,我們就要直面諸多的超引數了。這些超引數一旦選不好,那麼很有可能讓神經網路跑的還不如感知機。因此在面對神經網路這種容量很大的model前,是很有必要深刻的理解一下各個超引數的意義及其對model的影響的。簡單回顧一下神經網路的一次迭代過程 數學基礎不太好的初學者可...

神經網路訓練技巧

1 學習速率。首先設學習速率為乙個較大的值,確保training cost在不斷下降。當accuracyy在n個epoch內不再增加時,使得學習速率減小一半。重複迭代,直到學習速率變成原來的1 1024。2 學習速率要根據訓練cost調。但是網路層數和神經元數目,mini batch size要根據...