{'fraction_non_alphanumeric': 0.019311911716975008, 'fraction_numerical': 0.004706264199935086, 'mean_word_length': 5.101980198019802, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Convolutional neural network of deep learning in computer vision and image classification problems

The article considers the possibilities of using the deep learning convolutional neural network ResNet in computer vision and image classification problems. The interpretation of the ResNet network and the datasets used for its training are presented, as well as a method for training a deep convolutional neural network with stochastic depth, which allows significantly reducing errors in the test sample.


Introduction
In the last decade, convolutional neural networks have shown excellent results in recognizing objects in images. In 2015, the deep convolutional neural network ResNet (Residual Network) was introduced, which surpassed the accuracy of the human level of image classification on the ImageNet dataset. Deep convolutional neural networks have surpassed the human level of image classification. Deep networks extract low -, medium -, and high-level features in an end-to-end, multi-layered way, and increasing the number of stacked layers can enrich the «layers» of features. The depth of the neural network is crucial, but deeper neural networks are harder to train, primarily due to vanishing/exploding gradients issues that hinder the convergence of neural networks. These problems were mostly solved by initialization normalization and batch normalization, but the researchers also found a degradation problem, when the error on the training and test samples increases with increasing network depth ( Figure 1). Researchers attribute this degradation problem to the complexity of optimizing deep neural networks [1][2][3][4][5]10].

Materials and methods
Reset is a convolutional neural network consisting of residual blocks and skip-connections. All convolutional network architectures prior to ResNet consisted of a sequence of convolutional layers, with each convolutional filter trained to create the most representative feature maps. A distinctive feature of the ResNet architecture is that the convolutional blocks are trained to slightly correct the preceding  The ResNet architecture consists of 4 groups of residual blocks, where the groups differ in the number of blocks and the number of filters in the convolutional layers of the blocks. The output of each convolutional layer is the so-called feature maps, which show the presence of certain features in the original image. After each group of blocks, the size of the feature maps of the images decreases and the number of filters in the convolutional layers of the next group of blocks increases by 2 times. Also, the ResNet architecture varies depending on its depth. Figure 3 shows the ResNet architecture with 34 layers, and Figure 4 shows the ResNet architecture with different depths for the ImageNet dataset. To train a convolutional neural network, the ImageNet dataset is used, which is a data set of millions of high-resolution images marked up using crowdsourcing, related to about 25 thousand classes, and PASCAL VOC, which contains standardized image data sets for recognizing object classes, standard tools for accessing data sets and annotations, allowing you to evaluate and compare methods, as well as analyze performance in recognizing object classes.
The new interpretation of the ResNet network can be considered as a set of multiple paths of different lengths. Moreover, using only short paths during the training phase makes it possible to train very deep networks. To confirm this observation, the paper proposes to represent the sequence of residual blocks as a set of possible paths.

Results and discussion
In the course of the review and research of works devoted to image analysis using convolutional neural networks, the most optimal method of training deep neural networks with stochastic depth was identified [7], which allowed us to successfully train a 1202-layer ResNet. Very deep convolutional networks consisting of hundreds of layers resulted in a significant reduction in error on the test sample. However, there are several problems that make it difficult to train very deep neural networks: the disappearance of the gradient and the increase in training time. To solve these problems, the researchers proposed the stochastic depth algorithm, which uses a short neural network at the training stage and a deep one at the testing stage. To do this, a deep ResNet architecture is created with more than a thousand layers, but at the training stage it is reduced by randomly deleting a significant proportion of layers independently for each piece of data (Figure 4). This approach results in a network with a small expected depth at the training stage, but a large depth at the testing stage. It is experimentally revealed that training with stochastic depth significantly reduces the training time and error on test data. The reduction in training time can be explained by a shorter neural network architecture, which reduces the number of calculations in the learning process. The reduction in error on test data is due to two factors: -reducing the depth during training reduces the chain of steps of forward propagation and gradient calculation, which helps to solve the problem of gradient disappearance; -networks trained by this method can be interpreted as an ensemble of networks of different depths [8-10].

Conclusion
In the course of a review of studies on image analysis using convolutional neural networks, it was experimentally revealed that the use of the stochastic depth algorithm allows you to reduce the network operation time at the testing stage without losing accuracy. The main idea is to train a neural network with a relatively small number of parameters based on a pre-trained model, which will predict for each block, depending on the input image: use it or exclude it. This architecture is trained in such a way as to maximize the reward, which encourages the use of as few blocks as possible while maintaining the accuracy of the prediction. To do this, the target function takes into account the percentage of blocks left and the accuracy of the original network, provided that the predicted blocks are removed