Cálculo rápido de componentes sabios

8

Tengo la siguiente pregunta:

Supongamos que tengo dos matrices ,X,Y ambas de tamaño m×p y una matriz gaussiana G de iid aleatoria de tamaño m×k , mp>k .

¿Hay alguna forma rápida de calcular exp(XYT)G ? ¿Quizás utilizando el hecho de que tanto X como Y son mucho más pequeños que XYT ? Aquí, exp() significa exponente de entrada (es decir, de each entrada de la matriz). Claramente, sin el exponente, es fácil y se puede hacer simplemente con X(YTG) , pero el problema es que el exponente en cuanto a elementos ya no es de rango bajo.

La motivación para la pregunta es multiplicar un núcleo del formulario

Dij=exp(dij) oDij=exp(dij2)

dij=xiyjxi,yiRp

Una solución aproximada también está bien.

Gil
fuente
55
Encuentro la pregunta clara (desafortunadamente no tengo ninguna idea), pero el hecho de que el exponencial sea por componentes creo que va a engañar a mucha gente: es una notación muy estándar para la matriz exponencial , especialmente en la teoría de EDO y PDE. ¿Podrías reformular un poco el título? exp(A)
Kirill
Definir rápido? ¿Quiere decir de forma vectorizada sin toda la matriz ? XYT
nluigi
Complejidad computacional inferior a . O(m2k)
Gil
1
Documento de NIPS'16 que podría ser papeles
Memming
1
Miré el periódico, es muy útil. ¡Gracias! @Memming
Gil

Respuestas:

1

Si las aproximaciones son suficientes, tal vez podríamos comenzar desarrollando el operador siguiente manera: Tenga en cuenta que los términos de potencia siguen su notación de elemento y refiérase a los poderes de Hadamard, abusando ligeramente de las convenciones estándar.exp

exp(Z)=k=0Zkk!=1+Z+Z22+Z36+Z424+...

Esto ofrece posibilidades para volver a escribir la expresión: donde es una matriz de identidad de tamaño apropiado. Si uno pudiera vivir con aproximaciones de primer orden, entonces: resultando en una operación más fácil. Para aproximaciones de orden superior, le gustaría encontrar la solución para el poder de Hadamard, que probablemente sea un poco más difícil o aún no he visto una solución inmediata.

exp(XYT)G=(IXYT+(XYT)22(XYT)36+(XYT)424...)G=GXYTG+(XYT)2G2(XYT)3G6+(XYT)4G24...
I
exp(XYT)G=GXYTG+O(max(|XYT|)2)GXYTG=GX(YTG)
Tolga Birdal
fuente
Buena idea. Pequeño detalle: que debería ser algo como lugar. O(n2)O((XY)2)
Federico Poloni
@FedericoPoloni, estoy de acuerdo. Si pudiera introducir una notación más apropiada que usar las normas de matrices, me complacería actualizar.
Tolga Birdal
Bueno, usar las normas me parece lo suficientemente apropiado, pero si lo prefiere, puede escribirlo como . O(max(|XYT|)2)
Federico Poloni
ok, lo actualicé.
Tolga Birdal