Оптимизация и функции потерь
Подтемы:
Что такое градиент?
Градиент представляет собой вектор, который указывает на направление наибольшего увеличения функции. В контексте оптимизации и машинного обучения, градиент используется для определения направления, в котором следует изменить параметры модели, чтобы уменьшить функцию потерь или ошибку предсказания.
Ссылки для изучения
Если у вас есть выбор между градиентным спуском (GD) и стохастическим градиентным спуском (SGD), что лучше сработает?
Это зависит от размера данных и времени обучения. Градиентный спуск (GD) обновляет параметры модели по всей обучающей выборке, что может быть медленным на больших наборах данных. Стохастический градиентный спуск (SGD) обновляет параметры по одному случайному экземпляру за раз, что обычно быстрее, но может быть менее стабильным. Таким образом, выбор зависит от компромисса между точностью и скоростью обучения.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- 100 Data Science вопросов мидлу! Парень c Физтеха проходит собеседование · 15:25–16:03Мок-собеседование · Совместный разбор
Кандидат сопоставляет полный и стохастический gradient descent по скорости шага и шумности оценки gradient.
Как сделать, чтобы при каждом запуске кода, модель, обучаемая при помощи градиентного спуска, сходилась к одной и той же точке?
Чтобы гарантировать, что модель, обучаемая при помощи градиентного спуска, сходится к одной и той же точке при каждом запуске кода, необходимо установить одинаковые начальные значения параметров модели и использовать одинаковый порядок обучающих данных. Также важно убедиться, что все остальные условия, такие как функция потерь, гиперпараметры и алгоритм оптимизации, остаются неизменными при каждом запуске.
Ссылки для изучения
Как делается один шаг градиентного спуска для обновления весов?
Один шаг градиентного спуска для обновления весов выполняется следующим образом:
-
Рассчитывается градиент функции потерь по отношению к каждому параметру модели.
-
Градиенты умножаются на скорость обучения (learning rate), которая определяет размер шага.
-
Из текущих значений параметров вычитается градиент, умноженный на скорость обучения.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Мок-собеседование Junior Python-разработчика с вопросами по ML · 16:35–17:38Мок-собеседование · Совместный разбор
Кандидат объясняет обновление параметров через gradient функции ошибки и шаг в сторону её уменьшения.
По каким признакам понять, что learning rate слишком большой?
Слишком большой learning rate проявляется резким ростом или сильными осцилляциями train loss, нестабильными градиентами, NaN и отсутствием улучшения validation. Оптимизатор перескакивает области низкой loss вместо постепенного спуска. Проверяют кривую обучения, нормы градиентов и короткий LR range test. Warmup помогает в начале обучения, scheduler снижает шаг позже, gradient clipping защищает от отдельных всплесков, но не исправляет постоянно завышенный LR. Сравнение проводят при одинаковых seed и batch size.
Ссылки для изучения
Что такое кросс-энтропия?
Кросс-энтропия - это мера расхождения между двумя вероятностными распределениями. В контексте машинного обучения, особенно в задачах классификации, кросс-энтропия используется как функция потерь для оценки различия между фактическими и предсказанными вероятностями классов. Она стремится минимизировать разницу между предсказанными и истинными вероятностями, что делает ее хорошим выбором для обучения моделей классификации.
Ссылки для изучения
Назовите пять функций потерь.
Основные функции потерь:
-
Среднеквадратичная ошибка
(MSE): Используется в задачах регрессии для измерения среднеквадратичной разницы между предсказанными и фактическими значениями. -
Кросс-энтропия: Часто применяется в задачах классификации для измерения расхождения между фактическими и предсказанными вероятностями классов.
-
Hinge loss: Используется для обучения классификаторов с отступом, например линейного SVM.
-
Абсолютная ошибка
(MAE): Еще одна функция потерь для задач регрессии, измеряющая среднее абсолютное отклонение между предсказанными и фактическими значениями. -
Хьюбера потеря: Альтернатива среднеквадратичной ошибке, которая менее чувствительна к выбросам в данных, используется также в задачах регрессии.
Ссылки для изучения
Какие функции потерь для классификации вы знаете?
Для классификации часто используются следующие функции потерь:
-
Кросс-энтропия
(Cross-Entropy): Часто используется в задачах бинарной и многоклассовой классификации. Эта функция измеряет расхождение между фактическими и предсказанными вероятностями классов. -
Логарифмическая потеря
(Log Loss): Аналогично кросс-энтропии, используется для оценки вероятностей предсказанных классов и часто используется в задачах бинарной и многоклассовой классификации. -
Hinge Loss: Обычно используется в задачах обучения опорных векторов
(SVM)для максимизации зазора между классами. -
Exponential Loss: Используется в алгоритмах градиентного бустинга для классификации, таких как
AdaBoost, для минимизации ошибок весовых коэффициентов. -
Focal Loss: Разработана для улучшения обучения моделей в задачах с сильным дисбалансом классов, минимизируя потери для хорошо классифицированных примеров.
Ссылки для изучения
Какие функции потерь для регрессии вы знаете?
Для задач регрессии часто используются следующие функции потерь:
-
Среднеквадратичная ошибка
(MSE): Это наиболее распространенная функция потерь для задач регрессии. Она измеряет среднеквадратичную разницу между предсказанными и фактическими значениями. -
Средняя абсолютная ошибка
(MAE): Эта функция потерь измеряет среднее абсолютное отклонение между предсказанными и фактическими значениями. -
Квантильная потеря
(Quantile Loss): Позволяет оценивать квантили целевой переменной и используется в задачах, где важно учитывать не только среднее значение, но и дисперсию. -
Хьюберова потеря
(Huber Loss): Эта функция является комбинацией MSE и MAE и более устойчива к выбросам в данных. -
Средняя квадратичная логарифмическая ошибка (MSLE): Сравнивает log(1 + y) и log(1 + прогноз) для неотрицательных значений. Она оценивает расхождение в логарифмическом масштабе.
Ссылки для изучения
Можно ли использовать MSE для классификации и чем она отличается от кросс-энтропии?
MSE можно применять к вероятностным прогнозам классификации. В бинарной задаче квадрат разности вероятности и метки 0/1 называется оценкой Брайера. Выбор между ней и кросс-энтропией зависит от цели и свойств оптимизации.
-
Формат вывода: вероятности являются числами, поэтому их можно сравнивать с метками 0/1 через MSE.
-
Оптимизация: MSE после сигмоиды может давать малые градиенты при уверенных ошибочных прогнозах; кросс-энтропия обычно лучше подходит для обучения логистической регрессии.
-
Неотрицательность: MSE всегда неотрицательна, поскольку усредняет квадраты ошибок. Сама функция потерь не ограничивает диапазон выходов модели.
Ссылки для изучения
Чем различаются MAE и MAPE и какая метрика понятнее бизнесу?
Среднее абсолютное отклонение (MAE) и средняя абсолютная процентная ошибка (MAPE) обе измеряют среднее отклонение предсказанных значений от фактических, но существует небольшая, но важная разница между ними:
MAE (Mean Absolute Error) измеряет среднее абсолютное
отклонение между предсказанными и фактическими значениями. Формула
MAE:
Где - фактическое значение, - предсказанное значение, а - количество наблюдений.
MAPE (Mean Absolute Percentage Error) выражает среднее
абсолютное отклонение в процентах от фактических значений. Формула
MAPE:
Разница между ними состоит в том, что MAPE выражается в процентах и показывает относительную ошибку предсказаний по сравнению с фактическими значениями, в то время как MAE показывает абсолютное отклонение в том же масштабе, что и фактические значения.
Относительно того, какая из них более понятна для бизнеса, это зависит от конкретного контекста и того, как компания интерпретирует и использует ошибки в своей деятельности. MAPE может быть более интуитивно понятной метрикой для бизнеса, так как она выражена в процентах и позволяет оценить ошибку относительно размера фактических значений. Однако в некоторых случаях более прямолинейное представление MAE может быть также полезным.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- 100 Data Science вопросов мидлу! Парень c Физтеха проходит собеседование · 9:44–10:14Мок-собеседование · Ответ кандидата
Выбор метрики объясняется языком бизнеса: абсолютная ошибка в рублях или относительная ошибка в процентах.
Как оптимизировать MAE, если она недифференцируема в нуле?
MAE дифференцируема везде, кроме нулевой ошибки. Там существует множество субградиентов от -1 до 1, и фреймворк выбирает один из допустимых вариантов, обычно 0. Поэтому SGD и его варианты могут оптимизировать MAE. Практическая проблема шире: градиент почти везде имеет постоянный модуль, из-за чего сходимость около минимума может колебаться. Если нужна гладкость, используют Huber loss: квадратичную около нуля и линейную для больших ошибок.
Ссылки для изучения
Когда использовать weighted BCE и focal loss вместо обычной BCE?
Weighted BCE задает большую цену ошибкам редкого или важного класса и полезна, когда важна явная cost-sensitive постановка. Focal loss дополнительно уменьшает вклад уже легких примеров множителем вида (1-p_t)^gamma, концентрируя обучение на трудных объектах; alpha может балансировать классы. Она особенно популярна при плотном детектировании, где фон доминирует. Обе loss считают по logits численно устойчивой функцией. Веса, alpha, gamma и порог выбирают по validation с целевой метрикой, потому что loss может ухудшить calibration.
Ссылки для изучения
Что такое методы оптимизации в машинном обучении?
Методы оптимизации в машинном обучении - это алгоритмы, которые используются для настройки параметров моделей с целью минимизации функции потерь. Они определяют способ обновления параметров модели на каждом шаге обучения, направляя его к оптимальным значениям. Примеры методов оптимизации включают градиентный спуск, стохастический градиентный спуск, методы второго порядка и адаптивные методы оптимизации, такие как Adam и RMSProp.
Ссылки для изучения
Как применяют оптимизацию по числам Фибоначчи?
Поиск Фибоначчи применяется к одномерной унимодальной функции на заданном интервале. Внутренние точки выбирают по отношениям чисел Фибоначчи и последовательно сужают интервал, переиспользуя одно вычисленное значение. Градиент не требуется; это не универсальная замена градиентному спуску для обучения модели.
Ссылки для изучения
Написать формулу кросс-энтропии. Как происходит минимизация ошибки?
Формула кросс-энтропии для бинарной классификации:
где:
-
- функция потерь (кросс-энтропия),
-
- количество примеров в обучающем наборе,
-
- истинное значение (0 или 1) целевой переменной для -го примера,
-
- предсказанная вероятность принадлежности к классу 1 для -го примера при параметрах модели .
Минимизация ошибки (и, соответственно, минимизация функции потерь) происходит с помощью методов оптимизации, таких как градиентный спуск. Модель обновляет свои параметры в направлении, противоположном градиенту функции потерь, с целью нахождения минимума функции потерь. Этот процесс повторяется до тех пор, пока не будет достигнута сходимость или другое условие останова.
Ссылки для изучения







