¿Por qué se utilizan técnicas de programación cuadrática (como la SMO) cuando se trata de SVM kernelizadas? ¿Qué tiene de malo el Descenso Gradual? ¿Es imposible utilizarlo con kernels o es simplemente demasiado lento (y por qué?).
Aquí hay un poco más de contexto: tratando de entender las SVM un poco mejor, he utilizado el Descenso Gradiente para entrenar un clasificador SVM lineal utilizando la siguiente función de coste:
$J(\mathbf{w}, b) = C {\displaystyle \sum\limits_{i=1}^{m} max\left(0, 1 - y^{(i)} (\mathbf{w}^t \cdot \mathbf{x}^{(i)} + b)\right)} \quad + \quad \dfrac{1}{2} \mathbf{w}^t \cdot \mathbf{w}$
Utilizo las siguientes anotaciones:
- $\mathbf{w}$ es el peso de las características del modelo y $b$ es su parámetro de sesgo.
- $\mathbf{x}^{(i)}$ es el $i^\text{th}$ vector de características de la instancia de entrenamiento.
- $y^{(i)}$ es la clase de destino (-1 o 1) para el $i^\text{th}$ instancia.
- $m$ es el número de instancias de entrenamiento.
- $C$ es el hiperparámetro de regularización.
Obtuve un vector (sub)gradiente (con respecto a $\mathbf{w}$ y $b$ ) de esta ecuación, y el descenso por gradiente funcionó bien.
Ahora me gustaría abordar problemas no lineales. ¿Puedo sustituir todos los productos de puntos $\mathbf{u}^t \cdot \mathbf{v}$ con $K(\mathbf{u}, \mathbf{v})$ en la función de costes, donde $K$ es la función del núcleo (por ejemplo, la RBF gaussiana, $K(\mathbf{u}, \mathbf{v}) = e^{-\gamma \|\mathbf{u} - \mathbf{v}\|^2}$ ), luego usar el cálculo para derivar un (sub)vector gradiente y seguir con el Descenso Gradiente?
Si es demasiado lento, ¿a qué se debe? ¿La función de coste no es convexa? ¿O es porque el gradiente cambia demasiado rápido (no es continuo de Lipschitz) y el algoritmo sigue saltando por los valles durante el descenso, por lo que converge muy lentamente? Pero incluso así, ¿cómo puede ser peor que la complejidad temporal de la Programación Cuadrática, que es $O({n_\text{samples}}^2 \times n_\text{features})$ ? Si se trata de mínimos locales, ¿no puede el DG estocástico con recocido simulado superarlos?