En matemáticas , el producto de Hadamard (también conocido como producto de elementos , producto de 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 de los elementos correspondientes multiplicados. Esta operación puede considerarse como una "multiplicación matricial ingenua" y es diferente del producto matricial . Se atribuye y lleva el nombre del matemático francés Jacques Hadamard o del matemático alemán Issai Schur .
Para dos matrices A y B de la misma dimensión m × n , el producto de Hadamard (a veces [4] [5] [6] ) es una matriz de la misma dimensión que los operandos, con elementos dados por [3]
Para matrices de diferentes dimensiones ( m × n y p × q , donde m ≠ p o n ≠ q ), el producto de Hadamard no está definido.
Por ejemplo, el producto de Hadamard para dos matrices arbitrarias de 2 × 3 es:
Propiedades
El producto de Hadamard es conmutativo (cuando se trabaja con un anillo conmutativo), asociativo y distributivo sobre la suma. Es decir, si A , B y C son matrices del mismo tamaño y k es un escalar:
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 es diferente de la matriz identidad bajo la multiplicación de matrices regular, donde solo los elementos de la diagonal principal son iguales a 1. Además, una matriz tiene una inversa bajo la multiplicación de Hadamard si y solo si ninguno de los elementos es igual a cero. [7]
Para los vectores x e y , y las matrices diagonales correspondientes D x y D y con estos vectores como diagonales principales, se cumple la siguiente identidad: [1] : 479
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 AB T donde el superíndice T denota la transposición de la matriz , es decir ,. Un resultado relacionado para los cuadrados A y B es que las sumas de filas de su producto de Hadamard son los elementos diagonales de AB T : [8]
Similarmente,
Además, un producto matriz-vector de Hadamard se puede expresar como:
¿Dónde está el vector formado por las diagonales de la matriz M ?
El producto de Hadamard de dos vectores y es lo mismo que la multiplicación matricial de la matriz diagonal correspondiente de un vector por el otro vector:
El operador de vector a matriz diagonal se puede expresar utilizando el producto de Hadamard como:
donde es un vector constante con elementos y es la matriz identidad .
El producto de Hadamard de dos matrices semidefinidas positivas es semidefinida positiva. [3] [8] Esto se conoce como 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 al producto de sus respectivos determinantes: [8]
Operaciones análogas
Otras operaciones de Hadamard también se ven en la literatura matemática, [15] a saber, laRaíz de Hadamard yPoder de Hadamard (que en efecto son lo mismo debido a los índices fraccionarios), definido para una matriz tal que:
En MATLAB , el producto de Hadamard se expresa como "multiplicación de puntos": a .* bo la llamada de 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 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 transmitida y también se denota con a .* b, y otros operadores se definen de manera análoga por elementos, por ejemplo, el uso de poderes de Hadamard a .^ b. [20] Pero a diferencia de MATLAB, en Julia esta sintaxis de "punto" se generaliza con un operador de transmisión. genérico que puede aplicar cualquier función por elemento. Esto incluye tanto operadores binarios (como la multiplicación y exponenciación antes mencionadas, así como cualquier otro operador binario como el producto de Kronecker), y también operadores unarios como !y √. Por tanto, cualquier función en notación de prefijof se puede aplicar como f.(x). [21]
Python no tiene soporte integrado para matrices, lo que genera notaciones inconsistentes o conflictivas. La biblioteca numérica NumPy interpreta a*bo a.multiply(b)como el producto de Hadamard y utiliza a@bo a.matmul(b)para el producto matricial. Con la biblioteca simbólica SymPy , la multiplicación de objetos de matriz como a*bo a@bproducirá el producto de matriz. El producto Hadamard se puede obtener con la llamada al método a.multiply_elementwise(b). [22] Algunos paquetes de Python incluyen soporte para los poderes 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 usa el operador para crear expresiones compactas ( ; es un producto matricial).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 matricial se escribe usando matmul, %*%, y +.×, respectivamente. El paquete R Matrixcalc introduce la función Hadamard Producto de matrices numéricas o vectores. [23]+/ .*.hadamard.prod()
Aplicaciones
El producto Hadamard aparece en algoritmos de compresión con pérdida como JPEG . La etapa de decodificación implica un producto entrada por entrada, es decir, el producto Hadamard. [ cita necesaria ]
En el procesamiento de imágenes , el operador Hadamard se puede utilizar para mejorar, suprimir o enmascarar regiones de la imagen. Una matriz representa la imagen original, la otra actúa como matriz de peso o de enmascaramiento.
Se utiliza en la literatura sobre 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 matrices y vectores aleatorios. [25] [26]
El producto facial penetrante
Según la definición de V. Slyusar, el producto de la cara penetrante de la matriz p × g y la matriz n -dimensional ( n > 1) con bloques p × g ( ) es una matriz de tamaño de la forma: [27]
^ "álgebra lineal: ¿qué significa un punto en un círculo?". Intercambio de pilas de matemáticas .
^ "¿Notación de operaciones por elementos (o puntuales)?". Intercambio de pilas de matemáticas .
^ ab Millones, Elizabeth. "El producto Hadamard" (PDF) . Consultado el 2 de enero de 2012 .
^ abc Styan, George PH (1973), "Productos Hadamard y análisis estadístico multivariado", Álgebra lineal y sus aplicaciones , 6 : 217–240, doi :10.1016/0024-3795(73)90023-2, hdl : 10338.dmlcz /102190
^ Liu, Shuangzhe; Trenkler, Götz (2008). "Hadamard, Khatri-Rao, Kronecker y otros productos matriciales". Revista Internacional de Ciencias de la Información y Sistemas . 4 (1): 160-177.
^ 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.
^ 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 . doi :10.1007/s00362-023-01499-w.
^ Hola, Fumio; Lin, Minghua (febrero de 2017). "Sobre una desigualdad de valores propios que involucra el producto de Hadamard". Álgebra lineal y sus aplicaciones . 515 : 313–320. doi : 10.1016/j.laa.2016.11.017 .
^ "Proyecto" (PDF) . buzzard.ups.edu. 2007 . Consultado el 18 de diciembre de 2019 .
^ Slyusar, VI (1998). «Productos finales en matrices en aplicaciones de radar» (PDF) . Radioelectrónica y Sistemas de Comunicaciones . 41 (3): 50–53.
^ ab Resmas, Robert (1999). "Inversas de Hadamard, 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 .
^ Wetzstein, Gordon; Lanman, Douglas; Hirsch, Mateo; Raskar, Ramesh. "Material complementario: Pantallas tensoriales: Síntesis de campo de luz compresivo utilizando pantallas multicapa con retroiluminación direccional" (PDF) . Laboratorio de medios del MIT .
^ Cyganek, Boguslaw (2013). Detección y reconocimiento de objetos en imágenes digitales: teoría y práctica. John Wiley e hijos. pag. 109.ISBN9781118618363.
^ "Función de tiempos de MATLAB".
^ "Operaciones de matriz versus operaciones de matriz".
^ Operadores de "puntos" vectorizados . Consultado el 31 de enero de 2024 .
^ "Sintaxis de puntos para funciones de vectorización" . Consultado el 31 de enero de 2024 .
^ "Matrices comunes: documentación de SymPy 1.9".
^ "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 .
^ Sak, Haşim; Mayor, Andrés; Beaufays, Françoise (5 de febrero de 2014). "Arquitecturas de redes neuronales recurrentes basadas en memoria a corto plazo para el reconocimiento de voz de gran vocabulario". arXiv : 1402.1128 [cs.NE].
^ Neudecker, Heinz; Liu, Shuangzhe; Polasek, Wolfgang (1995). "El producto Hadamard y algunas de sus aplicaciones en estadística". Estadísticas . 26 (4): 365–373. doi :10.1080/02331889508802503.
^ Neudecker, Heinz; Liu, Shuangzhe (2001). "Algunas propiedades estadísticas de los productos Hadamard de matrices aleatorias". Artículos estadísticos . 42 (4): 475–487. doi :10.1007/s003620100074. S2CID 121385730.
^ abc Slyusar, VI (13 de marzo de 1998). «Una Familia de Productos Faciales 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.
^ Ha D., Dai AM, Le QV (2017). "Hiperredes". La Conferencia Internacional sobre Representaciones del Aprendizaje (ICLR) 2017. – Toulon, 2017 .: Página 6. arXiv : 1609.09106 .{{cite journal}}: CS1 maint: multiple names: authors list (link)