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

Матеріал з testwiki
Версія від 18:54, 25 січня 2025, створена imported>TohaomgBot (Замінено символи нерозривного пробілу чи інші невидимі символи в назвах джерел)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку
Добуток Адамара оперує з двома матрицями однакової розмірності і створює нову матрицю ідентичної розмірності.

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

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

Визначення

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

(AB)i,j=(A)i,j(B)i,j

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

Приклад

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

(a11a12a13a21a22a23)(b11b12b13b21b22b23)=(a11*b11 a12*b12a13*b13a21*b21a22*b22a23*b23)

Властивості

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

AB=BA,
A(BC)=(AB)C,
A(B+C)=AB+AC.

Змішані добутки

(AB)(CD)=(AC)(BD), де  — добуток Кронекера
(AB)(CD)=(AC)(BD), де  — торцевий добуток[3].
(AB)(CD)=(AC)(BD), де  — стовпцевий добуток Хатрі-Рао.

Використання

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

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

Блокова версія

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

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

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

𝐀[]𝐁=[𝐀𝐁1𝐀𝐁2 ... 𝐀𝐁n].

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

𝐀=[123456789],𝐁=[𝐁1𝐁2𝐁3]=[147281431221820510254012306283242739]

отримаємо:

𝐀[]𝐁=[182121642324633210030401252404815036146427143218492481].

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

𝐀[]𝐁=𝐁[]𝐀;
𝐌𝐌=𝐌[](𝐌𝟏T),

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

𝐜𝐌=𝐜[]𝐌, де 𝐜 — вектор.

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

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

Див. також

Джерела

Посилання

Шаблон:Reflist

  1. Шаблон:Cite web
  2. Davis, Chandler. «The norm of the Schur product operation.» Numerische Mathematik 4.1 (1962): 343—344.
  3. Шаблон:Cite journal
  4. Шаблон:Cite web
  5. 5,0 5,1 Шаблон:Cite journal
  6. 6,0 6,1 Слюсар В.И. Тензорно-матричная модель нейросетей. // Всеукраїнська науково-практична Інтернет-конференція “Автоматизація та комп’ютерно-інтегровані технології у виробництві та освіті: стан, досягнення, перспективи розвитку”, 15 - 21 березня 2021 року, м. Черкаси, Черкаський національний університет імені Богдана Хмельницького [1]
  7. Шаблон:Cite web