Articulo de referencia

Producto de Hadamard (matrices)

El producto de Hadamard opera sobre matrices de forma idéntica y produce una tercera matriz de las mismas dimensiones. En matemáticas , el producto de Hadamard (también conocido...

El producto de Hadamard opera sobre matrices de forma idéntica y produce una tercera matriz de las mismas dimensiones.

En matemáticas , el producto de Hadamard (también conocido como producto elemento a elemento , producto entrada a entrada [ 1 ] : cap. 5 o producto de Schur ) [ 2 ] es una operación binaria que toma dos matrices de las mismas dimensiones y devuelve una matriz con los elementos correspondientes multiplicados. Esta operación puede considerarse una "multiplicación de matrices ingenua" y es diferente del producto de matrices . Se atribuye al matemático francés Jacques Hadamard o al matemático ruso Issai Schur , quienes le atribuyen su nombre .

El producto de Hadamard es asociativo y distributivo . A diferencia del producto matricial, también es conmutativo . [ 3 ]

Definición

Para dos matrices A y B de la misma dimensión m × n , el producto de HadamardAB{\displaystyle A\odot B}(a vecesAB{\displaystyle A\circ B}) [ 4 ] [ 5 ] [ 6 ] es una matriz de la misma dimensión que los operandos, con elementos dados por [ 3 ]

(AB)ij=(A)ij(B)ij.{\displaystyle (A\odot B)_{ij}=(A)_{ij}(B)_{ij}.}

Para matrices de diferentes dimensiones ( m × n y p × q , donde mp o nq ), el producto de Hadamard no está definido.

Un ejemplo del producto de Hadamard para dos matrices arbitrarias de 2  × 3: 

[231082][314795]=[2×33×11×40×78×92×5]=[63407210].{\displaystyle {\begin{bmatrix}2&3&1\\0&8&-2\end{bmatrix}}\odot {\begin{bmatrix}3&1&4\\7&9&5\end{bmatrix}}={\begin{bmatrix}2\times 3&3\times 1&1\times 4\\0\times 7&8\times 9&-2\times 5\end{bmatrix}}={\begin{bmatrix}6&3&4\\0&72&-10\end{bmatrix}}.}

Propiedades

  • El producto de Hadamard es conmutativo (cuando se trabaja con un anillo conmutativo), asociativo y distributivo respecto de la suma. Es decir, si A , B y C son matrices del mismo tamaño y k es un escalar:AB=BA,A(Bdo)=(AB)do,A(B+do)=AB+Ado,(kA)B=A(kB)=k(AB),A0=0A=0.{\displaystyle {\begin{aligned}A\odot B&=B\odot A,\\A\odot (B\odot C)&=(A\odot B)\odot C,\\A\odot (B+C)&=A\odot B+A\odot C,\\(kA)\odot B&=A\odot (kB)=k(A\odot B),\\A\odot 0&=0\odot A=0.\end{aligned}}}
  • La matriz identidad bajo la multiplicación de Hadamard de dos matrices m × n es una matriz m × n donde todos los elementos son iguales a 1. Esto difiere de la matriz identidad bajo la multiplicación de matrices convencional, donde solo los elementos de la diagonal principal son iguales a 1. Además, una matriz tiene inversa bajo la multiplicación de Hadamard si y solo si todos sus elementos son invertibles, o equivalentemente sobre un cuerpo, si y solo si ninguno de sus elementos es igual a cero. [ 7 ]
  • Para vectores x e y y matrices diagonales correspondientes D x y D y con estos vectores como sus diagonales principales, se cumple la siguiente identidad: [ 1 ] : 479incógnita(AB)y=tr(DincógnitaADyBT),{\displaystyle \mathbf {x} ^{*}(A\odot B)\mathbf {y} =\operatorname {tr} \left({D}_{\mathbf {x} }^{*}A{D}_{\mathbf {y} }{B}^{\mathsf {T}}\right),}donde x * denota la transpuesta conjugada de x . En particular, usando vectores de unos, esto muestra que la suma de todos los elementos en el producto de Hadamard es la traza de ABT donde el superíndice T denota la transpuesta de la matriz , es decir,tr(ABT)=1T(AB)1{\displaystyle \operatorname {tr} \left(AB^{\mathsf {T}}\right)=\mathbf {1} ^{\mathsf {T}}\left(A\odot B\right)\mathbf {1} }. Un resultado relacionado para los cuadrados A y B es que las sumas de las filas de su producto de Hadamard son los elementos diagonales de ABT : [ 8 ]i(AB)ij=(BTA)jj=(ABT)ii.{\displaystyle \sum _{i}(A\odot B)_{ij}=\left(B^{\mathsf {T}}A\right)_{jj}=\left(AB^{\mathsf {T}}\right)_{ii}.}Similarmente,(yincógnita)A=DyADincógnita.{\displaystyle (\mathbf {y} \mathbf {x} ^{*})\odot A=D_{\mathbf {y} }AD_{\mathbf {x} }^{*}.}Además, un producto matriz-vector de Hadamard se puede expresar como(AB)y=diagnóstico(ADyBT),{\displaystyle (A\odot B)\mathbf {y} =\operatorname {diag} (AD_{\mathbf {y} }B^{\mathsf {T}}),}dóndediagnóstico(METRO){\displaystyle \operatorname {diag} (M)}es el vector formado a partir de las diagonales de la matriz M. Tomandoy=1{\displaystyle \mathbf {y} =\mathbf {1} }, esto implica que(AB)1=diagnóstico(ABT){\displaystyle (A\odot B)\mathbf {1} =\operatorname {diag} (AB^{\mathsf {T}})}
  • El producto de Hadamard es una submatriz principal del producto de Kronecker . [ 9 ] [ 10 ] [ 11 ]
  • El producto de Hadamard satisface la desigualdad de rango.rango(AB)rango(A)rango(B).{\displaystyle \operatorname {rank} (A\odot B)\leq \operatorname {rank} (A)\operatorname {rank} (B).}
  • Si A y B son matrices definidas positivas , entonces se cumple la siguiente desigualdad que involucra el producto de Hadamard: [ 12 ]i=knorteλi(AB)i=knorteλi(AB),k=1,,norte,{\displaystyle \prod _{i=k}^{n}\lambda _{i}(A\odot B)\geq \prod _{i=k}^{n}\lambda _{i}(AB),\quad k=1,\ldots ,n,}donde λ i ( A ) es el i -ésimo autovalor más grande de A .
  • Si D y E son matrices diagonales , entonces [ 13 ]D(AB)mi=(DAmi)B=(DA)(Bmi)=(Ami)(DB)=A(DBmi).{\displaystyle {\begin{aligned}D(A\odot B)E&=(DAE)\odot B=(DA)\odot (BE)\\&=(AE)\odot (DB)=A\odot (DBE).\end{aligned}}}
  • El producto de Hadamard de dos vectoresa{\displaystyle \mathbf {a} }yb{\displaystyle \mathbf {b} }es lo mismo que la multiplicación matricial de la matriz diagonal correspondiente de un vector por el otro vector:ab=Dab=Dba.{\displaystyle \mathbf {a} \odot \mathbf {b} =D_{\mathbf {a} }\mathbf {b} =D_{\mathbf {b} }\mathbf {a} .}
  • Eldiagnóstico{\displaystyle \operatorname {diag} }El operador que transforma un vector en una matriz diagonal puede expresarse utilizando el producto de Hadamard comodiagnóstico(a)=(a1T)I,{\displaystyle \operatorname {diag} (\mathbf {a} )=(\mathbf {a} \mathbf {1} ^{T})\odot I,}dónde1{\displaystyle \mathbf {1} }es un vector constante con elementos1{\displaystyle 1}, yI{\displaystyle I}es la matriz identidad .

La propiedad de producto mixto

El producto de Hadamard obedece ciertas relaciones con otros operadores de producto matricial.

  • Si{\displaystyle \otimes } es el producto de Kronecker , suponiendoA{\displaystyle A}tiene las mismas dimensiones quedo{\displaystyle C}yB{\displaystyle B}comoD{\displaystyle D}, entonces(AB)(doD)=(Ado)(BD).{\displaystyle (A\otimes B)\odot (C\otimes D)=(A\odot C)\otimes (B\odot D).}
  • Si{\displaystyle \bullet } es el producto de división facial , entonces [ 14 ](AB)(doD)=(Ado)(BD).{\displaystyle (A\bullet B)\odot (C\bullet D)=(A\odot C)\bullet (B\odot D).}
  • Si{\displaystyle \ast }es el producto de Khatri-Rao  por columnas , entonces(AB)(doD)=(Ado)(BD).{\displaystyle (A\bullet B)(C\ast D)=(AC)\odot (BD).}

Teorema del producto de Schur

El producto de Hadamard de dos matrices semidefinidas positivas es semidefinido positivo. [ 3 ] [ 8 ] Esto se conoce como el teorema del producto de Schur, [ 7 ] en honor al matemático ruso Issai Schur . Para dos matrices semidefinidas positivas A y B , también se sabe que el determinante de su producto de Hadamard es mayor o igual que el producto de sus respectivos determinantes: [ 8 ]det(AB)det(A)det(B).{\displaystyle \det({A}\odot {B})\geq \det({A})\det({B}).}

Operaciones análogas

También se observan otras operaciones de Hadamard en la literatura matemática, [ 15 ] a saber, laraíz de Hadamard yPotencia de Hadamard (que en efecto son lo mismo debido a los índices fraccionarios), definida para una matriz tal que:

Para B=A2Bij=Aij2{\displaystyle {\begin{aligned}{B}&={A}^{\circ 2}\\B_{ij}&={A_{ij}}^{2}\end{aligned}}}

y para B=A12Bij=Aij12{\displaystyle {\begin{aligned}{B}&={A}^{\circ {\frac {1}{2}}}\\B_{ij}&={A_{ij}}^{\frac {1}{2}}\end{aligned}}}

ElLecturas inversas de Hadamard : [ 15 ]B=A1Bij=Aij1{\displaystyle {\begin{aligned}{B}&={A}^{\circ -1}\\B_{ij}&={A_{ij}}^{-1}\end{aligned}}}

ALa división de Hadamard se define como: [ 16 ] [ 17 ]

do=ABdoij=AijBij{\displaystyle {\begin{aligned}{C}&={A}\oslash {B}\\C_{ij}&={\frac {A_{ij}}{B_{ij}}}\end{aligned}}}

En lenguajes de programación

La mayoría de los lenguajes de programación científica o numérica incluyen el producto de Hadamard, bajo diversos nombres.

En MATLAB , el producto de Hadamard se expresa como "multiplicación de puntos": a .* b, o la llamada a la función: times(a, b). [ 18 ] También tiene operadores de puntos análogos que incluyen, por ejemplo, los operadores a .^ by a ./ b. [ 19 ] Debido a este mecanismo, es posible reservar *y ^para la multiplicación de matrices y las exponenciales de matrices, respectivamente.

El lenguaje de programación Julia tiene una sintaxis similar a la de MATLAB, donde la multiplicación de Hadamard se llama multiplicación de difusión y también se denota con a .* b, y otros operadores se definen de forma análoga elemento a elemento; por ejemplo, las potencias de Hadamard usan a .^ b. [ 20 ] Pero a diferencia de MATLAB, en Julia esta sintaxis de "punto" se generaliza con un operador de difusión. genérico que puede aplicar cualquier función elemento a elemento. Esto incluye tanto operadores binarios (como la multiplicación y la exponenciación mencionadas anteriormente, así como cualquier otro operador binario como el producto de Kronecker), como operadores unarios como !y . Por lo tanto, cualquier función en notación prefijaf se puede aplicar como f.(x). [ 21 ]

Python no tiene soporte integrado para matrices, lo que genera notaciones inconsistentes/conflictivas. La biblioteca numérica NumPy interpreta a*bo a.multiply(b)como el producto de Hadamard, y usa a@bo a.matmul(b)para el producto de matrices. Con la biblioteca simbólica SymPy , la multiplicación de objetos de matriz como a*bo a@bproducirá el producto de matrices. El producto de Hadamard se puede obtener con la llamada al método a.multiply_elementwise(b). [ 22 ] Algunos paquetes de Python incluyen soporte para potencias de Hadamard usando métodos como np.power(a, b), o el método Pandasa.pow(b) .

En C++, la biblioteca Eigen proporciona una cwiseProductfunción miembro para la clase Matrix ( ), mientras que la biblioteca Armadillo utiliza el operador para hacer expresiones compactas ( ; es un producto de matrices).a.cwiseProduct(b)%a % ba * b

En GAUSS y HP Prime , la operación se conoce como multiplicación de matrices.

En Fortran , R , APL , J y Wolfram Language ( Mathematica ), el operador de multiplicación *o ×aplica el producto de Hadamard, mientras que el producto de matrices se escribe usando matmul, %*%, +.×, +/ .*y ., respectivamente.

En el lenguaje de programación Maple , el operador de multiplicación *no está definido para matrices y vectores. El producto matricial se escribe usando ., mientras que el producto de Hadamard se puede obtener usando *~. (El ~es un 'operador de difusión' similar a .en Julia).

El paquete matrixcalc de R introduce la función hadamard.prod()para el producto de Hadamard de matrices o vectores numéricos. [ 23 ]

El sistema de álgebra computacional que utiliza Maxima. para la multiplicación de matrices y *para el producto de Hadamard.

Aplicaciones

El producto de Hadamard aparece en algoritmos de compresión con pérdida como JPEG . El paso de decodificación implica un producto entrada por entrada, es decir, el producto de Hadamard.

En el procesamiento de imágenes , el operador Hadamard se puede utilizar para realzar, atenuar o enmascarar regiones de la imagen. Una matriz representa la imagen original, mientras que la otra actúa como matriz de ponderación o de enmascaramiento.

Se utiliza en la literatura de aprendizaje automático , por ejemplo, para describir la arquitectura de redes neuronales recurrentes como GRU o LSTM . [ 24 ]

También se utiliza para estudiar las propiedades estadísticas de vectores y matrices aleatorias. [ 25 ] [ 26 ]

El producto facial penetrante

El producto de la cara penetrante de las matrices

Según la definición de V. Slyusar, el producto de la cara penetrante de la matriz p × gA{\displaystyle {A}}y matriz n -dimensionalB{\displaystyle {B}}( n > 1) con p × g bloques (B=[Bnorte]{\displaystyle {B}=[B_{n}]}) es una matriz de tamañoB{\displaystyle {B}}de la forma: [ 27 ]A[]B=[AB1AB2ABnorte].{\displaystyle {A}[\circ ]{B}=\left[{\begin{array}{c | c | c | c }{A}\circ {B}_{1}&{A}\circ {B}_{2}&\cdots &{A}\circ {B}_{n}\end{array}}\right].}

Ejemplo

Si A=[123456789],B=[B1B2B3]=[147281431221820510254012306283242739]{\displaystyle {A}={\begin{bmatrix}1&2&3\\4&5&6\\7&8&9\end{bmatrix}},\quad {B}=\left[{\begin{array}{c | c | c }{B}_{1}&{B}_{2}&{B}_{3}\end{array}}\right]=\left[{\begin{array}{c c c | c c c | c c c }1&4&7&2&8&14&3&12&21\\8&20&5&10&25&40&12&30&6\\2&8&3&2&4&2&7&3&9\end{array}}\right]}

entonces

A[]B=[182121642324633210030401252404815036146427143218492481].{\displaystyle {A}[\circ ]{B}=\left[{\begin{array}{c c c | c c c | c c c }1&8&21&2&16&42&3&24&63\\32&100&30&40&125&240&48&150&36\\14&64&27&14&32&18&49&24&81\end{array}}\right].}

Propiedades principales

A[]B=B[]A;{\displaystyle {A}[\circ ]{B}={B}[\circ ]{A};}[ 27 ]
METROMETRO=METRO[](METRO1T),{\displaystyle {M}\bullet {M}={M}[\circ ]\left({M}\otimes \mathbf {1} ^{\textsf {T}}\right),}

dónde{\displaystyle \bullet }denota el producto de división de caras de matrices,

doMETRO=do[]METRO,{\displaystyle \mathbf {c} \bullet {M}=\mathbf {c} [\circ ]{M},}dóndedo{\displaystyle \mathbf {c} }es un vector.

Aplicaciones

El producto de cara penetrante se utiliza en la teoría de matriz tensorial de arreglos de antenas digitales . [ 27 ] Esta operación también se puede utilizar en modelos de redes neuronales artificiales , específicamente en capas convolucionales. [ 28 ]

Véase también

Referencias

  1. 1 2 Horn, Roger A.; Johnson, Charles R. (2012). Análisis matricial . Cambridge University Press.
  2. ^ Davis, Chandler (1962). "La norma de funcionamiento del producto Schur". Matemática numérica . 4 (1): 343– 44. doi : 10.1007/bf01386329 . S2CID 121027182 . 
  3. 1 2 3 Million, Elizabeth (12 de abril de 2007). "El producto Hadamard" (PDF) . buzzard.ups.edu . Recuperado el 6 de septiembre de 2020 .
  4. "Producto Hadamard - Glosario de aprendizaje automático" . machinelearning.wtf .
  5. "Álgebra lineal: ¿Qué significa un punto en un círculo?" . Mathematics Stack Exchange .
  6. "¿Notación de operaciones elemento a elemento (o punto a punto)?" . Mathematics Stack Exchange .
  7. 1 2 Million, Elizabeth. "El producto Hadamard" (PDF) . Consultado el 2 de enero de 2012 .
  8. 1 2 3 Styan, George PH (1973), "Productos de Hadamard y análisis estadístico multivariante", Álgebra lineal y sus aplicaciones , 6 : 217–240 , doi : 10.1016/0024-3795(73)90023-2 , hdl : 10338.dmlcz/102190
  9. Liu, Shuangzhe; Trenkler, Götz (2008). "Hadamard, Khatri-Rao, Kronecker y otros productos matriciales". Revista Internacional de Ciencias de la Información y los Sistemas . 4 (1): 160– 177.
  10. ^ Liu, Shuangzhe; Leiva, Víctor; Zhuang, Dan; Mamá, Tiefeng; Figueroa-Zúñiga, Jorge I. (2022). «Cálculo diferencial matricial con aplicaciones en el modelo lineal multivariado y su diagnóstico» . Revista de análisis multivariado . 188 104849.doi : 10.1016/ j.jmva.2021.104849 . S2CID 239598156 . 
  11. ^ Liu, Shuangzhe; Trenkler, Götz; Kollo, Tõnu; von Rosen, Dietrich; Baksalary, Oskar María (2023). "El profesor Heinz Neudecker y el cálculo diferencial matricial". Artículos estadísticos . 65 (4): 2605–2639.doi : 10.1007 / s00362-023-01499-w .
  12. Hiai, Fumio; Lin, Minghua (febrero de 2017). "Sobre una desigualdad de autovalores que involucra el producto de Hadamard" . Álgebra lineal y sus aplicaciones . 515 : 313–320 . doi : 10.1016/j.laa.2016.11.017 .
  13. "Proyecto" (PDF) . buzzard.ups.edu. 2007. Consultado el 18 de diciembre de 2019 .
  14. Slyusar, VI (1998). "Productos finales en matrices en aplicaciones de radar" (PDF) . Radioelectronics and Communications Systems . 41 (3): 50– 53.
  15. 1 2 Reams, Robert (1999). "Hadamard inversas, raíces cuadradas y productos de matrices casi semidefinidas" . Álgebra lineal y sus aplicaciones . 288 : 35–43 . doi : 10.1016/S0024-3795(98)10162-3 .
  16. Wetzstein, Gordon; Lanman, Douglas; Hirsch, Matthew; Raskar, Ramesh. "Material complementario: Pantallas tensoriales: Síntesis compresiva de campos de luz mediante pantallas multicapa con retroiluminación direccional" (PDF) . MIT Media Lab . Archivado del original (PDF) el 11 de mayo de 2021. Consultado el 18 de octubre de 2016 .
  17. Cyganek, Boguslaw (2013). Detección y reconocimiento de objetos en imágenes digitales: teoría y práctica . John Wiley & Sons. pág. 109. ISBN  9781118618363.
  18. "Función de multiplicación de MATLAB" .
  19. "Operaciones con arreglos frente a operaciones con matrices" .
  20. "Operadores de "punto" vectorizados" . Consultado el 31 de enero de 2024 .
  21. "Sintaxis de punto para vectorizar funciones" . Consultado el 31 de enero de 2024 .
  22. "Matrices comunes — Documentación de SymPy 1.9" . Archivado del original el 2 de agosto de 2021. Consultado el 4 de mayo de 2021 .
  23. "Multiplicación de matrices" . Una introducción a R. El proyecto R para computación estadística. 16 de mayo de 2013. Consultado el 24 de agosto de 2013 .
  24. Sak, Haşim; Senior, Andrew; Beaufays, Françoise (2014-02-05). "Arquitecturas de redes neuronales recurrentes basadas en memoria a corto y largo plazo para el reconocimiento de voz con vocabulario extenso". arXiv : 1402.1128 [ cs.NE ].
  25. Neudecker, Heinz; Liu, Shuangzhe; Polasek, Wolfgang (1995). "El producto de Hadamard y algunas de sus aplicaciones en estadística". Statistics . 26 (4): 365– 373. doi : 10.1080/02331889508802503 .
  26. Neudecker, Heinz; Liu, Shuangzhe (2001). "Algunas propiedades estadísticas de los productos de Hadamard de matrices aleatorias". Statistical Papers . 42 (4): 475– 487. doi : 10.1007/s003620100074 . S2CID 121385730 . 
  27. 1 2 3 Slyusar, VI (13 de marzo de 1998). "Una familia de productos de caras de matrices y sus propiedades" (PDF) . Cibernética y análisis de sistemas C/C de Kibernetika I Sistemnyi Analiz. 1999. 35 ( 3): 379– 384. doi : 10.1007/BF02733426 . S2CID 119661450 . 
  28. Ha D., Dai AM, Le QV (2017). "HyperNetworks". Conferencia Internacional sobre Representaciones de Aprendizaje (ICLR) 2017. – Toulon, 2017. : Página 6. arXiv : 1609.09106 .{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )