feather map
在cnn的每個卷積層,數據都是以三維形式存在的。可以看成許多個二維圖片疊在一起,其中每一個稱為一個feature map。
1.在輸入層,如果是灰度圖片,那就只有一個feature map;如果是彩色圖片,一般就是3個feature map(紅綠藍)。
2.在其它層,層與層之間會有若干個卷積核(kernel),上一層每個feature map跟每個卷積核做卷積,都會產生下一層的一個feature map,有N個卷積核,下層就會產生N個feather map。
卷積核(filter)
每個卷積核具有長寬深三個維度;卷積核的深度與當前圖像的深度(feather map的張數)相同。卷積核的個數與下一層需要多少個feather map相同。在CNN的一個卷積層中:卷積核的長、寬都是人為指定的,長X寬也被稱為卷積核的尺寸,常用的尺寸為3X3,5X5等;例如,在原始圖像層 (輸入層),如果圖像是灰度圖像,其feather map數量為1,則卷積核的深度也就是1;如果圖像是grb圖像,其feather map數量為3,則卷積核的深度也就是3。
訓練數據
- batchsize:批大小。在深度學習中,一般采用SGD訓練,即每次訓練在訓練集中取batchsize個樣本訓練;
- iteration:1個iteration等于使用batchsize個樣本訓練一次;
- epoch:1個epoch等于使用訓練集中的全部樣本訓練一次,通俗的講epoch的值就是整個數據集被輪幾次。
例如300個樣本訓練一次,epoch=1,batchsize = 10 ,iteration=30。
BN(Batch Normalization)層
BN層即batch-norm層,一般是深度學習中用于加速訓練速度和一種方法,一般放置在卷積層(conv層)或者全連接層之后,將數據歸一化并加速了訓練擬合速度。
常用位置:conv→bn→relu
如果網絡使用sigmod激活函數,誤差在向前傳遞的時候,經過sigmod單元,需要乘sigmod的梯度,而sigmod的梯度最大是0.25,因此越向前傳遞,誤差就越小了,這就是梯度消散,但是梯度爆炸是什么?注意誤差在經過全連接或者卷積層時,也要乘以權重w,如果w都比較大,大過sigmod造成的減小,這樣越往前誤差就越來越大,產生梯度爆炸。
BN層的計算圖如下面所示,x是輸入數據,到xhat均值方差歸一化,后面xhat到y其實就是普通的一個線性變換,類似全連接但是沒有交叉。如果沒有BN層,x直接輸入后面的網絡,訓練過程中x分布的變換必然導致后面的網絡去調整學習以來適應x的均值和方差,映入了BN層,xhat是一個歸一化的數據,代價就是網絡中多了一個線性層y,但是前者帶來的性能更加大,因此加速了。
AUC(Area Under Curve)
一個正例,一個負例,預測為正的概率值比預測為負的概率值還要大的可能性。所以根據定義:我們最直觀的有兩種計算AUC的方法:
1:繪制ROC曲線,ROC曲線下面的面積就是AUC的值
2:假設總共有(m+n)個樣本,其中正樣本m個,負樣本n個,總共有mn個樣本對,計數,正樣本預測為正樣本的概率值大于負樣本預測為正樣本的概率值記為1,累加計數,然后除以(mn)就是AUC的值。
AUC作為數值可以直觀的評價分類器的好壞,值越大越好。
均值平均精度MAP(Mean Average Precision)
我們使用loU和閾值判斷是否為目標。計算模型得到的每個檢測框的loU值,用計算出的loU值與設定的loU閾值比較,就可以計算出每個圖像中每個類的正確檢測次數(A)。對于每個圖像,我們都有ground truth的數據,因此也知道了該圖像中給定類別的實際目標(B)的數量。我們也計算了正確預測的數量(A)(True possitive)。因此我們可以使用這個公式來計算該類模型的精度(A/B)
Precesion_{C}=\\frac{N(TruePositives){C}}{N(TotalObjects){C}}
即給定一張圖像的類別C的Precision=圖像正確預測的數量除以在圖像張這一類的總的目標數量。 假如現在有一個給定的類,驗證集中有100個圖像,并且我們知道每個圖像都有其中的所有類(基于ground truth)。所以我們可以得到100個精度值,計算這100個精度值的平均值,得到的就是該類的平均精度。
AveragePrecesion_{C}=\\frac{\\sum Precesion_{C}}{N(TotalImages)_{C}}
即一個C類的平均精度=在驗證集上所有的圖像對于類C的精度值的和/有類C這個目標的所有圖像的數量。 現在加入我們整個集合中有20個類,對于每個類別,我們都先計算loU,接下來計算精度,然后計算平均精度。所有我們現在有20個不同的平均精度值。使用這些平均精度值,我們可以輕松的判斷任何給定類別的模型的性能。
但是問題是使用20個不同的平均精度使我們難以度量整個模型,所以我們可以選用一個單一的數字來表示一個模型的表現(一個度量來統一它們),我們可以取所有類的平均精度值的平均值,即MAP(均值平均精度)。
MeanAveragePrecesion=\\frac{\\sum AveragePrecesion_{C}}{N(Classes)}
MAP=所有類別的平均精度求和除以所有類別。即數據集中所有類的平均精度的平均值。
EAO 期望平均覆蓋率
EAO提出的目的也是希望一個好的跟蹤器同時擁有好的精度A和魯棒性R,如果直接用A和R的兩個數加權和則有失公允,所以需要重新定義。
假設有N_s幀長的一個視頻,那么一個跟 蹤器在這段視頻上的覆蓋率精度(Overlay accuracy)op為每一幀op的均值,op就是bonding box與ground truth的交并比用Φ表示,即:
Φ_{N_{s}}=\\frac{1}{N_{s}}\\sum {\\atop i=1:N_{s}}Φ_{i}
那么一個理想的EAO就是把N_s從1到一個期望的極大值對應的N_s求個平均,就是期望平均覆蓋率,恰如其名,等價于下圖的曲線下面積:
shortcut connection
ResNet結構使用了一種連接方式,即“繞近路”的意思。
Bottleneck(瓶頸層)
其意思就是輸入輸出維度差距較大,就像一個瓶頸一樣,上窄下寬亦或上寬下窄。1x1 filters 可以起到一個改變輸出維數(channels)的作用??梢钥吹?,右圖中 1x1 filters把維度(channels)升高了,輸入輸出維度差距較大。
感受野:
在卷積神經網絡CNN中,決定某一層輸出結果中一個元素所對應的輸入層的區域大小,被稱作感受野receptive field。用數學的語言就是感受野是CNN中的某一層輸出結果的一個元素對應輸入層的一個映射。
學習更多編程知識,請關注我的公眾號:
-
圖像處理
+關注
關注
27文章
1292瀏覽量
56745 -
算法
+關注
關注
23文章
4612瀏覽量
92894 -
目標跟蹤
+關注
關注
2文章
88瀏覽量
14884 -
代碼
+關注
關注
30文章
4788瀏覽量
68613 -
cnn
+關注
關注
3文章
352瀏覽量
22215 -
卷積神經網絡
+關注
關注
4文章
367瀏覽量
11865
發布評論請先 登錄
相關推薦
評論