# Deep Convolutional Neural Network-Based Approaches for Face Recognition
## 2 CNNs Preliminaries  
Convolutional neural networks were initially proposed by [PERSON] in [23]. They have been successfully applied to computer vision problems, such as hand-written digit recognition [24]. CNNs have recently grown in popularity in the field of pattern classification. CNNs have outperformed traditional computer vision methods in image classification. A convolutional neural network is a sort of artificial neural network (ANN) inspired by the performance of visual recognition of objects by animals and human beings' cortex, which is used for applications including systems recommender [25], video and image recognition [26], and natural processing of languages [27; 28]. CNN architectures makes the explicit assumption that the inputs are images, which allows encoding of certain properties into the architecture. Neurons in CNN are 3D filters that activate depending on their inputs. They are connected only to a small region, called the receptive field [29], of a previous neuron's activations. They compute a convolution operation between the connected inputs and their internal parameters, and they get activated depending on their output and a non-linearity function [30]. Convolutional neural network layers are divided into three types: the convolutional, pooling and, fully connected layers. Each layer plays a different role. The CNN architecture is shown in Figure 1.  
Convolutional layer: Convolutional layer is known as the elemental development block for CNN. In CNN technology, it is crucial to understand that the layers' parameters are made up of a set of learnable filters or neurons. These filters have a small receptive field, but they go all the way through the input volume. In the forward pass process, each individual filter goes across the width and height of the input volume, calculating the dot product from the filter entries and the input. The product of this computation is a two-dimensional activation map of that filter. Through this, the network learns filters created when it senses some particular type of feature at a spatial location within the feature-map input \(\mathbf{X}\), generating a feature map of weighted summations \(\mathbf{Y}\). Each of the neurons computes convolutions with small regions in \(\mathbf{X}\), shown in Equation (1) [23]. \[y_{i}=b_{i}+\sum_{x_{i}\in X}w_{ij}\star x_{i} \tag{1}\]  
where \(\mathrm{y_{j}\in Y,j=1,2,...,D.\) is the depth of the convolutional layer, and each filter \(\mathbf{w_{ij}}\) is a 3D matrix of size \(\mathrm{[F\times F\times Cx]}\). Its size is determined by a chosen receptive field (\(\mathbf{F}\)), and its feature-map input's depth (\(\mathbf{Cx}\)); for example, if the receptive field is five pixels and the feature-map input \(\mathbf{X}\) is a \([32\times 32\times 3]\) RGB image, then the filter's size will be [5;5;3]. The filter's size represents the number of weights that a neuron has connecting to a region in the input. The convolutional layer has the advantage of using the same neurons for each pixel in the layer to improve the system's performance. In addition, this results in the reduction of the footprint's memory making it efficient. Pooling layers: Pooling layers are responsible for regulating the width by height dimensions by reducing the input volume spatial dimensions for the next convolutional layer without affecting the dimensional depth of the volume. The process performed by the pooling layer is also known as down-sampling or sub-sampling because the decrease of size results in simultaneous information loss that benefits the network. The reduction becomes less computational as the information progresses to the next pooling layers, and it also works against over-fitting. The most common strategies used in the pooling layer networks are max-pooling and average-pooling.