VGGNet


The VGGNets are a series of convolutional neural networks developed by the Visual Geometry Group at the University of Oxford.
The VGG family includes various configurations with different depths, denoted by the letter "VGG" followed by the number of weight layers. The most common ones are VGG-16 and VGG-19.
The VGG family were widely applied in various computer vision areas. An ensemble model of VGGNets achieved state-of-the-art results in the ImageNet Large Scale Visual Recognition Challenge in 2014. It was used as a baseline comparison in the ResNet paper for image classification, as the network in the Fast Region-based CNN for object detection, and as a base network in neural style transfer.
The series was historically important as an early influential model designed by composing generic modules, whereas AlexNet was designed "from scratch". It was also instrumental in changing the standard convolutional kernels in CNN from large to just 3-by-3, a decision that was only revised in ConvNext.
VGGNets were rendered obsolete by Inception, ResNet, and DenseNet. RepVGG is an updated version of the architecture.

Architecture

The key architectural principle of VGG models is the consistent use of small convolutional filters throughout the network. This contrasts with earlier CNN architectures that employed larger filters, such as in AlexNet.
For example, two convolutions stacked together has the same receptive field pixels as a single convolution, but the latter uses parameters, while the former uses parameters. The original publication showed that deep and narrow CNN significantly outperform their shallow and wide counterparts.
The VGG series of models are deep neural networks composed of generic modules:
  1. Convolutional modules: convolutional layers with stride 1, followed by ReLU activations.
  2. Max-pooling layers: After some convolutional modules, max-pooling layers with a filter and a stride of 2 to downsample the feature maps. It halves both width and height, but keeps the number of channels.
  3. Fully connected layers: Three fully connected layers at the end of the network, with sizes 4096-4096-1000. The last one has 1000 channels corresponding to the 1000 classes in ImageNet.
  4. Softmax layer: A softmax layer outputs the probability distribution over the classes.
The VGG family includes various configurations with different depths, denoted by the letter "VGG" followed by the number of weight layers. The most common ones are VGG-16 and VGG-19, denoted as configurations D and E in the original paper.
As an example, the 16 convolutional layers of VGG-19 are structured as follows:where the arrow means a 3x3 convolution with input channels and output channels and stride 1, followed by ReLU activation. The means a down-sampling layer by 2x2 maxpooling with stride 2.
NameNumber of convolutional layersNumber of fully connected layersParameter count
VGG-16133138M
VGG-19163144M

Training

The original VGG models were implemented in a version of C++ Caffe, modified for multi-GPU training and evaluation with data parallelism. On a system equipped with 4 NVIDIA Titan Black GPUs, training a single net took 2–3 weeks depending on the architecture.