GoogLeNet(三):Illustrated
2021/03/26
-----
https://pixabay.com/zh/photos/google-plex-california-logo-office-959059/
-----
Figure 1: Two distinct classes from the 1000 classes of the ILSVRC 2014 classification challenge. Domain knowledge is required to distinguish between these classes.
圖1:ILSVRC 2014 分類挑戰的 1000 個類別中的兩個不同的類別。 需要領域知識來區分這些類。
# GoogLeNet
說明:
專家才有辦法區分的圖片,GoogLeNet 也可以。左圖耳朵往旁邊,右圖耳朵往前面。
-----
# Provable bounds
Arora 等 [2] 提出了一種逐層構造的方法:分析最後一層的相關性統計數據並將它們聚類為具有高度相關性的單元組。 這些群集形成下一層的單元,並連接到上一層的單元。(摘自論文)。
-----
Figure 2: Inception module
# GoogLeNet。
說明:
3 x 3 Max Pooling 放 Conv1 之前是為了保存特徵再降維,但意義不大。
-----
https://pytorch.org/vision/stable/_modules/torchvision/models/googlenet.html
ceil_mode=True
PyTorch 的 MaxPool 有兩種模式,天花板模式跟地板模式。
天花板模式是資料不足 Pooling Window 時會補空值。
地板模式是資料不足 Pooling Window 時會捨棄。
https://www.cnblogs.com/xxxxxxxxx/p/11529343.html
-----
# GoogLeNet
-----
Table 1: GoogLeNet incarnation of the Inception architecture.
# GoogLeNet
說明:
以 Inception 呈現 GoogLeNet。 “# 3x3 縮小”和“# 5x5 縮小”表示在 3x3 和 5x5 卷積之前使用的縮小層中 1x1 濾波器的數量。 在 pool proj 列中內置最大池化之後,可以看到投影層中 1x1 濾波器的數量。 所有這些縮小/投影層也都使用整流線性激活。
1. output size 的前兩項是特徵圖的大小。
2. output size 的最後一項是輸出特徵圖的數目。其等於(#1x1)+(#3x3)+(#5x5)+(pool proj)。
3.(#3x3)前跟(#5x5)前會有 reduce 的 Conv1。
-----
◎ 參數(權重加偏置)量。
卷積層:parameters = (kw ╳ kh ╳ Cin + 1) ╳ Cout。C 為特徵圖的通道數。
9.2K = (7 x 7 x 3 + 1) x 64 = 9472 = 9.25 x 1024。
全連接層:parameters = (Nin + 1) ╳ Nout。N 表示節點數。+1 為偏置。
◎ 計算量。
卷積層:FLOPs = [(Cin ╳ kw ╳ kh) + (Cin ╳ kw ╳ kh - 1) + 1] ╳ Cout ╳ w ╳ h。
118M =
全連接層:FLOPs = (In + (In - 1) + 1) ╳ Out。In、Out:輸入與輸出的節點數。
-----
https://zhuanlan.zhihu.com/p/135861716
https://zhuanlan.zhihu.com/p/32566024
-----
https://blog.csdn.net/weixin_44350541/article/details/107639496
https://zhuanlan.zhihu.com/p/77471991
https://zhuanlan.zhihu.com/p/49842046
-----
# Convolution Guide
說明:
卷積將 16 個點變成 4 個點。
-----
# Convolution Guide
說明:
卷積可以視為稀疏的全連接層。
-----
Figure 3: GoogLeNet network with all the bells and whistles.
# GoogLeNet
-----
# GoogLeNet
說明:
參考後續兩張圖片。
-----
All the convolutions not marked with “V” in the figures are same-padded meaning that their output grid matches the size of their input. Convolutions marked with “V” are valid padded, meaning that input patch of each unit is fully contained in the previous layer and the grid size of the output activation map is reduced accordingly.
圖中所有未標記為“ V”的卷積都用相同的填充表示其輸出網格與輸入的大小匹配。 標有“ V”的卷積有效填充,這意味著每個單元的輸入色塊完全包含在上一層中,並且輸出激活圖的網格大小相應減小。
# Inception v4 草稿
說明:
V 為 VALID。S 為 SAME。在正式出版的論文中,這一段話被放在圖2 的說明。有 V 的表示輸出的特徵圖會變小。有 S 的表示特徵圖大小不變。
-----
說明:
GoogLeNet 跟兩個多加的輸出層(花俏的功能)。
-----
Table 2: Classification performance.
# GoogLeNet
說明:
第三名的 MSRA 只比第二名的 VGGNet 差一點,但名氣差很多。不過 MS 在 ResNet 扳回一城。可惜何博士很快又跳到 FB。
the full ImageNet dataset also called ImageNet 22k
https://datascience.stackexchange.com/questions/86763/is-imagenet-1k-a-subset-of-imagenet-22k
-----
Table 3: GoogLeNet classification performance break down.
# GoogLeNet
說明:
我們還通過更改模型數量和預測表3 中圖像時使用的切塊數量,來分析和報告多種測試選擇的性能。當我們使用一種模型時,我們選擇了 top-1 錯誤率最低的模型在驗證資料上。 所有數字均立足在驗證資料集上,以免過度擬合測試資料的統計。
Crops,參考第七節的說明。上下左右中鏡像一共十。Crops 1 則是原圖一張而已。
-----
Table 4: Comparison of detection performances. Unreported values are noted with question marks.
# GoogLeNet
說明:
ensemble 版本的 GoogLeNet 的 object detection。
物件偵測。問號代表沒有提供資料。
-----
Table 5: Single model performance for detection.
# GoogLeNet
說明:
單一版本的 GoogLeNet 的 object detection。
物件偵測。GoogLeNet 不算好。
Contextual Model。有查資料,沒有具體結果。
-----
# Inception v2(Batch Normalization)
說明:
Inception v2 其實就是 Batch Normalization。參考 VGGNet,Inception 把一個 Conv5 拆成兩個 Conv3。
-----
Figure 5. Inception modules where each 5 × 5 convolution is replaced by two 3 × 3 convolution, as suggested by principle 3 of Section 2.
圖5. Inception 模組,其中每個 5×5 卷積被兩個 3×3 卷積代替,如第 2 節的原理 3 所建議。
# Inception v3
說明:
Inception v2 的架構。
-----
Figure 4. An “extreme” version of our Inception module, with one spatial convolution per output channel of the 1x1 convolution.
圖4. 我們的 Inception 模組的“極端”版本,每個 1x1 卷積的輸出通道都有一個空間卷積。
# Xception
說明:
Xception 把 Inception 的架構推廣到極致。每一張特徵圖搭配一個 Conv3。某方面來說,ResNeXt 是 ResNet 的 Xception 版本。
-----
References
# Inception v1 # GoogLeNet
Szegedy, Christian, et al. "Going deeper with convolutions." Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.
# Inception v2 # BN
Ioffe, Sergey, and Christian Szegedy. "Batch normalization: Accelerating deep network training by reducing internal covariate shift." International conference on machine learning. 2015.
http://proceedings.mlr.press/v37/ioffe15.pdf
# Inception v3 # Label Smoothing
Szegedy, Christian, et al. "Rethinking the inception architecture for computer vision." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.
# Inception v4 # Inception-ResNet
Szegedy, Christian, et al. "Inception-v4, inception-resnet and the impact of residual connections on learning." AAAI. Vol. 4. 2017.
https://arxiv.org/pdf/1602.07261.pdf
https://ojs.aaai.org/index.php/AAAI/article/download/11231/11090
# 從Inception v1到Inception-ResNet,一文概覽Inception家族的「奮鬥史」 | 機器之心
https://www.jiqizhixin.com/articles/2018-05-30-7
# Provable bounds
Arora, Sanjeev, et al. "Provable bounds for learning some deep representations." International conference on machine learning. PMLR, 2014.
http://proceedings.mlr.press/v32/arora14.pdf
# Xception
Chollet, François. "Xception: Deep learning with depthwise separable convolutions." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
# Convolution Guide
Dumoulin, Vincent, and Francesco Visin. "A guide to convolution arithmetic for deep learning." arXiv preprint arXiv:1603.
https://arxiv.org/pdf/1603.07285.pdf
-----
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.