Теория ML и DL: вопросы с разбором
Банк из 53 частых теоретических вопросов собеседования по классическому ML и глубокому обучению: короткий ответ на 1–2 минуты, частая ошибка кандидата и ссылка на урок курса. Ответы спрятаны — тренируйтесь вслух с таймером.
Зачем это нужно
Заголовок раздела «Зачем это нужно»На теоретической секции собеседования (остальные этапы — в уроке 11.3.1) задают 10–20 коротких вопросов: «что такое переобучение», «почему AUC, а не accuracy», «чем AdamW отличается от Adam». Темы вы прошли на ступенях 1–3. Но знать и ответить за полторы минуты вслух, без подсказки — разные навыки, и второй тренируется только повторением.
Здесь 53 частых вопроса по классическому ML и глубокому обучению. В каждом ответе три части: что сказать за 1–2 минуты, типичная ошибка кандидата и ссылка на урок курса с выводом и кодом. Ответы спрятаны — сначала отвечайте сами. Кластеризацию и PCA спрашивают реже: повторите их по уроку 2.3.2, а k-means вы напишете с нуля в уроке 11.3.4.
Как тренироваться
Заголовок раздела «Как тренироваться»flowchart LR
A["Прочитать вопрос"] --> B["Ответить вслух,<br/>таймер 1–2 минуты"]
B --> C["Раскрыть ответ<br/>и сравнить"]
C --> D{"Оценка 0 / 1 / 2"}
D -->|"2: полно, с примером"| E["Через неделю ещё раз"]
D -->|"0 или 1"| F["Записать в тетрадь ошибок,<br/>перечитать урок"]
F --> G["Повторить через 1, 3, 7 дней"]
E --> H["Карточки — на странице повторения"]
G --> H- Вслух и с таймером. Секундомер на 1–2 минуты, отвечайте так, будто перед вами интервьюер. Мысль, «понятная в голове», часто разваливается на втором предложении. Ещё лучше — записать себя на диктофон.
- Сначала без подсказки. Раскрыть ответ раньше — значит тренировать узнавание, а не вспоминание. Работает именно практика извлеченияпрактика извлеченияEN retrieval practiceВспоминать ответ самому, без подсказки, вместо того чтобы перечитывать. Одна из самых надёжных учебных техник; на ней стоят квизы, карточки и повторы тетради ошибок.: вспоминать трудно, и это усилие закрепляет знание.
- Честная оценка. 2 — суть, пример или число и ограничения. 1 — суть верна, но нет «почему». 0 — не знали или ошиблись. Всё с оценкой 0 или 1 — в свою тетрадь ошибоктетрадь ошибокEN mistake notebookКитайская школьная практика — переписывать каждую ошибку с правильным решением и регулярно к ней возвращаться. На сайте это страница «Тетрадь ошибок», куда сами попадают ошибки из квизов.: вопрос, что сказали, что надо было сказать. Ошибки квиза в конце урока попадут в тетрадь ошибок на сайте сами.
- Интервальное повторение. Важнейшие вопросы собраны в карточки. Отметьте урок пройденным, и они появятся на странице повторения.
Схема хорошего ответа: определение одной фразой → пример с числом → когда применяют → ограничения. Дальше почти всегда звучит уточнение: «а почему?», «а если данных мало?». Поэтому за каждым ответом стоит урок с выводом: кто понимает вывод, тот ответ на уточнение выведет сам.
Удобный темп — 12–15 вопросов за подход. На вторых проходах берите только вопросы из тетради ошибок.
Обобщение и регуляризация
Заголовок раздела «Обобщение и регуляризация»1. Что такое переобучение и как его заметить?
Ответ
ПереобучениепереобучениеEN overfitting — модель подогналась под шум обучающих данных: на train ошибка маленькая, на новых большая. Главный симптом — растущий разрыв между train и validation: train loss падает, а validation остановился и пошёл вверх. Пример из курса: полином 11-й степени на 12 точках проходит через каждую точку вместе с шумом и катастрофически ошибается на тесте. Лечение: больше данных, регуляризация, ранняя остановка, модель проще.
Частая ошибка: называть переобучением любую плохую ошибку на тесте. Плохо и на train — недообучение или баг; train и validation из разных распределений — сдвиг распределения.
Урок: 2.1.2
2. Что такое разложение на смещение и разброс (bias–variance)? Как оно помогает выбрать, что делать дальше?
Ответ
Для квадратичной ошибки ожидаемая ошибка в точке раскладывается на три слагаемых:
Смещение — насколько средняя по обучающим выборкам модель промахивается мимо истины. Разброс — насколько модели, обученные на разных выборках, отличаются друг от друга. — неустранимый шум. С ростом сложности смещение падает, разброс растёт, ошибка на тесте описывает U-кривую. Вывод для действий — по кривым обучения: train и validation сошлись на плохом уровне — это смещение, данные не помогут, нужна модель сложнее. Большой разрыв между ними — разброс: помогут данные, регуляризация, ансамбли.
Частая ошибка: назвать «tradeoff» без следствия для действий или считать U-кривую всей правдой: у больших нейросетей бывает двойной спускдвойной спускEN double descent.
Урок: 2.1.2
3. Чем L1-регуляризация отличается от L2? Почему L1 обнуляет веса?
Ответ
РегуляризациярегуляризацияEN regularization добавляет к loss штраф за сложность: L2 — , L1 — . Градиент L2 равен и слабеет у нуля: вес только приближается к нулю, каждый шаг умножает его на — отсюда weight decay. У L1 сила постоянна, : если вклад признака в уменьшение loss меньше , оптимум ровно в нуле, и L1 отбирает признаки. Вероятностный смысл: L2 — MAP-оценка с гауссовым априорным распределением весов, L1 — с лапласовым. выбирают по валидации.
Частая ошибка: штрафовать свободный член и забыть стандартизировать признаки. Штраф одинаков для всех весов, поэтому признак в тысячах и признак в долях единицы регуляризуются несопоставимо.
4. Какие ещё способы регуляризации вы знаете, кроме штрафа на веса?
Ответ
Больше данных и аугментация, ранняя остановкаранняя остановкаEN early stopping, dropout, ограничение сложности (глубина дерева, число параметров), ансамбли и шум в обучении. Ранняя остановка бесплатна: веса стартуют маленькими и не успевают подстроиться под шум (для линейных моделей это почти L2). Алгоритм: validation loss после каждой эпохи, сохранять лучший чекпоинт, после эпох без улучшения остановиться и откатиться к лучшему. У LLM при SFT главный рычаг того же рода — число эпох, обычно одна–три.
Частая ошибка: остановиться, но оставить веса последней эпохи, а не лучшей.
Валидация и утечки
Заголовок раздела «Валидация и утечки»5. Зачем три выборки — train, validation и test? Почему тест смотрят один раз?
Ответ
Train — подбирать веса, validation — выбирать модель и гиперпараметры, test — один раз измерить итог. Каждый раз, когда вы смотрите на тест и что-то меняете, вы немного подгоняете модель под него, и тест превращается в ещё одну валидацию с оптимистичной оценкой. На Kaggle это видно, когда открывается закрытая часть лидерборда: участники, подбиравшие решения по публичной части, падают на десятки мест. Для LLM то же самое: бенчмарк — это тест, а промпт и температуру подбирают на отдельной dev-части.
Частая ошибка: называть validation и test синонимами или выбирать порог классификации по тесту.
Урок: 2.4.4
6. Как устроена k-fold кросс-валидация? Когда нужны StratifiedKFold, GroupKFold и TimeSeriesSplit?
Ответ
Данные режут на частей (обычно 5 или 10), каждая один раз служит валидацией, модель учат на остальных , итог — среднее и разброс оценок. Схема должна повторять применение модели. Стратифицированная сохраняет доли классов — для дисбаланса. Групповая держит все строки клиента или пациента в одном фолде — если в будущем придут новые группы. Временная учит на прошлом и проверяет на следующем отрезке. В курсе неверная схема дала AUC 0.875 вместо честных 0.601 на группах и RMSE 1.73 вместо 6.08 на временном ряду.
Частая ошибка: случайный KFold на временном ряду или на данных с несколькими строками на клиента.
7. Что такое утечка данных? Приведите примеры.
Ответ
Утечка данныхутечка данныхEN data leakage — в обучение или выбор модели просачивается информация, которой не будет при реальном
применении. Пять видов: дубли теста в train; предобработка (нормализация, отбор признаков, пропуски) по всем данным
до разбиения; признак-следствие цели («дата расторжения» при прогнозе ухода); случайное разбиение временного ряда;
один пользователь в train и test. Пример из курса: 5000 признаков шума и случайные метки — отбор 20 признаков по
всем данным даёт по кросс-валидации 88% точности, честно — 44%. Защита — Pipeline: всё, что обучается, обучается
только на train-части фолда. Для LLM аналог — загрязнение бенчмарков.
Частая ошибка: считать главной утечкой стандартизацию по всем данным. На тысячах строк она почти безвредна; разрушительны признаки из будущего и неверная схема разбиения.
8. Как подбирать гиперпараметры? Почему лучшая оценка поиска оптимистична?
Ответ
Сетка перебирает все комбинации, случайный поиск — случайных точек. Случайный обычно лучше: важны 1–2 гиперпараметра, и 9 случайных попыток дают 9 значений learning rate против трёх у сетки 3×3. Масштабные параметры — по логарифмической шкале. Байесовская оптимизация (Optuna, TPE) выигрывает, когда попыток сотни и одно обучение дорогое. Максимум из 30 оценок — это ещё и та конфигурация, которой повезло на этих фолдах: в курсе 0.765 по CV превратилось в 0.747 на тесте. Поэтому в отчёт идёт тест или вложенная кросс-валидация.
Частая ошибка: сообщать лучшую оценку поиска как итоговое качество.
Урок: 2.4.4
9. Модель A на 0.01 лучше модели B по кросс-валидации. Это значимая разница?
Ответ
Смотреть надо на разброс: при std по фолдам 0.025 разница 0.01 сама по себе ничего не значит. Сравнивают на одних и тех же фолдах по парным разностям: в курсе разность «LightGBM − логрегрессия» имела среднее −0.040 при std 0.014, и LightGBM проиграл на 10 фолдах из 10. Для одного тестового набора нужен доверительный интервал (бутстрэп), а для двух моделей на одних примерах — парное сравнение. Оговорка: оценки по фолдам не независимы, формальные интервалы по ним слишком узкие.
Частая ошибка: сравнивать два средних «на глаз» или по разным разбиениям.
Метрики
Заголовок раздела «Метрики»10. Почему accuracy плоха при дисбалансе классов?
Ответ
Если положительных примеров 10%, константа «всегда нет» получает accuracy 0.90, ни разу не найдя нужный класс. Чем реже класс, тем ближе бесполезная константа к 100%. Accuracy годится, когда классы сбалансированы и ошибки одинаково дороги, например в тестах с выбором ответа вроде MMLU. При дисбалансе смотрят на precision, recall, F1 и PR-кривую, а начинают с матрицы ошибок.
Частая ошибка: не назвать бейзлайн. Сильный ответ всегда сравнивает метрику с константным классификатором.
Урок: 2.2.3
11. Что такое precision и recall? Когда что важнее и как выбрать порог?
Ответ
Precisionточность (precision)EN precisionTP / (TP + FP). У Чжоу Чжихуа термин буквально означает «доля точных среди найденного». — какая доля отобранного правильна. Recallполнота (recall)EN recallTP / (TP + FN). Recall — буквально «отозвать, вернуть»: та же метрика recall@k в поиске и RAG. — какую долю всех положительных нашли. Пример из курса: из 1000 страниц 100 математических, модель отметила 120, из них 80 верно: precision , recall . Что важнее, решает цена ошибки: спам-фильтру дорог FP (потерянное письмо), поиску уязвимостей — FN. Порог не обучают вместе с весами: его выбирают после обучения на валидации под требование вроде «максимальный recall при precision не ниже 0.9».
Частая ошибка: путать формулы или считать порог 0.5 законом природы.
Урок: 2.2.3
12. Почему F1 — гармоническое среднее, а не обычное? Что делать с несколькими классами?
Ответ
тянется к меньшему из двух чисел. Модель, нашедшая 2 из 100 нужных объектов без ошибок: , , среднее арифметическое 0.51, а — честно. при сильнее весит recall. Для классов считают «класс против остальных» и усредняют: macro — среднее по классам, редкий весит как частый; micro — сначала суммируют TP, FP, FN. При одной метке на пример micro-F1 равна accuracy, поэтому при дисбалансе честнее macro.
Частая ошибка: сообщать micro-F1 при сильном дисбалансе и считать, что модель хорошо работает на редких классах.
Урок: 2.2.3
13. Что означает ROC-AUC? Зависит ли он от порога и калибровки?
Ответ
ROC-AUCROC-AUC (площадь под ROC-кривой)EN ROC AUC (area under the ROC curve)Вероятность того, что случайный положительный пример получит скор выше случайного отрицательного. — площадь под кривой (FPR, TPR), которую рисуют, двигая порог от 1 к 0. Смысл: вероятность, что случайный положительный пример получит скор выше случайного отрицательного (ничья — половина пары). 0.5 — угадывание, 1.0 — идеальное ранжирование, меньше 0.5 — модель перепутала классы. AUC зависит только от порядка скоров: не от порога, не от калибровки и не от доли классов. Логиты и вероятности дают одинаковый AUC.
Частая ошибка: «AUC 0.8 — это 80% правильных ответов». Нет, это доля правильно упорядоченных пар.
Урок: 2.2.3
14. Положительных примеров 0.1%. ROC-AUC 0.98. Хорошая ли модель?
Ответ
Не обязательно. При миллионе отрицательных даже FPR 1% — это 10 000 ложных тревог на тысячу настоящих находок: precision около 9%. ROC-кривая этого не показывает, потому что FPR нормирован на огромное число отрицательных. При сильном дисбалансе смотрят PR-кривую (precision от recall) и площадь под ней — average precision, а также precision при нужном recall. Хороший ответ заканчивается вопросом к задаче: сколько ложных тревог в день готов разобрать человек.
Частая ошибка: считать AUC универсальной метрикой «для дисбаланса». Он нечувствителен к доле классов, и при редком классе это минус.
Урок: 2.2.3
15. MSE или MAE? Чем они отличаются по существу?
Ответ
MSE штрафует большие ошибки квадратично, MAE — линейно: один выброс в 3 секунды среди ошибок по 0.1 увеличил MAE в 6.8 раза, а MSE — в 120. Глубже: лучшая константа для MSE — среднее, для MAE — медиана; MSE — это MLE при гауссовом шуме. Важны редкие большие ошибки — MSE или RMSE (в единицах цели); нужна устойчивость к выбросам — MAE или квантили. Задержку инференса описывают перцентилями p50 и p99.
Частая ошибка: выбирать функцию по привычке, не спросив, что для задачи хуже — много мелких ошибок или одна большая.
16. Почему модель учат на loss, а оценивают по метрике? Почему не учить сразу на accuracy?
Ответ
Accuracy — ступенчатая функция весов: малый сдвиг весов не меняет ни одного ответа, градиент ноль. Loss — гладкий суррогат, который видит уверенность: две модели с accuracy 75% имеют cross-entropy 0.683 и 1.159, вторая один раз уверенно ошиблась. И метрику с порогом выбирает задача, а не математика. С LLM то же: претрейн минимизирует cross-entropy следующего токена, а модели сравнивают по бенчмаркам. Помните закон Гудхарта: мера, ставшая целью, перестаёт быть хорошей мерой.
Частая ошибка: сказать «потому что так принято», не упомянув дифференцируемость.
Урок: 2.2.3
17. Что такое калибровка вероятностей и что её ломает?
Ответ
Калибровка вероятностейкалибровка вероятностейEN probability calibrationСреди объектов с прогнозом p событие происходит примерно в доле p случаев. Проверяют кривой калибровки и Brier score; чинят изотонической регрессией или сигмоидой Платта. — среди объектов с прогнозом 0.3 должно быть около 30% положительных. Она нужна,
когда вероятность используют как число: «ожидаемые потери = вероятность × выручка». Проверяют кривой калибровки
(средний прогноз против реальной доли по корзинам) и Brier score — MSE между вероятностью и меткой. Частая поломка —
балансировка классов: с class_weight="balanced" в курсе средний прогноз стал 0.378 при реальной доле 0.194, а AUC
почти не изменился. Чинят изотонической регрессией или сигмоидой Платта по кросс-валидации.
Частая ошибка: считать, что высокий AUC означает хорошие вероятности. AUC видит только порядок.
Урок: 2.4.4
Линейные модели и их вероятностный смысл
Заголовок раздела «Линейные модели и их вероятностный смысл»18. Почему в линейной регрессии минимизируют сумму квадратов?
Ответ
Если шум гауссов, , , то минус логарифм правдоподобия выборки равен . Максимизировать правдоподобие — то же самое, что минимизировать MSE. Ещё квадрат гладкий, и для линейной модели MSE выпукла. Решение — нормальное уравнение или градиентный спуск. При тяжёлых хвостах шума лучше MAE или функция Хьюбера.
Частая ошибка: решать через inv(X.T @ X). Число обусловленности равно квадрату числа обусловленности
, и теряются знаки; lstsq работает с самой .
Урок: 2.2.1
19. Зачем стандартизировать признаки? Когда это не нужно?
Ответ
Признаки в разных масштабах превращают чашу loss в узкий овраг: шаг ограничен самым крутым направлением, и вдоль пологого спуск ползёт. В примере курса число обусловленности около 605 000 и миллион шагов, а после стандартизации — 31 шаг. Масштаб важен для kNN и k-means (расстояния), для регуляризации (одинаковый штраф) и для PCA. Деревьям и бустингу он не нужен: они сравнивают признак с порогом. Ещё может быть необратима из-за коллинеарных признаков: ridge-добавка это лечит.
Частая ошибка: считать и по всем данным, включая тест.
20. Почему логистическая регрессия — линейный классификатор? Что будет на линейно разделимых данных?
Ответ
, а : граница решения — гиперплоскость. XOR из четырёх точек она не разделит, нужны нелинейные признаки или скрытый слой. Норма весов — уверенность: умножьте и на 10, граница не сдвинется, а сигмоида станет почти ступенькой. На линейно разделимых данных loss можно уменьшать бесконечно, увеличивая , — веса уходят в бесконечность. Спасают L2-регуляризация и ранняя остановка.
Частая ошибка: называть её моделью регрессии, потому что так написано в названии.
Урок: 2.2.2
21. Как интерпретировать веса логистической регрессии?
Ответ
Модель утверждает, что логарифм шансов линейно зависит от признаков. Рост признака на единицу прибавляет к логиту, то есть умножает шансы в раз. При шансы растут в раза: было 4 к 1 (), стало 18 к 1 (). Сравнивать веса между собой можно, только если признаки стандартизованы и не сильно коррелируют.
Частая ошибка: говорить, что вероятность растёт на . Растёт логит, а вероятность — нелинейно.
Урок: 2.2.2
22. Почему логистическую регрессию учат на cross-entropy, а не на MSE?
Ответ
BCE — отрицательное лог-правдоподобие распределения Бернулли. Она выпукла по весам, и её градиент по логиту
сокращается до . MSE поверх сигмоиды невыпукла, а её градиент содержит множитель , который гасит
сигнал ровно при уверенной ошибке. При и градиент BCE , а MSE — ,
в 50 раз слабее. На практике loss считают по логиту (BCEWithLogitsLoss), чтобы не взять .
Частая ошибка: ответить «так принято» или передать в loss вероятности после сигмоиды вместо логитов.
23. Выведите градиент softmax + cross-entropy по логитам. Softmax или сигмоиды на каждый класс?
Ответ
, , и : «предсказание минус правда». Для и правильного второго класса , градиент . Softmax — когда класс ровно один: вероятности конкурируют и в сумме дают 1. Если классы не исключают друг друга (multi-label), берут независимых сигмоид с BCE. Перед экспонентой вычитают максимум, чтобы не получить переполнение.
Частая ошибка: применить softmax дважды — в модели и внутри CrossEntropyLoss, которая ждёт логиты.
Деревья и ансамбли
Заголовок раздела «Деревья и ансамбли»24. Как дерево решений выбирает разбиение?
Ответ
Жадно: в каждом узле перебирает признаки и пороги и берёт разбиение, после которого дети «чище». Нечистоту меряют энтропией (критерий — прирост информации) или индексом Джини — вероятностью, что два случайных примера узла разных классов. В узле 50/50 , в чистом 0. Оба критерия выбирают почти одинаковые деревья, Джини дешевле. Числовые признаки режут порогами посередине между соседними значениями. Регрессионное дерево выбирает разбиения по уменьшению MSE и отвечает средним в листе.
Частая ошибка: забыть, что прирост информации любит признаки с уникальными значениями (номер объекта); C4.5 нормирует его отношением прироста.
Урок: 2.3.1
25. Почему одиночное дерево переобучается и как его регуляризовать?
Ответ
Глубокое дерево доходит до примера на лист и даёт 100% на train. Разброс высокий: чуть другие данные — другое дерево. Регуляризация — ограничения на глубину, размер листа и выигрыш от разбиения, обрезка. Главное лекарство — ансамбль. Ещё ограничения: ответ кусочно-постоянный (тренд за пределы данных не продолжит), границы параллельны осям.
Частая ошибка: утверждать, что деревья не переобучаются, «потому что они простые».
Урок: 2.3.1
26. Чем бэггинг отличается от бустинга? Что уменьшает каждый?
Ответ
Бэггинг учит модели независимо, каждую на своей бутстрэп-выборке, и усредняет. Базовые деревья глубокие (низкое смещение), усреднение снижает разброс; добавление деревьев не вредит. Бустинг учит мелкие деревья последовательно, каждое исправляет ошибки ансамбля, и снижает смещение; при слишком многих деревьях переобучается, поэтому их число выбирают ранней остановкой. Бэггинг почти не требует настройки, у бустинга важны learning rate, глубина и число деревьев.
Частая ошибка: говорить «бустинг — это много деревьев, как лес». Принцип противоположный.
Урок: 2.3.1
27. Откуда в случайном лесе случайность и зачем она?
Ответ
Два источника: бутстрэп-выборка для каждого дерева (в неё попадает около уникальных примеров, остальные — бесплатная out-of-bag валидация) и случайное подмножество признаков в каждом узле (обычно для классификации). Зачем — видно из формулы разброса среднего моделей с попарной корреляцией :
Второе слагаемое гасится числом деревьев, первое — только снижением корреляции. При и 100 деревьях разброс 0.307, но не ниже 0.3. Случайные признаки делают деревья непохожими и снижают .
Частая ошибка: не назвать вторую случайность — по признакам. Без неё это просто бэггинг деревьев.
Урок: 2.3.1
28. Почему градиентный бустинг называется градиентным? На что учится дерево в классификации?
Ответ
Градиентный бустингградиентный бустингEN gradient boosting (GBDT)Реализации — XGBoost, LightGBM, CatBoost. — градиентный спуск в пространстве функций. Предсказания на примерах — вектор ; новое дерево приближает антиградиент loss по нему и обобщает «куда двигаться» на новые . Для MSE антиградиент — остаток , для MAE — знак остатка, для log-loss — , . Значения листьев для log-loss — шаг Ньютона: сумма антиградиентов на сумму . Шаг ансамбля : малый требует больше деревьев, но приходит ниже; число деревьев выбирают ранней остановкой.
Частая ошибка: говорить, что каждое дерево учится на остатках, — это верно только для MSE.
Урок: 2.4.3
29. Чем отличаются XGBoost, LightGBM и CatBoost?
Ответ
XGBoost — регуляризованная цель второго порядка: вес листа , разбиение — только при
выигрыше больше ; рост по уровням. LightGBM — гистограммы вместо перебора всех порогов (до 255 корзин), рост
по листьям (главный параметр — num_leaves), GOSS и EFB. CatBoost (Яндекс) —
симметричные деревья и ordered boosting: статистики по категориям и остатки считаются только по «прошлым» примерам
случайной перестановки, это защищает от утечки цели. Все три умеют пропуски NaN без заполнения.
Частая ошибка: перебирать n_estimators сеткой вместо ранней остановки по валидации.
Урок: 2.4.3
30. Как узнать, какие признаки важны для модели? Какие здесь ловушки?
Ответ
Три вида важность признаковважность признаковEN feature importanceSplit — число разбиений по признаку, gain — суммарное уменьшение потери, permutation — рост ошибки на валидации при перемешивании признака. Описывает модель, а не причинность.: split (сколько раз признак использовался), gain (насколько уменьшился loss) и перестановочная (насколько вырастет ошибка на валидации, если перемешать признак). Split обманывает: шумные признаки можно делить сотни раз с крошечной пользой. Коррелированные копии делят важность между собой. Для объяснения одного прогноза — SHAPSHAP (значения Шепли)EN SHAP (Shapley additive explanations)Вклад каждого признака в конкретный прогноз по теории игр: базовое значение плюс сумма вкладов равно прогнозу. Для деревьев — точный алгоритм TreeSHAP.: значения Шепли складываются с базовым значением ровно в прогноз. Главное: важность описывает модель, а не мир, и не доказывает причинность.
Частая ошибка: считать перестановочную важность на train, а не на валидации.
Урок: 2.4.3
31. Для табличных данных что вы возьмёте первым — нейросеть или бустинг? Почему?
Ответ
Бустинг. На таблицах среднего размера деревья остаются сильнейшими (Гринштайн и соавторы, 2022, 45 датасетов). Причины — индуктивные смещения: цель в таблицах часто меняется скачками, а нейросети тяготеют к гладким функциям; бесполезные признаки мешают нейросети, а дерево их не выберет. Плюс практичность: пропуски и смешанные типы без предобработки, секунды на CPU, SHAP. Но сначала — простой бейзлайн: в курсе логистическая регрессия обыграла LightGBM, потому что данные были порождены логистической моделью.
Частая ошибка: не назвать бейзлайн и сразу предлагать самое сложное.
Градиентный спуск и оптимизаторы
Заголовок раздела «Градиентный спуск и оптимизаторы»32. Что будет, если learning rate слишком большой или слишком маленький?
Ответ
Для чаши шаг умножает на : спуск сходится при , идеален при
и расходится при . Чем круче функция, тем меньше допустимый шаг, а при нескольких
параметрах шаг ограничен самым крутым направлением. Маленький lr — loss падает мучительно медленно; большой —
скачет, растёт или становится nan, а в сетях с ReLU появляются мёртвые нейроны. Подбирают по логарифмической
сетке.
Частая ошибка: не связать предел шага с кривизной; ответ «надо подобрать» без механизма слаб.
33. Чем отличаются полный градиентный спуск, SGD и мини-батч?
Ответ
Полный спуск считает точный градиент по всем данным — слишком дорого. SGD берёт один пример, мини-батч — примеров. Оценка несмещённая, а её стандартное отклонение падает как : учетверили батч — шум вдвое меньше. Мини-батч — компромисс: шагов много, шум умеренный, а примеров считаются на GPU параллельно почти за время одного. Шум даже полезен: помогает уходить с седловых точек и плато. В больших сетях седла важнее плохих локальных минимумов.
Частая ошибка: говорить, что больший батч всегда лучше. Шагов на эпоху становится меньше, а выигрыш в шуме — лишь корень.
Урок: 1.4.1
34. Как работает momentum и зачем он нужен?
Ответ
, . В овраге вдоль дна градиент всё время указывает в одну сторону, и скорость копится до : при шаг в 10 раз длиннее. Поперёк оврага знак чередуется, и вклады гасят друг друга. Так momentum ускоряет спуск по пологим направлениям, не раскачивая крутые. Идея Бориса Поляка (1964), «метод тяжёлого шарика».
Частая ошибка: не заметить, что в учебниках встречается EMA-запись , где learning rate другой по масштабу.
Урок: 1.4.2
35. Как устроен Adam? Зачем поправка смещения?
Ответ
AdamAdamEN Adam (adaptive moment estimation)Momentum + RMSProp + поправка смещения. Стандартный оптимизатор нейросетей с 2015 года. хранит для каждого параметра EMA градиента (направление, ) и EMA квадрата (масштаб, , у LLM обычно 0.95) и шагает на . Поправка компенсирует старт с нуля: без неё первая сотня шагов была бы в 3–6.5 раза длиннее. Шаг порядка при любом масштабе градиента (на первом шаге ровно ): lr в Adam — «насколько может сдвинуться вес за шаг». Цена — два числа на параметр: для 7B в FP32 это 56 ГБ только на состояние.
Частая ошибка: считать, что Adam «сам подбирает learning rate» и lr можно не настраивать.
Урок: 1.4.2
36. Чем AdamW отличается от Adam с L2-штрафом?
Ответ
В Adam с L2 слагаемое попадает в градиент и делится на . Вес с большими градиентами
почти не регуляризуется, а слабо обновляемый сжимается изо всех сил — разница в примере курса стократная. AdamW
вычитает затухание отдельно: , и
оно одинаково для всех весов. В PyTorch это Adam(weight_decay=…) против AdamW(weight_decay=…). Для LLM типичный
; к смещениям и весам нормализаций его не применяют.
Частая ошибка: сказать, что это одно и то же. Для SGD — да, для адаптивных методов — нет.
37. Зачем разогрев learning rate и косинусный спад?
Ответ
В начале веса случайны, градиенты хаотичны, а оценка в Adam построена по считанным шагам: полный lr может взорвать обучение. Поэтому первые сотни или тысячи шагов lr линейно растёт до пика (у DeepSeek-V3 — 2000 шагов). В конце шум мини-батчей заставляет параметры дрожать вокруг минимума; уменьшение шага гасит дрожание, и loss в фазе спада заметно падает. Популярен косинус от пика до 10% пика. Post-Norm трансформеры без разогрева часто вообще не обучаются.
Частая ошибка: вызывать sched.step() до opt.step() или забыть, что расписание считается в шагах, а не в эпохах.
Урок: 1.4.2
Обратное распространение
Заголовок раздела «Обратное распространение»38. Что такое backprop и почему градиент считают «с конца»?
Ответ
Backpropобратное распространение ошибкиEN backpropagation — цепное правило, применённое к вычислительному графу в обратном порядке. Loss — одно число, параметров — миллионы. Цепное правило — произведение якобианов слоёв; если перемножать с конца, каждый раз умножается вектор на матрицу, и один проход даёт производные по всем параметрам. Прямой режим протаскивал бы производную по одному входу и повторялся бы раз. Численный градиент — прямых проходов: для 7B это 14 млрд проходов на шаг.
Частая ошибка: путать backprop (способ посчитать градиент) с градиентным спуском (способ им воспользоваться).
39. Сколько стоит обратный проход по сравнению с прямым? Чем за него платят?
Ответ
Для линейного слоя прямой проход стоит FLOPs, обратный — два умножения той же формы: и . Обратный ≈ два прямых, шаг ≈ три. Отсюда правило бюджета LLM: FLOPs на токен; 7B-модель на 1 трлн токенов — около FLOPs. Платят памятью: все промежуточные активации хранятся до обратного прохода, и при длинном контексте они больше весов. Экономят пересчётом (activation checkpointing): меньше памяти за счёт лишних вычислений.
Частая ошибка: не упомянуть память на активации — это главный ограничитель на практике.
Урок: 3.1.2
40. Как проверить, что градиенты посчитаны правильно?
Ответ
Градиентной проверкой: сравнить аналитический градиент с численным по центральной разности , ошибка которой пропорциональна . Сравнивают относительную ошибку: меньше — верно, больше — почти наверняка баг. Правила: float64, , маленькая сеть и маленький батч, осторожно с изломом ReLU, вернуть параметр на место.
Частая ошибка: проверять в float32 или сравнивать абсолютную разницу.
Урок: 3.1.2
41. Почему градиенты накапливаются, и зачем zero_grad()?
Ответ
Если величина влияет на loss по нескольким путям, её производная — сумма по путям. Поэтому _backward пишет +=:
для получится 2, а не 1. Так устроены веса в батче, общие веса по позициям трансформера, остаточные
связи. Обратная сторона: .grad копит всё, что в него добавили, и без opt.zero_grad() градиенты прошлых шагов
складываются с новыми. Это же свойство используют намеренно: накопление градиентов по нескольким микробатчам
заменяет большой батч, когда не хватает памяти.
Частая ошибка: забыть zero_grad() — loss ведёт себя странно, а ошибки в коде не видно.
Инициализация и нормализация
Заголовок раздела «Инициализация и нормализация»42. Почему веса нельзя инициализировать нулями?
Ответ
Нейроны одного слоя с одинаковыми весами получают одинаковые градиенты и остаются копиями друг друга навсегда — симметрия не нарушается, и слой из 256 нейронов работает как один. Поэтому веса берут случайными со средним 0. Масштаб тоже важен: каждый слой умножает дисперсию сигнала на . При std 1 и это 512, и tanh насыщается; при std 0.01 сигнал к 10-му слою падает до .
Частая ошибка: ответить только про симметрию и не сказать про масштаб.
43. Чем инициализация Xavier отличается от Kaiming?
Ответ
Обе держат дисперсию сигнала постоянной от слоя к слою. Xavier: — компромисс между прямым и обратным проходом; вывод предполагает, что активация у нуля похожа на тождество (tanh). ReLU обнуляет половину сигнала, поэтому Kaiming удваивает дисперсию: , для std 0.0625. В сети из 30 слоёв с ReLU при Xavier std активаций к последнему слою , при Kaiming — около 0.66. В трансформерах берут std 0.02 и уменьшают выходные проекции в раз.
Частая ошибка: думать, что nn.Linear по умолчанию инициализирует по Kaiming для ReLU. Его std —
в 2.4 раза меньше нужного.
Урок: 3.4.1
44. Как работает BatchNorm и чем опасен?
Ответ
BatchNormпакетная нормализация (BatchNorm)EN batch normalizationНормирует каждый признак по примерам батча, хранит скользящие статистики для инференса (Ioffe, Szegedy, 2015). Стандарт CNN; в LLM не используется. нормирует каждый признак по примерам батча, затем применяет обучаемые и ;
он позволил обучать глубокие CNN с большим lr. Минусы: выход примера зависит от соседей по батчу; на маленьких батчах статистика
шумит; обучение и инференс различаются — при обучении он копит скользящие средние и использует их в model.eval().
Для LLM он не подходит ещё и потому, что статистика по позициям включала бы будущие токены.
Частая ошибка: забыть model.eval() перед валидацией.
Урок: 3.4.1
45. LayerNorm, RMSNorm, Pre-Norm и Post-Norm — что выбирают в LLM и почему?
Ответ
LayerNormнормализация слояEN layer normalization нормирует вектор одного токена по его признакам: вычитает среднее и делит на std. RMSNormRMSNorm (нормализация по среднеквадратичному)EN root mean square layer normalization (RMSNorm)x / sqrt(mean(x²) + ε) · g — LayerNorm без вычитания среднего и без сдвига β (Zhang, Sennrich, 2019). Стандарт Llama, Qwen, DeepSeek, MiniMind. не центрирует и не сдвигает: делит на — дешевле, качество то же; так делают Llama, Qwen, DeepSeek. Pre-Norm оставляет чистый остаточный путь, и градиент проходит по «трассе» тождества; Post-Norm глубоких сетей без разогрева разваливается. Поэтому почти все LLM — Pre-Norm с финальной нормой перед LM-головой.
Частая ошибка: путать, по какой оси нормирует LayerNorm и по какой BatchNorm.
Урок: 3.4.1
Dropout, остаточные связи и затухающие градиенты
Заголовок раздела «Dropout, остаточные связи и затухающие градиенты»46. Как работает dropout? Что происходит на инференсе?
Ответ
Dropoutдропаут (dropout)EN dropoutНа обучении каждая активация обнуляется с вероятностью p, остальные умножаются на 1/(1 − p); на инференсе слой ничего не делает. В претрейне современных LLM обычно p = 0. на обучении обнуляет каждую активацию с вероятностью , а выжившие умножает на , чтобы
среднее не изменилось: при — на 1.33. На инференсе он выключен. Интуиции: нейроны не могут «сговориться»,
а обучение похоже на ансамбль прореженных подсетей с общими весами. В претрейне современных LLM dropout обычно 0:
модель недообучена, и он только выбрасывает сигнал. При дообучении на маленьких данных он снова полезен
(lora_dropout).
Частая ошибка: забыть про масштаб или оценивать модель в режиме train().
Урок: 3.4.2
47. Зачем нужны остаточные связи?
Ответ
Глубокая «обычная» сеть может учиться хуже мелкой даже на train — проблема деградации: оптимизатору трудно сделать стопку нелинейных слоёв тождеством. В блоке для тождества достаточно . Через градиенты: , и градиент проходит блок без затухания: произведение множителей заменяется суммой. В курсе 32-слойная сеть без остатков застряла на loss , с остатками решила задачу. В трансформере это остаточный поток — общая шина, в которую подслои дописывают поправки.
Частая ошибка: говорить, что ResNet лечит переобучение. Он лечит оптимизацию.
Урок: 3.4.2
48. Что такое затухающие и взрывающиеся градиенты? Как с ними бороться?
Ответ
Градиент первого слоя — произведение множителей от всех слоёв выше. Множитель меньше 1 — затухание градиентовзатухание градиентовEN vanishing gradientsГрадиент первых слоёв — произведение множителей всех слоёв выше; если они меньше 1, он экспоненциально уменьшается с глубиной (0.9⁵⁰ ≈ 0.005), и нижние слои перестают учиться.:
у сигмоиды производная не больше 0.25, и через 10 слоёв остаётся . Больше 1 — взрыв и
nan. Лекарства: ReLU вместо сигмоиды, инициализация Kaiming/Xavier, нормализация, остаточные связи, LSTM для
последовательностей и обрезка градиентаобрезка градиента (gradient clipping)EN gradient clippingЕсли норма градиента больше порога, градиент масштабируют до порога: clip_grad_norm_(params, 1.0). Стандарт в обучении LLM. против взрыва. У ReLU своя беда — мёртвые нейроны: если вход
всегда отрицателен, выход и градиент нулевые навсегда. В курсе при lr = 1 мёртвыми стали 75% нейронов.
Частая ошибка: предлагать клиппинг против затухания. Он ограничивает только слишком большие градиенты.
49. Сеть не учится. Что вы проверите в первую очередь?
Ответ
По порядку. Вход: формы, dtype, метки совпадают с примерами. Loss на старте около : 0.69 для двух классов, 2.30 для десяти, 11.93 для словаря Qwen. Затем переобучить один батч: если
даже 32 примера не запоминаются, баг в модели, loss или оптимизаторе (забытый zero_grad, softmax дважды, не та ось).
Дальше — lr: loss растёт или nan — уменьшить в 3–10 раз. Следить за нормой градиента и отношением «обновление / вес»
около .
Частая ошибка: сразу крутить гиперпараметры, не проверив конвейер на одном батче.
Урок: 3.3.3
CNN и RNN
Заголовок раздела «CNN и RNN»50. Почему для изображений свёртка лучше полносвязного слоя?
Ответ
Картинка 224×224×3 — это 150 528 чисел; полносвязный слой на 1000 нейронов — 150 млн весов. Свёртка встраивает две
подсказки: локальность (смысл в соседних пикселях) и разделение весов (одно ядро во всех позициях), отсюда
эквивариантность к сдвигу. У Conv2d(3, 64, 3) всего параметра. Это сильное
индуктивное смещение: CNN нужно меньше данных, а ViT без такой подсказки выигрывает на больших данных.
Частая ошибка: говорить, что свёртка инвариантна к сдвигу. Она эквивариантна; инвариантность дают пулинг и глобальное усреднение.
Урок: 3.4.3
51. Посчитайте размер выхода свёртки и рецептивное поле. Почему VGG ставит три свёртки 3×3 вместо одной 7×7?
Ответ
. Первый слой ResNet (, , ) переводит 224 в . Две свёртки 3×3 подряд видят 5×5, три — 7×7; шаги и пулинг растят поле быстрее. Три свёртки 3×3 видят столько же, сколько одна 7×7, но весов на пару каналов вместо 49 (на 45% меньше), а нелинейностей три вместо одной.
Частая ошибка: забыть padding в формуле или думать, что параметры свёртки растут с размером картинки. Растут вычисления — пропорционально площади карты.
52. Почему простая RNN плохо помнит длинный контекст и как это решает LSTM?
Ответ
Градиент от шага к шагу — произведение множителей с одной и той же матрицей: при множителе 0.9 через 100 шагов остаётся , при 1.1 — около 14 000. LSTMLSTM (долгая краткосрочная память)EN long short-term memory (LSTM)RNN с ячейкой памяти c_t и тремя гейтами (Hochreiter, Schmidhuber, 1997). Ячейка обновляется сложением c_t = f·c_{t−1} + i·g — «остаточная связь во времени». добавляет ячейку памяти, которая обновляется сложением: . Производная по прямому пути — гейт забывания , без и ; при это остаточная связь во времени. Цена — вчетверо больше параметров. GRU — упрощение с двумя гейтами.
Частая ошибка: говорить, что LSTM решает и взрыв градиентов. Против взрыва по-прежнему нужен клиппинг.
Урок: 3.4.3
53. Почему трансформер вытеснил RNN?
Ответ
Два свойства self-attention: все позиции считаются параллельно (последовательных шагов против у RNN), и любой токен смотрит на любой напрямую (длина пути против ). Первое загружает GPU большими умножениями матриц, второе убирает затухание на длинных расстояниях. Цена — вычислений и памяти по длине, с которой борются на ступени 5. У RNN было сильное смещение «порядок и свежесть», у трансформера его почти нет — ему нужно больше данных.
Частая ошибка: «attention лучше понимает смысл». Конкретнее — параллельность и короткий путь.
Проверь себя
Заголовок раздела «Проверь себя»Квиз — тренажёр на те же темы, но с другими числами. Ошибки сами попадут в тетрадь ошибок.
- Теоретическая секция проверяет рассуждение: определение, пример с числом, когда применять, ограничения. Уточнение «почему?» выдерживает только тот, кто знает вывод.
- В классическом ML чаще всего спрашивают о bias–variance, регуляризации, утечках и валидации, метриках при дисбалансе, вероятностном смысле линейных моделей, бэггинге и бустинге.
- В DL — о backprop и его цене, Adam и AdamW, инициализации и нормализации, dropout, остаточных связях, затухании градиентов, CNN и RNN.
- Тренируйтесь вслух с таймером, сначала без подсказки; ошибки — в тетрадь ошибок, важное — в карточки. Сборники «багу» — список вопросов, а не ответов.
Дальше: урок 11.3.3 — такой же банк по LLM: токенизация, внимание, KV-кэш, MoE, масштабирование, пост-трейнинг, инференс, RAG и агенты, плюс пять задач на оценку памяти и вычислений.