## 3 Proposed Method
### CNN for Feature Extraction  
A convolutional neural network (CNN) is a multi-layer neural network with a deep supervised learning architecture that is known to have the capability of extracting features for classification by itself [17]. A CNN is composed of two parts: an automatic feature extractor and a trainable classifier. The feature extractor extracts features from input data via two operations: convolution filtering and down sampling. Based on these features, the trainable classifier is trained using a back-propagation algorithm with a fully connected layer, and it produces the classification results.  
The proposed method uses a CNN only as a feature extractor, not as a classifier. Figure 4 shows the architecture of the proposed CNN-AE model. Similar to other deep neural networks, in CNN, the extraction process is black box and the exact characteristics of the features cannot be known. We assume that if a CNN is trained for classifying forged and genuine signatures, the trained CNN can extract effective features for distinguishing behavior characteristics of forgery, such as hesitation and delay before drawing the complicated part of a signature. Therefore, the output of the CNN feature extractor is used as a feature vector, defined as the _S-vector_ (denoted by \(S\) in figures and equations). The _S-vector_ is used as the input to an AE for building the subject model. As mentioned earlier, an AE has high accuracy for the one-class distinction problem such as user authentication. The AE operation is represented in the next subsection.  
Figure 4: Architecture of the proposed CNN-AE model.  
Figure 3: A normalized signature \(X^{\prime}\) (sequence of \(x^{\prime}_{i}\)).  
In the CNN feature extractor, the convolution layer uses \(X^{\prime}\) as the input value. Each node \(c_{i}\) of the convolution layer is defined in Equation (6), where \(k\) is a kernel (also called filter) and \(l\) is the number of kernels used.  
\[c_{i}=\sum_{j=0}^{l}k_{j}\times x^{\prime}_{i+j} \tag{6}\]  
The output of \(c_{i}\) is input to an activation function \(ReLU\) defined in Equation (7). The activation results constitute a convolution map. These procedures of the convolution layer are shown in Figure 5.  
\[ReLU(c_{i})=max(0,c_{i}) \tag{7}\]  
The convolution map is filtered for allowing some variance in the data input by the pooling layer. Max pooling [25] is used and one pooling node is defined in Equation (8), where the value 2 is used as a stride (moving n pixels in a layer) that controls the pooling range.  
\[F_{i}=max(c,c_{i+1}),\quad i=2,4,...,n \tag{8}\]  
Convolution and pooling can be repeated multiple times. We do not discuss the remaining layers and training method here, as they can be referred to in [17]. The outputs of the last pooling layer constitute the _S-vector_ denoted by \(S\) that is a concatenation of \(F_{i}\) as defined in Equation (9).  
\[S=F_{0}|F_{1}|\cdots|F_{k},\quad k=0,...,n \tag{9}\]  
The training data set may vary according to the purpose of the CNN classifier. For example, the CNN can be trained with the genuine and forged signatures as two-class input data. In this case, the _S-vector_ can be effective for distinguishing forged signatures, although it can have greater risk of misclassifying subject/others. In contrast, in the case of a CNN trained using the subject's and others' signatures, the _S-vector_ can be effective for classifying subject/others but can have greater risk of misclassifying subject/forged. Furthermore, models for each subject and a model for all subjects yield different results. We experiment with four different class types described in Section 4.1.