stringtranslate.com

Producto Hadamard (matrices)

El producto 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 por elemento , producto entrada por 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 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 alemán Issai Schur y recibe su nombre de ellos .

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 mp o nq ), el producto de Hadamard no está definido.

Por ejemplo, el producto de Hadamard para dos matrices arbitrarias de 2 × 3 es:

Propiedades

La propiedad del producto mixto

¿Dónde  está el producto de Kronecker , asumiendo que tiene las mismas dimensiones de y con ?

donde  denota el producto de división de caras . [14]

donde es el producto Khatri-Rao  por columnas .

Teorema del producto de Schur

El producto de Hadamard de dos matrices semidefinidas positivas es semidefinida positiva. [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 ven 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

ElLa inversa de Hadamard dice:[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 Hadamard, bajo varios nombres.

En MATLAB , el producto Hadamard se expresa como "multiplicación de puntos": a .* b, o la llamada de función: times(a, b). [18] También tiene operadores de punto 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 matriciales, respectivamente.

El lenguaje de programación Julia tiene una sintaxis similar a la de MATLAB, donde la multiplicación de Hadamard se denomina multiplicación de difusión y también se denota con a .* b, y otros operadores se definen de forma análoga elemento por elemento, por ejemplo, las potencias de Hadamard utilizan 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 aplicarse a cualquier función elemento por elemento. Esto incluye tanto operadores binarios (como la multiplicación y la exponenciación antes mencionadas, así como cualquier otro operador binario como el producto de Kronecker), como también operadores unarios como !y . Por lo tanto, cualquier función en notación de prefijo f se puede aplicar como f.(x). [21]

Python no tiene soporte de matriz incorporado, lo que lleva a notaciones inconsistentes o 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 matriz. Con la biblioteca simbólica SymPy , la multiplicación de objetos de matriz como a*bo a@bproducirá el producto de matriz. 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 crear expresiones compactas ( ; es un producto de matriz).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 utilizando matmul, %*%, +.×, +/ .*y ., respectivamente. El paquete R matrixcalc introduce la función hadamard.prod()para el producto de Hadamard de matrices numéricas o vectores. [23]

Aplicaciones

El producto Hadamard aparece en algoritmos de compresión con pérdida como JPEG . El paso de decodificación implica un producto entrada por entrada, en otras palabras, el producto Hadamard. [ cita requerida ]

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 ponderación 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 vectores y matrices aleatorios. [25] [26]

El producto penetrante para el rostro

El producto de cara penetrante de matrices

Según la definición de V. Slyusar, el producto de caras penetrantes 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]

Ejemplo

Si

entonces

Propiedades principales

[27]

donde denota el producto de división de caras de matrices,

donde es un vector.

Aplicaciones

El producto de cara penetrante se utiliza en la teoría de matriz tensorial de conjuntos 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. ^ ab 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. ^ abc Million, Elizabeth (12 de abril de 2007). "The Hadamard Product" (PDF) . buzzard.ups.edu . Consultado 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?". Intercambio de pila de matemáticas .
  6. ^ "¿Notación de operaciones elemento por elemento (o punto por punto)?". Mathematics Stack Exchange .
  7. ^ ab Million, Elizabeth. "El producto Hadamard" (PDF) . Consultado el 2 de enero de 2012 .
  8. ^ abc 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 de 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 . doi :10.1007/s00362-023-01499-w.
  12. ^ Hiai, 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 .
  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) . Radioelectrónica y sistemas de comunicaciones . 41 (3): 50–53.
  15. ^ ab Reams, 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 .
  16. ^ Wetzstein, Gordon; Lanman, Douglas; Hirsch, Matthew; Raskar, Ramesh. "Material complementario: Pantallas tensoriales: síntesis de campos de luz compresivos utilizando pantallas multicapa con retroiluminación direccional" (PDF) . MIT Media Lab .
  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 matriciales frente a matrices".
  20. ^ "Operadores de "punto" vectorizados" . Consultado el 31 de enero de 2024 .
  21. ^ "Sintaxis de puntos para vectorizar funciones" . Consultado el 31 de enero de 2024 .
  22. ^ "Matrices comunes — Documentación de SymPy 1.9".
  23. ^ "Multiplicación de matrices". 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 (5 de febrero de 2014). "Arquitecturas de redes neuronales recurrentes basadas en memoria de corto y largo plazo para el reconocimiento de voz de vocabulario amplio". 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". Estadísticas . 26 (4): 365–373. doi :10.1080/02331889508802503.
  26. ^ Neudecker, Heinz; Liu, Shuangzhe (2001). "Algunas propiedades estadísticas de los productos Hadamard de matrices aleatorias". Documentos estadísticos . 42 (4): 475–487. doi :10.1007/s003620100074. S2CID  121385730.
  27. ^ abc Slyusar, VI (13 de marzo de 1998). "Una familia de productos faciales de matrices y sus propiedades" (PDF) . Análisis de sistemas y cibernética 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). "Hiperredes". 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)