Произведение Адамара работает с матрицами одинаковой формы и создает третью матрицу тех же размеров.
В математике произведение Адамара (также известное как поэлементное произведение , поэлементное произведение [1] : гл. 5 или произведение Шура [2] ) — это бинарная операция , которая принимает две матрицы одинаковых размерностей и возвращает матрицу умноженные соответствующие элементы. Эту операцию можно рассматривать как «наивное умножение матрицы», и она отличается от произведения матрицы . Оно приписано и названо в честь французского математика Жака Адамара или немецкого математика Иссаи Шура .
Для двух матриц A и B одинаковой размерности m × n произведение Адамара (иногда [4] [5] [6] ) представляет собой матрицу той же размерности, что и операнды, с элементами, заданными формулой [3]
Для матриц разных размерностей ( m × n и p × q , где m ≠ p или q ) произведение Адамара не определено.
Например, произведение Адамара для двух произвольных матриц размера 2 × 3:
Характеристики
Произведение Адамара коммутативно (при работе с коммутативным кольцом), ассоциативно и дистрибутивно по сложению. То есть, если A , B и C — матрицы одного размера, а k — скаляр:
Единичная матрица при умножении Адамара двух матриц размера m × n представляет собой матрицу размера m × n , где все элементы равны 1 . Это отличается от единичной матрицы при обычном умножении матрицы, где только элементы главной диагонали равны 1. Более того, матрица имеет обратную при умножении Адамара тогда и только тогда, когда ни один из элементов не равен нулю. [7]
Для векторов x и y и соответствующих диагональных матриц D x и D y с этими векторами в качестве главных диагоналей справедливо следующее тождество: [ 1] : 479, где x * обозначает сопряженное транспонирование x . В частности, используя векторы единиц, это показывает, что сумма всех элементов в произведении Адамара является следом AB T , где верхний индекс T обозначает транспонирование матрицы , то есть . Связанный результат для квадратов A и B заключается в том, что суммы строк их произведения Адамара являются диагональными элементами AB T : [8]
Сходным образом,
Кроме того, произведение матрицы-вектора Адамара можно выразить как:
где – вектор, образованный из диагоналей матрицы M .
Произведение Адамара является основной подматрицей произведения Кронекера . [9] [10] [11]
Произведение Адамара удовлетворяет ранговому неравенству
Произведение Адамара двух положительно-полуопределенных матриц является положительно-полуопределенным. [3] [8] Это известно как теорема о произведении Шура, [7] в честь русского математика Иссая Шура . Для двух положительно-полуопределенных матриц A и B также известно, что определитель их произведения Адамара больше или равен произведению их соответствующих определителей: [8]
Аналогичные операции
В математической литературе встречаются и другие операции Адамара, а именно :корень Адамара иСтепень Адамара (которая по сути одно и то же из-за дробных индексов), определенная для такой матрицы, что:
В MATLAB произведение Адамара выражается как «точечное умножение»: a .* bили вызов функции: times(a, b). [18] Он также имеет аналогичные точечные операторы, которые включают, например, операторы a .^ bи a ./ b[19] . Благодаря этому механизму можно зарезервировать *и ^для матричного умножения и матричной экспоненты соответственно.
Язык программирования Julia имеет синтаксис, аналогичный MATLAB, где умножение Адамара называется широковещательным умножением и также обозначается a .* b, а другие операторы определяются аналогично поэлементно, например, используются степени Адамара a .^ b[20] . Но в отличие от MATLAB, в Julia этот «точечный» синтаксис обобщен с помощью универсального оператора широковещания. , который может применять любую функцию поэлементно. Сюда входят как бинарные операторы (такие как вышеупомянутые умножение и возведение в степень, а также любой другой бинарный оператор, такой как произведение Кронекера), а также унарные операторы, такие как !и √. Таким образом, любая функция в префиксной записиf может быть применена как f.(x). [21]
Python не имеет встроенной поддержки массивов, что приводит к противоречивым или противоречивым обозначениям. Числовая библиотека NumPy интерпретирует a*bor a.multiply(b)как произведение Адамара и использует a@bor a.matmul(b)для матричного произведения. С помощью символьной библиотеки SymPy умножение объектов массива как a*bили a@bприведет к получению матричного продукта. Произведение Адамара можно получить вызовом метода a.multiply_elementwise(b). [22] Некоторые пакеты Python включают поддержку степеней Адамара с использованием таких методов np.power(a, b), как или метод Pandasa.pow(b) .
В C++ библиотека Eigen предоставляет cwiseProductфункцию-член для класса Matrix ( ), а библиотека Armadillo использует оператор для создания компактных выражений ( ; является матричным произведением).a.cwiseProduct(b)%a % ba * b
В GAUSS и HP Prime эта операция называется умножением массива.
В Fortran , R , APL , J и Wolfram Language ( Mathematica ) оператор умножения *или ×применяет произведение Адамара, тогда как матричное произведение записывается с использованием matmul, %*%, +.×и +/ .*, .соответственно. Пакет R matrixcalc представляет функцию hadamard.prod()произведения Адамара числовых матриц или векторов. [23]
Приложения
Произведение Адамара появляется в алгоритмах сжатия с потерями , таких как JPEG . Шаг декодирования включает в себя произведение «вход-за-вход», другими словами, произведение Адамара. [ нужна цитата ]
При обработке изображений оператор Адамара можно использовать для улучшения, подавления или маскировки областей изображения. Одна матрица представляет исходное изображение, другая действует как весовая или маскирующая матрица.
Он используется в литературе по машинному обучению , например, для описания архитектуры рекуррентных нейронных сетей как GRU или LSTM . [24]
Он также используется для изучения статистических свойств случайных векторов и матриц.[25] [26]
Проникающее средство для лица
Проникающее торцевое произведение матриц
По определению В. Слюсаря проникающее гранное произведение матрицы p × g и n -мерной матрицы ( n > 1) с блоками p × g ( ) представляет собой матрицу размера вида: [27]
^ «Линейная алгебра - Что означает точка в круге?». Математический обмен стеками .
^ «Поэлементное (или поточечное) обозначение операций?». Математический обмен стеками .
^ ab Million, Элизабет. «Произведение Адамара» (PDF) . Проверено 2 января 2012 г.
^ abc Стьян, Джордж П.Х. (1973), «Произведение Адамара и многомерный статистический анализ», Линейная алгебра и ее приложения , 6 : 217–240, doi : 10.1016/0024-3795(73)90023-2, hdl : 10338.dmlcz /102190
^ Лю, Шуанчжэ; Тренклер, Гетц (2008). «Адамар, Хатри-Рао, Кронекер и другие матричные продукты». Международный журнал информационных и системных наук . 4 (1): 160–177.
^ Лю, Шуанчжэ; Лейва, Виктор; Чжуан, Дэн; Ма, Тифенг; Фигероа-Суньига, Хорхе И. (2022). «Матричное дифференциальное исчисление с приложениями в многомерной линейной модели и ее диагностика». Журнал многомерного анализа . 188 : 104849. doi : 10.1016/j.jmva.2021.104849 . S2CID 239598156.
^ Лю, Шуанчжэ; Тренклер, Гетц; Колло, Тыну; фон Розен, Дитрих; Баксалари, Оскар Мария (2023). «Профессор Хайнц Нойдекер и матричное дифференциальное исчисление». Статистические документы . doi : 10.1007/s00362-023-01499-w.
^ Хиай, Фумио; Линь, Минхуа (февраль 2017 г.). «О неравенстве собственных значений, включающем произведение Адамара». Линейная алгебра и ее приложения . 515 : 313–320. дои : 10.1016/j.laa.2016.11.017 .
^ «Проект» (PDF) . buzzard.ups.edu. 2007 . Проверено 18 декабря 2019 г.
^ Слюсарь, В.И. (1998). «Конечные продукты в матрицах радиолокационных приложений» (PDF) . Радиоэлектроника и системы связи . 41 (3): 50–53.
^ Аб Римс, Роберт (1999). «Обратные Адамара, квадратные корни и произведения почти полуопределенных матриц». Линейная алгебра и ее приложения . 288 : 35–43. дои : 10.1016/S0024-3795(98)10162-3 .
^ Вецштейн, Гордон; Ланман, Дуглас; Хирш, Мэтью; Раскар, Рамеш. «Дополнительный материал: Тензорные дисплеи: синтез сжимающего светового поля с использованием многослойных дисплеев с направленной подсветкой» (PDF) . Медиалаборатория Массачусетского технологического института .
^ Цыганек, Богуслав (2013). Обнаружение и распознавание объектов на цифровых изображениях: теория и практика. Джон Уайли и сыновья. п. 109. ИСБН9781118618363.
^ «Функция времени MATLAB» .
^ «Массив против матричных операций».
^ «Векторизованные «точечные» операторы» . Проверено 31 января 2024 г.
^ «Точечный синтаксис для векторизации функций» . Проверено 31 января 2024 г.
^ «Общие матрицы — документация SymPy 1.9» .
^ «Умножение матрицы». Введение в Р. Проект R для статистических вычислений. 16 мая 2013 года . Проверено 24 августа 2013 г.
^ Сак, Хашим; Старший, Эндрю; Бофе, Франсуаза (5 февраля 2014 г.). «Архитектуры рекуррентных нейронных сетей на основе долгосрочной краткосрочной памяти для распознавания речи с большим словарным запасом». arXiv : 1402.1128 [cs.NE].
^ Нойдекер, Хайнц; Лю, Шуанчжэ; Поласек, Вольфганг (1995). «Произведение Адамара и некоторые его приложения в статистике». Статистика . 26 (4): 365–373. дои : 10.1080/02331889508802503.
^ Нойдекер, Хайнц; Лю, Шуанчжэ (2001). «Некоторые статистические свойства произведений Адамара случайных матриц». Статистические документы . 42 (4): 475–487. дои : 10.1007/s003620100074. S2CID 121385730.
↑ abc Слюсар, VI (13 марта 1998 г.). «Семейство матриц лицевых продуктов и его свойства» (PDF) . Кибернетика и системный анализ ПК Кибернетика и Системный анализ. 1999 . 35 (3): 379–384. дои : 10.1007/BF02733426. S2CID 119661450.