Estaba leyendo sobre kernel PCA ( 1 , 2 , 3 ) con núcleos gaussianos y polinomiales.
¿Cómo separa el núcleo gaussiano aparentemente cualquier tipo de datos no lineales excepcionalmente bien? Realice un análisis intuitivo, así como uno matemáticamente involucrado si es posible.
¿Cuál es una propiedad del núcleo gaussiano (con ideal ) que otros núcleos no tienen? Las redes neuronales, SVM y redes RBF vienen a la mente.
- ¿Por qué no pasamos la norma, digamos, un PDF Cauchy y esperamos los mismos resultados?
machine-learning
pca
svm
kernel-trick
Simon Kuang
fuente
fuente
Respuestas:
Creo que la clave de la magia es la suavidad. Mi larga respuesta que sigue es simplemente explicar sobre esta suavidad. Puede o no ser una respuesta que espera.
Respuesta corta:
Dado un kernel definido positivo , existe su espacio correspondiente de funciones . Las propiedades de las funciones están determinadas por el núcleo. Resulta que si es un núcleo gaussiano, las funciones en son muy suaves. Entonces, una función aprendida (por ejemplo, una función de regresión, componentes principales en RKHS como en el núcleo PCA) es muy suave. Por lo general, la suposición de suavidad es sensata para la mayoría de los conjuntos de datos que queremos abordar. Esto explica por qué un núcleo gaussiano es mágico.H k Hk H k H
Respuesta larga de por qué un núcleo gaussiano ofrece funciones suaves:
Un núcleo positivo definido define (implícitamente) un producto interno para el vector de características construido a partir de su entrada , y es un espacio de Hilbert. La notación significa un producto interno entre y . Para nuestro propósito, puede imaginar que es el espacio euclidiano habitual pero posiblemente con un número infinito de dimensiones. Imagine el vector habitual que es infinitamente largo comok ( x , y ) = ⟨ φ ( x ) , φ ( y ) ⟩ H φ ( x ) x H ⟨ φ ( x ) , φ ( y ) ⟩ φ ( x ) φ ( y ) H ϕ ( x ) = ( ϕ 1 ( xk(x,y) k(x,y)=⟨ϕ(x),ϕ(y)⟩H ϕ(x) x H ⟨ϕ(x),ϕ(y)⟩ ϕ(x) ϕ(y) H H f ( x ) = ⟨ f , φ ( x ) ⟩ f ( x ) f x φ ( x ) f ( x ) kϕ(x)=(ϕ1(x),ϕ2(x),…) . En los métodos del kernel, es un espacio de funciones llamado reproducción del espacio Hilbert del kernel (RKHS). Este espacio tiene una propiedad especial llamada `` propiedad de reproducción '' que es que . Esto dice que para evaluar , primero se construye un vector de características (infinitamente largo como se mencionó) para . Luego construyes tu vector de características para denotado por (infinitamente largo). La evaluación de se obtiene tomando un producto interno de los dos. Obviamente, en la práctica, nadie construirá un vector infinitamente largo. Como solo nos importa su producto interno, solo evaluamos directamente el núcleoH f(x)=⟨f,ϕ(x)⟩ f(x) f x ϕ(x) f(x) k . Eludir el cálculo de características explícitas y calcular directamente su producto interno se conoce como el "truco del núcleo".
¿Cuáles son las características?
diciendo características sin especificar cuáles son. Dado un núcleo , las características no son únicas. Pero se determina de manera única. Para explicar la suavidad de las funciones, consideremos las características de Fourier. Suponga una traducción invariante kernel , que significa , es decir, el kernel solo depende de la diferencia de los dos argumentos. El núcleo gaussiano tiene esta propiedad. Deje que denote la transformada de Fourier de .k ⟨ φ ( x ) , φ ( y ) ⟩ k k ( x , y ) = k ( x - y ) k kϕ1(x),ϕ2(x),… k ⟨ϕ(x),ϕ(y)⟩ k k(x,y)=k(x−y) k^ k
En este punto de vista de Fourier, las características de están dadas por . Esto significa que la representación de características de su función está dada por su transformada de Fourier dividida por la transformada de Fourer del núcleo . La representación de características de , que es es donde . Se puede demostrar que la propiedad de reproducción es válida (un ejercicio para los lectores).f : = ( ⋯ , f l / √f fkxφ(x)(⋯,√f:=(⋯,f^l/k^l−−√,⋯) f k x ϕ(x) i=√(⋯,k^l−−√exp(−ilx),⋯) i=−1−−−√
Como en cualquier espacio de Hilbert, todos los elementos que pertenecen al espacio deben tener una norma finita. Consideremos la norma al cuadrado de una :f∈H
Entonces, ¿cuándo es esta norma finita, es decir, pertenece al espacio? Es cuando cae más rápido que para que la suma converja. Ahora, la transformada de Fourier de un núcleo gaussianof f^2l k^l k(x,y)=exp(−∥x−y∥2σ2)
es otro gaussiano donde disminuye exponencialmente rápido con . Entonces, si va a estar en este espacio, su transformación de Fourier debe caer aún más rápido que el de . Esto significa que la función tendrá efectivamente solo unos pocos componentes de baja frecuencia con altos pesos. Una señal con solo componentes de baja frecuencia no se `` mueve '' mucho. Esto explica por qué un núcleo gaussiano le da una función suave.k^l l f k
Extra: ¿Qué pasa con un kernel de Laplace?
Si considera un núcleo de Laplace , su transformada de Fourier es una distribución de Cauchy que cae mucho más lento que el exponencial funcionan en la transformada de Fourier de un núcleo gaussiano. Esto significa que una función tendrá más componentes de alta frecuencia. Como resultado, la función dada por un núcleo de Laplace es `` más áspera '' que la dada por un núcleo gaussiano.k(x,y)=exp(−∥x−y∥σ) f
Independientemente del ancho gaussiano, una propiedad es que el núcleo gaussiano es `` universal ''. Intuitivamente, esto significa que, dada una función continua limitada (arbitraria), existe una función tal que y están cerca (en el sentido de hasta la precisión arbitraria necesaria. Básicamente, esto significa que el núcleo gaussiano proporciona funciones que pueden aproximarse a las funciones "agradables" (acotadas, continuas) arbitrariamente bien. Los granos gaussianos y de Laplace son universales. Un núcleo polinomial, por ejemplo, no lo es.g f∈H f g ∥⋅∥∞)
En general, puede hacer lo que quiera siempre que el resultante sea definitivo positivo. La definición positiva se define como para todos , y todos (conjunto de números naturales) . Si no es positivo definido, entonces no corresponde a un espacio interno del producto. Todo el análisis se rompe porque ni siquiera tiene un espacio de funciones como se mencionó. No obstante, puede funcionar empíricamente. Por ejemplo, el núcleo de la tangente hiperbólica (vea el número 7 en esta página )k ∑Ni=1∑Nj=1k(xi,xj)αiαj>0 αi∈R {xi}Ni=1 N∈N k H
que pretende imitar unidades de activación sigmoideas en redes neuronales, solo es positivo definido para algunos ajustes de y . Aún así se informó que funciona en la práctica.α c
¿Qué pasa con otros tipos de características?
Dije que las características no son únicas. Para el kernel gaussiano, la expansión de Mercer proporciona otro conjunto de características . Consulte la Sección 4.3.1 del famoso libro de procesos gaussiano . En este caso, las características son polinomios de Hermite evaluados en .ϕ(x) x
fuente
Haré todo lo posible para responder esta pregunta no porque sea un experto en el tema (todo lo contrario), sino porque tengo curiosidad sobre el campo y el tema, combinado con la idea de que podría ser una buena experiencia educativa . De todos modos, aquí está el resultado de mi breve investigación amateur sobre el tema.
TL; DR : consideraría el siguiente pasaje del trabajo de investigación "La conexión entre los operadores de regularización y los núcleos de vectores de soporte" como la respuesta corta a esta pregunta:
Ahora, una respuesta detallada (a lo mejor de mi entendimiento; para detalles matemáticos, use referencias).
Como sabemos, el análisis de componentes principales (PCA) es un enfoque muy popular para la reducción de la dimensionalidad , solo y para la clasificación posterior de datos: http://www.visiondummy.com/2014/05/feature-extraction-using-pca . Sin embargo, en situaciones, cuando los datos conllevan dependencias no lineales (en otras palabras, linealmente inseparables ), la PCA tradicional no es aplicable (no funciona bien). Para esos casos, se pueden usar otros enfoques, y PCA no lineal es uno de ellos.
Enfoques, donde PCA se basa en el uso de la función del kernel, generalmente se hace referencia al uso de un término general "kernel PCA" ( kPCA ). El uso de la función de base radial gaussiana (RBF) es probablemente la variación más popular. Este enfoque se describe en detalle en múltiples fuentes, pero me gusta mucho una excelente explicación de Sebastian Raschka en esta publicación de blog . Sin embargo, si bien menciona la posibilidad de usar funciones de kernel, además de Gaussian RBF, la publicación se centra en este último debido a su popularidad. Esta bonita publicación de blog , que presenta aproximaciones de kernel y truco de kernel , menciona una posible razón más para la popularidad del kernel gaussiano para PCA: la dimensionalidad infinita.
Se pueden encontrar ideas adicionales en varias respuestas sobre Quora. En particular, leer esta excelente discusión revela varios puntos sobre las posibles razones de la popularidad del núcleo gaussiano, de la siguiente manera.
Finalmente, puntos adicionales de esta buena respuesta :
NOTAS
El punto mencionado anteriormente acerca de que el kernel gaussiano es la elección óptima , especialmente cuando no hay conocimiento previo sobre los datos, está respaldado por la siguiente oración de esta respuesta CV :
Para aquellos curiosos sobre las diferencias no esenciales entre el kernel gaussiano RBF y el kernel gaussiano estándar, esta respuesta podría ser de interés: https://stats.stackexchange.com/a/79193/31372 .
Para aquellos interesados en implementar kPCA por placer o negocios, esta buena publicación de blog puede ser útil. Está escrito por uno de los autores (¿creadores?) De Accord.NET , un marco de trabajo de código abierto .NET muy interesante para análisis estadístico, aprendizaje automático, procesamiento de señales y mucho más.
fuente
Déjame poner mis dos centavos.
La forma en que pienso sobre los núcleos gaussianos son, en cierto sentido, como clasificadores de vecinos más cercanos. Lo que hace un núcleo gaussiano es que representa cada punto con la distancia a todos los demás puntos del conjunto de datos. Ahora piense en clasificadores con límites lineales o polinómicos, los límites están limitados a ciertas formas. Sin embargo, cuando miras al vecino más cercano, el límite prácticamente puede tomar cualquier forma. Es por eso que creo que pensamos en el núcleo gaussiano también como no paramétrico, es decir, ajustando el límite en función de los datos. Otra forma de pensar en eso es que el núcleo gaussiano se ajusta a la forma local en una región, de manera similar a cómo un vecino más cercano ajusta localmente el límite mirando la distancia a otros puntos en la región local.
No tengo un argumento matemático para esto, pero creo que el hecho de que el núcleo gaussiano de hecho se asigne a un espacio de dimensiones infinitas tiene algo que ver con su éxito. Para los núcleos lineales y polinomiales, los productos de punto se toman en espacios dimensionales finitos; por lo tanto, parece más poderoso hacer cosas en un espacio más grande. Espero que alguien comprenda mejor estas cosas. Eso también significa que si podemos encontrar otros núcleos con espacios dimensionales infinitos, también deberían ser bastante poderosos. Desafortunadamente, no estoy familiarizado con ninguno de esos núcleos.
Para su último punto, creo que Cauchy pdf o cualquier otro pdf que de alguna manera mida la distancia a otros puntos debería funcionar igualmente bien. Nuevamente, no tengo un buen argumento matemático para eso, pero la conexión con el vecino más cercano lo hace plausible.
Editar:
Aquí hay algunas ideas sobre cómo pensar en un clasificador que usa núcleos gaussianos como clasificadores vecinos más cercanos. Primero, pensemos en lo que hace un clasificador vecino más cercano. Esencialmente, un clasificador vecino más cercano es un clasificador estándar que utiliza las distancias entre puntos como entradas. Más formalmente, imagine que creamos una representación de entidad para cada punto en el conjunto de datos calculando su distancia a todos los otros puntos. Arriba, es una función de distancia. Entonces, lo que hace un clasificador vecino más cercano es predecir la etiqueta de clase para un punto basado en esta representación de entidad y etiquetas de clase para los datos. dondeϕi xi
La forma en que pienso sobre los núcleos es que hacen algo similar; crean una representación característica de cada punto utilizando sus valores de núcleo con otros puntos en el conjunto de datos. Similar al caso del vecino más cercano, más formalmente sería Ahora la conexión con el vecino más cercano es bastante obvia; Si nuestra función de kernel es alguna medida relacionada con las medidas de distancia que usamos en los clasificadores vecinos más cercanos, nuestro clasificador basado en el kernel será similar a un modelo vecino más cercano.
Nota: Los clasificadores que entrenamos usando núcleos no funcionan directamente con estas representaciones , pero creo que eso es lo que hacen implícitamente.ϕi
fuente
La razón es que la dimensión VC para los núcleos gaussianos es infinita y, por lo tanto, dados los valores correctos para los parámetros (sigma), pueden clasificar correctamente un número arbitrariamente grande de muestras.
Los RBF funcionan bien porque aseguran que la matriz tenga un rango completo. La idea es que , y los términos fuera de la diagonal pueden hacerse arbitrariamente pequeños disminuyendo el valor de . Observe que el núcleo corresponde a un producto de puntos en el espacio de características. En este espacio de características, la dimensión es infinita (considerando la expansión en serie de la exponencial). Por lo tanto, se podría ver esto como proyectar esos puntos en diferentes dimensiones para que pueda separarlos.K(xi,xj) K(xi,xi)>0 σ
Considere, por el contrario, el caso de los núcleos lineales, que solo pueden romper cuatro puntos en el plano.
Puede echar un vistazo a este documento , aunque es muy técnico. Uno de los libros estándar sobre SVM debería hacer que este concepto sea más accesible.
fuente