Soy bastante nuevo en el campo de los procesos gaussianos y cómo se están aplicando en el aprendizaje automático. Sigo leyendo y escuchando sobre las funciones de covarianza que son la atracción principal de estos métodos. Entonces, ¿alguien podría explicar de manera intuitiva lo que está sucediendo en estas funciones de covarianza?
De lo contrario, si pudiera señalar un tutorial o documento específico que los explique.
Respuestas:
En términos sueltos, una función de núcleo o covarianza especifica la relación estadística entre dos puntos en su espacio de entrada; es decir, cuán notablemente un cambio en el valor del Proceso Gaussiano (GP) en correlaciona con un cambio en el GP en . En cierto sentido, puede pensar en como la definición de una similitud entre las entradas (*).k(x,x′) x,x′ x x′ k(⋅,⋅)
Los núcleos típicos pueden simplemente depender de la distancia euclidiana (o las transformaciones lineales de los mismos) entre puntos, pero la diversión comienza cuando te das cuenta de que puedes hacer mucho, mucho más.
Como dice David Duvenaud:
Para obtener una descripción general sencilla de los núcleos para GP, recomiendo encarecidamente su Kernel Cookbook y sus referencias.
(*) Como señala @Dikran Marsupial, tenga en cuenta que lo contrario no es cierto; no todas las métricas de similitud son núcleos válidos (ver su respuesta).
fuente
Como @lacerbi sugiere que una función del núcleo (o función de covarianza en un entorno de proceso gaussiano) es esencialmente una métrica de similitud, de modo que el valor del núcleo es alto si los dos vectores de entrada se consideran "similares" de acuerdo con las necesidades de la aplicación y más bajo si son diferentes. Sin embargo, no todas las métricas de similitud son funciones válidas del núcleo. Para ser un núcleo válido, la función debe ser interpretable como calcular un producto interno en algún espacio de características transformado, es decir, donde es una función que asigna los vectores de entrada al espacio de características.ϕ ( ⋅ )K(x,x′)=ϕ(x)⋅ϕ(x′) ϕ(⋅)
Entonces, ¿por qué el núcleo debe ser interpretable como un producto interno en algún espacio de características? La razón es que es mucho más fácil idear límites teóricos en el rendimiento de generalización para modelos lineales (como la regresión logística) que para modelos no lineales (como una red neuronal). La mayoría de los modelos lineales se pueden escribir para que los vectores de entrada solo aparezcan en forma de productos internos. Esto significa que podemos construir un modelo no lineal construyendo un modelo lineal en el espacio de características del núcleo. Esta es una transformación fija de los datos, por lo que todos los límites de rendimiento teórico para el modelo lineal se aplican automáticamente al nuevo modelo no lineal del núcleo *.
Un punto importante que es difícil de comprender al principio es que tendemos a no pensar en un espacio de características que sería bueno para nuestra aplicación particular y luego diseñar un núcleo que dé lugar a ese espacio de características. En general, obtenemos una buena métrica de similitud y luego vemos si es un núcleo (la prueba es sencilla, si alguna matriz de evaluaciones por pares de la función del núcleo en puntos en posición general es positiva definida, entonces es un núcleo válido) .
fuente