# Deep Learning-Based Postural Asymmetry Detection Through Pressure [PERSON]
## 3 Deep Learning Methods with Pressure Mat Data
### Convolutional Neural Networks (CNNs)  
A CNN is a type of deep learning algorithm specifically designed to process data with a grid structure, such as images. Its main advantage over other types of neural networks is its ability to automatically learn relevant features or patterns in visual, audio, or speech signals.  
A CNN is made up of a series of layers, which typically include three main types: convolutional, pooling, and fully connected layers.  
1. Convolutional layers: Convolution is a mathematical operation to extract local features from the input. In this layer, filters or kernels are applied to the input image to generate feature maps that highlight important aspects such as edges, textures, and patterns. As you go deeper into the network, the filters detect more abstract and complex features.
2. Pooling layers: These layers compress or reduce the dimensionality of feature maps, keeping the most relevant features and discarding redundant information. This improves computational efficiency and helps reduce the risk of overfitting.
3. Fully connected layers: In these layers, each neuron in one layer is connected to all neurons in the next layer. They oversee combining the features extracted in the previous layers and making the final classification. At this point, the network generates the probability for each class, allowing the final prediction to be made.  
The combination of these layers allows CNNs to automatically learn hierarchical representations of the images: from simple features such as edges in the first layers to complex and object-specific patterns in the deeper layers. This approach has made CNNs the most popular and effective architecture for computer vision tasks such as image recognition, object detection, and video analysis. An example of simple CNN architecture can be seen in Figure 4.  
The process of optimizing the parameters of the DL algorithm is called training, which is performed to minimize the difference between the predicted outputs and the labels through some optimization algorithms such as backpropagation and gradient descent [49]. The parameters of the model are the internal variables that are updated during training to allow the model to learn from the data. These include weights and biases in the network that determine how input data are transformed into predictions. Additionally, the user can explicitly control the learning process of the algorithm by the definition of some hyperparameters, such as learning rate, batch size, number of epochs, network architecture, or dropout rate, among others.  
Moreover, CNNs are supervised learning algorithms. Supervised learning works with labeled data, i.e., data for which the expected response is known. Specifically, supervised learning is used as a prediction mechanism, where a part of the data (also known as the training set) is learned, another part is used to evaluate the model during training (validation), and the rest is used to determine the accuracy and prediction efficiency (testing) [50]. The two main application tasks in supervised learning, which will be used in this work, are classification and regression.  
1. Classification is the process of finding or discovering a model or function that helps to separate data into multiple categorical classes, i.e., discrete values. This can take the form of a binary classification of only two classes (0 or 1) or a multi-class classification that results in one class among a set of three or more total classes (red, green, blue, etc.).
2. Regression is the process of finding a model that predicts a continuous value based on its input variables, rather than predicting discrete classes or values. Its objective is to establish a method for the relationship between a certain number of characteristics and one or several continuous-valued target variables. Regression algorithms help predict continuous variables such as housing prices, market trends, or weather patterns.