Antecedentes y el problema
Estoy usando Gauss Procesos (GP) para la regresión y la posterior Bayesiana de optimización (BO). Para la regresión yo uso la gpml paquete de MATLAB con varios personalizado-hecho modificaciones, pero el problema es general.
Es un hecho bien conocido que cuando dos entradas de formación están demasiado cerca en el espacio de entrada, la matriz de covarianza puede convertirse en no-positiva definida (hay varias preguntas al respecto en este sitio). Como resultado, la descomposición de Cholesky de la matriz de covarianza, necesarios para los diferentes GP cálculos, puede fallar debido a un error numérico. Esto me pasó a mí, en varios casos, cuando se realiza BO con las funciones objetivo que estoy usando, y me gustaría solucionarlo.
Soluciones propuestas
AFAIK, la solución estándar para aliviar el mal acondicionado para agregar una arista o pepita a la diagonal de la matriz de covarianza. Para el GP de regresión, este asciende a la suma de (o en aumento, si ya existía) observación de ruido.
Hasta ahora tan bueno. He modificado el código exacto de la inferencia de la gpml de manera que siempre que la descomposición de Cholesky falla, yo trate de arreglar la matriz de covarianza para el más cercano simétrica positiva definida (SPD) de la matriz en la norma de Frobenius, inspirado por este código de MATLAB por Juan d'Errico. La razón de ser es la de minimizar la intervención en la matriz original.
Esta solución hace el trabajo, pero me di cuenta de que el rendimiento de BO reducido sustancialmente para algunas funciones, posiblemente cada vez que el algoritmo necesita para ampliar el zoom en algunas áreas (por ejemplo, porque se está acercando a la mínima, o porque la longitud de las escalas del problema se convierten en no-uniformemente pequeñas). Este comportamiento tiene sentido, ya que estoy aumentando efectivamente el ruido siempre dos puntos de entrada acercarse demasiado, pero por supuesto no es lo ideal. Alternativamente, podría quitar puntos problemáticos, pero, de nuevo, a veces me necesita los puntos de entrada a estar cerca.
Pregunta
No creo que numérica de problemas con la factorización de Cholesky de GP de las matrices de covarianza es una novela problema, pero para mi sorpresa no pude encontrar muchas soluciones hasta el momento, aparte de aumentar el ruido o la eliminación de puntos que están demasiado cerca el uno del otro. Por otro lado, es cierto que algunos de mis funciones son bastante maleducado, así que tal vez mi situación no es tan típico.
Cualquier sugerencia/referencia que podría ser útil aquí?