Closed NorbertZheng closed 1 year ago
In this story, Inception-v3 [1] is reviewed. By rethinking the inception architecture, computational efficiency and fewer parameters are realized. With fewer parameters, 42-layer deep learning network, with similar complexity as VGGNet, can be achieved.
With 42 layers, lower error rate is obtained and make it become the 1st Runner Up for image classification in ILSVRC (ImageNet Large Scale Visual Recognition Competition) 2015. And it is a 2016 CVPR paper with about 2000 citations when I was writing this story.
Image Classification Error Rate in ILSVRC 2015.
ImageNet, is a dataset of over 15 millions labeled high-resolution images with around 22,000 categories. ILSVRC uses a subset of ImageNet of around 1000 images in each of 1000 categories. In all, there are roughly 1.2 million training images, 50,000 validation images and 100,000 testing images.
There are 4 versions. The first GoogLeNet must be the Inception-v1 [4], but there are numerous typos in Inception-v3 [1] which lead to wrong descriptions about Inception versions. These maybe due to the intense ILSVRC competition at that moment. Consequently, there are many reviews in the internet mixing up between v2 and v3. Some of the reviews even think that v2 and v3 are the same with only some minor different settings.
Nevertheless, in Inception-v4 [5], Google has a much more clear description about the version issue:
Thus, the BN-Inception / Inception-v2 [6] is talking about batch normalization while Inception-v3 [1] is talking about factorization ideas.
The aim of factorizing Convolutions is to reduce the number of connections/parameters without decreasing the network efficiency.
Two 3×3 convolutions replaces one 5×5 convolution as follows: Two 3×3 convolutions replacing one 5×5 convolution.
By using 1 layer of 5×5 filter, number of parameters = 5×5=25. By using 2 layers of 3×3 filters, number of parameters = 3×3+3×3=18. Number of parameters is reduced by 28%.
Similar technique has been mentioned in VGGNet [3] already.
With this technique, one of the new Inception modules (I call it Inception Module A here) becomes: Inception Module A using factorization.
One 3×1 convolution followed by one 1×3 convolution replaces one 3×3 convolution as follows: One 3×1 convolution followed by one 1×3 convolution replaces one 3×3 convolution.
By using 3×3 filter, number of parameters = 3×3=9. By using 3×1 and 1×3 filters, number of parameters = 3×1+1×3=6. Number of parameters is reduced by 33%.
You may ask why we don’t use two 2×2 filters to replace one 3×3 filter?
If we use two 2×2 filters, number of parameters = 2×2×2=8. Number of parameters is only reduced by 11%.
With this technique, one of the new Inception modules (I call it Inception Module B here) becomes: Inception Module B using asymmetric factorization.
And Inception module C is also proposed for promoting high dimensional representations according to author descriptions as follows: Inception Module C using asymmetric factorization.
Thus, authors suggest these 3 kinds of Inception Modules. With factorization, number of parameters is reduced for the whole network, it is less likely to be overfitting, and consequently, the network can go deeper!
Auxiliary Classifiers were already suggested in GoogLeNet / Inception-v1 [4]. There are some modifications in Inception-v3.
Only 1 auxiliary classifier is used on the top of the last 17×17 layer, instead of using 2 auxiliary classifiers. (The overall architecture would be shown later.)
Auxiliary Classifier act as a regularization.
The purpose is also different. In GoogLeNet / Inception-v1 [4], auxiliary classifiers are used for having deeper network.
So, actually, in deep learning, the modules are still quite intuitive.
Batch normalization, suggested in Inception-v2 [6], is also used in the auxiliary classifier.
Conventionally, such as AlexNet and VGGNet, the feature map downsizing is done by max pooling. But the drawback is
Here, an efficient grid size reduction is proposed as follows:
Conventional downsizing (Top Left), Efficient Grid Size Reduction (Bottom Left), Detailed Architecture of Efficient Grid Size Reduction (Right).
With the efficient grid size reduction, 320 feature maps are done by conv with stride 2. 320 feature maps are obtained by max pooling. And these 2 sets of feature maps are concatenated as 640 feature maps and go to the next level of inception module.
Less expensive and still efficient network is achieved by this efficient grid size reduction.
Getting more and more like skip connection.
There are some typos for the architecture in the passage and table within the paper. I believe this is due to the intense ILSVRC competition in 2015. I thereby look into the codes to realize the architecture:
Inception-v3 Architecture (Batch Norm and ReLU are used after Conv).
With 42 layers deep, the computation cost is only about 2.5 higher than that of GoogLeNet [4], and much more efficient than that of VGGNet [3].
The links I use for reference about the architecture:
PyTorch version of Inception-v3: https://github.com/pytorch/vision/blob/master/torchvision/models/inception.py
Inception-v3 on Google Cloud https://cloud.google.com/tpu/docs/inception-v3-advanced
The purpose of label smoothing is to prevent the largest logit from becoming much larger than all others:
new_labels = (1 — ε) * one_hot_labels + ε / K
where ε is 0.1 which is a hyperparameter and K is 1000 which is the number of classes. A kind of dropout effect observed in classifier layer.
Maybe it needs the number of classes to be sufficiently large!!!
Ablation Study (single-model single-crop).
Using single-model single-crop, we can see the top-1 error rate is improved when proposed techniques are added on top of each other:
Inception-v1: 29% Inception-v2: 25.2%
Inception-v3: 23.4%
where 7×7 Factorization is to factorize the first 7×7 conv layer into three 3×3 conv layer.
Single-Model Multi-Crop Results.
With single-model multi-crop, Inception-v3 with 144 crops obtains top-5 error rate is 4.2%, which outperforms PReLU-Net and Inception-v2 which were published in 2015.
Multi-Model Multi-Crop Results.
With multi-model multi-crop, Inception-v3 with 144 crops and 4 models ensembled, the top-5 error rate of 3.58% is obtained, and finally obtained 1st Runner Up (image classification) in ILSVRC 2015, while the winner is ResNet [7] which will be reviewed later. Of course, Inception-v4 [5] will also be reviewed later on as well.
Sik-Ho Tang. Review: Inception-v3 — 1st Runner Up (Image Classification) in ILSVRC 2015.