Quiero implementar un modelo de regresión simple utilizando un proceso gaussiano. He elegido la caja de herramientas GPML de Rasmussen por su sencillez. Mi pregunta es cómo podemos hacer que la caja de herramientas sepa que ya tenemos un ruido de salida conocido diferente para cada punto de datos. Así la caja de herramientas no optimizará más este hiperparámetro. El ruido de salida aquí es un gaussiano de media cero con desviación estándar conocida. Supongo que debe relacionarse con la función "CovNoise" en la carpeta cov.
Respuestas
¿Demasiados anuncios?El ruido de salida en la caja de herramientas GPML se define de una manera muy diferente. Como se describe claramente aquí: Hiperparámetro del núcleo de probabilidad frente al ruido en GPML Toolbox
Si está utilizando la función @likGauss entonces el ruido de salida será representado por el "hyp.lik" y no añadiendo la función de covarianza @covNoise a su kernel de covarianza.
Por lo tanto, crear una nueva función de covarianza con un hiperparámetro restringido no funcionará en mi opinión. Tendrás que explorar cómo se implementa la función @likGauss o @infExact.
Una sugerencia después de un poco de investigación
Definir
hyp.lik = "known output noise";
Y cambia la línea 24 en tu función @infExact;
de:
sn2 = exp(2*hyp.lik);
a:
sn2 = "known output noise";
Espero que esto funcione.
Saludos
Lo primero que se me ocurre es crear tu propio núcleo. GPML lo permite con bastante facilidad, así que sólo tienes que copiar el núcleo que quieres utilizar y cambiar uno de los hiperparámetros a una constante. Elimina el código donde se calcula la derivada también para ese hiperparámetro.
Puede que no sea la única forma de hacerlo pero si nadie responde y no puedes hacerlo tú mismo deja un comentario y te puedo enseñar paso a paso cómo hacerlo.