# Support Vector Machine-Based EMG Signal Classification Techniques: A Review
## 3 Myoelectric Signal Classification
### Support Vector Machines  
SVM are used quite often as classification algorithms, of body movements, images, sound, etc. SVM construct an optimal separation hyperplane into a feature space that is of high dimension, due to the entries that are mapped using non-linear functions, to distinguish between two (as depicted in Figure 1) or more types of objects. This theory was introduced by [PERSON] and [PERSON] in 1995 [PERSON] and [PERSON] (1995).  
For the nonlinear separable problem, the input space is mapped into a high-dimensional feature space and the separation hyperplane is found in this new space. The optimal hyperplane needs to discriminate different categories correctly, and so the hyperplane with maximum clearance between classes them should be found, i.e., the hyperplane that best separates the classes.  
In SVM, the training algorithm is reformulated as a problem to solve by Quadratic Programming (QP), whose solution is global and unique. Considering input training data \((x_{1},y_{1})\),..., \((x_{m},y_{m})\in\mathbb{R}^{N}\times\{-1,+1\}\), where \(x_{i}\) corresponds to the input value and \(y_{i}\) to the assigned class (\(-1\) or \(+1\)) to which it belongs. If these data are not linearly separable, they are mapped by a non-linear transformation \(\phi\colon\mathbb{R}^{N}\to\mathbb{R}^{M}\) inside of a new feature space \(\mathbb{R}^{M}\) where the transformed data will be linearly separable. In this way, the obtained hyperplane that separates object types can be seen as  
\[\omega\cdot\phi(x)+b=0, \tag{1}\]  
where \(\omega\in\mathbb{R}^{M}\) and \(b\in\mathbb{R}\).  
The QP problem is supposed to build an optimal hyperplane with a maximum value of separation and a closed error \(\xi=(\xi_{1},\ldots,\xi_{m})\) in the training algorithm, that is, we aim to  
\[\min_{\omega,b}\frac{1}{2}\|\omega\|^{2}+C\sum_{i=1}^{m}\xi_{i}. \tag{2}\]  
subject to  
\[y_{i}(\omega\cdot\phi(x_{i})+b)\geq 1-\xi_{i},\quad i=1,\ldots,m.\]  
If the data points are too close, indeed, if it is difficult to separate them directly, it is possible to use a _kernel_ function \(K\) to separate them. That is,  
\[F(\alpha)=\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{j,k=1}^{m}\alpha_{j}\alpha _{k}y_{j}y_{k}K(x_{j},x_{k}), \tag{3}\]  
Figure 1: SVM geometric definition.  
subject to  
\[\sum_{i=1}^{m}y_{i}\alpha_{i}=0,\quad C\geq\alpha_{i}\geq 0,\quad i=1,\ldots,m.\]  
where \(K(x_{j},x_{k})\) is the kernel function, which can be a Radial Basis Function (RBF), a Gaussian, a polynomial, etc. A polynomial kernel can be linear, quadratic, cubic or of any degree \(d\)[6], which can be described as  
\[K_{P}(x_{j},x_{k})=(1+x_{j}\cdot x_{k})^{d}. \tag{4}\]  
The RBF of two samples, which are feature vectors, is defined by [60]:  
\[K_{R}(x_{j},x_{k})=\exp(-\gamma\|x_{j}-x_{k}\|^{2}). \tag{5}\]  
The Gaussian function is written as [6]  
\[K_{G}(x,\mu,\sigma)=\frac{1}{2\pi\sigma}\exp\left[-\frac{(x-\mu)^{2}}{2\sigma^ {2}}\right], \tag{6}\]  
where \(\gamma=1/2\sigma^{2}\) and \(\sigma\) is the standard deviation.  
When SVM are used to classify more than two classes, two strategies can be adopted: One Against One (OAO) and One Against All (OAA). The first one discriminates between classes, one by one, that is, the first category compared only against another category and so on, while the second separates each class from the rest.