assignment 2
assignment2講解參見:
https://blog.csdn.net/BigDataDigest/article/details/79286510
http://www.cnblogs.com/daihengchen/p/5765142.html
最后一個作業Q5基於Tensorflow和Pytorch,將會需要在GPU上運行。
1. softmax_loss:
log_probs[range(N), y]:從log_probs中取出縱值為yi,即正確標簽,橫值圖像數,即從log_probs中取出y所指向的正確類的概率值,得到是一個[N,]數組,加和后除以N,即為softmax_loss。
2.關於batch normalization:
參見:https://www.cnblogs.com/guoyaohua/p/8724433.html
參見:https://www.cnblogs.com/skyfsm/p/8453498.html
反向傳播參見:https://zhuanlan.zhihu.com/p/26138673
https://blog.csdn.net/kevin_hee/article/details/80783698
基本流程:減去均值(mini-batch mean)、除以方差(normalize)、scale and shift。
3.總結:
到這里,我們大致學完了“神經網絡”基礎。我們學習了:
l 一個神經網絡應該有三大基礎東西 - 損失函數、梯度、權值(模板)。
l 神經網絡將一個函數封裝成一個獨立的神經元,然后將神經元分層連接,使之高效地傳遞信息。
l 我們認識了各種激活函數(推薦使用ReLU)。
l 我們可以對初始數據做預處理(推薦使用“減均值+除標准差”)。
l 我們還可以對隱藏層也做類似處理(Batch Normalization)。
l 我們應該對權進行初始化(推薦使用“隨機數+除標准差”)。
l 如果train/val之間有gap,就是過擬合了(推薦使用“R2+Dropout”)。
l 在訓練中,要對各種參數進行更新(推薦使用Adam)。
l 最后,還有對超參數進行調優的方法。