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.


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)

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.