Темы 17–22: линейная и логистическая регрессия, L1/L2-регуляризация, ядровой трюк в SVM, kNN с его метриками расстояния и наивный Байес.
17. Линейная регрессия
Важность на собеседовании: 9/10
█████████░🔥🔥🔥 Критично. База, которую спрашивают почти всегда, часто с просьбой вывести решение или градиент. Копают средне-глубоко: предположения модели, аналитическое решение против SGD, что делать с мультиколлинеарностью.
Разбивка по подтемам:
| Подтема | Балл |
|---|---|
| Предположения модели и что при нарушении | 9/10 |
| Нормальное уравнение vs SGD | 8/10 |
| Мультиколлинеарность и VIF | 8/10 |
| Линейность по параметрам, а не по признакам | 7/10 |
| Гаусс–Марков / BLUE | 5/10 |
Модель: ŷ = w₀ + w₁x₁ + … + w_dx_d = wᵀx. Потеря — MSE.
Аналитическое решение (нормальное уравнение): w = (XᵀX)⁻¹Xᵀy. Сложность O(nd² + d³). Применимо при малом d (сотни). При большом d или n — SGD.
Предположения (их и просят перечислить):
- Линейность связи признаков и таргета.
- Независимость наблюдений.
- Гомоскедастичность — постоянная дисперсия остатков. Нарушение (расширяющийся «конус» на графике остатков) → оценки коэффициентов остаются несмещёнными, но стандартные ошибки и p-value неверны.
- Нормальность остатков — нужна только для доверительных интервалов и тестов, не для самой оценки.
- Отсутствие мультиколлинеарности — иначе коэффициенты нестабильны и неинтерпретируемы (VIF > 10 — тревога).
Важное различие, которое ценят. Модель линейна по параметрам, а не по признакам. y = w₀ + w₁x + w₂x² — по-прежнему линейная регрессия. Поэтому полиномиальные признаки, сплайны и взаимодействия совместимы с линейной моделью.
Теорема Гаусса–Маркова: при выполнении предположений МНК-оценка является BLUE — лучшей линейной несмещённой оценкой (минимальная дисперсия среди линейных несмещённых). Нормальность для этого не требуется.
Вопрос: Как понять, что линейной модели недостаточно? — Посмотреть на график остатков от предсказаний: если видна структура (парабола, воронка, тренд), модель что-то не улавливает. Плюс сравнить с бустингом на тех же признаках: большой разрыв означает существенную нелинейность или взаимодействия.
18. Регуляризация: L1, L2, ElasticNet
Важность на собеседовании: 10/10
██████████🔥🔥🔥 Критично. «Чем L1 отличается от L2» — вопрос из абсолютного топа по частоте на РФ-собесах. Копают глубоко: почему именно L1 зануляет, байесовская интерпретация, что делать при коррелирующих признаках. Разжёвываю подробно.
Разбивка по подтемам:
| Подтема | Балл |
|---|---|
| Почему L1 зануляет: геометрия + градиент | 10/10 |
| L2 при коррелирующих признаках | 9/10 |
| Байесовская интерпретация (априор на веса) | 8/10 |
| Обязательное масштабирование, C = 1/λ | 8/10 |
| ElasticNet и когда он нужен | 7/10 |
| Другие способы регуляризации | 8/10 |
Идея. К потере добавляется штраф за величину весов: L_total = L_data + λ·R(w). λ управляет силой: больше λ → проще модель → выше bias, ниже variance.
L2 (Ridge): R = ‖w‖² = Σwᵢ². Веса сжимаются к нулю, но не становятся нулём. Хорошо работает при коррелирующих признаках: распределяет вес между ними поровну. Решение в замкнутом виде: w = (XᵀX + λI)⁻¹Xᵀy — добавка λI гарантирует обратимость даже при мультиколлинеарности.
L1 (Lasso): R = ‖w‖₁ = Σ|wᵢ|. Зануляет часть весов → автоматический отбор признаков, разреженная модель.
Почему именно L1 зануляет — два объяснения (нужны оба).
Геометрическое. Минимизация с ограничением — это поиск точки касания эллипсов уровня функции потерь с областью ограничения. Для L2 область — круг (гладкий, касание почти всегда в общей точке, где обе координаты ненулевые). Для L1 — ромб с острыми углами на осях координат. Касание с большой вероятностью происходит именно в углу, а угол = один из весов равен нулю.
Через градиент. Производная L2-штрафа 2λw стремится к нулю вместе с весом — сила «притяжения к нулю» ослабевает, и вес асимптотически приближается к нулю, не достигая его. Производная L1-штрафа λ·sign(w) постоянна по модулю независимо от величины веса. Пока градиент данных меньше λ, вес продавливается ровно в ноль и там остаётся.
ElasticNet: λ₁‖w‖₁ + λ₂‖w‖². Нужен, когда признаков больше, чем объектов, или есть группы сильно коррелирующих признаков: чистый Lasso в такой группе случайно выбирает один признак и обнуляет остальные (нестабильно между запусками), ElasticNet отбирает группу целиком.
Байесовский взгляд (см. тему 6): L2 = гауссов априор на веса, L1 = лапласов априор. Регуляризация — это формализованное убеждение «веса скорее малы».
Практические детали, о которых спрашивают:
- Масштабирование обязательно. Штраф зависит от величины весов, а вес обратно пропорционален масштабу признака. Без стандартизации регуляризация штрафует признаки неравномерно.
- Свободный член
w₀не регуляризуют — иначе модель искусственно смещается к нулю. - В
sklearnуLogisticRegressionпараметрC = 1/λ: меньше C — сильнее регуляризация (частая путаница на собесе). - Другие формы регуляризации — это тоже ответ на вопрос «как бороться с переобучением»: ранняя остановка, dropout, аугментация данных, ограничение глубины дерева, subsample/colsample в бустинге, weight decay, label smoothing, ансамблирование.
Вопрос: У вас 10 000 признаков и 500 объектов. Что берёте? — L1 или ElasticNet: нужен отбор признаков, потому что при d ≫ n модель без разреживающего штрафа переобучится идеально. ElasticNet предпочтительнее, если признаки коррелируют группами. Плюс обязательная кросс-валидация по λ и nested CV, если ещё и сравниваем модели.
19. Логистическая регрессия
Важность на собеседовании: 10/10
██████████🔥🔥🔥 Критично. Топ-3 по частоте вместе с метриками и бустингом. Регулярно просят вывести градиент на доске (см. тему 3). Копают глубоко: почему не MSE, что означают коэффициенты, как связано с линейной разделимостью.
Разбивка по подтемам:
| Подтема | Балл |
|---|---|
| Вывод градиента (см. тему 3) | 10/10 |
| Почему кросс-энтропия, а не MSE | 9/10 |
| Интерпретация коэффициентов через шансы | 8/10 |
| Калиброванность из коробки | 7/10 |
| Полная разделимость и уход весов в ∞ | 6/10 |
Модель: p(y=1|x) = σ(wᵀx), где σ(z) = 1/(1+e⁻ᶻ).
Почему сигмоида. Она отображает ℝ → (0,1) и, что важнее, вытекает из логит-преобразования: log(p/(1−p)) = wᵀx. То есть логрег — линейная модель в пространстве логарифмов шансов.
Интерпретация коэффициентов (это спрашивают). exp(wᵢ) — во сколько раз изменяются шансы (odds = p/(1−p)) при увеличении признака xᵢ на единицу. Не вероятность, а именно шансы. Например, w=0.7 → exp(0.7)≈2 — шансы удваиваются.
Потеря — логистическая (кросс-энтропия): L = −Σ[y log p + (1−y) log(1−p)]. Выпукла → единственный глобальный минимум.
Почему не MSE для классификации. Три причины: (1) с сигмоидой MSE невыпукла по весам → локальные минимумы; (2) градиент MSE содержит множитель σ'(z), который стремится к нулю при уверенно неправильном ответе — модель «замирает» именно там, где должна учиться быстрее всего; (3) кросс-энтропия — это MLE для Бернулли, то есть статистически корректная функция потерь.
Важные свойства:
- Даёт хорошо откалиброванные вероятности «из коробки» (в отличие от SVM, RF, наивного Байеса) — потому что обучается на правильном правдоподобии.
- Линейная граница решения. Нелинейность добавляется руками: полиномиальные признаки, взаимодействия, бинирование.
- Полная разделимость выборки — проблема: если классы разделимы линейно идеально, MLE уходит в бесконечность, веса растут неограниченно. Лечится регуляризацией (в
sklearnона включена по умолчанию,C=1.0). - Multiclass: one-vs-rest или softmax-регрессия (multinomial).
Вопрос: Почему логрег часто остаётся бейзлайном даже в 2026? — Он быстрый, интерпретируемый, даёт калиброванные вероятности, легко мониторится и не ломается на дрейфе так резко, как сложные модели. На разреженных текстовых признаках (TF-IDF) он до сих пор конкурентоспособен и обучается за секунды. Правильная стратегия — начинать с него как с бейзлайна и доказывать, что более сложная модель окупает свою стоимость.
20. SVM и ядровой трюк
Важность на собеседовании: 4/10
████░░░░░░🔥 Иногда. В 2026 SVM почти не используют в проде, и интервьюеры это знают. Спрашивают как проверку кругозора: «объясни идею максимального зазора» и «что такое kernel trick». Глубоко не копают, вывод двойственной задачи требуют крайне редко. Учить по минимуму.
Идея. Найти гиперплоскость, максимально удалённую от обеих групп точек. Ширина зазора 2/‖w‖, значит максимизация зазора = минимизация ‖w‖.
Опорные векторы — только те объекты, что лежат на границе зазора или нарушают его. Остальные на решение не влияют вообще: удалите их — модель не изменится. Это ключевое свойство и главный ответ на вопрос «чем SVM отличается от логрега».
Soft margin. Параметр C управляет компромиссом: большой C — жёсткий зазор, стремление классифицировать всё верно (риск переобучения); малый C — широкий зазор, допускаются нарушения (сильнее регуляризация). Обратите внимание: логика та же, что у C в логрегрессии.
Ядровой трюк (kernel trick). Решение зависит от данных только через скалярные произведения ⟨xᵢ,xⱼ⟩. Заменяем их на ядро K(xᵢ,xⱼ) = ⟨φ(xᵢ),φ(xⱼ)⟩ и получаем работу в пространстве высокой размерности без явного вычисления φ. Для RBF-ядра это пространство бесконечномерно, и всё равно всё считается.
- Линейное:
K = xᵀz— для текстов и больших разреженных данных. - RBF (гауссово):
K = exp(−γ‖x−z‖²)— универсальное.γбольшая → узкие «колокола» → переобучение. - Полиномиальное:
K = (xᵀz + c)^d.
Ограничения: сложность обучения между O(n²) и O(n³) — на больших данных неприменим; не даёт вероятностей напрямую (нужен Platt scaling); обязательно масштабирование признаков.
Вопрос: Почему SVM почти вытеснен? — На табличных данных бустинг лучше по качеству и линейно масштабируется; на текстах и картинках — нейросети. SVM остаётся нишевым: малые выборки высокой размерности, некоторые задачи биоинформатики.
21. kNN и метрики расстояния
Важность на собеседовании: 5/10
█████░░░░░🔥 Иногда как алгоритм, но 🔥🔥 часто в NLP-контексте — потому что векторный поиск в RAG это и есть kNN. Спрашивают связку «kNN → ANN → HNSW». Сам по себе kNN разбирают неглубоко.
Механика. Обучения нет («ленивый» алгоритм): запоминаем выборку, при предсказании ищем k ближайших и голосуем (классификация) или усредняем (регрессия). Предсказание O(n·d) — дорого.
Ключевые моменты:
- Масштабирование обязательно — иначе признак с большим размахом определяет расстояние целиком.
- Малое k → сложная изрезанная граница, высокий variance. Большое k → сглаживание, рост bias. k=1 идеально запоминает train (нулевая ошибка) и плохо обобщает.
- Проклятие размерности — главная проблема. В высоких размерностях расстояния между всеми парами точек становятся почти одинаковыми, понятие «ближайший» теряет смысл. Поэтому перед kNN делают снижение размерности, а эмбеддинги специально обучают так, чтобы близость была осмысленной.
Метрики расстояния: евклидово (L2), манхэттенское (L1, устойчивее в высоких размерностях), косинусное (для текстов — важна не длина вектора, а направление), Жаккар (множества), Хэмминг (бинарные/хешированные векторы).
Мост к NLP: векторный поиск в RAG — это kNN по эмбеддингам. Точный поиск O(n) не масштабируется на миллионы документов, поэтому используют приближённый поиск (ANN): HNSW, IVF, PQ (тема 60). То есть kNN никуда не делся — он переехал в векторные БД.
Вопрос: Почему для эмбеддингов обычно косинус, а не евклид? — Косинус игнорирует длину вектора и сравнивает только направление, что соответствует смыслу «семантической близости»: длина эмбеддинга часто отражает частотность или длину текста, а не содержание. На практике эмбеддинги нормируют, и тогда косинус эквивалентен скалярному произведению, а ранжирование по L2 совпадает с ранжированием по косинусу.
22. Наивный Байес
Важность на собеседовании: 3/10
███░░░░░░░⚪ Редко. Спрашивают почти исключительно как исторический бейзлайн классификации текстов или как проверку понимания формулы Байеса. Хватит определения, «наивного» предположения и сглаживания.
Модель: P(y|x) ∝ P(y)·Π P(xᵢ|y). «Наивность» — предположение об условной независимости признаков при известном классе.
Почему работает, хотя предположение заведомо ложно. Для классификации важен не точный расчёт вероятности, а правильный порядок классов по вероятности. Ошибки от нарушения независимости часто одинаково смещают все классы и не меняют argmax. При этом вероятности выходят плохо откалиброванными — обычно вырожденными к 0 или 1.
Сглаживание Лапласа: P(xᵢ|y) = (count + α)/(total + α·|V|). Без него одно невиданное слово обнуляет всё произведение. α=1 — классика.
Варианты: MultinomialNB (счётчики слов, тексты), BernoulliNB (бинарное присутствие слова), GaussianNB (непрерывные признаки).
Практика: на логарифмах, чтобы не терять точность на произведении малых чисел.
Вопрос: Где ещё живёт наивный Байес? — Быстрый бейзлайн классификации текстов, спам-фильтры, задачи с очень малой выборкой (обучается на десятках примеров), и как компонент в ансамблях. Обучается за миллисекунды — хороший «нулевой» ориентир перед тем, как тратить GPU.
Часть 5 из 17 конспекта для подготовки к собеседованиям на NLP/LLM-разработчика. Остальные части — в разделе «Собесы».
Оставить отзыв
Комментарии
Загрузка комментариев...
★ Оставить отзыв