Contenido principal

Modelos de regresión de procesos gaussianos

Los modelos de regresión de procesos gaussianos (GPR) son modelos probabilísticos no paramétricos basados en kernels. Puede entrenar un modelo GPR utilizando la función fitrgp.

Considere el conjunto de entrenamiento {(xi,yi);i=1,2,...,n}, donde xid e yi, extraído de una distribución desconocida. Un modelo GPR resuelve la cuestión de predecir el valor de una variable de respuesta ynew, dado el nuevo vector de entrada xnew y los datos de entrenamiento. Un modelo de regresión lineal tiene el formato

y=xTβ+ε,

donde εN(0,σ2). La varianza del error σ2 y los coeficientes β se estiman a partir de los datos. Un modelo GPR explica la respuesta introduciendo variables latentes, f(xi),i=1,2,...,n, de un proceso gaussiano (GP), y funciones de base explícitas, h. La función de covarianza de las variables latentes captura la suavidad de la respuesta y las funciones de base proyectan las entradas x en un espacio de características de p dimensiones.

Un GP es un conjunto de variables aleatorias, de modo que cualquier número finito de ellas tiene una distribución gaussiana conjunta. Si {f(x),xd} es un GP, dadas n observaciones x1,x2,...,xn, la distribución conjunta de las variables aleatorias f(x1),f(x2),...,f(xn) es gaussiana. Un GP está definido por su función de media m(x) y su función de covarianza k(x,x). Es decir, si {f(x),xd} es un proceso gaussiano, entonces E(f(x))=m(x) y Cov[f(x),f(x)]=E[{f(x)m(x)}{f(x)m(x)}]=k(x,x).

Ahora considere el siguiente modelo.

h(x)Tβ+f(x),

donde f(x)~GP(0,k(x,x)), es decir, f(x) procede de un GP de media cero con función de covarianza, k(x,x). h(x) son un conjunto de funciones de base que transforman el vector de características original x en Rd en un nuevo vector de características h(x) en p. β es un vector de p por 1 de coeficientes de funciones de base. Este modelo representa un modelo GPR. Una instancia de respuesta y puede modelarse como

P(yi|f(xi),xi) ~N(yi|h(xi)Tβ+f(xi),σ2)

Por tanto, un modelo GPR es un modelo probabilístico. Hay una variable latente f(xi) introducida para cada observación xi, lo que hace que el modelo GPR sea no paramétrico. En el formato vector, este modelo es equivalente a

P(y|f,X)~N(y|Hβ+f,σ2I),

donde

X=(x1Tx2TxnT),y=(y1y2yn),H=(h(x1T)h(x2T)h(xnT)),f=(f(x1)f(x2)f(xn)).

La distribución conjunta de las variables latentes f(x1),f(x2),...,f(xn) del modelo GPR es la siguiente:

P(f|X)~N(f|0,K(X,X)),

cerca de un modelo de regresión lineal, donde K(X,X) tiene el siguiente aspecto:

K(X,X)=(k(x1,x1)k(x1,x2)k(x1,xn)k(x2,x1)k(x2,x2)k(x2,xn)k(xn,x1)k(xn,x2)k(xn,xn)).

Normalmente, la función de covarianza k(x,x) está parametrizada por un conjunto de parámetros o hiperparámetros de kernel, θ. A menudo, k(x,x) se escribe como k(x,x|θ) para indicar de manera explícita la dependencia de θ.

fitrgp estima los coeficientes de la función de base, β, la varianza de ruido, σ2, y los hiperparámetros, θ, de la función de kernel a partir de los datos mientras entrena el modelo GPR. Puede especificar la función de base, la función de kernel (covarianza) y los valores iniciales de los parámetros.

Dado que un modelo GPR es probabilístico, es posible calcular los intervalos de predicción usando el modelo entrenado (consulte predict y resubPredict).

También puede calcular el error de regresión usando el modelo GPR entrenado (consulte loss y resubLoss).

Comparar intervalos de predicción de modelos GPR

Este ejemplo ajusta modelos GPR a un conjunto de datos sin ruido y a un conjunto de datos con ruido. El ejemplo compara las respuestas pronosticadas y los intervalos de predicción de los dos modelos GPR ajustados.

Genere dos conjuntos de datos de observación a partir de la función g(x)=xsin(x).

rng('default') % For reproducibility
x_observed = linspace(0,10,21)';
y_observed1 = x_observed.*sin(x_observed);
y_observed2 = y_observed1 + 0.5*randn(size(x_observed));

Los valores de y_observed1 no tienen ruido y los valores de y_observed2 incluyen algo de ruido aleatorio.

Ajuste los modelos GPR a los conjuntos de datos observados.

gprMdl1 = fitrgp(x_observed,y_observed1);
gprMdl2 = fitrgp(x_observed,y_observed2);

Calcule las respuestas pronosticadas y los intervalos de predicción del 95% usando los modelos ajustados.

x = linspace(0,10)';
[ypred1,~,yint1] = predict(gprMdl1,x);
[ypred2,~,yint2] = predict(gprMdl2,x);

Cambie el tamaño de una figura para que muestre dos gráficas en una figura.

fig = figure;
fig.Position(3) = fig.Position(3)*2;

Cree un diseño de gráfica en mosaico de 1 por 2.

tiledlayout(1,2,'TileSpacing','compact')

Para cada mosaico, represente una gráfica de dispersión de los puntos de datos observados y una gráfica de función de xsin(x). Después, añada una gráfica de respuestas pronosticadas de GP y un parche de intervalos de predicción.

nexttile
hold on
scatter(x_observed,y_observed1,'r') % Observed data points
fplot(@(x) x.*sin(x),[0,10],'--r')  % Function plot of x*sin(x)
plot(x,ypred1,'g')                  % GPR predictions
patch([x;flipud(x)],[yint1(:,1);flipud(yint1(:,2))],'k','FaceAlpha',0.1); % Prediction intervals
hold off
title('GPR Fit of Noise-Free Observations')
legend({'Noise-free observations','g(x) = x*sin(x)','GPR predictions','95% prediction intervals'},'Location','best')

nexttile
hold on
scatter(x_observed,y_observed2,'xr') % Observed data points
fplot(@(x) x.*sin(x),[0,10],'--r')   % Function plot of x*sin(x)
plot(x,ypred2,'g')                   % GPR predictions
patch([x;flipud(x)],[yint2(:,1);flipud(yint2(:,2))],'k','FaceAlpha',0.1); % Prediction intervals
hold off
title('GPR Fit of Noisy Observations')
legend({'Noisy observations','g(x) = x*sin(x)','GPR predictions','95% prediction intervals'},'Location','best')

Figure contains 2 axes objects. Axes object 1 with title GPR Fit of Noise-Free Observations contains 4 objects of type scatter, functionline, line, patch. These objects represent Noise-free observations, g(x) = x*sin(x), GPR predictions, 95% prediction intervals. Axes object 2 with title GPR Fit of Noisy Observations contains 4 objects of type scatter, functionline, line, patch. These objects represent Noisy observations, g(x) = x*sin(x), GPR predictions, 95% prediction intervals.

Cuando las observaciones no tienen ruido, las respuestas pronosticadas del ajuste de la GPR coinciden con las observaciones. La desviación estándar de la respuesta pronosticada es casi cero. Por consiguiente, los intervalos de predicción son muy estrechos. Cuando las observaciones incluyen ruido, las respuestas pronosticadas no coinciden con las observaciones y los intervalos de predicción se vuelven amplios.

Referencias

[1] Rasmussen, C. E. and C. K. I. Williams. Gaussian Processes for Machine Learning. MIT Press. Cambridge, Massachusetts, 2006.

Consulte también

| |

Temas