Producte de Hadamard de matrius

De testwiki
La revisió el 11:19, 8 oct 2024 per imported>InternetArchiveBot (Recuperant 1 fonts i marcant-ne 0 com a no actives.) #IABot (v2.0.9.5)
(dif.) ← Versió més antiga | Versió actual (dif.) | Versió més nova → (dif.)
Salta a la navegació Salta a la cerca
El producte de Hadamard opera únicament sobre matrius de la mateixa mida, produint una tercera matriu que també té les mateixes dimensions.

En matemàtiques, el producte de Hadamard (també conegut com a producte element a element o producte de Schur)[1] és una operació binària que pren dues matrius de les mateixes dimensions i produeix una altra matriu de la mateixa dimensió, on cada element Plantilla:Math és el producte dels elements Plantilla:Math de les dues matrius originals. No s'ha de confondre amb el producte de matrius habitual. El producte de Hadamard és atribuït al matemàtic francès Jacques Hadamard i al matemàtic alemany Issai Schur, dels quals rep el nom.

El producte de Hadamard és associatiu i distributiu. A diferència del producte matricial, també és commutatiu.[2]

Definició

Donades dues matrius Plantilla:Math i Plantilla:Math, ambdues de mida Plantilla:Math, es defineix el producte de Hadamard AB (o AB)[3][4][5][6] com la matriu Plantilla:Math que té per elements el producte dels elements corresponents de Plantilla:Math i Plantilla:Mathː

(AB)ij=(AB)ij=(A)ij(B)ij.

Si A i B són matrius de dimensions diferents (és a dir, A és una matriu m × n i B és una matriu p x q, on m ≠ p o n ≠ q), aleshores el producte de Hadamard

AB no està definit.

Exemple

Per exemple, el producte de Hadamard de dues matrius A i B de dimensions 3 × 3 és

[a11a12a13a21a22a23a31a32a33][b11b12b13b21b22b23b31b32b33]=[a11b11a12b12a13b13a21b21a22b22a23b23a31b31a32b32a33b33].

Propietats

La propietat del producte mixt

(AB)(CD)=(AC)(BD), on denota el producte de Kronecker.
(AB)(CD)=(AC)(BD), on denota el producte de Khatri-Rao per files.[12]
(AB)(CD)=(AC)(BD), on denota el producte de Khatri–Rao per columnes.

Teorema del producte de Schur

El producte de Hadamard de dues matrius semidefinides positives dona com a resultat una altra matriu semidefinida positiva.[2][9] Aquest resultat es coneix com el teorema del producte de Schur, en honor del matemàtic rus Issai Schur.[7] Per dues matrius semidefinides positives Plantilla:Mvar i Plantilla:Mvar, també es sap que el determinant del seu producte de Hadamard és més gran o igual que el producte dels seus determinants respectius:

det(AB)det(A)det(B).

En llenguatges de programació

El producte de Hadamard ve implementat a alguns llenguatges de programació sota diversos noms. A MATLAB, Octave, GAUSS i HP Prime, rep el nom de producte d'arrays, i a Julia s'anomena producte d'expansió, amb el símbol .*.[13] A Fortran, R, APL, J i Wolfram (Mathematica), el producte de Hadamard es representa amb l'operador *, mentre que el producte matricial habitual es representa amb la funció matmul, i els operadors %*%, +.×, +/ .* i ., respectivament.[14] A Python, dins de la llibreria NumPy, al multiplicar dos arrays amb a*b obtenim el producte de Hadamard, mentre que a@b representa el producte matricial habitual. Amb la llibreria simbòlica SymPy, el producte de dos arrays tant mitjançant a*b com amb a@b dona el producte matricial, i el producte de Hadamard s'obté amb a.multiply_elementwise(b).[15] A C++, la llibreria Eigen conté la funció cwiseProduct per a la classe Plantilla:Mono (per exemple, a.cwiseProduct(b)), mentre que la llibreria Armadillo utilitza l'operador % per obtenir l'expressió compacte a%b (a*b és el producte habitual de matrius). El paquet informàtic matrixcalc de R introdueix la funció hadamard.prod() per a realitzar el producte de Hadamard de matrius i vectors numèricament.

Aplicacions

El producte de Hadamard s'utilitza en algoritmes de compressió amb pèrdues com el JPEG. El pas de descodificació implica un producte element a element, és a dir, el producte de Hadamard Plantilla:Citació necessària.

També s'utilitza en el camp de l'aprenentatge automàtic, per exemple per descriure l'arquitectura de xarxes neuronals recurrents com GRUs o LSTMsPlantilla:Citació necessària.

Operacions anàlogues

A la literatura matemàtica[16] també apareixen altres operacions anàlogues al producte de Hadamard com l'arrel de Hadamard o la potència de Hadamard (que de fet són el mateix, ja que una arrel es pot entendre com una potència amb exponent fraccionari). Igual que el producte de Hadamard, aquestes operacions actuen sobre una matriu element a elementː

Potència de Hadamardː

B=A2Bij=Aij2

Arrel de Hadamardː

B=A12Bij=Aij12

De la mateixa manera, podem definir la inversa de Hadamard:[16]

B=A1Bij=Aij1

I també la divisió de Hadamard:[17][18]

C=ABCij=AijBij

Producte de Hadamard per blocs

El producte de Hadamard per blocs

Segons la definició de Vadym Slyusar, el producte de Hadamard per blocs (en anglès, penetrating face product) és una generalització del producte de Hadamard entre una matriu

A

de mida p×g i una matriu

B

que es pot dividir en n blocs de mida p×g (

B=[B1|B2||Bn]

A[]B=[AB1AB2ABn].

Exemple

Si

A=[123456789],B=[B1B2B3]=[147281431221820510254012306283242739]

aleshores

A[]B=[182121642324633210030401252404815036146427143218492481].

Propietats principals

A[]B=B[]A,[12]
MM=M[](M𝟏T),

on denota el producte de Khatri-Rao per files,

𝐜M=𝐜[]M, on 𝐜 és un vector.

Aplicacions

El producte de Hadamard per blocs s'utilitza en la teoria tensor-matriu de les agrupacions d'antenes digitals.[12] També s'utilitza en models de xarxes neuronals artificials, especialment en capes convolucionals.[19]

Referències

Plantilla:Referències

Vegeu també