feature map 意义_FeatureMap Viewer以及中心化对统计分布变化的影响讨论
Introduction
準(zhǔn)備做一個(gè)feature map瀏覽器,可以做些intuitive的觀察。code在這里(tool目錄下放的支持變形輸入的module.py模塊)。
可以支持對(duì)feature map和softmax output的瀏覽,其中feature map用了簡單的平均化方法(可視化之前進(jìn)行了歸一化),這一方法似乎簡潔有效,之前有fine grained的任務(wù)是照此進(jìn)行的。
Similar Map
測試的時(shí)候,有一項(xiàng)是對(duì)feature map進(jìn)行操作,用的是vgg16。偶然間發(fā)現(xiàn)沒有經(jīng)過mean處理的輸入產(chǎn)生的feature map和經(jīng)過的看起來沒有什么區(qū)別,而probability有明顯的變化。
Figure 1. 經(jīng)過中心化的featuremap
Figure 2. 原圖數(shù)據(jù)輸入獲得的featuremap
關(guān)于`softmax output`的概率輸出就不貼出來了,沒什么說的。
但兩個(gè)`feature map`就有些意思了。
## Exploration
從輸入的數(shù)據(jù)上來看,兩者有$50\%$的統(tǒng)計(jì)差距,在經(jīng)過多次非線性映射后,表現(xiàn)出極為相似的map。一個(gè)容易想到的解釋是,兩者間有一個(gè)系數(shù)的差別,路上和大師兄說起,他第一感覺也是這樣。
下面兩個(gè)圖是兩個(gè)feature map 的`histogram`,這里注明一下,由于被抑制的元素很多(是非常多),所以統(tǒng)計(jì)范圍區(qū)間設(shè)置為$[0.01,100]$。
Figure 3. Histogram-經(jīng)過中心化的featuremap
Figure 4. Histogram-原始圖數(shù)據(jù)的featuremap
上面第一張是經(jīng)過中心化的,第二張沒有。如果說是有一個(gè)系數(shù)的差異,似乎更容易接受兩個(gè)分布是相同的!
如果說還需要確認(rèn)其中有值得從理論上考察的理由,再來看看`第一個(gè)`*Activation*后Map的分布:
Figure 5. with *mean*
Figure 6. no *mean*
以上兩圖的也是按照`with mean`,`no mean`排列。大致上兩個(gè)也可以認(rèn)為是相同分布。
### Link
如果再腦補(bǔ)一下的話,還可以想象這些分布是一種正態(tài)分布,因?yàn)?#96;ReLU`的存在被truncate了,只剩下正半部分,還可以繼續(xù)腦補(bǔ),如果權(quán)重也是一個(gè)正態(tài)分布(之前有過觀察,發(fā)現(xiàn)確實(shí)是正太),另外從初始化方式上,也可以認(rèn)為其符合。
之前Kaiming He有過一個(gè)關(guān)于初始化方法的[方差理論](https://arxiv.org/abs/1502.01852),暗示在這個(gè)問題上還是可以過一把推導(dǎo)癮的。
# Formulation
令$x\sim\mathcal{N}(\mu,\sigma^2)$是未經(jīng)中心化的輸入變量,$z\sim\mathcal{N}(0,\delta^2)$是中心化后的變量,$w$是一個(gè)零均值正態(tài)分布,獨(dú)立是必須假設(shè)的:) 。需要注意的是,這些假定與實(shí)際是相當(dāng)接近的。
經(jīng)過一個(gè)卷積后,輸出$y$的計(jì)算式:
$$
\begin{equation}
y_i = \sum_jw_{ij}x_{j}\label{eq:output_y}
\end{equation}
$$
下面考察均值和方差兩部分的差異。
## 均值
在上述假定的情況下,均值式計(jì)算如下:
$$
\begin{eqnarray}
E[y_i] & = & E\left[ \sum_j w_{ij}x_{j} \right]\nonumber\\
& = & \sum_j E\left[ w_{ij}x_{j} \right]\nonumber\\
& = & \sum_j E[w_{ij}]E[x_j] \label{eq:mean}
& = & 0
\end{eqnarray}
$$
方差
如果方差計(jì)算出來也是相同的,那么理論與觀察又產(chǎn)生了一種成就感。
\[\begin{eqnarray}
E\left[ \left( \sum_jw_{ij}x_j \right)^2 \right] & = & E\left[ \sum_j\left(w_{ij}x_j \right)^2 + \sum_j\sum_kw_{ij}w_{ik}x_kx_j \right]\label{eq:var1}
\end{eqnarray}
\]
\ref{eq:var1}中第二項(xiàng)根據(jù)相關(guān)假定,歸結(jié)為\(0\),第一項(xiàng),由獨(dú)立假定處理。簡化為:
\[\begin{eqnarray}
E\left[ \left( \sum_jw_{ij}x_j \right)^2 \right] & = & E\left[ \sum_j\left(w_{ij}x_j \right)^2 + \sum_j\sum_kw_{ij}w_{ik}x_kx_j \right]\nonumber\\
& = & \sum_jE[w_{ij}^2]E[x_j^2]
\end{eqnarray}
\]
這說明方差與\(x\)的均值是有關(guān)的。
考慮均值還是比較大的(\(150~vs.~[0,255]\)),所以,在兩種情況下,情況應(yīng)該是不同的,而且應(yīng)該是有比較明顯的不同。
Bias
這里考慮一下bias存在的情況,此種情況對(duì)應(yīng)\ref{eq:var1}中右式加上標(biāo)量\(b\),容易得出,bias對(duì)方差的計(jì)算沒有影響。
關(guān)于方差的進(jìn)一步考察
上面關(guān)于方差的計(jì)算在我的直覺上,感覺是一致的,但卻與觀察上有沖突;我把推導(dǎo)的結(jié)論和大師兄討論了下,他表述了不一樣的直覺。我打算先把第一個(gè)conv的輸入/輸出做些對(duì)比。
Figure 7. distribution of the conv1_1's output with subtracting *mean*
下圖是沒有經(jīng)過減均值處理的輸出分布:
Figure 8. distribution of the conv1_1's output **without** subtracting *mean*
從圖中并沒有獲得令人耳目一新的事物,但比較`title`中`variance`的值,卻會(huì)有新的發(fā)現(xiàn)。
很自然的,這給了我去驗(yàn)證之前推導(dǎo)的公式的激勵(lì)。我們?cè)賮砜纯吹谝粚拥?#96;weight`和`原始`圖像的分布:
Figure 9. distribution of the conv1_1's weight**
下面這張是原始圖像的分布(實(shí)際上這里只需要關(guān)注方差的變化了,所以是否經(jīng)過減均值處理并不影響后面想要得出的結(jié)論)
Figure 10. distribution of the raw input image
Mathematical Formulation
數(shù)據(jù)已經(jīng)足夠,在開始進(jìn)行數(shù)值驗(yàn)證前,再做一些假設(shè)以及驗(yàn)證方法的說明。
Note1
\ref{eq:mean}是對(duì)某一分量進(jìn)行的求解,在此處,假定所有\(zhòng)(y_i\)都是獨(dú)立同分布的,這樣就變成對(duì)單個(gè)隨機(jī)變量的求解,記這個(gè)隨機(jī)變量為\(y\);同理,設(shè)置隨機(jī)變量\(w,x\),并且用一個(gè)常量\(c\)替換求和操作,于是改寫\ref{eq:mean}:
\[\begin{equation}
E[y^2]=cE[w^2]E[x^2]\label{eq:re-formulation-var-x}
\end{equation}
\]
Note2
再用\(\hat{y}\)表示經(jīng)過中心化后的變量\(z\)經(jīng)過卷基層后的輸出隨機(jī)變量:
\[\begin{equation}
E[\hat{y}^2] = cE[w^2]E[z^2]\label{eq:re-formulation-var-z}
\end{equation}
\]
Note3
于是驗(yàn)證的方法是比較通過\ref{eq:re-formulation-var-x}和\ref{eq:re-formulation-var-z}計(jì)算出來的\(c\)是否一致。
\ref{eq:re-formulation-var-x}:
\[\begin{eqnarray}
E[y^2] & = & cE[w^2]E[x^2]\nonumber\\
10735 & = & 0.04\times 20208c\nonumber\\
\Rightarrow c & = & 13
\end{eqnarray}
\]
\ref{eq:re-formulation-var-z}:
\[\begin{eqnarray}
E[\hat{y}^2] & = & cE[w^2]E[z^2]\nonumber\\
2590 & = & 0.04\times 4583c\nonumber\\
\Rightarrow c &= & 14
\end{eqnarray}
\]
另外,看看\(c\)的意義,按照\ref{eq:mean},c應(yīng)該是元素個(gè)數(shù),第一層conv核尺寸為3x3,通道數(shù)為3,考慮到稀疏分布,一半應(yīng)該算正常。
Conclusion
在這次討論中,直觀上看起來改變不大的分布,其方差卻有了巨大改變,這是產(chǎn)生一種沖突的緣由;
正態(tài)分布的假設(shè)在實(shí)際數(shù)值計(jì)算中仍然有相當(dāng)?shù)男в?#xff1b;
過程中還發(fā)現(xiàn),對(duì)變量的認(rèn)定將影響數(shù)值方法的驗(yàn)證感受,比如對(duì)由兩個(gè)滿足正態(tài)分布的隨機(jī)序列逐點(diǎn)相乘得到的序列的和與均值,會(huì)發(fā)現(xiàn)兩者給人的感受有很大差異。
Postscript
這個(gè)問題持續(xù)了一段時(shí)間,我最開始只是想對(duì)featureMap Viewer的code做些小結(jié),順便貼些圖片,后面偶然發(fā)現(xiàn)兩種特征圖有極為相似的視覺感受,開始討論了下相關(guān)的數(shù)學(xué)原理,本來以為結(jié)束了,回去卻突然發(fā)現(xiàn)得出結(jié)論的邏輯剛好弄反了(第二天趕忙過來撤下),于是陷入某種僵局,最后發(fā)現(xiàn)Conclusion第三條中的觀點(diǎn),后面從直接的輸入輸出進(jìn)行了驗(yàn)證。
這是一個(gè)與直覺有沖突的現(xiàn)象。看起來迷亂的猜測最后被計(jì)算貫徹。但也可以注意到softmax的輸出并不是正態(tài)分布的(這很容易想象到,其分布應(yīng)該相近與一個(gè)dirac函數(shù))。
另外,像前面提到的Kaiming He的工作,提供了一些最初的想法。
References
He, Kaiming, et al. "Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification." international conference on computer vision (2015): 1026-1034.
總結(jié)
以上是生活随笔為你收集整理的feature map 意义_FeatureMap Viewer以及中心化对统计分布变化的影响讨论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杨辉三角python语言程序思路_pyt
- 下一篇: windows 2012 apache