Ответ вслух Middle Активации и функции потерь обновлено

Выбор выходного слоя и потери

Вопрос

Как вы выбираете функцию активации на выходе и функцию потерь под задачу? Пройдитесь по типам задач.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Выход и потеря следуют из распределения цели. Регрессия: линейный выход без активации, MSE как базовый вариант (гауссов шум), MAE или Huber при выбросах, квантильная потеря, если нужен перцентиль, Poisson loss для счётчиков.

Что должно прозвучать в ответе

  • Регрессия: линейный выход, MSE, MAE или Huber

  • Бинарная классификация: один логит, BCEWithLogits

  • Multi-class: K логитов, CrossEntropyLoss без явного softmax

  • Multi-label: K логитов, BCE по каждому

  • Особые случаи: ранжирование, счётчики (Poisson), квантили, дисбаланс (веса, focal)

Что могут спросить следом

  • Почему не ставят softmax перед CrossEntropyLoss?
  • Какую потерю взять для прогноза 90-го перцентиля времени доставки?

Разбор

Выход и потеря следуют из распределения цели. Регрессия: линейный выход без активации, MSE как базовый вариант (гауссов шум), MAE или Huber при выбросах, квантильная потеря, если нужен перцентиль, Poisson loss для счётчиков. Бинарная классификация: один логит и BCEWithLogitsLoss, сигмоиду применяю только при инференсе. Классификация на K взаимоисключающих классов: K логитов и CrossEntropyLoss, softmax внутри потери, поэтому явный softmax перед ней это баг. Multi-label: K логитов и бинарная кросс-энтропия по каждому. При дисбалансе добавляю веса классов или pos_weight, в детекции focal loss. Для ранжирования и поиска парные или списочные потери и контрастивные функции вроде InfoNCE.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.