Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Aproximación de descenso de coordenadas de bloque para modelos GPR

Para un gran número de observaciones, el uso del método exacto para la estimación de parámetros y la realización de predicciones sobre nuevos datos puede ser costoso (ver).El método exacto GPR Uno de los métodos de aproximación que ayudan a lidiar con este problema para la predicción es el método de descenso de coordenadas de bloque (BCD). Puede realizar predicciones mediante el método BCD especificando primero el método de predicción mediante el argumento de par nombre-valor en la llamada a y, a continuación, utilizando el'PredictMethod','bcd'fitrgp predict Función.

La idea del método BCD es calcular

α^=(K(X,X)+σ2IN)1(yHβ)

de una manera diferente que el método exacto. BCD estima α^resolviendo el siguiente problema de optimización:

α^=arg minαf(α)

Dónde

f(α)=12αT[K(X,X)+σ2IN]ααT(yHβ).

utiliza el descenso de coordenadas de bloque (BCD) para resolver el problema de optimización anterior.fitrgp Para los usuarios familiarizados con las máquinas de vectores de soporte (SVMs), la optimización secuencial mínima (SMO) y el ISDA (algoritmo de datos único iterativo) utilizados para ajustarse a los SVC son casos especiales de BCD. realiza dos pasos para cada selección de bloque de actualización de BCD y actualización de bloque.fitrgp En la fase de selección de bloques, utiliza una combinación de estrategias aleatorias y codiciosas para seleccionar el conjunto defitrgp α coeficientes a optimizar a continuación. En la fase de actualización de bloques, el α coeficientes se optimizan mientras se mantiene el otro α coeficientes fijados a sus valores anteriores. Estos dos pasos se repiten hasta la convergencia. BCD no almacena el n*n Matriz K(X,X) en la memoria, pero solo calcula fragmentos de la K(X,X) matriz según sea necesario. Como resultado, BCD es más eficiente en la memoria comparado con.'PredictMethod','exact'

La experiencia práctica indica que no es necesario resolver el problema de optimización para la computación α a una precisión muy alta. Por ejemplo, es razonable detener las iteraciones cuando ||f(α)|| cae por debajo η||f(α0)||Dónde α0 es el valor inicial de α Y η es una pequeña constante (digamos η=103). Los resultados de y son equivalentes, excepto los cálculos BCD'PredictMethod','exact''PredictMethod','bcd' α de una manera diferente. Por lo tanto, puede ser pensado como una manera eficiente de la memoria de hacer.'PredictMethod','bcd''PredictMethod','exact' BCD es a menudo más rápido que para grandes.'PredictMethod','exact'n Sin embargo, no puede calcular los intervalos de predicción mediante la opción.'PredictMethod','bcd' Esto se debe a que la computación de los intervalos de predicción requiere resolver un problema como el que se resuelve para calcular α para cada punto de prueba, que de nuevo es costoso.

Ajuste los modelos GPR utilizando la aproximación BCD

Este ejemplo muestra el ajuste de un modelo de regresión de proceso Gaussiano (GPR) a los datos con un gran número de observaciones, utilizando la aproximación de descenso de coordenadas de bloque (BCD).

Pequeño n-PredictMethod "Exact" y "BCD" producen los mismos resultados

Genere un conjunto de datos de muestra pequeño.

    rng(0,'twister');     n = 1000;     X = linspace(0,1,n)';     X = [X,X.^2];     y = 1 + X*[1;2] + sin(20*X*[1;-2])./(X(:,1)+1) + 0.2*randn(n,1); 

Cree un modelo GPR utilizando y.'FitMethod','exact''PredictMethod','exact'

    gpr = fitrgp(X,y,'KernelFunction','squaredexponential',...         'FitMethod','exact','PredictMethod','exact'); 

Cree otro modelo de GPR utilizando y.'FitMethod','exact''PredictMethod','bcd'

    gprbcd = fitrgp(X,y,'KernelFunction','squaredexponential',...         'FitMethod','exact','PredictMethod','bcd','BlockSize',200); 

y debe ser equivalente.'PredictMethod','exact''PredictMethod','bcd' Calculan el mismo pero sólo de diferentes maneras. También puede ver las iteraciones mediante el argumento de par nombre-valor en la llamada a.'Verbose',1fitrgp

Calcule los valores ajustados utilizando los dos métodos y compártelos:

    ypred    = resubPredict(gpr);     ypredbcd = resubPredict(gprbcd);      max(abs(ypred-ypredbcd)) 
 ans =     5.8853e-04  

Los valores ajustados están cerca uno del otro.

Ahora, trace los datos junto con los valores ajustados para y.'PredictMethod','exact''PredictMethod','bcd'

    figure;     plot(y,'k.');     hold on;     plot(ypred,'b-','LineWidth',2);     plot(ypredbcd,'m--','LineWidth',2);     legend('Data','PredictMethod Exact','PredictMethod BCD','Location','Best');     xlabel('Observation index');     ylabel('Response value'); 

Se puede ver que y producir ajustes casi idénticos.'PredictMethod','exact''PredictMethod','bcd'

Gran n-Use ' FitMethod ', ' SD ' y ' PredictMethod ', ' BCD '

Genere un DataSet más grande similar al anterior.

    rng(0,'twister');     n = 50000;     X = linspace(0,1,n)';     X = [X,X.^2];     y = 1 + X*[1;2] + sin(20*X*[1;-2])./(X(:,1)+1) + 0.2*randn(n,1); 

Para = 50000, Matrix (,) sería 50000-by-50000.nKXX Almacenar (,) en la memoria requeriría alrededor de 20 GB de RAM.KXX Para ajustar un modelo GPR a este DataSet, Utilíce con un subconjunto aleatorio de = 2000 puntos.'FitMethod','sd'm El argumento de par nombre-valor en la llamada para especificar el tamaño del conjunto activo.'ActiveSetSize'fitrgpm Para la computación utilizar con una de 5000.'PredictMethod','bcd''BlockSize' El argumento de par nombre-valor en especifica el número de elementos de la'BlockSize'fitrgp vector que el software optimiza en cada iteración. A de 5000 asume que el ordenador que usted utiliza puede almacenar una matriz 5000-by-5000 en la memoria.'BlockSize'

   gprbcd = fitrgp(X,y,'KernelFunction','squaredexponential',...,         'FitMethod','sd','ActiveSetSize',2000,'PredictMethod','bcd','BlockSize',5000); 

Graficar los datos y los valores ajustados.

    figure;     plot(y,'k.');     hold on;     plot(resubPredict(gprbcd),'m-','LineWidth',2);     legend('Data','PredictMethod BCD','Location','Best');     xlabel('Observation index');     ylabel('Response value'); 

La trama es similar a la de menor tamaño.n

Referencias

[1] Grippo, L. and M. Sciandrone. On the convergence of the block nonlinear gauss-seifel method under convex constraints. Operations Research Letters. Vol. 26, pp. 127–136, 2000.

[2] Bo, L. and C. Sminchisescu. Greed block coordinate descent for large scale Gaussian process regression. In Proceedings of the Twenty Fourth Conference on Uncertainty in Artificial Intelligence (UAI2008): http://arxiv.org/abs/1206.3238, 2012.

Consulte también

|

Temas relacionados