Fast RCNN

Ha, since I happen to have some free time these days, let me quickly summarize the RCNN series papers I read before; this is the second post in the series. The author Ross Girshick could not stand how slowly the model he had proposed earlier (RCNN) ran, so he proposed an improved model (Fast RCNN). Below is a brief analysis of that model. The slowness of RCNN Compared with image recognition tasks, object detection is considerably harder because of the extra step of localizing the object positions. There are two main problems to solve: one is that the model needs a large number of object candidate boxes; the other is that these candidate boxes only roughly provide the approximate positions of the objects, so the model has to perform a regression operation. $RCNN$ is a multi-stage training model. The $RCNN$ model first fine-tunes a convolutional neural network on the object candidate boxes using a log loss, then passes the resulting feature maps to $SVM$s for object classification; these $SVM$s replace the $softmax$ layer that would otherwise need fine-tuning. In the third training stage the model learns bounding box regression. For training the $SVM$s and the bounding box regression, $RCNN$ writes the features of every object candidate box to disk, which undoubtedly costs an enormous amount of time and space. Secondly, the speed of object recognition is too slow: on a GPU, recognizing an image takes about 47 seconds per image. Another important reason for the slowness of $RCNN$ is that the model does not share the computation of the convolution layers. ...

September 21, 2019 · 6 min · Simplestory

RCNN

Object recognition is much more complex than plain image classification: the algorithm model has to identify which objects are where in the image and draw boxes around them. Ross Girshick proposed an algorithm model that uses a convolutional neural network together with a support vector machine for object detection. Below is a brief analysis of this classic model. Basic structure The first problem is object localization, which the authors solve through the region recognition approach, using $selective \ search$. The second problem is the scarcity of training data; the paper proposes supervised pre-training on a large auxiliary dataset, followed by fine-tuning of specific parts on a small dataset. The experimental results also confirm that this approach is effective. The rough structure is as follows: ...

September 19, 2019 · 4 min · Simplestory

ResNet

First of all, happy Teachers’ Day to all teachers, and thank you for your spirit of giving roses to others with a lingering fragrance on your hands. Then, after almost a month, I have rolled back to update the blog again; before that I was busy with joining the company, hoping to fit into the company’s development work as soon as possible, so I was “busy” for a month. Next let us continue with the introduction of classic image recognition network models. In previous posts we already introduced the AlexNet and VGG networks, both of which pushed the depth of neural networks of that time to the extreme, and subsequent neural network models basically performed no better. This is because as the network gets deeper, during error backpropagation the weights of the earlier network layers basically do not get updated and stay around some fixed value. In 2015, Kaiming He proposed a shortcut connection that propagates the error to the earlier network layers, greatly improving network performance. Below is a brief analysis of the ResNet network. ...

September 10, 2019 · 9 min · Simplestory

Telling Apart Several Normalization Algorithms

Neural networks already have several normalization algorithms. They all look very similar and basically share a unified form. This post refers to the Zhihu column SIGAI’s article on normalization algorithms; the link is at the bottom of the post. The basic problem When using a neural network to learn from a dataset, because the sources of the data may differ considerably, the values of different attributes may also span very different ranges; all of this causes errors in how the data is treated and leads to poor learning by the network. To solve this problem we normalize the data, that is, we regularize data whose value ranges vary widely into the same scale, which is beneficial for the network’s learning. Up to now normalization has many variants, the common ones being Batch Normalization (BN), Layer Normalization (LN), Instance Normalization (IN) and Group Normalization (GN). In fact their processing is similar (subtract the mean, divide by the standard deviation, then apply a linear mapping); the difference lies in the dimension along which the statistics are computed. The concrete formula is as follows: ...

August 11, 2019 · 4 min · Simplestory