## 3 Results and Discussion
### Signal Recognition Based on Deep Learning  
We first selected a 27-year-old male participant who is right-handed and conducted the test on him individually. We constructed a dataset based on the seven signal characteristics mentioned above. The sample data for each dataset were collected by the sensor array, capturing data from all nine sensors simultaneously during a single test as one sample. Each type of grasping action data includes 500 samples, with each sample comprising data from five tests, resulting in a total of 3500 samples for the dataset. Each class of data is stored in separate folders. The dataset is divided into training, validation, and test sets, containing 2500, 500, and 500 samples, respectively. To further validate the potential of CNN-based deep learning in this application, we implemented a CNN algorithm using the PyTorch library (Python version: 3.10.4; PyTorch version: 2.5.1+cpu). The CNN architecture, illustrated in Figure 5a, is designed to recognize grasping signals from various objects. This network consists of an input layer, two convolutional layers, two pooling layers, a fully connected layer, and an output layer. The input layer has nine channels with dimensions of 1 \(\times\) 9 \(\times\) 150. Here, the first \"1\" indicates that the data are one-dimensional; the \"9\" represents the nine input channels; and the \"150\" denotes the specified length of the data in each sample. For data that are shorter than this length, zero-padding is applied before inputting them into the CNN to reach the specified length. For data longer than this length, the excess part is truncated. The choice of data length should take into account the actual range of data lengths to ensure that the specified length can accurately reflect the data information. In the first convolutional layer, a convolutional kernel of size 3 is employed, utilizing 32 kernels, a stride of 2, and a padding of 1. Padding is applied to prevent the length of the feature map from decreasing due to edge effects. The convolution is mathematically expressed as  
\[O[i]=\sum_{j=1}^{k}X[i+j-1]\cdot W[j]+b \tag{9}\]  
where \(O[i]\) denotes the value of the output feature map at position \(i\) after convolution. In this context, \(X\) is the input, \(W\) represents the kernel weight, \(b\) is the bias term, \(k\) denotes the kernel size, and \(i\) and \(j\) are indices associated with the output and kernel, respectively. Following each convolutional layer, a ReLU activation function is applied, defined as  
\[ReLU(x)=\max(0,x) \tag{10}\]  
where \(x\) represents the input. This non-linear activation function enhances the network's expressiveness, allowing it to model complex patterns more effectively. The first pooling layer has a window size of 2, which reduces the feature map size by selecting the maximum value within each region. This pooling process is mathematically expressed as  
\[O_{pool}[i]=\max(X[i:i+k]) \tag{11}\]  
where \(X[i:i+k]\) is the value at window \(i\), and \(k\) is the pooling window size. This operation reduces computational complexity while preserving essential features. The second convolutional layer uses a kernel size of 3, with 64 kernels, a stride of 2, and a padding of 1. The second pooling layer also has a window size of 2. Following two layers of convolution and pooling, the features are flattened into a one-dimensional vector and fed into the fully connected layer, which contains 576 neurons, mathematically expressed as  
\[O_{fc}=XW+b \tag{12}\]where \(X\) denotes the input feature vector, \(W\) represents the weight matrix, and \(b\) is the bias term. The output of the fully connected layer is subsequently mapped to seven categories. To assess the model's performance, we utilized the cross-entropy loss function, defined as  
\[Loss=-\sum_{i=1}^{C}y_{i}\log(p_{i}) \tag{13}\]  
where \(C\) is the number of categories, \(y_{i}\) is the one-hot-encoded true label, and \(p_{i}\) is the predicted probability.