Hadamard produkt

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 14 augusti 2020; kontroller kräver 13 redigeringar .

Hadamard-produkten [1] ( Schur-produkt [2] , komponentvis produkt ) är en binär operation på två matriser av samma dimension, vars resultat är en matris av samma dimension, där varje element med index är produkten av element med index för de ursprungliga matriserna. Operationen är uppkallad efter den franske matematikern Jacques Hadamard och den tyske matematikern Isai Schur .

Definition och egenskaper

För två matriser med samma dimension definieras Hadamard-produkten som den komponentmässiga produkten av två matriser:

För två matriser som har olika dimensioner är Hadamard-produkten inte definierad.

Exempel för 3×3-matriser:

.

Är en associativ och distribuerande operation och är, till skillnad från den vanliga matrisprodukten, kommutativ :

, , .

Egenskaper för blandade produkter med andra varianter av matrismultiplikation:

, var  är Kronecker - produkten ; , var  är slutprodukten [3] ; , var är Khatri-Rao  kolumnprodukten .

Applikationer

Används i komprimeringsalgoritmer med förlust , såsom JPEG .

I mjukvarupaketen MATLAB och GNU Octave används operationen som en standardmatrismultiplikationsoperation och betecknas med symbolen ".*" [4] .

Produktoperationen på vektordatatyper i GPGPU -programmeringsteknologier implementeras också enligt Hadamard-produktprincipen. Andra primitiva matematiska operationer på vektordatatyper implementeras som komponentvisa operationer på deras komponenter.

Blockversion

Penetrerande slutprodukt

Denna typ av matrisoperation är baserad på Hadamard-produkten och låter dig multiplicera matriselement för element med ett godtyckligt antal block av samma dimension , vilket bildar en blockmatris [5] :

.

Till exempel för

vi får:

.

Huvudegenskaper :

; ,

var är symbolen för slutprodukten av matriser.

, var är en vektor.

Denna typ av matrismultiplikation föreslogs 1998 av Slyusar V.I. att beskriva svaren från en digital antennuppsättning med icke-identiska mottagningskanaler [5] . Dessutom låter detta arbete dig formalisera funktionen av ett konvolutionellt neuralt nätverk. Om vi ​​till exempel betraktar den angivna matrisen som en array av bildpixlar vid ingången till den neurala nätverksalgoritmen, kommer blocken i matrisen att motsvara olika uppsättningar av koefficienter som används för att bilda ett faltningslager i flera parallella kanaler för bildbehandling av ett neuralt nätverk [6] .

Driften av den penetrerande slutprodukten av en vektor och en matris är implementerad i TensorFlows maskininlärningsbibliotek med den inbyggda funktionen "tf.multiply" [6] [7] .

Anteckningar

  1. Miljon, Elizabeth Hadamard-produkten . Hämtad 2 januari 2012. Arkiverad från originalet 12 juni 2013.
  2. Davis, Chandler. "Normen för Schur-produktdriften." Numerische Mathematik 4.1 (1962): 343-344.
  3. Slyusar, VI Slutprodukter i matriser i  radartillämpningar // Radioelectronics and Communications Systems.– 1998, Vol. 41; Nummer 3. - 1996. - 27 december. - S. 50-53 .
  4. Aritmetiska operatorer + - * / \ ^ ' - (nedlänk) . MATLAB dokumentation . Math fungerar. Hämtad 2 januari 2012. Arkiverad från originalet 24 april 2012. 
  5. 1 2 Slyusar, VI En familj av ansiktsprodukter av matriser och dess egenskaper  //  Cybernetik och systemanalys C/C av Kibernetika I Sistemnyi Analiz. 1999. : tidskrift. - 1998. - 13 mars ( vol. 35 , nr 3 ). - s. 379-384 . - doi : 10.1007/BF02733426 .
  6. 1 2 Slyusar V.I. Tensor-matrismodell av neurala nätverk. // Helt ukrainsk vetenskaplig och praktisk internetkonferens "Automation and computer-integration technology in the field of education: camp, achievement, development prospects", 15 - 21 februari 2021, Cherkasy, Cherkasy National Bogdan University
  7. Tensorflöde, hur man multiplicerar en 2D-tensor (matris) med motsvarande element i en 1D-vektor. – 2017. . Hämtad 17 januari 2021. Arkiverad från originalet 15 oktober 2021.

Litteratur