¿Cuáles son las ventajas de kernel PCA sobre PCA estándar?


18

Quiero implementar un algoritmo en un documento que utiliza el kernel SVD para descomponer una matriz de datos. Así que he estado leyendo materiales sobre métodos de kernel y PCA de kernel, etc. Pero aún me resulta muy oscuro, especialmente cuando se trata de detalles matemáticos, y tengo algunas preguntas.

  1. ¿Por qué los métodos del núcleo? O, ¿cuáles son los beneficios de los métodos del núcleo? ¿Cuál es el propósito intuitivo?

    ¿Asume que un espacio dimensional mucho más alto es más realista en problemas del mundo real y puede revelar las relaciones no lineales en los datos, en comparación con los métodos que no son del núcleo? De acuerdo con los materiales, los métodos del núcleo proyectan los datos en un espacio de características de alta dimensión, pero no necesitan calcular el nuevo espacio de características explícitamente. En cambio, es suficiente calcular solo los productos internos entre las imágenes de todos los pares de puntos de datos en el espacio de características. Entonces, ¿por qué proyectarse en un espacio dimensional superior?

  2. Por el contrario, SVD reduce el espacio de características. ¿Por qué lo hacen en diferentes direcciones? Los métodos del núcleo buscan una dimensión más alta, mientras que SVD busca una dimensión más baja. Para mí suena raro combinarlos. Según el documento que estoy leyendo ( Symeonidis et al. 2010 ), la introducción de Kernel SVD en lugar de SVD puede abordar el problema de escasez en los datos, mejorando los resultados.

ingrese la descripción de la imagen aquí

De la comparación en la figura podemos ver que KPCA obtiene un vector propio con mayor varianza (valor propio) que PCA, supongo. Debido a que para la mayor diferencia de las proyecciones de los puntos en el vector propio (nuevas coordenadas), KPCA es un círculo y PCA es una línea recta, por lo que KPCA obtiene una varianza mayor que PCA. Entonces, ¿significa que KPCA obtiene componentes principales más altos que PCA?


3
Más un comentario que una respuesta: KPCA es muy similar a la agrupación espectral; en algunos entornos, es incluso lo mismo. (véase, por ejemplo, cirano.qc.ca/pdf/publication/2003s-19.pdf ).

Lo siento por la respuesta tardía. Sí, tu respuesta es muy esclarecedora.
Tyler 傲 来 国 主

Respuestas:


24

PCA (como técnica de reducción de dimensionalidad) trata de encontrar un subespacio lineal de baja dimensión al que se confinan los datos. Pero puede ser que los datos estén confinados a no lineales de baja dimensión subespacio . ¿Qué pasará entonces?

Eche un vistazo a esta figura, tomada del libro de texto "Reconocimiento de patrones y aprendizaje automático" de Bishop (Figura 12.16):

kernel PCA del libro de Bishop's ML

Los puntos de datos aquí (a la izquierda) se encuentran principalmente a lo largo de una curva en 2D. PCA no puede reducir la dimensionalidad de dos a uno, porque los puntos no están ubicados a lo largo de una línea recta. Pero aún así, los datos están "obviamente" ubicados alrededor de una curva unidimensional no lineal. Entonces, aunque PCA falla, ¡debe haber otra forma! Y, de hecho, el PCA del núcleo puede encontrar esta variedad no lineal y descubrir que los datos son de hecho casi unidimensionales.

Lo hace mapeando los datos en un espacio de dimensiones superiores. De hecho, esto puede parecer una contradicción (su pregunta # 2), pero no lo es. Los datos se asignan a un espacio de mayor dimensión, pero luego se encuentran en un subespacio de menor dimensión. Entonces aumenta la dimensionalidad para poder disminuirla.

La esencia del "truco del núcleo" es que uno no necesita considerar explícitamente el espacio de dimensiones superiores, por lo que este salto de dimensionalidad potencialmente confuso se realiza de manera totalmente encubierta. La idea, sin embargo, sigue siendo la misma.


Buena respuesta. Sin embargo, solo una pregunta de seguimiento. Usted dijo que si los puntos de datos no son lineales como se muestra en la figura anterior, entonces PCA no funcionará y se requiere PCA de núcleo. Pero, ¿cómo sabemos en primer lugar si los puntos de datos no son lineales para el conjunto de datos que tiene más de 4 características (el caso del mundo real). Para visualizar dichos datos, necesitamos reducir la dimensionalidad, lo que significa que terminamos usando PCA para reducir la dimensionalidad, lo cual sería incorrecto, ya que los datos podrían no ser lineales y utilizamos PCA normal para visualizar. Entonces, ¿cómo se sabe si los datos no son lineales para usar kernel PCA en lugar de PCA
Baktaawar

Gracias, @usuario. Supongo que esto depende de la aplicación de PCA / kPCA. Por ejemplo, si se aplica como un paso de preprocesamiento para algún algoritmo de clasificación, regresión o agrupación, entonces se puede juzgar qué tan bien se desempeñó PCA frente a kPCA a partir de qué tan bien funciona este algoritmo posterior.
ameba dice Reinstate Monica

1
Gracias @amoeba. Pero supongo que lo que quería preguntar era que, como mencionó anteriormente, necesitamos usar kPCA cuando los datos no son lineales, entonces, ¿cómo saber si los datos tienen no linealidad si no? de características es más de 3 ?. No podemos visualizar eso sin alcanzar dimensiones y luego es como un problema de huevo y gallina
Baktaawar

2
@Baktaawar Si está haciendo aprendizaje automático, no visualice, deje que su modelo lo aprenda por sí mismo. Básicamente incluya un paso KPCA en su ciclo de remuestreo interno y pruebe los núcleos como parámetros, incluido el núcleo lineal y cualquier otro que desee / pueda permitirse probar.
Firebug
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.