Матриця - і це не про фільм

Кафедра ШІзики

Автор

20 хвилин

Час читання

24.07.2025

Дата публікації

Рівень:
Середній
Теги: #матриці #лінійна-алгебра #машинне-навчання #нейронні-мережі #математика

Лекція 2: Матриці – Організатори даних у світі ШІ 📊

Пам’ятаєте з минулої лекції наш вектор кота [4.5, 46, 0.9, 0.2]? А що, якщо у нас не один кіт, а ціла зграя? Або не просто фото, а відео з тисячами кадрів? Або не одна характеристика, а складна мережа зв’язків між нейронами?

Тут на сцену виходять матриці – потужний інструмент для організації та обробки величезних обсягів структурованих даних. Якщо вектори – це списки чисел, то матриці – це таблиці чисел, які можуть одночасно зберігати та обробляти багато векторів.

Що таке матриця? 🧩

Формальне визначення

Матриця – це прямокутна таблиця чисел (які називаються елементами), організованих у m рядків та n стовпців. Матрицю розміру m×n часто позначають великою літерою, наприклад A:

A=(a11a12a1na21a22a2nam1am2amn)A = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix}

Де aija_{ij} – елемент матриці в i-му рядку та j-му стовпці.

Зв’язок з векторами 🔗

Матриця – це фактично колекція векторів! Її можна розглядати як:

  • Набір векторів-рядків: кожен рядок – це окремий вектор
  • Набір векторів-стовпців: кожен стовпець – це окремий вектор

Наприклад, матриця 3×4 містить:

  • 3 вектори-рядки розмірності 4
  • 4 вектори-стовпці розмірності 3

Позначення та термінологія 📝

Основні позначення:

  • Розмір матриці: m×n (m рядків, n стовпців)
  • Елемент матриці: aija_{ij} або AijA_{ij} – елемент в i-му рядку, j-му стовпці
  • i-й рядок: AiA_{i*} = [ai1,ai2,...,ain][a_{i1}, a_{i2}, ..., a_{in}]
  • j-й стовпець: AjA_{*j} = [a1j,a2j,...,amj]T[a_{1j}, a_{2j}, ..., a_{mj}]^T

Важливі терміни:

  • Головна діагональ: елементи a11,a22,...,akka_{11}, a_{22}, ..., a_{kk} (де k = min(m,n))
  • Слід матриці (trace): сума елементів головної діагоналі (для квадратних матриць)
  • Порядок матриці: для квадратної матриці n×n, порядок = n

Приклад 1: База даних котів 🐱

Уявіть, що ви власник притулку для тварин і ведете базу даних своїх котів:

База даних котів:

(4.5460.90.23.2380.70.85.1521.00.12.8350.40.9)\begin{pmatrix} 4.5 & 46 & 0.9 & 0.2 \\ 3.2 & 38 & 0.7 & 0.8 \\ 5.1 & 52 & 1.0 & 0.1 \\ 2.8 & 35 & 0.4 & 0.9 \end{pmatrix}

Тут кожен рядок – це один кіт, а кожен стовпець – це характеристика:

  • Стовпець 1: Маса (кг)
  • Стовпець 2: Довжина (см)
  • Стовпець 3: Пухнастість (0-1)
  • Стовпець 4: Небезпечність (0-1)

Розмір матриці: 4 × 4 (4 рядки, 4 стовпці) Елемент a₂₃ = 0.7 – це пухнастість другого кота

Приклад 2: Чорно-біле зображення 📷

Кожне цифрове зображення – це фактично матриця! Розглянемо крихітне зображення 5×5 пікселів, де 0 = чорний, 1 = білий:

Матриця зображення:

(0010001110111110111000100)\begin{pmatrix} 0 & 0 & 1 & 0 & 0 \\ 0 & 1 & 1 & 1 & 0 \\ 1 & 1 & 1 & 1 & 1 \\ 0 & 1 & 1 & 1 & 0 \\ 0 & 0 & 1 & 0 & 0 \end{pmatrix}

Це зображення хреста! Кожен елемент матриці представляє яскравість одного пікселя.

Основні операції з матрицями

Додавання та віднімання матриць ➕➖

Можна додавати/віднімати тільки матриці однакового розміру. Операція виконується поелементно.

Приклад: Зміна настрою котів після обіду 😸

До обіду:

(0.30.50.20.4)\begin{pmatrix} 0.3 & 0.5 \\ 0.2 & 0.4 \end{pmatrix}

Поліпшення після обіду:

(0.40.30.50.2)\begin{pmatrix} 0.4 & 0.3 \\ 0.5 & 0.2 \end{pmatrix}

Настрій після обіду:

(0.30.50.20.4)+(0.40.30.50.2)=(0.70.80.70.6)\begin{pmatrix} 0.3 & 0.5 \\ 0.2 & 0.4 \end{pmatrix} + \begin{pmatrix} 0.4 & 0.3 \\ 0.5 & 0.2 \end{pmatrix} = \begin{pmatrix} 0.7 & 0.8 \\ 0.7 & 0.6 \end{pmatrix}

Всі коти стали щасливішими! 🎉

Множення матриці на число (скаляр) ✖️

Так само, як і з векторами – множимо кожен елемент на це число.

Приклад: Подвоєння порцій корму 🍽️

Якщо ветеринар рекомендує подвоїти порції:

2×(10015080120)=(200300160240)2 \times \begin{pmatrix} 100 & 150 \\ 80 & 120 \end{pmatrix} = \begin{pmatrix} 200 & 300 \\ 160 & 240 \end{pmatrix}

Кожен кіт отримає вдвічі більше корму!

Матричне множення – найважливіша операція! 🔥

Це найскладніша, але найпотужніша операція в лінійній алгебрі. Вона лежить в основі всіх обчислень у нейронних мережах!

Коли можна множити матриці?

Матрицю A розміром m×k можна помножити на матрицю B розміром k×n тільки якщо:

  • Кількість стовпців A = Кількість рядків B (тобто внутрішні розміри співпадають)
  • Результат буде матриця C розміром m×n (зовнішні розміри)
Am×k×Bk×n=Cm×n\underbrace{A}_{m \times k} \times \underbrace{B}_{k \times n} = \underbrace{C}_{m \times n}

Як обчислюється множення?

Правило: Елемент cijc_{ij} результату обчислюється як скалярний добуток i-го рядка матриці A на j-й стовпець матриці B:

cij=l=1kailblj=ai1b1j+ai2b2j+...+aikbkjc_{ij} = \sum_{l=1}^{k} a_{il} \cdot b_{lj} = a_{i1}b_{1j} + a_{i2}b_{2j} + ... + a_{ik}b_{kj}

Чому це важливо для ШІ?

Матричне множення дозволяє:

  • Трансформувати дані: перетворювати вектори ознак у нові простори
  • Комбінувати інформацію: об’єднувати множину входів в один вихід
  • Паралелізувати обчислення: обробляти багато даних одночасно на GPU

Приклад: Розрахунок калорій для котів 🥩

Матриця A – скільки їжі з’їдає кожен кіт (грами):

A=(150502003010080)A = \begin{pmatrix} 150 & 50 \\ 200 & 30 \\ 100 & 80 \end{pmatrix}

(Рядки: коти, Стовпці: м’ясо, риба)

Матриця B – калорійність продуктів (кал/грам):

B=(3.52.8)B = \begin{pmatrix} 3.5 \\ 2.8 \end{pmatrix}

(Рядки: м’ясо, риба)

Результат C – загальні калорії для кожного кота:

C=A×B=(150502003010080)×(3.52.8)C = A \times B = \begin{pmatrix} 150 & 50 \\ 200 & 30 \\ 100 & 80 \end{pmatrix} \times \begin{pmatrix} 3.5 \\ 2.8 \end{pmatrix}

Обчислення:

  • Кіт 1: (150×3.5)+(50×2.8)=525+140=665(150 \times 3.5) + (50 \times 2.8) = 525 + 140 = 665 калорій
  • Кіт 2: (200×3.5)+(30×2.8)=700+84=784(200 \times 3.5) + (30 \times 2.8) = 700 + 84 = 784 калорії
  • Кіт 3: (100×3.5)+(80×2.8)=350+224=574(100 \times 3.5) + (80 \times 2.8) = 350 + 224 = 574 калорії
C=(665784574)C = \begin{pmatrix} 665 \\ 784 \\ 574 \end{pmatrix}

Транспонування матриці 🔄

Транспонування – це “перевертання” матриці: рядки стають стовпцями, а стовпці – рядками. Позначається як ATA^T.

Приклад: Перегляд даних з різних ракурсів 📈

Якщо у нас є дані про продажі корму за тиждень (понеділок, вівторок, середа):

Матриця продажів:

(15020010018022012016025090)\begin{pmatrix} 150 & 200 & 100 \\ 180 & 220 & 120 \\ 160 & 250 & 90 \end{pmatrix}

(Рядки: дні тижня, Стовпці: магазини A, B, C)

Що ми бачимо з цієї матриці:

  • Понеділок: Магазин B продав найбільше (200), магазин C – найменше (100)
  • Вівторок: Знову лідирує магазин B (220)
  • Середа: Магазин B встановив рекорд тижня (250)!

Після транспонування:

(15018016020022025010012090)\begin{pmatrix} 150 & 180 & 160 \\ 200 & 220 & 250 \\ 100 & 120 & 90 \end{pmatrix}

(Рядки: магазини A, B, C, Стовпці: дні тижня)

Тепер аналіз простіший:

  • Магазин A: Продажі стабільні (150→180→160), всього = 490
  • Магазин B: Продажі зростають! (200→220→250), всього = 670 🏆
  • Магазин C: Найслабші продажі (100→120→90), всього = 310

Висновок: Магазин B – явний лідер з продажів, варто вивчити їхні методи!

Властивості матричних операцій 🔧

Матричні операції мають важливі властивості, які використовуються в ШІ:

Властивості множення:

  • НЕ комутативне: A×BB×AA \times B ≠ B \times A (в загальному випадку)
  • Асоціативне: (A×B)×C=A×(B×C)(A \times B) \times C = A \times (B \times C)
  • Дистрибутивне: A×(B+C)=A×B+A×CA \times (B + C) = A \times B + A \times C

Властивості транспонування:

  • (AT)T=A(A^T)^T = A (подвійне транспонування повертає оригінал)
  • (A+B)T=AT+BT(A + B)^T = A^T + B^T
  • (A×B)T=BT×AT(A \times B)^T = B^T \times A^T (зверніть увагу на зміну порядку!)
  • (cA)T=cAT(cA)^T = cA^T (де c – скаляр)

Спеціальні типи матриць 🎯

Квадратна матриця

Матриця, де кількість рядків = кількість стовпців (n×n). Тільки квадратні матриці можуть мати:

  • Визначник
  • Обернену матрицю
  • Власні значення та власні вектори

Діагональна матриця

Усі елементи поза головною діагоналлю дорівнюють нулю:

D=(500030007)D = \begin{pmatrix} 5 & 0 & 0 \\ 0 & 3 & 0 \\ 0 & 0 & 7 \end{pmatrix}

Чому важлива: Множення на діагональну матрицю – це масштабування кожної координати окремо. В ШІ використовується для нормалізації даних.

Одинична матриця (I)

Діагональна матриця з одиницями на діагоналі – “нейтральний елемент” для множення:

I=(100010001)I = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}

Для будь-якої матриці A: A×I=I×A=AA \times I = I \times A = A

Чому важлива: Грає роль “1” для матриць. Використовується при ініціалізації нейронних мереж.

Симетрична матриця

Матриця, що дорівнює своїй транспонованій (A=ATA = A^T):

S=(421253136)S = \begin{pmatrix} 4 & 2 & -1 \\ 2 & 5 & 3 \\ -1 & 3 & 6 \end{pmatrix}

Чому важлива: Кореляційні та коваріаційні матриці завжди симетричні. Мають гарантовано дійсні власні значення.

Ортогональна матриця

Матриця, для якої QT×Q=Q×QT=IQ^T \times Q = Q \times Q^T = I (транспонована = обернена):

Властивості:

  • Зберігає довжини векторів
  • Зберігає кути між векторами
  • Представляє поворот або відзеркалення

Чому важлива: Використовується в PCA (Principal Component Analysis) та для поворотів зображень.

Визначник (детермінант) – “магічне число” матриці 🔮

Визначник – це спеціальне число, яке можна обчислити для квадратної матриці. Воно говорить нам про важливі властивості матриці.

Геометричний сенс визначника 📐

Визначник показує, як матриця змінює площі/об’єми:

  • |det| > 1: матриця збільшує площі
  • |det| < 1: матриця зменшує площі
  • det = 0: матриця “сплющує” простір (втрата розмірності)
  • det < 0: матриця змінює орієнтацію (дзеркальне відображення)

Для матриці 2×2:

det(abcd)=adbc\det\begin{pmatrix} a & b \\ c & d \end{pmatrix} = ad - bc

Приклад: Площа паралелограма 📐

Два вектори утворюють паралелограм. Його площа = |визначник|:

Матриця векторів:

(3124)\begin{pmatrix} 3 & 1 \\ 2 & 4 \end{pmatrix} det=(3×4)(1×2)=122=10\det = (3 \times 4) - (1 \times 2) = 12 - 2 = 10

Площа паралелограма = 10 квадратних одиниць!

Для матриці 3×3:

det(abcdefghi)=aei+bfg+cdhcegbdiafh\det\begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} = aei + bfg + cdh - ceg - bdi - afh

Приклад: Система рівнянь має розв’язок? 🤔

Уявіть, що вам потрібно знайти ціни на три види корму для котів (x, y, z), знаючи вартість різних комбінацій:

Система рівнянь:

  • 2 пачки корму A + 1 пачка корму B = 100 грн
  • 1 пачка корму A зі знижкою (-1×A) + 3 пачки корму B + 4 пачки корму C = 250 грн
  • 5 пачок корму B - 2 пачки корму C = 150 грн

Математично це записується як:

{2x+1y+0z=1001x+3y+4z=2500x+5y2z=150\begin{cases} 2x + 1y + 0z = 100 \\ -1x + 3y + 4z = 250 \\ 0x + 5y - 2z = 150 \end{cases}

У матричній формі: Ax = b

(210134052)A×(xyz)x=(100250150)b\underbrace{\begin{pmatrix} 2 & 1 & 0 \\ -1 & 3 & 4 \\ 0 & 5 & -2 \end{pmatrix}}_{A} \times \underbrace{\begin{pmatrix} x \\ y \\ z \end{pmatrix}}_{\vec{x}} = \underbrace{\begin{pmatrix} 100 \\ 250 \\ 150 \end{pmatrix}}_{\vec{b}}

Перевірка через визначник:

det(A)=(2)(3)(2)+(1)(4)(0)+(0)(1)(5)(0)(3)(0)(1)(1)(2)(2)(4)(5)\det(A) = (2)(3)(-2) + (1)(4)(0) + (0)(-1)(5) - (0)(3)(0) - (1)(-1)(-2) - (2)(4)(5) =12+0+00240=54= -12 + 0 + 0 - 0 - 2 - 40 = -54

Оскільки det(A)=54\det(A) = -5400:

  • ✅ Система має єдиний розв’язок
  • ✅ Можна знайти точні ціни кожного корму
  • ✅ Матриця A має обернену матрицю

Якби визначник = 0:

  • ❌ Система могла б не мати розв’язку (суперечливі умови)
  • ❌ Або мати безліч розв’язків (недостатньо інформації)

Практичні поради та типові помилки 💡

Поради для роботи з матрицями:

  1. Завжди перевіряйте розміри: Перед множенням матриць переконайтеся, що внутрішні розміри співпадають
  2. Використовуйте бібліотеки: Не винаходьте велосипед, скористайтесь перевіреними інструментами
  3. Думайте про ефективність: Порядок множення матриць впливає на швидкість: (A×B)×C(A \times B) \times C може бути набагато швидшим за A×(B×C)A \times (B \times C)

Типові помилки новачків:

  • Плутати рядки та стовпці при індексації
  • Забувати про некомутативність множення
  • Ігнорувати числову стабільність (дуже малі/великі числа)
  • Не використовувати векторизовані операції (цикли замість матричних операцій)

Підсумок 🎯

Матриці – це фундамент сучасного ШІ:

  • Універсальна структура даних для організації інформації
  • Потужні математичні операції для трансформації даних
  • Ефективна реалізація на сучасному обладнанні
  • Інтуїтивна геометрична інтерпретація для розуміння

Ключові концепції для запам’ятовування:

  1. Матриця = таблиця чисел = колекція векторів
  2. Множення матриць = композиція трансформацій
  3. Визначник = міра зміни площ/об’ємів
  4. Спеціальні матриці мають спеціальні властивості