Método de Nystroem para la aproximación del núcleo

12

He estado leyendo sobre el método de Nyström para la aproximación de kernel de bajo rango. Este método se implementa en scikit-learn [1] como un método para proyectar muestras de datos a una aproximación de bajo rango del mapeo de características del núcleo.

A lo mejor de mi conocimiento, dado un conjunto de entrenamiento y una función del núcleo, se genera una aproximación de bajo rango de la n × n del núcleo matriz K aplicando SVD a W y C .{Xyo}yo=1nortenorte×norteKWC

C = [ W K 21 ] , W R l × lK=[WK21TK21K22] C=[WK21]WRl×l

Sin embargo, no entiendo cómo la aproximación de bajo rango de la matriz Kernel se puede utilizar para proyectar nuevas muestras en el espacio de características del kernel aproximado . Los documentos que he encontrado (por ejemplo, [2]) no son de gran ayuda, ya que son poco didácticos.

Además, tengo curiosidad acerca de la complejidad computacional de este método, tanto en las fases de entrenamiento como de prueba.

[1] http://scikit-learn.org/stable/modules/kernel_approximation.html#nystroem-kernel-approx

[2] http://www.jmlr.org/papers/volume13/kumar12a/kumar12a.pdf

Daniel López
fuente

Respuestas:

15

Derivemos la aproximación de Nyström de una manera que aclare las respuestas a sus preguntas.

La suposición clave en Nyström es que la función del núcleo es de rango . (Realmente suponemos que es aproximadamente de rango m , pero por simplicidad, supongamos que es exactamente rango m por ahora). Eso significa que cualquier matriz del núcleo tendrá rango como máximo m , y en particular K = [ k ( x 1 , x 1 ) k ( x 1 , x n ) k ( x nmetrommmetro es el rangom. Por lo tanto, haymvalores propios distintos de cero, y podemos escribir la descomposición propia deKcomo K=UΛUT con vectores propios almacenados enU, de forman×m, y valores propios dispuestos enΛ, unamatriz diagonalm×m.

K=[k(X1,X1)...k(X1,Xnorte)k(Xnorte,X1)...k(Xnorte,Xnorte)],
metrometroK
K=UΛUT
Unorte×metroΛmetro×metro

Entonces, escojamos elementos, generalmente de manera uniforme al azar, pero posiblemente de acuerdo con otros esquemas; todo lo que importa en esta versión simplificada es que K 11 sea ​​de rango completo. Una vez que lo hagamos, simplemente vuelva a etiquetar los puntos para que terminemos con la matriz del núcleo en bloques: K = [ K 11 K T 21 K 21 K 22 ] , donde evaluamos cada entrada en K 11 (que es m × m ) y K 21 ( ( n - m ) × mmetroK11

K=[K11K21TK21K22],
K11metro×metroK21(norte-metro)×metro), pero no desea evaluar ninguna entrada en .K22

Ahora, también podemos dividir la descomposición propia de acuerdo con esta estructura de bloques: dondeU1esm×myT2es(n-m)×m. Pero tenga en cuenta que ahora tenemosK11=U1ΛU T 1 . Para que podamos encontrar

K=UΛUT=[U1U2]Λ[U1U2]T=[U1ΛU1TU1ΛU2TU2ΛU1TU2ΛU2T],
U1metro×metroU2(norte-metro)×metroK11=U1ΛU1T y Λ por descomposición de la matriz conocida K 11 .U1ΛK11

También sabemos que . Aquí, sabemos todo en esta ecuación excepto U 2 , por lo que podemos resolver qué valores propios implica: multiplicar a la derecha ambos lados por ( Λ U T 1 ) - 1 = U 1 Λ - 1 para obtener U 2 = K 21 U 1 Λ - 1 . Ahora tenemos todo lo que necesitamos para evaluar K 22 : K 22K21=U2ΛU1TU2(ΛU1T)-1=U1Λ-1

U2=K21U1Λ-1.
K22
K22=U2ΛU2T=(K21U1Λ-1)Λ(K21U1Λ-1)T=K21U1(Λ-1Λ)Λ-1U1TK21T=K21U1Λ-1U1TK21T(*)=K21K11-1K21T(**)=(K21K11-12)(K21K11-12)T.

En (*), encontramos una versión de la incrustación de Nyström que podría haber visto simplemente como la definición. Esto nos dice los valores efectivos del núcleo que estamos imputando para el bloque .K22

En (**), vemos que la matriz de características , que es forma(n-m)×m, corresponde a estos valores de núcleo imputados. Si usamosK1K21K11-12(norte-metro)×metropara lospuntosm, tenemos un conjunto decaracterísticasm-dimensionales Φ=[K 1K1112metrometro Podemos verificar rápidamente queΦcorresponde a la matriz correcta del núcleo: ΦΦT

Φ=[K1112K21K11-12].
Φ
ΦΦT=[K1112K21K11-12][K1112K21K11-12]T=[K1112K1112K1112K11-12K21TK21K11-12K1112K21K11-12K11-12K21T]=[K11K21TK21K21K11-1K21T]=K.

metroΦK

XΦ

ϕ(X)=[k(X,X1)...k(X,Xmetro)]K11-12.
X[k(X,X1)...k(X,Xmetro)]K21K21K11-12ϕ(X)K11K11K11-12=K1112ΦXnuevo
Φprueba=Kprueba,1K11-12.
metro[KtrenKentrenar, probarKprueba, trenKprueba]metroKpruebaK22


Arriba, supusimos que la matriz del núcleo tenía exactamente el rango m . Este no suele ser el caso; para un núcleo gaussiano, por ejemplo, K siempre es de rango n , pero los últimos valores propios generalmente disminuyen bastante rápido, por lo que va a estar cerca de una matriz de rango m , y nuestras reconstrucciones de K 21 o K test , 1 van estar cerca de los valores verdaderos pero no exactamente lo mismo. Serán mejores reconstrucciones cuanto más se acerque el espacio propio de K 11 al deKmetroKnortemetroK21Kprueba,1K11 general, por lo que elegir lospuntos m correctoses importante en la práctica.Kmetro

Tenga en cuenta también que si tiene valores propios cero, puede reemplazar los inversos con pseudoinversiones y todo sigue funcionando; simplemente reemplaza K 21 en la reconstrucción con K 21 K 11 K 11 .K11K21K21K11K11

Kmax(λyo,10-12)

Dougal
fuente
1
UNAUΛUTUNAUΣVTUNA-12=VΣ-12VTUNAUNAVΣ-12VT=UΣVTVΣ-12VT=UΣ12VT=UNA12
1
UΣ-12VT=K-12UVK11UΣVTVΣ-12UT=UΣ12UT
1
X-12=1/ /XVVT
1
Xmetro
1
XXRreXXk:X×XRϕ:XRmetrok(X,Xyo)metro