Hadamardův součin [1] ( Schurův součin [2] , komponentový součin ) je binární operace na dvou maticích stejné dimenze, jejímž výsledkem je matice stejné dimenze, ve které je každý prvek s indexy součinem prvky s indexy původních matic. Operace je pojmenována po francouzském matematikovi Jacquesu Hadamardovi a německém matematikovi Isai Schurovi .
Pro dvě matice stejné dimenze je Hadamardův součin definován jako složkový součin dvou matic:
Pro dvě matice, které mají různé rozměry, není Hadamardův součin definován.
Příklad pro matice 3×3:
.Je to asociativní a distributivní operace a na rozdíl od obvyklého maticového produktu je komutativní :
, , .Vlastnosti směsných produktů s jinými variantami násobení matrice:
, kde je produkt Kronecker ; , kde je konečný produkt [3] ; , kde je produkt sloupce Khatri-Rao .Používá se ve ztrátových kompresních algoritmech , jako je JPEG .
V softwarových balíčcích MATLAB a GNU Octave se operace používá jako standardní operace násobení pole a je označena symbolem ".*" [4] .
Produktový provoz na vektorových datových typech v programovacích technologiích GPGPU je rovněž implementován na principu produktu Hadamard. Další primitivní matematické operace s vektorovými datovými typy jsou implementovány jako operace s komponentami na jejich komponentách.
Tento typ maticové operace je založen na Hadamardově produktu a umožňuje násobit prvek matice po prvku libovolným počtem bloků stejné dimenze , čímž vznikne matice bloků [5] :
.Například pro
dostaneme:
.Hlavní vlastnosti :
; ,kde je symbol konečného produktu matic.
, kde je vektor.Tento typ násobení matrice navrhl v roce 1998 Slyusar V.I. popsat odezvy pole digitální antény s neidentickými přijímacími kanály [5] . Kromě toho vám tato práce umožňuje formalizovat proces fungování konvoluční neuronové sítě. Pokud například uvažujeme specifikovanou matici jako pole obrazových pixelů na vstupu algoritmu neuronové sítě, pak bloky matice budou odpovídat různým sadám koeficientů používaných k vytvoření konvoluční vrstvy v několika paralelních kanálech zpracování obrazu. pomocí neuronové sítě [6] .
Operace penetrujícího konečného produktu vektoru a matice je implementována v knihovně strojového učení TensorFlow pomocí vestavěné funkce „tf.multiply“ [6] [7] .