神經網絡的debug

  1. 先建一個只有一層隱藏層的網絡肯定一切工做正常網絡

  2. 在一個數據點上訓練,training accuracy應該立刻到100%而val accuracy等於隨機猜想(overfit),若是不是說明有bug。
  3. 全部loss要在同一個order上,loss要適合任務(categorial cross-entropy loss :multi-classification problems or focal loss :class imbalance)
  4. 關注初始的loss,要接近隨機猜想的機率。(regularization置於0),好比分類,機率應該等於loss function(1/N),不然多是由於weights不平衡(initialization不好)或數據集沒有normalize
    1. gradient values = 0->learning rate過小或梯度更新的表達式不對
    2. activations, weights和各層的尺度相符
    3. Vanishing or exploding gradients
    4. 可視化網絡:ConX或Tensorboard
    1. 要注意regularization是否是遠大於data loss,gradients就變成主要從regularization來了
    2. exploding gradients用gradient clipping
    3. 注意一塊兒用dropout和batch normalization時的順序
相關文章
相關標籤/搜索