Темы 1–5: линейная алгебра, SVD и PCA, градиенты и backprop, база теории вероятностей и распределения — тот минимум математики, который спрашивают на ML-секции.
1. Линейная алгебра для ML
Важность на собеседовании: 5/10
█████░░░░░🔥🔥 Часто. Отдельной секцией почти не спрашивают, но она всплывает внутри других вопросов: косинусная близость, мультиколлинеарность, почему
XᵀXнеобратима, оценка сложности. В РФ-компаниях на ML-базе могут попросить объяснить ранг и нормы на пальцах. Глубоко копают редко.
Суть. Данные — матрица X размера n×d (n объектов, d признаков). Почти всё в ML — это умножение матриц и проекции.
Ключевое:
- Скалярное произведение
⟨a,b⟩ = Σ aᵢbᵢ = ‖a‖‖b‖cos θ— основа косинусной близости и attention. - Нормы:
L1 = Σ|xᵢ|,L2 = √(Σxᵢ²),L∞ = max|xᵢ|. L2 — «евклидова длина», L1 — «манхэттенская». - Ранг — число линейно независимых столбцов. Мультиколлинеарность = неполный ранг =
XᵀXнеобратима = линрега не имеет единственного решения. - Собственные векторы:
Av = λv. Направления, которые матрица только растягивает. - Положительная определённость:
xᵀAx > 0 ∀x≠0. Гессиан положительно определён → точка локального минимума. Ковариационная матрица всегда положительно полуопределена. - Сложность: умножение
(n×d)·(d×k)—O(n·d·k). Обращениеd×d—O(d³).
Пример (почему это важно). Аналитическое решение линрега w = (XᵀX)⁻¹Xᵀy требует O(d³). При d=100 000 признаков (TF-IDF) это невозможно → используем SGD, O(n·d) за эпоху.
import numpy as np
X = np.random.randn(1000, 50)
print(np.linalg.matrix_rank(X)) # 50 — полный ранг
X_bad = np.hstack([X, X[:, :1]]) # дубль столбца
print(np.linalg.matrix_rank(X_bad)) # 50, а не 51 → мультиколлинеарность
print(np.linalg.cond(X_bad.T @ X_bad)) # огромное число обусловленности
На собесе спрашивают: зачем нормировать эмбеддинги перед косинусом; что такое мультиколлинеарность и чем она вредна; почему XᵀX может быть необратима.
Вопросы:
- Почему косинусная близость нормированных векторов эквивалентна скалярному произведению? — Если
‖a‖=‖b‖=1, тоcos θ = ⟨a,b⟩. Поэтому в векторных БД эмбеддинги нормируют и используют быстрый dot-product индекс вместо косинуса. - Чем L1-норма отличается от L2 геометрически? — Единичный шар L1 — ромб с углами на осях, L2 — круг. Углы ромба лежат на осях координат → оптимум чаще попадает на ось → зануление признака.
2. SVD, PCA и матричные разложения
Важность на собеседовании: 6/10
██████░░░░🔥🔥 Часто. PCA — обязательный минимум классического ML: «зачем центрировать», «PCA vs t-SNE», «сколько компонент взять». SVD как таковое спрашивают реже, но связь SVD↔PCA — популярный уточняющий вопрос. Глубина средняя: вывода теоремы Эккарта–Янга не требуют.
Суть. Любую матрицу можно разложить A = U Σ Vᵀ, где U, V — ортогональные, Σ — диагональная с сингулярными числами σ₁ ≥ σ₂ ≥ …. Это самый универсальный инструмент снижения размерности.
Теория.
- SVD: оставив топ-k сингулярных чисел, получаем лучшее приближение ранга k по норме Фробениуса (теорема Эккарта–Янга).
- PCA = SVD центрированной матрицы. Главные компоненты — собственные векторы ковариационной матрицы
C = (1/n)XᵀX, их собственные значения = объяснённая дисперсия. - Порядок действий в PCA: центрирование (обязательно) → масштабирование (если признаки в разных единицах) → SVD → проекция.
- Доля объяснённой дисперсии:
λᵢ / Σλⱼ. Обычно берут k, покрывающее 90–95%. - LSA (Latent Semantic Analysis) — это SVD над TF-IDF матрицей: исторический предок эмбеддингов.
Пример.
from sklearn.decomposition import PCA, TruncatedSVD
pca = PCA(n_components=0.95) # столько компонент, чтобы объяснить 95% дисперсии
X_low = pca.fit_transform(X_scaled)
print(pca.explained_variance_ratio_.cumsum())
# для разреженных матриц (TF-IDF) — TruncatedSVD, он не центрирует
svd = TruncatedSVD(n_components=300)
На собесе спрашивают: зачем центрировать перед PCA; PCA vs t-SNE vs UMAP; можно ли применять PCA к TF-IDF.
Вопросы:
- Почему PCA нужно применять после масштабирования? — PCA максимизирует дисперсию. Признак «зарплата в рублях» имеет дисперсию на порядки больше, чем «возраст», и заберёт первую компоненту просто из-за единиц измерения.
- Можно ли PCA к разреженной TF-IDF матрице? — Обычный PCA центрирует и уничтожает разреженность (память взорвётся). Нужен
TruncatedSVD— он работает без центрирования, это и есть LSA. - Связь SVD и PCA? — Если
Xцентрирована,Vиз SVD — это главные компоненты, аσᵢ²/(n−1)— объяснённые дисперсии. PCA unsupervised: может выкинуть компоненту с малой дисперсией, но высокой предсказательной силой (supervised-аналог — LDA, PLS).
3. Матанализ, градиенты, backprop
Важность на собеседовании: 9/10
█████████░🔥🔥🔥 Критично. Вывод градиента логистической регрессии на доске — классика РФ-собесов (Яндекс, Сбер, Авито). Спрашивают глубоко: цепное правило, почему
softmax+CEдаётp−y, затухающий градиент. Если не выведете градиент логрега — секция считается проваленной.
Разбивка по подтемам:
| Подтема | Балл |
|---|---|
| Вывод градиента логрега на доске | 10/10 |
| Цепное правило / backprop | 9/10 |
| Почему softmax+CE даёт p−y | 8/10 |
| Затухающий градиент | 8/10 |
| Гессиан, седловые точки | 4/10 |
Суть. Обучение = минимизация функции потерь градиентными методами. Нужно уметь считать производные руками.
Теория.
- Градиент
∇f— вектор частных производных, указывает направление наискорейшего роста. Шаг делаем против него. - Правило цепочки:
dL/dx = dL/dy · dy/dx— это и есть backpropagation. - Гессиан
H = ∇²f— матрица вторых производных.H ≻ 0→ минимум,H ≺ 0→ максимум, знакопеременный → седловая точка. В нейросетях седловые точки гораздо более частая проблема, чем локальные минимумы. - Полезные производные (надо знать наизусть):
d/dz σ(z) = σ(z)(1−σ(z)), гдеσ— сигмоида;d/dz tanh(z) = 1 − tanh²(z);d/dz ReLU(z) = [z>0];- для softmax + cross-entropy:
dL/dz = p − y(изумительно простой результат, спрашивают часто); - для MSE
L = ½(ŷ−y)²:dL/dŷ = ŷ − y; - для линрега
L = ‖Xw − y‖²:∇_w L = 2Xᵀ(Xw − y).
Вывод, который просят на доске (логрег):
L = −[y log p + (1−y) log(1−p)], p = σ(wᵀx).
∂L/∂p = −y/p + (1−y)/(1−p); ∂p/∂z = p(1−p); ∂z/∂w = x.
Перемножаем: ∂L/∂w = (p − y)·x. Тот же вид, что у линрега — это свойство обобщённых линейных моделей с канонической функцией связи.
На собесе спрашивают: выведи градиент логрега; почему градиент softmax+CE равен p−y; что такое затухающий градиент.
Вопросы:
- Почему сигмоида вызывает затухание градиента? —
σ'(z) ≤ 0.25, и при перемножении по L слоям градиент падает как0.25^L. Отсюда ReLU (производная 1 в положительной области) и residual-связи. - Что такое якобиан и где встречается? — Матрица частных производных вектор-функции. В backprop через слой
y = Wxякобиан поxравенWᵀ, поэтому градиент «идёт назад» через транспонированную матрицу.
4. Теория вероятностей: базис
Важность на собеседовании: 9/10
█████████░🔥🔥🔥 Критично. Байес и условная вероятность — самые частые «математические» вопросы на ML-секции. Задача про тест на болезнь встречается буквально дословно. ЦПТ спрашивают в связке с A/B. Копают средне-глубоко: считать руками, объяснять смысл, ловить ловушку «некоррелированность ≠ независимость».
Разбивка по подтемам:
| Подтема | Балл |
|---|---|
| Формула Байеса и задача про тест на болезнь | 10/10 |
| Условная вероятность и независимость | 9/10 |
| Матожидание, дисперсия, ковариация | 8/10 |
| ЦПТ и ЗБЧ | 7/10 |
| Некоррелированность ≠ независимость | 7/10 |
Суть. Язык, на котором формулируется вся ML-теория.
Теория.
- Условная вероятность:
P(A|B) = P(A∩B)/P(B). - Формула Байеса:
P(A|B) = P(B|A)P(A) / P(B). Читается: апостериор ∝ правдоподобие × априор. - Формула полной вероятности:
P(B) = Σᵢ P(B|Aᵢ)P(Aᵢ). - Независимость:
P(A∩B) = P(A)P(B). Условная независимость (основа Naive Bayes):P(A∩B|C) = P(A|C)P(B|C). - Матожидание:
E[X] = Σ xP(x); линейно всегда:E[aX+bY] = aE[X]+bE[Y](независимость не требуется!). - Дисперсия:
Var[X] = E[X²] − (E[X])²;Var[aX] = a²Var[X];Var[X+Y] = Var[X]+Var[Y]только при независимости. - Ковариация:
Cov(X,Y) = E[XY] − E[X]E[Y]. Корреляция Пирсона — нормированная ковариация ∈ [−1,1], ловит только линейную связь. - ЗБЧ: среднее выборки сходится к матожиданию. ЦПТ: сумма/среднее многих независимых слагаемых ≈ нормально,
(X̄ − μ)/(σ/√n) → N(0,1). Это фундамент A/B-тестов.
Классические задачи с собеса.
Задача Байеса (спрашивают в Сбере и Т-Банке). Болезнь у 1% людей. Тест даёт 95% истинно-положительных и 10% ложно-положительных. Тест положительный — какова вероятность болезни?
P(D|+) = 0.95·0.01 / (0.95·0.01 + 0.10·0.99) = 0.0095/0.1085 ≈ 8.8%.
Мораль: при редком событии даже хороший тест даёт много ложных срабатываний — прямая аналогия с precision при дисбалансе классов.
Задача о двух конвертах / монетах. «Бросаем монету 2 раза, известно, что хотя бы один орёл. Вероятность двух орлов?» — 1/3, а не 1/2. Пространство {ОР, РО, ОО}.
Вопросы:
- Некоррелированность = независимость? — Нет.
X ~ N(0,1),Y = X²:Cov = 0, но зависимость полная. Обратное верно: независимость ⇒ нулевая корреляция. - Зачем ЦПТ в A/B-тестах и где она ломается? — Позволяет использовать нормальную аппроксимацию для средних даже при негауссовой метрике (выручка), если выборка велика и дисперсия конечна. Ломается на тяжёлых хвостах, зависимых наблюдениях и малых скошенных выборках — лечится бутстрэпом.
5. Распределения
Важность на собеседовании: 3/10
███░░░░░░░🔥 Иногда. Спрашивают в формате «какое распределение у этой величины» или «почему логрег предполагает Бернулли». Глубоко не копают — достаточно знать список и когда что применимо. Не тратьте на это много времени.
Дискретные:
- Бернулли
Bern(p): один бинарный исход.E=p,Var=p(1−p)(максимум при p=0.5). Правдоподобие логрега — это Бернулли. - Биномиальное
Bin(n,p): число успехов в n испытаниях. Основа A/B-теста на конверсию. - Пуассон
Pois(λ): число редких событий за интервал.E=Var=λ. Клики, звонки в саппорт. ЕслиVar > E— сверхдисперсия, нужен отрицательный биномиальный. - Геометрическое: число попыток до первого успеха.
Непрерывные:
- Нормальное
N(μ,σ²): правило 68–95–99.7. Появляется из ЦПТ. MSE ⟺ гауссов шум. - Экспоненциальное: время между событиями, «без памяти». Латентность запросов — часто похоже.
- Логнормальное: величина, равная произведению многих факторов. Выручка, время сессии, зарплаты. Правая скошенность → медиана < среднее.
- Равномерное, Бета (сопряжённое к Бернулли, априор для конверсии), Гамма, Стьюдента (t-распределение при малой выборке, тяжелее хвосты, чем у нормального).
Практический вывод. Выбор функции потерь = выбор предположения о распределении шума. MSE ⟺ нормальный шум; MAE ⟺ распределение Лапласа (устойчивее к выбросам); Пуассоновская потеря ⟺ счётные данные.
Вопрос: Метрика «выручка на пользователя» сильно скошена — что делать в A/B-тесте? — Либо логарифмировать (но тогда меняется интерпретация), либо использовать бутстрэп/перестановочный тест, либо винзоризовать выбросы, либо перейти на устойчивую метрику (медиана, доля покупателей).
Часть 2 из 17 конспекта для подготовки к собеседованиям на NLP/LLM-разработчика. Остальные части — в разделе «Собесы».
Оставить отзыв
Комментарии
Загрузка комментариев...
★ Оставить отзыв