
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 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.
Un ejemplo del producto de Hadamard para dos matrices arbitrarias de 2 × 3:
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:
- 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 ] : 479donde 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,. 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 ]Similarmente,Además, un producto matriz-vector de Hadamard se puede expresar comodóndees el vector formado a partir de las diagonales de la matriz M. Tomando, esto implica que
- El producto de Hadamard es una submatriz principal del producto de Kronecker . [ 9 ] [ 10 ] [ 11 ]
- El producto de Hadamard satisface la desigualdad de rango.
- Si A y B son matrices definidas positivas , entonces se cumple la siguiente desigualdad que involucra el producto de Hadamard: [ 12 ]donde λ i ( A ) es el i -ésimo autovalor más grande de A .
- Si D y E son matrices diagonales , entonces [ 13 ]
- El producto de Hadamard de dos vectoresyes lo mismo que la multiplicación matricial de la matriz diagonal correspondiente de un vector por el otro vector:
- ElEl operador que transforma un vector en una matriz diagonal puede expresarse utilizando el producto de Hadamard comodóndees un vector constante con elementos, yes la matriz identidad .
La propiedad de producto mixto
El producto de Hadamard obedece ciertas relaciones con otros operadores de producto matricial.
- Si es el producto de Kronecker , suponiendotiene las mismas dimensiones queycomo, entonces
- Si es el producto de división facial , entonces [ 14 ]
- Sies el producto de Khatri-Rao por columnas , entonces
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 ]
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
y para
ElLecturas inversas de Hadamard : [ 15 ]
ALa división de Hadamard se define como: [ 16 ] [ 17 ]
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

Según la definición de V. Slyusar, el producto de la cara penetrante de la matriz p × gy matriz n -dimensional( n > 1) con p × g bloques () es una matriz de tamañode la forma: [ 27 ]
Ejemplo
Si
entonces
Propiedades principales
dóndedenota el producto de división de caras de matrices,
- dóndees 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 2 Horn, Roger A.; Johnson, Charles R. (2012). Análisis matricial . Cambridge University Press.
- ^ Davis, Chandler (1962). "La norma de funcionamiento del producto Schur". Matemática numérica . 4 (1): 343– 44. doi : 10.1007/bf01386329 . S2CID 121027182 .
- 1 2 3 Million, Elizabeth (12 de abril de 2007). "El producto Hadamard" (PDF) . buzzard.ups.edu . Recuperado el 6 de septiembre de 2020 .
- ↑ "Producto Hadamard - Glosario de aprendizaje automático" . machinelearning.wtf .
- ↑ "Álgebra lineal: ¿Qué significa un punto en un círculo?" . Mathematics Stack Exchange .
- ↑ "¿Notación de operaciones elemento a elemento (o punto a punto)?" . Mathematics Stack Exchange .
- 1 2 Million, Elizabeth. "El producto Hadamard" (PDF) . Consultado el 2 de enero de 2012 .
- 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
- ↑ 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.
- ^ 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 . 65 (4): 2605–2639.doi : 10.1007 / s00362-023-01499-w .
- ↑ 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 .
- ↑ "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) . Radioelectronics and Communications Systems . 41 (3): 50– 53.
- 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 .
- ↑ 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 .
- ↑ 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.
- ↑ "Función de multiplicación de MATLAB" .
- ↑ "Operaciones con arreglos frente a operaciones con matrices" .
- ↑ "Operadores de "punto" vectorizados" . Consultado el 31 de enero de 2024 .
- ↑ "Sintaxis de punto para vectorizar funciones" . Consultado el 31 de enero de 2024 .
- ↑ "Matrices comunes — Documentación de SymPy 1.9" . Archivado del original el 2 de agosto de 2021. Consultado el 4 de mayo de 2021 .
- ↑ "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; 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 ].
- ↑ 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 .
- ↑ 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 .
- 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 .
- ↑ 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 )
- teoría matricial
- Issai Schur