DatawhaleLeeML-Task05-网络设计的技巧第二部分
Datawhale LeeML-Task05-網絡設計的技巧第二部分
- 分類
- Batch Normalization
分類
如果class用 1 2 3表示不妥 并不一定有關聯性 ——> 把class用one-hot來表示
分類一般在最后會加上Soft-max函數:
yi′=exp?(yi)∑jexp?(yi)y_{i}^{\prime}=\frac{\exp \left(y_{i}\right)}{\sum_{j} \exp \left(y_{i}\right)} yi′?=∑j?exp(yi?)exp(yi?)?
滿足:
0<yi′<1∑iyi′=1\begin{aligned} &0 < y_{i}^{\prime}< 1 \\ &\sum_{i} y_{i}^{\prime}=1 \end{aligned} ?0<yi′?<1i∑?yi′?=1?
如果只有兩類,用Sigmoid函數(相同效果)
損失函數
均方差 交叉熵
為什么分類中cross entropy更好(當然可以采用Adam等方法也許可以改進,使得可以train到右下角 ) ,所以Loss function 也會影響到訓練
Pytorch 中 cross entropy內嵌了softmax
Batch Normalization
當我們輸入feature,每個維度上數值差距很大時 就會產生不個方向斜率非常不同的Error surface
解決方法: 讓feature里不同的dimension,有同樣的數值范圍
x1,x2,x3,...,xr,...,xR\begin{array}{lllll}x^{1},x^{2},x^{3},...,x^{r},...,x^{R}\end{array}x1,x2,x3,...,xr,...,xR?是所有 feature,對同一個dimension里不同的feature的數值計算平均,標準差,進行標準化
考慮深度學習,那么第一層輸出后,是否不同維度又有不同分布了 ,繼續標準化
實際,我們不會考慮所有training data,而只是考慮一個batch里的data ===> Batch Normalization
適用于batch size 比較大時
一般標準化后還會進一步操作(回復一些數據特征?):z^i=γ⊙z~i+β\hat{\mathbf{z}}^{i}=\gamma \odot \tilde{z}^{i}+\betaz^i=γ⊙z~i+β 這是兩個參數,學習出來的
在測試時,μ,σ\mu, \sigmaμ,σ用的是訓練階段得到的moving average,而不用再次計算
**BN作用:解決Internal Covariate Shift(內部協方差偏移問題),改變Error surface,使得沒有那么崎嶇 **
別的Normalization:
上面BN部分還需完善
總結
以上是生活随笔為你收集整理的DatawhaleLeeML-Task05-网络设计的技巧第二部分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为OD机试107-跳格子游戏
- 下一篇: sketch制作Android动画,Sk