El análisis de componentes principales kernel (kernel PCA, por sus siglas en inglés) es una técnica en el aprendizaje automático para la reducción de dimensionalidad no lineal. Extiende el análisis de componentes principales clásico (PCA, por sus siglas en inglés) al aplicar el truco del kernel, que permite que el algoritmo opere en un espacio de características implícito y de alta dimensionalidad sin calcular explícitamente las coordenadas de los datos en ese espacio. Esto permite que el kernel PCA capture patrones no lineales que el PCA lineal pasaría por alto, haciéndolo útil para tareas como la visualización de datos, la reducción de ruido y el preprocesamiento para otros algoritmos.
El método fue introducido en 1998 por Bernhard Schölkopf, Alexander Smola y Klaus-Robert Müller. Su formulación mostró que los componentes principales en el espacio de características pueden obtenerse resolviendo un problema de valores propios en la matriz del kernel, que contiene similitudes por pares entre los puntos de datos calculadas mediante una función kernel. Los kernels comunes incluyen el kernel polinomial, el kernel de función de base radial(RBF, por sus siglas en inglés) y el kernel sigmoide. La elección del kernel y sus parámetros influye significativamente en el embedding resultante
Formulación matemática
Dado un conjunto de n puntos de datos x_i en el espacio de entrada, el kernel PCA primero mapea cada punto a un espacio de características mediante una función φ, tal que φ(x_i) es un vector en un espacio de Hilbert posiblemente de dimensión infinita. La función kernel k(x_i, x_j) calcula el producto interno ⟨φ(x_i), φ(x_j)⟩. El algoritmo centra los datos en el espacio de características modificando la matriz del kernel, luego calcula los vectores propios y valores propios de la matriz del kernel centrada. La proyección de un nuevo punto sobre un componente principal se expresa como una suma ponderada de evaluaciones del kernel entre el nuevo punto y los puntos de entrenamiento, con pesos derivados de los vectores propios.
A diferencia del PCA lineal, que encuentra direcciones de máxima varianza en el espacio original, el kernel PCA encuentra direcciones de máxima varianza en el espacio de características. El número de componentes principales es como máximo el número de puntos de entrenamiento, y el método puede producir más componentes que la dimensionalidad de entrada. En la práctica, uno típicamente selecciona los k componentes superiores basándose en la magnitud de los valores propios asociados
Relación con otros métodos
El kernel PCA está estrechamente relacionado con otros métodos basados en kernel como las máquinas de vectores de soporte(SVM, por sus siglas en inglés) y la regresión por procesos gaussianos, todos los cuales dependen del truco del kernel. Puede verse como una generalización no lineal del PCA, y también está conectado con el agrupamiento espectral y el escalado multidimensional. En el caso de un kernel lineal, el kernel PCA se reduce exactamente al PCA estándar. El método también es un precursor de técnicas de embedding no lineal más avanzadas como el embedding estocástico de vecinos distribuidos en t(t-SNE, por sus siglas en inglés) y la aproximación y proyección de variedades uniformes(UMAP, por sus siglas en inglés), aunque esos métodos optimizan objetivos diferentes
Aplicaciones y limitaciones
El kernel PCA ha sido aplicado en diversos dominios, incluyendo el reconocimiento facial, la eliminación de ruido en imágenes y la detección de anomalías. En el reconocimiento facial, puede extraer características no lineales que mejoran la precisión de clasificación en comparación con el PCA lineal. Para la detección de anomalías, el error de reconstrucción en el espacio de características puede indicar valores atípicos. Sin embargo, el kernel PCA tiene limitaciones notables: el costo computacional escala cuadráticamente con el número de muestras de entrenamiento, haciéndolo poco práctico para conjuntos de datos muy grandes sin aproximaciones. La elección del kernel y los hiperparámetros a menudo requiere validación cruzada, y la interpretabilidad de los componentes resultantes es menor que en el PCA lineal. Además, el método asume que los datos se encuentran en una variedad de baja dimensionalidad en el espacio de características, lo que puede no cumplirse en todos los casos
Consideraciones prácticas
Implementar el kernel PCA implica seleccionar una función kernel y sus parámetros, como el ancho de banda en un kernel RBF. La matriz del kernel debe centrarse, y la descomposición de valores propios puede realizarse usando bibliotecas estándar de álgebra lineal. Para problemas a gran escala, métodos aproximados como el método de Nyström o mapas de características aleatorias pueden reducir la carga computacional. En los pipelines modernos de aprendizaje automático, el kernel PCA se usa a menudo como un paso de preprocesamiento antes de aplicar algoritmos de agrupamiento o clasificación. Ha sido implementado en bibliotecas populares como scikit-learn, que proporciona una clase KernelPCA con opciones para diferentes kernels y solucionadores