Линейные модели и оптимизация
Линейная регрессия, регуляризация (L1/L2/Elastic Net), аналитическое решение МНК и его подводные камни, градиентные методы оптимизации.
30 вопросов
JuniorТеорияОчень частоКакие допущения делает линейная регрессия и какое из них обесценивает её p-значения?
Какие допущения делает линейная регрессия и какое из них обесценивает её p-значения?
Линейность по параметрам, независимость ошибок, постоянная дисперсия, нормальные остатки. Гетероскедастичность или коррелированные ошибки не смещают коэффициенты, но ломают формулу стандартных ошибок, и p-значения неверны.
Типичные ошибки
- ✗Требуют нормальности самих признаков вместо остатков
- ✗Считают все допущения одинаково критичными и для прогноза, и для вывода
- ✗Не знают, что робастные стандартные ошибки чинят вывод при гетероскедастичности
Уточняющие вопросы
- →Почему центральная предельная теорема делает допущение нормальности мягким на больших выборках?
- →Какое допущение первым ломается на временных рядах и что это делает с выводом?
JuniorТеорияОчень частоКак читается один коэффициент линейной регрессии и когда такое чтение ломается?
Как читается один коэффициент линейной регрессии и когда такое чтение ломается?
Это изменение цели, когда признак растёт на единицу, а остальные признаки зафиксированы. Коррелированные признаки делают коэффициенты неустойчивыми, вплоть до смены знака, а разные шкалы делают величины несравнимыми до стандартизации.
Типичные ошибки
- ✗Считать, что наибольший коэффициент указывает на самый важный признак: коэффициент считается на единицу признака, и переход от метров к миллиметрам уменьшает его в 1000 раз; сначала стандартизируйте.
- ✗Ждать, что коэффициенты коррелированных признаков устойчивы: когда два признака меняются вместе, модель может перекладывать вес между ними, и их коэффициенты скачут и меняют знак.
Уточняющие вопросы
- →Почему штраф на немасштабированных колонках сильнее всего бьёт по признакам малого масштаба?
- →О чём говорит раздутая дисперсия коэффициента для пары коррелированных колонок?
JuniorТеорияОчень частоПочему бинарную метку моделируют логистической регрессией, а не линейной?
Почему бинарную метку моделируют логистической регрессией, а не линейной?
Линейная подгонка не ограничена, поэтому даёт вероятности меньше нуля или больше единицы и перекашивается далёкими точками. Логистическая регрессия сжимает счёт через sigmoid в модель логарифма шансов и учится на выпуклой log-loss.
Типичные ошибки
- ✗Читают сырой линейный счёт как вероятность без всякого ограничения
- ✗Считают, что log-loss выбран для удобства, а не ради выпуклости
- ✗Полагают, что квадратичная ошибка поверх sigmoid обучается так же хорошо
Уточняющие вопросы
- →Что предсказывает линейная часть модели в шкале логарифма шансов?
- →Почему квадратичная ошибка поверх sigmoid обнуляет градиент при уверенно неверном предсказании?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
1.87 0.8
Открыть задачу →Типичные ошибки
- ✗Ждать
-1.87 -0.8:w - lr * dwделает шаг против градиента; приw = b = 0все прогнозы ниже целей, поэтомуdwиdbотрицательны и оба параметра растут. - ✗Ждать
18.67 8.0: шаг — это градиент, умноженный наlr, поэтому градиенты-18.67и-8.0уменьшаются в десять раз, прежде чем их вычитают.
Уточняющие вопросы
- →Что произойдёт с
wза много шагов, если задать здесь скорость обученияlrравной 1.0? - →Почему в начальной точке
w = 0,b = 0оба градиента отрицательны?
JuniorТеорияЧастоКакие модификации градиентного спуска ты знаешь?
Какие модификации градиентного спуска ты знаешь?
Варианты: SGD с momentum (накапливает прошлые градиенты), AdaGrad (свой шаг на параметр), RMSProp (AdaGrad со скользящим средним против затухания шага), Adam (momentum + RMSProp) и Adan. Различаются способом адаптации шага и сглаживания направления градиента.
Типичные ошибки
- ✗Путают варианты оптимизатора с приёмами регуляризации
- ✗Думают, что Adam не связан с momentum и RMSProp, а не объединяет их
- ✗Считают RMSProp и AdaGrad несвязанными, хотя RMSProp уточняет AdaGrad
Уточняющие вопросы
- →Что momentum добавляет к обычному SGD?
- →Почему RMSProp устраняет проблему затухающего шага AdaGrad?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
0 1
Открыть задачу →Типичные ошибки
- ✗Ждать
0 0: штраф L1 вLassoделает ровно нулевым коэффициент второго столбца, который не помогает предсказатьy. - ✗Ждать
1 1: штраф L2 вRidgeтянет все коэффициенты к нулю, но ровно нулевым не делает ни один.
Уточняющие вопросы
- →Что произойдёт с первым коэффициентом
Lasso, если и дальше увеличиватьalpha? - →Почему признаки нужно масштабировать до того, как применять любой из штрафов?
JuniorТеорияЧастоКак на практике обычно решают задачу линейной регрессии?
Как на практике обычно решают задачу линейной регрессии?
На умеренных данных — прямым решением МНК через QR или SVD, без явного обращения матрицы; так делает LinearRegression в sklearn. Когда данные не влезают в память, в ход идут градиентные методы: полный GD берёт все объекты на шаге, SGD — один объект или мини-батч и масштабируется лучше всех.
Типичные ошибки
- ✗Явно обращают матрицу из нормального уравнения вместо решения МНК через QR или SVD
- ✗Не различают полный GD и стохастический/мини-батчевый SGD
- ✗Думают, что SGD — лишь приближение на случай, когда GD недоступен
Уточняющие вопросы
- →Почему солверы используют QR или SVD, а не явно обращают X-транспонированное-на-X?
- →Когда мини-батчевый SGD предпочтительнее полного GD?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
2.0 1.0
Открыть задачу →Типичные ошибки
- ✗Ждать
2.0 6.0: свободный член равенy.mean() - w * x.mean(), то есть из среднегоyвычитается наклон, умноженный на среднееx:6.0 - 2.0 * 2.5 = 1.0. - ✗Ждать
2 1, раз вxиyцелые числа:.mean()всегда возвращает float, поэтомуwиb— числа float и печатаются как2.0и1.0.
Уточняющие вопросы
- →Какими станут
wиb, если сдвинуть все значенияyвверх на 10? - →Почему эта формула наклона ломается, когда все значения
xодинаковы?
JuniorТеорияЧастоЧто означает коэффициент 0.7 при признаке в логистической регрессии?
Что означает коэффициент 0.7 при признаке в логистической регрессии?
Каждая единица роста признака при прочих равных добавляет 0.7 к логарифму шансов положительного класса, то есть шансы умножаются на exp(0.7) ≈ 2. Насколько сдвинется вероятность, зависит от точки на сигмоиде.
Типичные ошибки
- ✗Читать коэффициент как постоянный сдвиг вероятности: он линеен в log-odds, а сигмоида выполаживается у 0 и 1, поэтому сильнее всего шаг сдвигает вероятность около 0.5.
- ✗Считать коэффициент множителем вероятности:
exp(coef)умножает шансы p/(1−p), и постоянным на единицу признака остаётся только это отношение.
Уточняющие вопросы
- →Как стандартизация признака меняет величину его коэффициента и его прочтение?
- →Что отрицательный коэффициент делает с шансами, и чему равна его экспонента?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
0.02 1
Открыть задачу →Типичные ошибки
- ✗Ждать
0.98: столбцыpredict_probaидут в порядкеmodel.classes_, поэтому в столбце0лежит вероятность класса0, а класс1— в столбце1. - ✗Ждать, что
predictвернёт вероятность: он возвращает метку, здесь1, потому что вероятность класса1больше 0.5.
Уточняющие вопросы
- →Как получить вероятность класса
1для каждой строкиX_test? - →Что хранит
model.classes_и как он задаёт порядок столбцов?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
0.5 0.95
Открыть задачу →Типичные ошибки
- ✗Ждать
0.0при нулевом счёте: сигмоида от0равна1 / (1 + 1) = 0.5— точке, где модель считает оба класса равновероятными. - ✗Ждать
0.05при счёте3: сnp.exp(-z)в знаменателе положительный счёт даёт вероятность больше 0.5;0.05получилось бы только сnp.exp(z).
Уточняющие вопросы
- →При каком
xвероятность равна ровно 0.5, еслиw = 2.0иb = -3.0? - →Почему выход сигмоиды можно читать как вероятность при любом счёте?
JuniorТеорияЧастоКак обменять точность (precision) на полноту (recall) у уже обученной логистической регрессии?
Как обменять точность (precision) на полноту (recall) у уже обученной логистической регрессии?
predict относит строку к положительному классу, когда predict_proba больше 0.5. Если снизить порог, помеченных строк станет больше: полнота растёт или не меняется, точность обычно падает, а переобучать модель не нужно.
Типичные ошибки
- ✗Переобучать модель ради другого баланса точности и полноты: вероятность для каждой строки уже есть, и сдвиг порога на
predict_probaменяет баланс без новогоfit. - ✗Менять
C, чтобы сдвинуть полноту:Cзадаёт силу регуляризации и меняет веса, а не порог 0.5, который превращает вероятности в метки.
Уточняющие вопросы
- →Как выбрать новый порог так, чтобы не подогнать его под тестовую выборку?
- →Почему снижение порога никогда не уменьшает полноту, но на некоторых данных может поднять точность?
JuniorТеорияЧастоЧто наивного в наивном байесовском классификаторе и почему он всё равно хорошо классифицирует?
Что наивного в наивном байесовском классификаторе и почему он всё равно хорошо классифицирует?
Он считает признаки независимыми внутри каждого класса, хотя реальные признаки редко такие. Он всё равно хорошо классифицирует, ведь важен лишь лучший класс: двойной учёт делает вероятности крайними, но редко меняет победителя.
Типичные ошибки
- ✗Считать наивностью нормальное распределение признаков (колокол вокруг среднего): это лишь выбор
GaussianNBдля непрерывных данных, а независимость признаков внутри класса предполагает любой вариант. - ✗Ждать, что ложное допущение испортит предсказания: оно сдвигает вероятности к 0 или 1, но для решения нужен только лучший класс, а он обычно не меняется.
Уточняющие вопросы
- →Почему плохо откалиброванный счёт всё же даёт верное решение о классе?
- →Что чинит аддитивное сглаживание, когда слово не встречалось в одном из классов?
JuniorТеорияЧастоКак меняются ошибки на обучении и на тесте с ростом степени полиномиальной регрессии?
Как меняются ошибки на обучении и на тесте с ростом степени полиномиальной регрессии?
Ошибка на обучении с ростом степени всё время падает, а ошибка на тесте сначала падает, а потом растёт, когда кривая начинает подгоняться под шум. Степень выбирают на валидации, а старшие члены масштабируют и регуляризуют.
Типичные ошибки
- ✗Выбирать степень по минимальной ошибке на обучении: более высокая степень всегда ближе подходит к обучающим точкам, и такой выбор ведёт к переобучению.
- ✗Подбирать степень на тестовой выборке: тогда оценка на тесте перестаёт быть честной, поэтому степень подбирают на валидации или кросс-валидацией.
Уточняющие вопросы
- →Почему столбцы x¹⁰ и x нужно масштабировать, чтобы регуляризация штрафовала их одинаково?
- →Как выглядит кривая валидации по степени для недообученной и переобученной модели?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
6
Открыть задачу →Типичные ошибки
- ✗Ждать
5: по умолчаниюinclude_bias=Trueдобавляет столбец из единиц, поэтому столбцы — 1, a, b, a², a·b и b². - ✗Ждать
9, считая a·b и b·a по отдельности: это одно произведение, иPolynomialFeaturesсоздаёт для него один столбец.
Уточняющие вопросы
- →Какие столбцы исчезнут с
include_bias=Falseи почему они не нужныLinearRegression? - →Как вырастет число столбцов, если добавить третий входной признак при той же степени?
JuniorТеорияЧастоПочему LinearRegression строит кривую, когда преобразователь признаков PolynomialFeatures расширяет x?
Почему LinearRegression строит кривую, когда преобразователь признаков PolynomialFeatures расширяет x?
Модель w0 + w1·x + w2·x² нелинейна по x, но линейна по своим весам: x² входит в неё как ещё один столбец признаков. Поэтому обычный метод наименьших квадратов подбирает её так же, как прямую.
Типичные ошибки
- ✗Считать, что для кривой нужен нелинейный оптимизатор: линейность касается весов, а x² входит обычным столбцом, поэтому у наименьших квадратов остаётся решение в явном виде.
- ✗Принимать такой пайплайн за другой класс моделей: это та же линейная регрессия, только в матрице признаков появились столбцы x², x³ и так далее.
Уточняющие вопросы
- →Сколько столбцов признаков даёт расширение степени 3 для двух входных признаков?
- →Какая модель нелинейна по весам, и как её обучают вместо этого?
JuniorТеорияЧастоЧто такое регуляризация и какие её виды применимы к линейным моделям?
Что такое регуляризация и какие её виды применимы к линейным моделям?
Регуляризация борется с переобучением, добавляя в функционал штраф за норму весов. Для линейных моделей это L1 (сумма модулей весов), L2 (сумма квадратов) и Elastic Net (комбинация L1 и L2). Штраф не даёт весам расти слишком большими.
Типичные ошибки
- ✗Путают регуляризацию (штрафной член) с масштабированием или отбором признаков
- ✗Думают, что L1 и L2 отличаются только масштабом, а не влиянием на разреженность
- ✗Считают Elastic Net отдельным алгоритмом, а не взвешенной суммой штрафов L1 и L2
Уточняющие вопросы
- →Какой из штрафов, L1 или L2, обнуляет веса и почему?
- →Нужно ли включать в штраф свободный член (intercept)?
JuniorТеорияЧастоКак читать график остатков и о чём говорят форма воронки и заметный изгиб?
Как читать график остатков и о чём говорят форма воронки и заметный изгиб?
Остатки строят против прогнозов: бесформенная полоса вокруг нуля — норма. Изгиб значит, что модель упустила нелинейную зависимость, а воронка — что разброс ошибок растёт вместе с прогнозом; часто помогает логарифм целевой переменной.
Типичные ошибки
- ✗Считать, что воронка и изгиб означают одно и то же: изгиб говорит, что форма модели упускает нелинейную зависимость, а воронка — что разброс ошибок растёт вместе с прогнозом.
- ✗Игнорировать изгиб, раз общая метрика хороша: высокий R-квадрат может скрывать систематический узор, который модель упускает, и больше данных его не уберёт.
Уточняющие вопросы
- →Какое именно допущение опровергает форма воронки?
- →Почему логарифмирование цели часто выравнивает воронку?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
2.0 0.1
Открыть задачу →Типичные ошибки
- ✗Ждать
2.0 2.0, раз точки лежат точно на прямой: штраф растёт вместе сalphaи тянет наклон к нулю даже при идеальной подгонке. - ✗Ждать
0.0у сильной модели: штраф L2 вRidgeуменьшает коэффициент, но ровно нулевым его не делает, поэтому он остаётся0.1.
Уточняющие вопросы
- →Как изменится свободный член у
strong, еслиRidgeего не штрафует? - →Какое
alphaлучше сработает на новых данных и как бы вы его выбрали?
JuniorТеорияЧастоЧто произойдёт при запуске этой программы?
Что произойдёт при запуске этой программы?
fit бросает ValueError: нужен двумерный X формы (n_samples, n_features)
Типичные ошибки
- ✗Ждать, что scikit-learn сам изменит форму одномерного
x:fitотказывает сValueError: Expected 2D array; нуженx.reshape(-1, 1)— один столбец, строка на объект. - ✗Ждать
TypeErrorиз-за целых чисел: scikit-learn сам переводит массивыintвоfloat; проблема здесь только в том, что уXнет второго измерения.
Уточняющие вопросы
- →Какие формы дают здесь
x.reshape(-1, 1)иx.reshape(1, -1)и какая из них нужнаfit? - →Почему целевая переменная
yможет остаться одномерной, а матрица признаковXобязана быть двумерной?
MiddleТеорияЧастоЧто учит порождающая модель против различающей и кто выигрывает на крошечных данных?
Что учит порождающая модель против различающей и кто выигрывает на крошечных данных?
Порождающая модель учит совместное распределение — априор класса и признаки в классе — и выводит апостериор. Различающая подгоняет границу напрямую. Наивный байес раньше достигает своей асимптотической ошибки и лидирует на малых данных.
Типичные ошибки
- ✗Меняют определения местами и называют порождающей модель, учащую границу
- ✗Полагают, что победитель на малой выборке победит и на большой
- ✗Считают, что порождающая модель обязана синтезировать реалистичные входы
Уточняющие вопросы
- →Какую из двух вы возьмёте, когда размеченных данных станет много, и почему?
- →Что дополнительно умеет порождающая модель, чего не может модель границы?
MiddleТеорияЧастоКакова аналитическая формула МНК и почему её избегают на практике?
Какова аналитическая формула МНК и почему её избегают на практике?
Минимизация квадрата ошибки даёт w = (XᵀX)⁻¹Xᵀy. Её избегают, потому что обращение XᵀX дорого при многих признаках, а XᵀX бывает вырожденной или плохо обусловленной — инверсия невозможна или неустойчива. Добавление λI чинит обусловленность; предпочитают градиентные методы.
Типичные ошибки
- ✗Неверно вспоминают формулу (не там транспонирование или обратная матрица)
- ✗Называют только стоимость обращения, забывая о вырожденности/плохой обусловленности
- ✗Не знают, что регуляризация восстанавливает обратимость через
λI
Уточняющие вопросы
- →Какова вычислительная сложность входящего сюда обращения матрицы?
- →Как именно добавление
λIделаетXᵀXобратимой?
MiddleТеорияЧастоПочему штраф за норму весов помогает бороться с переобучением?
Почему штраф за норму весов помогает бороться с переобучением?
Симптом переобучения — очень большие веса. При огромных весах два почти одинаковых объекта, отличающихся на эпсилон, могут давать сильно разные предсказания — функция неустойчива. Штраф за норму уменьшает веса к нулю, делая функцию более гладкой и устойчивой, и она лучше обобщает.
Типичные ошибки
- ✗Думают, что штраф улучшает подгонку на обучении, а не сдерживает её
- ✗Не связывают большие веса с гиперчувствительностью выхода к близким входам
- ✗Считают, что помогает любое уменьшение весов, забывая, что цель — более гладкая функция
Уточняющие вопросы
- →Какой именно симптом переобучения нейтрализует штраф?
- →Увеличивает ли уменьшение весов смещение и приемлем ли такой обмен?
MiddleТеорияЧастоЧто такое SGD с momentum и когда он ускоряет сходимость?
Что такое SGD с momentum и когда он ускоряет сходимость?
Momentum хранит экспоненциально взвешенную сумму последних градиентов и шагает вдоль неё, гася колебания. Сильнее всего помогает на вытянутых (плохо обусловленных) линиях уровня: градиент направлен поперёк узкого оврага, обычный SGD зигзагует, а momentum усредняет боковые колебания и идёт вдоль дна оврага.
Типичные ошибки
- ✗Описывают momentum как фиксированное направление, а не затухающее скользящее среднее
- ✗Не называют вытянутые/плохо обусловленные линии уровня как случай наибольшей пользы
- ✗Путают гашение колебаний с простым увеличением learning rate
Уточняющие вопросы
- →Почему градиент перпендикулярен линиям уровня и почему это вызывает зигзаг?
- →Как Adam развивает идею momentum?
SeniorТеорияЧастоПочему L1-регуляризация даёт разреженные веса, а L2 — нет?
Почему L1-регуляризация даёт разреженные веса, а L2 — нет?
Геометрически ограничение L1 — ромб с углами на осях; линия уровня ошибки обычно касается его именно в углу, где вес равен 0. Ограничение L2 — круг без углов. По градиенту: у L1 |∂R/∂w| постоянна, и спуск доходит до 0; у L2 она убывает при w→0, и вес не доходит до нуля.
Типичные ошибки
- ✗Путают фигуры — называют L1 кругом, а L2 ромбом
- ✗Объясняют только геометрию, упуская довод о постоянном против убывающего градиенте
- ✗Утверждают, что L2 тоже обнуляет веса, просто медленнее
Уточняющие вопросы
- →Что верно про градиенты ошибки и штрафа в углу ромба?
- →Почему функционал L1 недифференцируем на осях и мешает ли это спуску?
JuniorТеорияИногдаЧто такое зазор и опорные векторы в методе опорных векторов и что регулирует C?
Что такое зазор и опорные векторы в методе опорных векторов и что регулирует C?
Зазор — полоса между границей и ближайшими точками, обучение максимизирует её ширину. Опорные векторы — точки на её краю или нарушающие её, только они определяют решение. Большое C сужает зазор, малое расширяет.
Типичные ошибки
- ✗Считать, что C ограничивает число опорных векторов: C задаёт цену нарушений зазора, и при малом C полоса шире, а внутрь попадает больше точек.
- ✗Читать большое C как более сильную регуляризацию, как
alphaв Ridge: при большом C нарушения дороги, и зазор сужается.
Уточняющие вопросы
- →Почему удаление точки, не являющейся опорной, не меняет найденную границу?
- →Какое значение C вы возьмёте, если обучающие данные шумные?
MiddleДебаггингИногдаПочему на разделимых данных коэффициенты логистической регрессии улетают и что это чинит?
Почему на разделимых данных коэффициенты логистической регрессии улетают и что это чинит?
При идеальной разделимости оптимум максимального правдоподобия не существует: рост весов толкает log-loss к нулю, не достигая его, поэтому коэффициенты расходятся, а солвер встаёт лишь по лимиту итераций. Штраф фиксирует конечное решение.
Открыть задачу →Типичные ошибки
- ✗Поднимают max_iter и считают исчезнувшее предупреждение решением
- ✗Винят переполнение float или масштаб признаков вместо несуществующего оптимума
- ✗Считают, что идеальная точность на обучении означает здоровую модель
Уточняющие вопросы
- →Почему поднятие лимита итераций делает напечатанные коэффициенты больше, а не устойчивее?
- →Какое ещё средство, кроме штрафа, ограничивает оценку при разделимости?
MiddleТеорияИногдаНужно ли включать свободный член (intercept) в регуляризатор?
Нужно ли включать свободный член (intercept) в регуляризатор?
Нет. Свободный член лишь сдвигает гиперплоскость туда, где лежат данные; это не вес признака. Штраф тянет сдвиг к нулю и мешает верно расположить гиперплоскость, из-за чего качество падает. По соглашению bias из штрафа исключают.
Типичные ошибки
- ✗Относятся к свободному члену как к обычному весу, который надо уменьшать
- ✗Не понимают, что bias позиционирует гиперплоскость, а не масштабирует признак
- ✗Считают включение w0 безвредным, хотя оно обычно ухудшает качество
Уточняющие вопросы
- →Что геометрически контролирует bias, чего не делают веса признаков?
- →Как библиотеки обычно реализуют это исключение на практике?
SeniorТеорияРедкоКакова вычислительная сложность обращения матрицы n×n?
Какова вычислительная сложность обращения матрицы n×n?
Стандартный алгоритм (Гаусс–Жордан / LU) кубический, O(n³). Быстрое умножение по Штрассену снижает до примерно O(n^2.81), есть и асимптотически более быстрые алгоритмы, но с огромными константами и практическими ограничениями, поэтому их почти не применяют. Эта кубическая стоимость — причина избегать формулы МНК.
Типичные ошибки
- ✗Называют сложность
O(n²), считая элементы, а не операции - ✗Думают, что быстрые алгоритмы вроде Штрассена применяются по умолчанию в библиотеках
- ✗Путают стоимость одного умножения матрицы на вектор со стоимостью полного обращения
Уточняющие вопросы
- →Почему субкубические алгоритмы не применяют по умолчанию, несмотря на лучшую асимптотику?
- →Как эта стоимость мотивирует градиентные методы при больших признаковых пространствах?