🔴 Сложный ⏱️ 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}$$

Формально:

$$I_n = (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

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