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