En el aprendizaje automático , el kernel polinomial es una función del kernel que se usa comúnmente con máquinas de vectores de soporte (SVM) y otros modelos kernelizados , que representa la similitud de vectores (muestras de entrenamiento) en un espacio de características sobre polinomios de las variables originales, lo que permite el aprendizaje de no -modelos lineales.
Intuitivamente, el núcleo polinomial observa no solo las características dadas de las muestras de entrada para determinar su similitud, sino también las combinaciones de estas. En el contexto del análisis de regresión , estas combinaciones se conocen como características de interacción. El espacio de características (implícito) de un núcleo polinomial es equivalente al de la regresión polinomial , pero sin la explosión combinatoria en el número de parámetros que se deben aprender. Cuando las características de entrada tienen valores binarios (booleanos), las características corresponden a conjunciones lógicas de características de entrada. [1]
Definición
Para polinomios de grado- d , el núcleo del polinomio se define como [2]
donde x y y son vectores en el espacio de entrada , es decir, vectores de características calculadas a partir de la formación o muestras de ensayo y c ≥ 0 es un parámetro de libre comercio de la influencia de orden superior en comparación con términos de orden inferior en el polinomio. Cuando c = 0 , el núcleo se llama homogéneo. [3] (Un polinúcleo generalizado adicional divide x T y por un parámetro escalar especificado por el usuario a . [4] )
Como kernel, K corresponde a un producto interno en un espacio de características basado en algún mapeo φ :
La naturaleza de φ se puede ver en un ejemplo. Sea d = 2 , entonces obtenemos el caso especial del núcleo cuadrático. Después de usar el teorema multinomial (dos veces, la aplicación más externa es el teorema del binomio ) y reagrupar,
De esto se deduce que el mapa de características viene dado por:
Uso práctico
Aunque el kernel RBF es más popular en la clasificación SVM que el kernel polinomial, este último es bastante popular en el procesamiento del lenguaje natural (NLP). [1] [5] El grado más común es d = 2 (cuadrático), ya que los grados más grandes tienden a sobreajustarse en los problemas de PNL.
Se han ideado varias formas de calcular el núcleo polinomial (tanto exacto como aproximado) como alternativas a los habituales algoritmos de entrenamiento de SVM no lineales, que incluyen:
- expansión completa del kernel antes del entrenamiento / prueba con una SVM lineal, [5] es decir, cálculo completo del mapeo φ como en la regresión polinomial;
- minería de canastas (usando una variante del algoritmo a priori ) para las conjunciones de características que ocurren con más frecuencia en un conjunto de entrenamiento para producir una expansión aproximada; [6]
- indexación invertida de vectores de soporte. [6] [1]
Un problema con el núcleo polinomial es que puede sufrir inestabilidad numérica : cuando x T y + c <1 , K ( x , y ) = ( x T y + c ) d tiende a cero al aumentar d , mientras que cuando x T y + c > 1 , K ( x , y ) tiende a infinito. [4]
Referencias
- ↑ a b c Yoav Goldberg y Michael Elhadad (2008). splitSVM: Computación del núcleo polinomial rápida, eficiente en el espacio, no heurística para aplicaciones de PNL. Proc. ACL-08: HLT.
- ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 15 de abril de 2013 . Consultado el 12 de noviembre de 2012 .CS1 maint: copia archivada como título ( enlace )
- ^ Shashua, Amnon (2009). "Introducción al aprendizaje automático: notas de clase 67577". arXiv : 0904.3664v1 [ cs.LG ].
- ^ a b Lin, Chih-Jen (2012). Software de aprendizaje automático: diseño y uso práctico (PDF) . Escuela de verano de aprendizaje automático. Kyoto.
- ^ a b Chang, Yin-Wen; Hsieh, Cho-Jui; Chang, Kai-Wei; Ringgaard, Michael; Lin, Chih-Jen (2010). "Entrenamiento y prueba de mapeos de datos polinomiales de bajo grado a través de SVM lineal" . Revista de investigación sobre aprendizaje automático . 11 : 1471-1490.
- ^ a b Kudo, T .; Matsumoto, Y. (2003). Métodos rápidos para el análisis de texto basado en kernel . Proc. ACL.