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 , m≫p>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=‖xi−yj‖xi,yi∈Rp

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=0∞Zkk!=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=(I−XYT+(XYT)22−(XYT)36+(XYT)424−...)G=G−XYTG+(XYT)2G2−(XYT)3G6+(XYT)4G24−...
I
exp⁡(−XYT)G=G−XYTG+O(max(|XYT|)2)≈G−XYTG=G−X(YTG)

Buena idea. Pequeño detalle: que debería ser algo como lugar. O(n2)O((‖X‖‖Y‖)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.