Добуток Адамара

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Добуток Адамара оперує з двома матрицями однакової розмірності і створює нову матрицю ідентичної розмірності.

У математиці добуток Адамара[1] (також відомий як добуток Шура[2] або покомпонентний добуток) — це бінарна операція над двома матрицями однакової розмірності, у результаті котрої створюється нова матриця де кожен елемент ij це добуток елементів ij початкових матриць. Операція названа на честь, або французького математика Жака Адамара, або німецького математика Ісая Шура.

Добуток Адамара це асоціативна та дистрибутивна операція, і на відміну від добутку матриць також комутативна операція.

Визначення[ред. | ред. код]

Для двох матриць котрі мають однакову розмірність добуток адамара позначається як і визначений як покомпонентний добуток двох матриць:

Для двох матриць, котрі мають різні розмірності, добуток Адамара не визначений.

Приклад[ред. | ред. код]

Приклад використання добутку Адамара для двох матриць A та B розмірністю 2x3

Властивості[ред. | ред. код]

Добуток Адамара це комутативна, асоціативна та дистрибутивна операція,

Змішані добутки[ред. | ред. код]

, де  — добуток Кронекера
, де  — торцевий добуток[3].
, де  — стовпцевий добуток Хатрі-Рао.

Використання[ред. | ред. код]

Добуток Адамара використовується у алгоритмах стиснення з втратами, наприклад, JPEG.

У програмних пакетах MATLAB та GNU Octave, дана операція використовується як стандартна операція множення масивів та позначається символом * .[4]
Операція добутку над векторними типами даних у GPGPU технологіях програмування також реалізована за принципом добутку Адамара. Інші примітивні математичні операції над векторними типами даних реалізовані як покомпонентні операції над їх компонентами.

Блокова версія[ред. | ред. код]

Проникаючий торцевий добуток

Проникаючий торцевий добуток[ред. | ред. код]

Цей тип матричної операції спирається на добуток Адамара і дозволяє поелементно перемножити матрицю на довільну кількість блоків тієї ж розмірності , що утворюють блокову матрицю [5]:

.

Наприклад, для

отримаємо:

.

Основні властивості:

;
,

де  — символ торцевого добутку матриць.

, де  — вектор.

Даний вид матричного добутку був запропонований в 1998 р. Слюсарем В. І. для опису відгуків цифрової антенної решітки з неідентичними приймальними каналами[5]. Крім того, цей добуток дозволяє формалізувати процес функціонування згорткової нейромережі. Наприклад, якщо розглянути вказану матрицю як масив пікселів зображення на вході нейромережного алгоритму, то блоки матриці будуть відповідати різним наборам коефіцієнтів для формування згорткового шару в кількох паралельных каналах обробки зображення нейромережею[6].

Операція проникаючого торцевого добутку вектора і матриці реалізована в бібліотеці машинного навчання TensorFlow за допомогою оператора «tf.multiply»[6][7].

Див. також[ред. | ред. код]

Джерела[ред. | ред. код]

Посилання[ред. | ред. код]

  1. Million, Elizabeth. The Hadamard Product (PDF). Архів оригіналу (PDF) за 12 червня 2013. Процитовано 2 січня 2012.
  2. Davis, Chandler. «The norm of the Schur product operation.» Numerische Mathematik 4.1 (1962): 343—344.
  3. Slyusar, V. I. (27 грудня 1996). End products in matrices in radar applications (PDF). Radioelectronics and Communications Systems.– 1998, Vol. 41; Number 3: 50—53. Архів оригіналу (PDF) за 27 липня 2020. Процитовано 2 серпня 2020.
  4. Arithmetic Operators + - * / \ ^ ' -. MATLAB documentation. MathWorks. Архів оригіналу за 24 квітня 2012. Процитовано 2 січня 2012.
  5. а б Slyusar, V. I. (13 березня 1998). A Family of Face Products of Matrices and its properties (PDF). Cybernetics and Systems Analysis C/C of Kibernetika I Sistemnyi Analiz. 1999. 35 (3): 379—384. doi:10.1007/BF02733426. Архів оригіналу (PDF) за 25 січня 2020. Процитовано 30 серпня 2020.
  6. а б Слюсар В.И. Тензорно-матричная модель нейросетей. // Всеукраїнська науково-практична Інтернет-конференція “Автоматизація та комп’ютерно-інтегровані технології у виробництві та освіті: стан, досягнення, перспективи розвитку”, 15 - 21 березня 2021 року, м. Черкаси, Черкаський національний університет імені Богдана Хмельницького [1]
  7. Tensorflow, how to multiply a 2D tensor (matrix) by corresponding elements in a 1D vector. — 2017. Архів оригіналу за 15 жовтня 2021. Процитовано 17 січня 2021.