# Hybrid Techniques for the Diagnosis of Acute Lymphoblastic Leukemia Based on Fusion of CNN Features
## 3 Materials and Methods
### Strategy of Machine-Learning with Fusion Features CNN
#### 3.4.1 Extraction of High-Level Features by CNN  
This study developed hybrid systems between deep and machine-learning based on segmentation techniques of regions of interest to separate WBC cells from other blood components. The microscopic blood images were optimized and fed into active contour technology to extract ROI (WBC cells). Then, ROI of the C-NMC 2019 and ALL-IDB2 datasets was fed into three CNN models for feature extraction. Features were extracted using DenseNet121, ResNet50, and MobileNet. Then, features of more than one model were combined and classified using RF and XGBoost classifiers. Convolutional neural networks are more accurate, deeper, and more efficient in training due to the connection of neurons with previous layers and in the same layer [38]. CNN models connect each layer with the following layers in a feed-forward manner. For each layer, the feature maps of the previous layers were used as input and the feature maps of the current layers were produced as output. The CNN model has many advantages: it makes features more widespread and diversified through convolutional layers, reduces the number of parameters by pooling layers, and reduces overfitting problems through dropout layers [39]. Figure 4: A set of samples from the acute leukemia dataset. After enhancement. (**a**) Original images (**b**) Segmentation of WBC cells. (**c**) Region of interest (WBC cells). The dense connection pattern of DenseNet121 requires fewer parameters than convolutional networks, where redundant features are not re-learned. The DenseNet121 architecture can distinguish between information added to the form and information saved. DenseNet121 layers are very narrow; each layer consists of many feature maps and adds feature maps to the collective knowledge while keeping the feature maps unchanged. In addition to parameter efficiency, the DenseNet121 network has the important advantage of gradients and information flow through the network layers, which facilitates network training. DenseNet121 leads to deep tacit supervision and in-depth training, reducing overfitting due to minority classes [40]. Each layer in DenseNet121 can directly access the gradients from the original input-loss function. Feature maps that learn from different layers increase variance in subsequent layers and improve model training performance [41]. Each layer adds new special feature maps. The network growth rate is the extent to which adding information contributes to that layer for reaching the global state [42]. ResNet50 is a residual module belonging to the ResNetxx family, consisting of 16 blocks distributed among 177 layers. ResNet50 is one of the most important and accurate CNN models in many fields of computer vision. ResNet50 takes the input images in the input layer, resizes the images to 224 \(\times\) 224 pixels, and transfers them to the next layers. The model contains 49 convolutional layers with filters of different sizes to extract the features by wrapping the filter \(f\) (\(t\)) around the image \(x\) (\(t\)) as in Equation (4) [43]. The pooling layers receive huge amounts of neurons, which require complex operations that take a long time, and these layers work to reduce the high dimensions [44]. The model contains average pooling layers that calculate the average of the selected neurons and replace the selected neurons with their average value as in Equation (5). The model also contains max-pooling layers, which work to select a group of neurons and replace them with a single neuron that has the max value as in Equation (6). There are auxiliary layers, such as ReLU, for further processing of features, where the positive is passed and the negative is converted to zero. Dropout layers prevent overfitting issues by stopping 50% of neurons each time and passing 50% [45]. \[W(t)=(x\;*\;f)\;(t)=\int x(a)f(t-a)\;\;da \tag{4}\]  
\(W\) (\(t\)), \(x\) (\(t\)), and \(f\) (\(t\)) and refer to the output, the inputted image, and the filter, respectively.