🔴 Сложный ⏱️ 45 минут

Матрицы: определение и виды — Часть 1: Теория и основы

Матрицы: определение и виды 🔢

Часть 1: Теория и базовые задания

Знаешь, что общего между изображением кота в нейросети, рекомендацией фильма на Netflix и распознаванием твоего голоса Алексой? Все они работают с матрицами. Да-да, те самые прямоугольные таблички с числами, которые пугали в школе.

Но вот в чём фишка: матрицы — это не абстрактная математика для учебников. Это главный рабочий инструмент современного ML/AI. Когда ChatGPT генерирует текст, он перемножает матрицы. Когда DALL-E создаёт картинку — опять матрицы. Когда рекомендательная система предлагает тебе следующий ролик на YouTube — угадай что? Правильно, матрицы.

В этом уроке мы с тобой разберёмся с самых основ: что такое матрица, какие они бывают, и — самое интересное — где они используются в реальном ML. Не будет абстрактных примеров про яблоки. Вместо этого — embeddings, веса нейросетей, attention механизмы.

🎯 Что ты узнаешь в этой части: - Что такое матрица простыми словами (и почему это важнее, чем кажется) - Какие бывают виды матриц и зачем каждый нужен - Как матрицы хранят embeddings слов в ChatGPT - Почему форма матрицы критична для нейросетей - 10 базовых заданий с подробными решениями


Что такое матрица? Начнём с нуля

Интуитивное понимание

Представь, что тебе нужно хранить информацию о 5 пользователях и их активности в 3 разных приложениях. Можно сделать так:

Пользователь 1: WhatsApp - 120 минут, Instagram - 45 минут, TikTok - 30 минут
Пользователь 2: WhatsApp - 80 минут, Instagram - 90 минут, TikTok - 60 минут
...

Читать неудобно, правда? А теперь представь то же самое в виде таблички:

           WhatsApp  Instagram  TikTok
Юзер 1       120        45       30
Юзер 2        80        90       60
Юзер 3       150        20       10
Юзер 4        95        75       40
Юзер 5       110        55       25

Вот эта табличка с числами и есть матрица! Просто и понятно.

Математическая запись

Математики любят всё формализовать. Ту же табличку они запишут так:

$$A = \begin{pmatrix} 120 & 45 & 30
80 & 90 & 60
150 & 20 & 10
95 & 75 & 40
110 & 55 & 25 \end{pmatrix}$$

Здесь: - Вся табличка называется матрицей и обозначается большой буквой (обычно $A$, $B$, $X$, $W$) - Строки (rows) — горизонтальные ряды чисел (их 5 штук) - Столбцы (columns) — вертикальные ряды чисел (их 3 штуки) - Каждое число в табличке — элемент матрицы

Строгое определение

Определение: Матрица — это прямоугольная таблица чисел, состоящая из $m$ строк и $n$ столбцов.

Обозначения: - $A$ — сама матрица - $m$ — количество строк (rows) - $n$ — количество столбцов (columns) - $a_{ij}$ — элемент в $i$-й строке и $j$-м столбце - Размер (shape): $m \times n$ (читается “эм на эн”)

Общая форма:

$$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}$$

Важно: Запись $a_{ij}$ — сначала номер строки, потом столбца. Это как адрес: “улица номер $i$, дом номер $j$”.

Примеры с разбором

Пример 1 (простейший):

$$B = \begin{pmatrix} 1 & 2 & 3
4 & 5 & 6 \end{pmatrix}$$

Разбираем: - $b{11} = 1$ (первая строка, первый столбец) - $b{12} = 2$ (первая строка, второй столбец) - $b_{23} = 6$ (вторая строка, третий столбец) - Размер: $2 \times 3$


Пример 2 (рейтинги фильмов — реальная задача рекомендательных систем):

Три пользователя поставили оценки четырём фильмам:

$$R = \begin{pmatrix} 5 & 3 & 4 & 2
4 & 5 & 3 & 4
2 & 1 & 5 & 3 \end{pmatrix}$$

Расшифровка: - Строки = пользователи (3) - Столбцы = фильмы (4) - $r{11} = 5$ — первый пользователь поставил фильму №1 оценку 5 - $r{32} = 1$ — третий пользователь поставил фильму №2 оценку 1

Применение в ML: Именно так устроены рекомендательные системы Netflix! Алгоритм ищет паттерны в этой матрице, чтобы предсказать, какой фильм понравится тебе.


Пример 3 (ML — embeddings слов):

В NLP каждое слово представляется вектором чисел — word embedding. Все embeddings хранятся в матрице:

$$E = \begin{pmatrix} 0.2 & -0.5 & 0.8 & 0.1
0.1 & 0.3 & -0.2 & 0.9
-0.4 & 0.6 & 0.3 & -0.1
0.7 & -0.2 & 0.5 & 0.4
-0.3 & 0.8 & -0.6 & 0.2 \end{pmatrix}$$

Что здесь: - Размер: $5 \times 4$ (5 слов, каждое описывается 4 числами) - В реальности: GPT-3 имеет матрицу embeddings $50257 \times 12288$ — 618 миллионов параметров только на embeddings!

Зачем это важно: Когда нейросеть обрабатывает текст “кот”, она ищет слово “кот” в этой матрице и достаёт его вектор. Это первый шаг в любой NLP-модели.


Виды матриц: классификация

1. Прямоугольная матрица

Определение: $m \neq n$ (строк ≠ столбцов)

Где в ML: - Датасеты: 1000 примеров × 50 признаков = $(1000, 50)$ - Веса Dense слоя: 128→64 = $(64, 128)$ - Embeddings: 50k слов × 300 размерность = $(50000, 300)$


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

Определение: $m = n$ (строк = столбцов)

Пример:

$$B = \begin{pmatrix} 1 & 2 & 3
4 & 5 & 6
7 & 8 & 9 \end{pmatrix}$$

Размер: $3 \times 3$

Где в ML: - Матрица ковариаций: 10 признаков → $(10, 10)$ - Attention scores: 512 токенов → $(512, 512)$ - Confusion matrix: 10 классов → $(10, 10)$

Особенность: Только для квадратных матриц определены определитель, след, собственные значения.


3. Вектор-столбец

Определение: Матрица $m \times 1$ (один столбец)

$$\mathbf{v} = \begin{pmatrix} 1
2
3
4 \end{pmatrix}$$

Размер: $(4, 1)$

Где в ML: - Один пример из датасета: если 4 признака → $(4, 1)$ - Выход нейросети для одного примера: 10 классов → $(10, 1)$ - Градиенты при backprop

В коде:

import numpy as np
x = np.array([[5.1], [3.5], [1.4], [0.2]])  # (4, 1)

4. Вектор-строка

Определение: Матрица $1 \times n$ (одна строка)

$$\mathbf{w}^T = \begin{pmatrix} 1 & 2 & 3 & 4 \end{pmatrix}$$

Размер: $(1, 4)$

Где в ML: - Веса одного нейрона - Одна строка датасета

Важно:

v_col = np.array([[1], [2], [3]])    # (3, 1)
v_row = np.array([[1, 2, 3]])        # (1, 3)
# Это РАЗНЫЕ вещи!

5. Нулевая матрица

Определение: Все элементы = 0

$$\mathbf{0}_{2 \times 3} = \begin{pmatrix} 0 & 0 & 0
0 & 0 & 0 \end{pmatrix}$$

Где в ML: - Инициализация bias в нейросетях - Padding в CNN (добавление нулей вокруг изображения) - Маски в attention

Свойство: $A + \mathbf{0} = A$ (аналог нуля для чисел)


6. Единичная матрица

Определение: На диагонали единицы, остальное — нули

$$I_3 = \begin{pmatrix} 1 & 0 & 0
0 & 1 & 0
0 & 0 & 1 \end{pmatrix}$$

Формально:

$$In = (i{ij}), \quad i_{ij} = \begin{cases} 1, & i = j
0, & i \neq j \end{cases}$$

Где в ML: - Ridge regression: добавляют $\lambda I$ к матрице - Обратные матрицы: $A \cdot A^{-1} = I$

Свойство: $A \cdot I = I \cdot A = A$ (аналог единицы для чисел)

В коде:

I = np.eye(5)  # единичная 5×5

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

Определение: Все элементы вне диагонали = 0

$$D = \begin{pmatrix} 3 & 0 & 0
0 & -2 & 0
0 & 0 & 5 \end{pmatrix}$$

Обозначение: $D = \text{diag}(3, -2, 5)$

Где в ML: - Масштабирование признаков - Adam optimizer (свой learning rate для каждого параметра) - SVD разложение (матрица $\Sigma$)

Преимущество: Умножение на диагональную матрицу очень быстрое — в $O(n)$ вместо $O(n^3)$!


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

Определение: $A = A^T$ (равна своей транспонированной)

$$S = \begin{pmatrix} 1 & 2 & 3
2 & 4 & 5
3 & 5 & 6 \end{pmatrix}$$

Проверка: $s{12} = 2 = s{21}$, $s{13} = 3 = s{31}$, $s{23} = 5 = s{32}$ ✅

Где в ML: - Матрица ковариаций: $\text{Cov}(X) = \frac{1}{n} X^T X$ всегда симметрична - Kernel matrix в SVM - Hessian матрица (вторые производные)

Особенность: Симметричные матрицы имеют вещественные собственные значения и ортогональные собственные векторы.


9. Разреженная матрица (sparse)

Определение: Большинство элементов = 0

Пример:

$$S = \begin{pmatrix} 0 & 0 & 3 & 0 & 0
0 & 0 & 0 & 0 & 0
1 & 0 & 0 & 0 & 0
0 & 0 & 0 & 0 & 5
0 & 2 & 0 & 0 & 0 \end{pmatrix}$$

Ненулевых: 4 из 25 (16%)

Где в ML: - TF-IDF матрицы в NLP (документы × слова) - One-hot encoding - User-item матрицы в рекомендациях - Графы (adjacency matrix)

Пример: Если документ содержит 100 слов из словаря 10,000, то матрица на 99% состоит из нулей!

В коде:

from scipy.sparse import csr_matrix

# Sparse матрица 1000×1000 с 0.1% ненулевых
# Dense: ~8 MB, Sparse: ~80 KB!

Важность: Экономия памяти в 10-100 раз + ускорение вычислений.


Форма (shape) матрицы: почему это критично

Что такое shape?

Форма матрицы — её размеры: $(m, n)$ = строки × столбцы.

Почему shape критичен в ML?

1. Умножение возможно только при совместимых размерах:

Чтобы перемножить $A \times B$: - Столбцов в $A$ = строк в $B$

Если $A$: $(m, k)$ и $B$: $(k, n)$, то $C = A \times B$: $(m, n)$

Пример: - $A$: $(3, 5)$ - $B$: $(5, 2)$ - $C = A \times B$: $(3, 2)$ ✅

Но: - $A$: $(3, 5)$ - $B$: $(2, 7)$ - $C = A \times B$: ОШИБКА!

2. Форма определяет операции в нейросетях:

В Dense слое: $\mathbf{y} = \sigma(W \mathbf{x} + \mathbf{b})$

Если: - $\mathbf{x}$: $(n{\text{in}}, 1)$ - $W$: $(n{\text{out}}, n{\text{in}})$ - $\mathbf{b}$: $(n{\text{out}}, 1)$

То: - $W \mathbf{x}$: $(n{\text{out}}, n{\text{in}}) \times (n{\text{in}}, 1) = (n{\text{out}}, 1)$ ✅

Ошибка в shape = Runtime Error в коде!


Матрицы в ML: реальные примеры

1. Датасет как матрица

$$X = \begin{pmatrix} x{11} & x{12} & \cdots & x{1n}
x
{21} & x{22} & \cdots & x{2n}
\vdots & \vdots & \ddots & \vdots
x{m1} & x{m2} & \cdots & x_{mn} \end{pmatrix}$$

  • $m$ = примеры (samples)
  • $n$ = признаки (features)

Iris dataset: $(150, 4)$ — 150 цветков, 4 признака


2. Веса в нейросетях

Слой Dense с 512 входами и 256 выходами:

import torch.nn as nn
layer = nn.Linear(512, 256)
print(layer.weight.shape)  # torch.Size([256, 512])

Параметров: $256 \times 512 + 256 = 131,328$


3. Embeddings матрица

В NLP каждое слово → вектор. Все векторы в матрице:

$$E \in \mathbb{R}^{V \times d}$$

  • $V$ = размер словаря
  • $d$ = размерность embedding

BERT base: $(30522, 768)$
GPT-3: $(50257, 12288)$ — 618 млн параметров!


4. Attention матрица

Для последовательности из $n$ токенов: матрица attention scores $n \times n$

Пример (5 слов):

         I    love  machine  learning  today
I      0.9   0.05    0.02      0.02     0.01
love   0.1   0.6     0.15      0.1      0.05
machine 0.05 0.1     0.5       0.3      0.05
learning 0.05 0.1    0.4       0.4      0.05
today   0.3  0.2     0.1       0.1      0.3

Проблема: Для $n=2048$ (GPT-3) → матрица $2048 \times 2048 = 4.2$ млн элементов!


5. Изображение как матрица

Grayscale MNIST: $(28, 28)$ — яркость каждого пикселя 0-255

RGB ImageNet: $(224, 224, 3)$ — три матрицы для R, G, B каналов

В PyTorch:

img = torch.randn(3, 224, 224)  # (channels, height, width)

Практика: Базовые задания (1-10)

Задание 1

Определите размер матрицы:

$$A = \begin{pmatrix} 1 & 2
3 & 4
5 & 6 \end{pmatrix}$$


Задание 2

Найдите элемент $a_{23}$ в матрице:

$$A = \begin{pmatrix} 10 & 20 & 30
40 & 50 & 60 \end{pmatrix}$$


Задание 3

Является ли квадратной матрица:

$$B = \begin{pmatrix} 1 & 0
0 & 1 \end{pmatrix}$$


Задание 4

Создайте нулевую матрицу $2 \times 3$


Задание 5

Запишите единичную матрицу $I_3$


Задание 6

Симметрична ли матрица:

$$S = \begin{pmatrix} 5 & 2
2 & 3 \end{pmatrix}$$


Задание 7

Сколько параметров в слое Dense(100 → 50) с bias?


Задание 8

Сколько элементов в матрице $m \times n$?


Задание 9

Можно ли транспонировать матрицу $2 \times 5$? Какой размер результата?


Задание 10

Запишите вектор-столбец с элементами 3, 7, -2, 5


Главное запомнить

📝 Ключевые понятия

Матрица — прямоугольная таблица чисел размера $m \times n$

Элемент $a_{ij}$ — строка $i$, столбец $j$ (ВАЖЕН порядок!)

Shape критичен — без правильной формы нейросеть не работает

Квадратная матрица — $m = n$ (нужна для определителя, собственных значений)

Единичная $I$ — на диагонали 1, остальное 0. Свойство: $AI = IA = A$

Симметричная — $A = A^T$. Важна в ковариациях, kernel matrix

Sparse матрица — большинство нулей. Экономит память в 10-100 раз!

В ML всё — матрицы: - Датасет: $(m, n)$ — примеры × признаки - Веса Dense: $(n{\text{out}}, n{\text{in}})$ - Embeddings: $(V, d)$ — словарь × размерность - Attention: $(n, n)$ — токены × токены - Изображение: $(H, W, C)$ — высота × ширина × каналы


💡 Совет: Матрицы — это фундамент ML. Если хочешь понимать, как работают нейросети “под капотом”, нужно понимать матрицы. Это не абстракция — это рабочий инструмент каждого ML-инженера.

Матрицы: Часть 2 🎯 Средние задания (11-20) Продолжаем практику! В этой части задания становятся интереснее — мы работаем с реальными сценариями из машинного обучения.

Задание 11 Создайте диагональную матрицу D=diag(2,−1,3)D = \text{diag}(2, -1, 3) D=diag(2,−1,3)

Задание 12 Дан датасет из 200 изображений 32×3232 \times 32 32×32 RGB. Какой shape матрицы данных?

Задание 13 Можно ли перемножить матрицу 4×34 \times 3 4×3 на 3×53 \times 5 3×5? Какой размер результата?

Задание 14 Создайте верхнетреугольную матрицу 3×33 \times 3 3×3 с ненулевыми элементами

Задание 15 Для последовательности из 10 токенов в трансформере, какой размер attention матрицы?

Задание 16 Симметрична ли матрица: $$M = \begin{pmatrix} 1 & 2 & 3
2 & 4 & 5
3 & 6 & 7 \end{pmatrix}$$

Задание 17 MNIST изображение 28×2828 \times 28 28×28 после flatten — какой shape?

Задание 18 Embedding матрица 50000×76850000 \times 768 50000×768 — сколько параметров?

Задание 19 Является ли единичная матрица InI_n In​ диагональной? Симметричной?

Задание 20 Создайте confusion matrix для бинарной классификации: TN=85, FP=10, FN=5, TP=90

Главное из второй части 📊 Что освоили: ✅ Диагональные матрицы — быстрые в вычислениях, используются в оптимизации ✅ Shape для батчей — (N,C,H,W)(N, C, H, W) (N,C,H,W) формат критичен для CNN

✅ Совместимость размеров — основа матричного умножения в нейросетях ✅ Треугольные матрицы — важны в LU-разложении и решении систем ✅ Attention матрицы — квадратичная сложность O(n2)O(n^2) O(n2) — главная проблема трансформеров

✅ Flatten операция — 28×28→78428 \times 28 \rightarrow 784 28×28→784 для подачи в Dense слой

✅ Embeddings — миллионы параметров в одной матрице! ✅ Confusion Matrix — квадратная матрица для оценки классификации

💡 Совет: Обрати внимание, как часто в ML встречаются квадратные матрицы (attention, ковариации, confusion). Это не случайность — квадратные матрицы обладают особыми свойствами (собственные значения, определитель), которые критичны для анализа данных. Продвинутые задания (21-30) Финальная часть! Здесь мы работаем с реальными архитектурами нейросетей, считаем параметры, разбираемся с ковариациями и attention механизмами.

Задание 21 Вычислите параметры нейросети: Input(784) → Dense(128) → Dense(64) → Dense(10), все слои с bias

Задание 22 One-hot encoding для словаря из 10,000 слов. Shape вектора для одного слова? Shape для предложения из 15 слов?

Задание 23 Проверьте вручную: I2×A=AI_2 \times A = A I2​×A=A для A=(123456)A = \begin{pmatrix} 1 & 2 & 3 \ 4 & 5 & 6 \end{pmatrix} A=(14​25​36​)

Задание 24 CNN слой Conv2D: вход 224×224×3224 \times 224 \times 3 224×224×3, 64 фильтра 3×33 \times 3 3×3. Сколько параметров (с bias)?

Задание 25 Почему матрица ковариаций всегда симметрична?

Задание 26 Batch из 32 примеров проходит через Dense(256 → 128). Какой shape входа? Какой shape выхода?

Задание 27 Сколько параметров в Embedding слое для словаря 30,000 слов с размерностью 512?

Задание 28 Матрица AA A размера 100×50100 \times 50 100×50. Какой размер у ATAA^T A ATA? Какой размер у AATAA^T AAT?

Задание 29 VGG-16 слой: Conv2D с 512 фильтрами 3×33 \times 3 3×3 на входе 512 каналов. Сколько параметров?

Задание 30 Для dataset (1000,20)(1000, 20) (1000,20) вычислите размер матрицы ковариаций. Сколько уникальных ковариаций нужно вычислить?

Итоговое резюме: Что освоили за 3 части Теоретическая база ✅ Определение матрицы — прямоугольная таблица чисел m×nm \times n m×n ✅ Элементы — aija_{ij} aij​ (строка ii i, столбец jj j)

✅ Shape — критичен для операций в нейросетях Виды матриц ✅ Прямоугольная — датасеты, веса Dense ✅ Квадратная — ковариации, attention, confusion matrix ✅ Векторы — примеры, градиенты, bias ✅ Нулевая — инициализация, padding ✅ Единичная — AI=AAI = A AI=A, обратные матрицы

✅ Диагональная — быстрые вычисления, Adam optimizer ✅ Симметричная — ковариации, kernel matrices ✅ Sparse — TF-IDF, one-hot, графы ML применения ✅ Датасет: (m,n)(m, n) (m,n) — примеры × признаки

✅ Веса Dense: (nout,nin)(n{\text{out}}, n{\text{in}}) (nout​,nin​) ✅ Embeddings: (V,d)(V, d) (V,d) — словарь × размерность

✅ Attention: (n,n)(n, n) (n,n) — квадратичная сложность

✅ Изображения: (H,W,C)(H, W, C) (H,W,C) для RGB

✅ Батчи: (B,…)(B, …) (B,…) — первая размерность

✅ CNN фильтры: (K,C,F,F)(K, C, F, F) (K,C,F,F) — независимо от размера входа

✅ Ковариации: (n,n)(n, n) (n,n) — всегда симметричны

Практические навыки ✅ Считать параметры нейросетей ✅ Проверять совместимость размеров ✅ Работать с shape в PyTorch/NumPy ✅ Понимать sparse vs dense ✅ Создавать confusion matrix ✅ Вычислять ковариации

Финальный лайфхак 🔥 Главное правило работы с матрицами в ML:

ВСЕГДА проверяй shape!

90% ошибок в нейросетях — это несовместимые размеры матриц. Привычка профи: pythonprint(f”X: {X.shape}“) print(f”W: {W.shape}“) print(f”XW: {(X @ W).shape}“) # Проверь ДО запуска! Формула успеха:

Понимаешь матрицы → понимаешь линейную алгебру Понимаешь линейную алгебру → понимаешь ML Понимаешь ML → можешь создавать свои модели

Что дальше? Следующие темы для изучения: 📚 Операции над матрицами:

Сложение, умножение Транспонирование Обратная матрица

📚 Разложения матриц:

SVD (Singular Value Decomposition) Eigendecomposition LU, QR разложения

📚 Применения в ML:

PCA (Principal Component Analysis) SVD в рекомендациях Batch Normalization Градиентный спуск

💡 Последний совет: Матрицы — это не “страшная математика”. Это твой главный инструмент как ML-инженера. Каждый раз, когда пишешь model.fit(X, y), помни: внутри происходят тысячи матричных операций. Теперь ты понимаешь, что именно! Удачи в изучении ML! Ты теперь знаешь матрицы на глубоком уровне. 🚀

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!