Понимание функций потерь: потеря шарнира

Часто в машинном обучении мы сталкиваемся с функциями потерь. Для кого-то вроде меня, не имеющего опыта работы в CS, мне было трудно изучить математические концепции, лежащие в основе функций потерь, и реализовать их в своих моделях. Итак, здесь я попытаюсь объяснить в самых простых терминах, что такое функция потерь и как она помогает в оптимизации наших моделей. Я буду рассматривать примеры классификации только потому, что их легче понять, но эти концепции можно применять ко всем методам.

Во-первых, мы должны понимать, что основная цель любой классификационной модели - правильно классифицировать как можно больше точек. Хотя иногда случается неправильная классификация (что хорошо, учитывая, что мы не переоснащаем модель). Теперь нам нужно измерить, сколько точек мы неправильно классифицируем. Это помогает нам двумя способами.

  1. Предсказать точность модели
  2. Оптимизация функции затрат, чтобы мы получали больше пользы от правильно классифицированных точек, чем неправильно классифицированных.

Следовательно, в простейшем виде функцию потерь можно выразить следующим образом.

Однако математически оптимизировать вышеуказанную задачу очень сложно. Нам нужно прийти к некоторому конкретному математическому уравнению, чтобы понять эту дробь.

Давайте теперь интуитивно поймем границу принятия решения.

Точки слева правильно классифицируются как положительные, а точки справа - как отрицательные. Ошибочно классифицированные точки отмечены КРАСНЫМ.

Теперь мы можем попытаться перенести все неправильно классифицированные точки на одну сторону границы принятия решения. Назовем это «гетто».

Из нашей базовой линейной алгебры мы знаем, что yf (x) всегда будет ›0, если знак (𝑦, 𝑦̂) не совпадает, где '𝑦 'будет представлять результат нашей модели, а' 𝑦̂ 'будет представлять фактическую метку класса.

Теперь, если мы построим график yf (x) против функции потерь, мы получим график ниже.

Давайте сейчас рассмотрим график ошибочной классификации на рис. 3. Мы видим, что для yf (x) ›0 мы присваиваем потерю« 0 ». Эти точки были правильно классифицированы, поэтому мы не хотим вносить больший вклад в общую долю (см. Рис. 1). Однако для точек, где yf (x) ‹0, мы присваиваем потерю« 1 », тем самым говоря, что за эти баллы придется заплатить больший штраф за неправильную классификацию, как показано ниже.

Я надеюсь, что теперь интуиция, лежащая в основе функции потерь и ее вклад в общую математическую стоимость модели, ясна.

Практически все классификационные модели основаны на каких-то моделях. Например. Логистическая регрессия имеет логистические потери (рисунок 4: экспоненциальная), SVM имеет потерю шарнира (рисунок 4: опорный вектор) и т. Д.

Потеря шарнира в машинах опорных векторов

Из нашей модели SVM мы знаем, что потеря на шарнире = [0, 1- yf (x)].

Глядя на график для SVM на рис. 4, мы видим, что для yf (x) ≥ 1 потеря на шарнире составляет «0». Однако, когда yf (x) ‹1, потери на шарнире значительно возрастают. Поскольку yf (x) увеличивается с каждой ошибочно классифицированной точкой (очень неправильные точки на рис. 5), верхняя граница потери шарнира {1- yf (x)} также увеличивается экспоненциально. .

Следовательно, точки, которые находятся дальше от границ принятия решения, имеют большее значение потерь, что приводит к штрафу за эти точки.

Заключение: это просто базовое понимание того, что такое функции потерь и как работают потери на шарнирах. Вскоре я опубликую другие статьи с более глубоким пониманием «потери шарнира».

Ссылки:

Принципы машинного обучения: https://www.youtube.com/watch?v=r-vYJqcFxBI

Принстонский университет: Лекция по оптимизации и выпуклости: https://www.cs.princeton.edu/courses/archive/fall16/cos402/lectures/402-lec5.pdf