Software & Компьютерная инженерия
Понимание роли функций потери в обучении компьютерным моделям зрения
Table of Contents
Функции потерь служат математической основой, которая направляет модели компьютерного зрения к точным предсказаниям. Они количественно определяют несоответствие между тем, что предсказывает модель, и фактической правдой, создавая измеримый сигнал, который алгоритмы оптимизации используют для итеративного улучшения производительности модели. Функция потерь определяет скорость и точность сходимости модели DL и оказывает решающее влияние на качество алгоритма и производительность модели. Понимание того, как работают различные функции потерь и когда их применять, необходимо для любого, кто работает с глубоким обучением в приложениях компьютерного зрения.
Какие функции потери в компьютерном зрении?
В области машинного обучения функция потерь (или функция затрат) относится к разнице между выходом истинной информации и выходом, предсказанным моделью. В процессе обучения нейронные сети корректируют свои внутренние параметры - весы и смещения - чтобы минимизировать эту разницу. Процесс оптимизации обычно использует градиентный спуск или его варианты, которые вычисляют градиент функции потерь по каждому параметру и обновляют их в направлении, которое уменьшает потерю.
Они используются для количественной оценки разницы между прогнозируемыми выходами и наземными ярлыками истинности, направляя процесс оптимизации на минимизацию ошибок. Выбор функции потерь напрямую влияет на то, как модель изучает закономерности из данных, какие особенности она приоритизирует, и в конечном итоге на то, насколько хорошо она выполняется на невидимых примерах. Хорошо подобранная функция потерь может ускорить обучение, улучшить обобщение и помочь модели сосредоточиться на наиболее актуальных аспектах поставленной задачи.
Следовательно, во время обучения цель состоит в том, чтобы найти такие параметры модели (весы и смещения), которые минимизируют потери и максимизируют скорость правильных прогнозов. Однако достижение нулевой потери во время обучения не гарантирует отличную производительность в реальном мире. В то время как достижение низкой потери во время обучения желательно, потеря, равная 0, не гарантирует отличную производительность модели в реальных условиях. Следует избегать переобучения - проблема, когда модель делает идеальные прогнозы на тренировочном наборе, но не может обобщить новые, невидимые данные.
Эволюция функций потери в глубоком обучении
Прогресс в глубоком обучении подпитывался достижениями как в модельных архитектурах, так и в методах оптимизации. Ранние модели глубокого обучения, в первую очередь основанные на нейронных сетях, опирались на простые функции потерь. По мере того, как задачи компьютерного зрения становились все более сложными и разнообразными, исследователи разрабатывали специализированные функции потерь, адаптированные к конкретным задачам.
СВМ принесли потери шарнира, что максимизирует запас между классами для классификационных задач. В глубоком обучении популярность росла потеря кросс-энтропии, эффективно справляясь с многоклассовой классификацией, измеряя несходство между прогнозируемыми вероятностями и фактическими классами. Эта эволюция отражает растущее понимание поля того, как различные математические формулировки могут решать конкретные задачи обучения, от дисбаланса классов до точности границ.
В последнее время разработка функций потерь для методов глубокого обучения стала одной из самых сложных проблем.Современные функции потерь должны решать все более сложные сценарии, включая мультимодальные данные, серьезные классовые дисбалансы и реальные ограничения, которые не учитывались в более ранних системах машинного обучения.
Фундаментальные функции потери для компьютерного зрения
Средняя квадратная ошибка (MSE) для задач регрессии
Средняя квадратная ошибка является одной из наиболее фундаментальных функций потерь, используемых в задачах регрессии, где как предикторы, так и целевые переменные являются непрерывными. За последнее десятилетие исследователи разработали множество функций потерь для машинного обучения, таких как средняя квадратная ошибка и средняя абсолютная ошибка. MSE вычисляет среднее квадратное различие между прогнозируемыми и фактическими значениями, наказывая более крупные ошибки более сильно из-за операции квадратирования.
Математическая формулировка проста: суммировать квадратную разницу между каждым предсказанным и фактическим значением, затем разделить на число наблюдений. Эта простота делает MSE легкой для понимания и реализации, что способствует ее широкому принятию в регрессионных задачах.
Несмотря на то, что функция потери MSE является распространенной и простой для понимания, она не подходит для каждого варианта использования по следующим причинам: она чувствительна к выбросам: точки данных, которые сильно выделяются из остальных, могут сильно влиять на линию регрессии, что приводит к снижению производительности модели. Кроме того, она не хорошо работает с классификацией: MSE используется для задач регрессии, где выход является непрерывной переменной (в отличие от категориальных переменных, таких как кошка / собака / рыба).
Кросс-энтропийная потеря для классификации
Кросс-энтропийная потеря является широко используемой альтернативой для MSE. Она часто используется для задач классификации, где выход может быть представлен как значение вероятности между 0 и 1. Кросс-энтропия измеряет разницу между двумя распределениями вероятности: предсказанным распределением от модели и истинным распределением от меток.
Кросс-энтропийная потеря сравнивает предсказанные Vs. истинные распределения вероятностей. Например, если животное на изображении является кошкой (кошка = 1, собака = 0, рыба = 0), а модель предсказывает распределение как кошка = 0,1, собака = 0,5, а рыба = 0.4, кросс-энтропийная потеря будет довольно высокой. Эта высокая величина потерь сигнализирует алгоритму оптимизации, что прогнозы модели далеки от правильных, что вызывает значительные обновления параметров.
Утрата бинарной кросс-энтропии — это особый случай использования потери кросс-энтропии. Она может быть использована для любой задачи бинарной классификации и, в принципе, для бинарной сегментации. Бинарная кросс-энтропия особенно полезна при решении проблем двух классов, таких как определение того, содержит ли изображение конкретный объект или нет.
Hinge Loss для поддержки векторных машин
Потеря петель в первую очередь связана с машинами поддержки векторов (SVM) и предназначена для классификации максимальной маржи. В отличие от кросс-энтропии, которая продолжает наказывать прогнозы, даже когда они верны, но недостаточно уверены, потеря петель только наказывает прогнозы, которые попадают на неправильную сторону границы решения или слишком близки к ней.
Эта функция потерь побуждает модель не только правильно классифицировать примеры, но и поддерживать запас разделения между классами.Свойство максимизации маржи делает потери шарнира особенно эффективными для задач бинарной классификации, где желательно четкое разделение между классами.
Специализированные функции потери для задач компьютерного зрения
Фокальная потеря для обнаружения объектов
Мы обнаруживаем, что основной причиной является крайний дисбаланс классов переднего плана, возникающий при обучении плотных детекторов. Мы предлагаем устранить этот дисбаланс классов путем изменения стандартной потери перекрестной энтропии таким образом, чтобы она снижала вес потерь, отнесенных к хорошо классифицированным примерам. Фокальная потеря представляет собой значительное продвижение в обработке дисбаланса классов, особенно в сценариях обнаружения объектов.
Наш роман «Фокальная потеря» фокусирует обучение на скудном наборе жестких примеров и предотвращает огромное количество легких негативов от подавляющего детектора во время обучения. При обнаружении объектов подавляющее большинство мест кандидатов не содержат объектов (легкие негативы), в то время как только небольшая часть содержит фактические объекты. Стандартная кросс-энтропийная потеря рассматривает все примеры одинаково, позволяя подавляющему количеству легких негативов доминировать над тренировочным сигналом.
Для решения этой проблемы мы предлагаем фокусную потерю, которая применяет модулирующий термин к кросс-энтропийной потере, чтобы сосредоточить обучение на твердых примерах и уменьшить вес многочисленных легких негативов. Модулирующий фактор уменьшает вклад простых примеров, позволяя модели фокусировать вычислительные ресурсы на обучении из сложных случаев, которые требуют большего внимания.
Для компенсации дисбаланса классов функция очаговых потерь умножает функцию перекрестной энтропии с модулирующим фактором, который повышает чувствительность сети к неправильно классифицированным наблюдениям. Этот подход оказался весьма эффективным, поскольку при обучении фокусным потерям RetinaNet способен соответствовать скорости предыдущих одноступенчатых детекторов, превосходя при этом точность всех существующих современных двухступенчатых детекторов.
Однако для отрицательных значений увеличение γ в значительной степени концентрирует потерю на твердых примерах, уделяя почти все внимание легким негативам. Параметр фокусировки гамма (γ) контролирует, насколько функция потери снижает вес простых примеров, причем более высокие значения обеспечивают более сильный фокус на твердых примерах.
Коэффициент убытка риса для сегментации изображения
Потеря коэффициента Dice, также известная как потеря F1, специально предназначена для задач сегментации изображений, где цель состоит в том, чтобы предсказать двоичную маску, указывающую, какие пиксели принадлежат объектам интереса.В отличие от кросс-энтропии с использованием пикселей, потеря Dice напрямую оптимизирует перекрытие между прогнозируемой и наземной масками сегментации правды.
Эта функция потери особенно ценна в медицинской визуализации и других приложениях сегментации, где дисбаланс классов является серьезным, например, когда объект интереса занимает только небольшую часть изображения.
Коэффициент Dice измеряет сходство между двумя наборами и колеблется от 0 (без перекрытия) до 1 (идеальное перекрытие). Минимизируя 1 минус коэффициент Dice, функция потерь побуждает модель максимизировать перекрытие между прогнозами и правдой. Эта формулировка, естественно, обрабатывает несбалансированные наборы данных лучше, чем потери с пиксельным эффектом, потому что она фокусируется на интересующей области, а не на фоне.
IoU Loss for Bounding Box Regression (недоступная ссылка)
Пересечение потерь по униону (IoU) решает фундаментальную проблему в обнаружении объектов: оптимизация предсказаний ограничивающих коробок. Традиционные потери L1 или L2 обрабатывают координаты ограничивающих коробок независимо, не фиксируя геометрическую связь между предсказанными и наземными коробками истинности. Потеря IoU непосредственно оптимизирует перекрытие между коробками, что именно то, что нас волнует в задачах обнаружения.
МН измеряет отношение площади пересечения к площади союза двух ограничивающих коробок. Более высокий МН указывает на лучшее выравнивание между предсказанными и наземными ложами истинности. Используя МН как функцию потерь, модель учится предсказывать ящики, которые максимально перекрывают наземную истину, что приводит к более точной локализации.
Для устранения конкретных ограничений было разработано несколько вариантов потери IoU. Обобщенная IoU (GIoU) обрабатывает случаи, когда коробки вообще не пересекаются, обеспечивая значимый градиент даже тогда, когда IoU равен нулю. Расстояние IoU (DIoU) и Полное IoU (CIoU) дополнительно уточняют потерю, учитывая расстояние между центрами коробки и соотношение сторон, что приводит к более быстрой конвергенции и лучшей производительности в задачах обнаружения объектов.
Контрастная и тройная потеря для метрического обучения
Контрастные и тройные потери предназначены для задач метрического обучения, где цель состоит в том, чтобы изучить встраивания, которые размещают похожие примеры близко друг к другу и непохожие примеры далеко друг от друга в пространстве встраивания.Эти функции потерь имеют основополагающее значение для распознавания лиц, поиска изображений и приложений для идентификации человека.
Противоположная потеря действует на пары примеров, сближая похожие пары, раздвигая непохожие пары. Она побуждает модель изучать представления, где расстояние между встраиванием отражает семантическое сходство между входами. Этот подход особенно эффективен, когда у вас есть помеченные пары, указывающие, похожи ли примеры или разные.
Тройная потеря расширяет эту концепцию, работая с тройнями примеров: якорь, положительный пример (аналог якоря) и отрицательный пример (аналог якоря). Потеря побуждает модель размещать положительный пример ближе к якорю, чем отрицательный пример, по крайней мере, с заданным запасом. Эта формулировка обеспечивает более богатые тренировочные сигналы, чем попарно контрастные потери, и часто приводит к лучше изученным встраиваниям.
Современные варианты, такие как потеря N-пар и потеря центра, еще больше улучшают эти основы, рассматривая одновременно несколько негативов или явно изучая классные центры во встроенном пространстве. Эти передовые метрические потери обучения стали важными инструментами для задач, требующих точно сформулированных суждений о сходстве.
Потеря восприятия для генерации изображений
Потеря восприятия представляет собой сдвиг парадигмы в том, как мы оцениваем генерируемые изображения. Вместо того, чтобы сравнивать значения пикселей напрямую, потеря восприятия сравнивает представления функций высокого уровня, извлеченные из предварительно обученной сети, обычно VGG или ResNet. Этот подход лучше согласуется с человеческим восприятием, поскольку люди оценивают качество изображения на основе семантического контента и структуры, а не точных значений пикселей.
В задачах переноса стиля, супер-разрешения и перевода изображения в изображение потеря восприятия оказалась гораздо более эффективной, чем потери с точки зрения пикселей, такие как MSE. В то время как MSE может давать размытые результаты, которые минимизируют ошибку на уровне пикселей, потеря восприятия поощряет генерацию резких, визуально приятных изображений, которые сохраняют важные семантические функции.
Потеря вычисляется путем пропускания как генерируемых, так и целевых изображений через предварительно обученную сеть и сравнения их карт признаков на одном или нескольких уровнях. Ранние слои захватывают низкоуровневые функции, такие как края и текстуры, в то время как более глубокие слои захватывают высокоуровневый семантический контент. Комбинируя потери из нескольких слоев, потеря восприятия может сбалансировать как мелкие детали, так и общую структуру.
Потеря восприятия часто сочетается с потерей состязательности в генеративных состязательных сетях (GAN), чтобы получить еще более реалистичные результаты. Компонент восприятия обеспечивает семантическую согласованность, в то время как компонент восприятия толкает генерируемые изображения к многообразию естественных изображений.
Специфические приложения функций потерь
Классификация изображений
Дискриминационные задачи, такие как классификация изображений, обнаружение объектов и семантическая сегментация, в значительной степени полагаются на функции потерь для точного измерения несоответствия между предсказанными метками и истинностью основания.Для классификации изображений кросс-энтропийная потеря остается доминирующим выбором из-за ее эффективности в оптимизации распределения вероятностей по нескольким классам.
В сценариях классификации многоклассовых, softmax cross-entropy объединяет функцию активации softmax с кросс-энтропийной потерей. Функция softmax преобразует исходные модели (логиты) в распределение вероятностей по классам, гарантируя, что прогнозы суммируются в один. Cross-entropy затем измеряет, насколько хорошо это предсказанное распределение соответствует истинному распределению.
Для наборов данных с классовым дисбалансом взвешенная кросс-энтропия присваивает разным классам разные веса, позволяя модели уделять больше внимания недопредставленным классам.Сглаживание этикеток — еще один метод, который слегка модифицирует распределение целей для предотвращения сверхуверенных прогнозов и улучшения обобщения.
Обнаружение объектов
Обнаружение объектов. Обнаружение объектов является важнейшей задачей в компьютерном зрении. Обычно оно содержит две основные подзадачи, т.е. классификацию объектов и регрессию объектов. Современные детекторы объектов должны одновременно решать задачи классификации (какие объекты присутствуют) и локализации (где находятся объекты), требуя тщательно проработанных функций потерь для каждого компонента.
Критической проблемой в лице исследователей является крайний дисбаланс между положительными и отрицательными примерами. Кроме того, многие простые примеры будут доминировать над градиентом, что поднимает еще одну несбалансированную проблему. Эта проблема двойного дисбаланса - между положительными и отрицательными примерами и между легкими и жесткими примерами - делает обнаружение объектов особенно сложным.
Современные детекторы объектов обычно объединяют несколько функций потерь: фокусные потери или перекрестная энтропия для классификации, потери на основе IoU для регрессии ограничивающих коробок, а иногда и дополнительные потери для вспомогательных задач, таких как обнаружение ключевых точек или сегментация экземпляра.Общая потеря представляет собой взвешенную сумму этих компонентов, с весами, тщательно настроенными для балансировки различных целей.
Семантическая сегментация
Семантическая сегментация требует прогнозирования ярлыка класса для каждого пикселя в изображении, что делает его одной из самых вычислительно интенсивных задач компьютерного зрения.Выбор функции потери существенно влияет как на эффективность обучения, так и на качество окончательной сегментации.
Пиксельная кросс-энтропия — это базовый подход, рассматривающий каждый пиксель как самостоятельную проблему классификации. Однако этот подход страдает от сильного классового дисбаланса, когда объекты интереса занимают лишь небольшую часть изображения. Весовая кросс-энтропия частично решает эту проблему, присваивая более высокие веса классам меньшинств.
Потеря риса и его варианты становятся все более популярными для сегментации, потому что они напрямую оптимизируют перекрытие области, а не отдельные пиксели. Фокальная потеря также широко используется для устранения дисбаланса между простыми фоновыми пикселями и сложными граничными пикселями. Многие современные сети сегментации объединяют несколько потерь - например, используя как кросс-энтропию, так и потерю риса - для использования сильных сторон каждого подхода.
Потери, осознающие границы, специально нацелены на точное разграничение границ объекта, что часто является наиболее сложным аспектом сегментации. Эти потери применяют более высокие веса к пикселям вблизи границ или используют преобразования расстояния для кодирования пространственных отношений между пикселями.
Признание лица
Системы распознавания лиц должны изучать встраивания, которые захватывают специфические для идентичности особенности, будучи устойчивыми к изменениям позы, освещения, выражения и старения. Это требует специализированных функций потери, которые выходят за рамки простой классификации.
Потеря Softmax с крупномасштабной классификацией рассматривает каждую идентичность как отдельный класс, но этот подход не обобщает новые идентичности, не замеченные во время обучения.Потери метрического обучения, такие как контрастная потеря и потеря тройня, решают эту проблему, изучая метрику расстояния во встраиваемом пространстве, что позволяет распознавать новые идентичности через сопоставление ближайшего соседа.
Центр потерь явно учит центр для каждого класса идентичности и штрафует расстояние между функциями и их соответствующими центрами класса. Это поощряет внутриклассовую компактность при сохранении межклассовой сепарабельности. Угловые потери на основе маржи, такие как ArcFace и CosFace, еще больше улучшают дискриминацию, вводя угловые поля во встроенное пространство, что приводит к более надежным системам распознавания лиц.
Поколение изображений и перенос стиля
Генеративные задачи, включая генерацию текста-изображения, изображения-изображения и аудио-изображения, используют функции потерь для оценки реализма и качества генерируемых выходов, часто используя состязательные или перцептивные потери для руководства процессом обучения. Генеративные модели сталкиваются с уникальными проблемами, потому что часто нет единого «правильного» вывода - для данного входа могут существовать несколько действительных поколений.
Соперническая потеря, введенная с генеративными состязательными сетями (GAN), использует дискриминаторную сеть для различения реальных и генерируемых изображений. Генератор учится создавать изображения, которые обманывают дискриминатор, что приводит к все более реалистичным выводам. Этот состязательный процесс обучения произвел революцию в генерации изображений, обеспечивая фотореалистичный синтез в многочисленных приложениях.
Для переноса стиля обычно используется сочетание потери контента и потери стиля. Потеря контента, часто реализуемая как потеря восприятия, гарантирует, что генерируемое изображение сохраняет смысловое содержание ввода. Потеря стиля захватывает художественный стиль, сравнивая грамматические матрицы карт признаков, которые кодируют текстуру и цветовые узоры независимо от пространственной структуры.
Современные модели диффузии используют отрицательные оценки, соответствующие потерям, обучая модель обратить вспять постепенный процесс шума. Этот подход достиг замечательных результатов в генерации текста к изображению, производя разнообразные, высококачественные изображения из текстовых описаний.
Важность выбора правильной функции потерь
При построении полной сетевой структуры выбор или проектирование подходящей функции потерь также является сложной проблемой. В задачах глубокого обучения функция потерь обычно измеряет точность, сходство или доброту соответствия между прогнозируемым значением и наземной правдой. Тщательно подготовленная функция потерь может значительно улучшить эффективность обучения нейронной сети.
Выбор правильной функции потерь имеет решающее значение, поскольку она напрямую влияет на конвергенцию модели, обобщение и общую производительность в различных приложениях, от компьютерного зрения до прогнозирования временных рядов.Неправильная функция потерь может привести к нескольким проблемам: медленной конвергенции, плохому обобщению новых данных, нестабильности во время обучения или неспособности уловить нюансы задачи.
Функции потери в глубоком обучении являются типичной, но важной областью исследований, которая определяет производительность глубоких нейронных сетей. Одна и та же структура глубоких CNN с различными функциями потери может иметь разные результаты обучения. Это наблюдение подчеркивает, что одних архитектурных инноваций недостаточно - функция потери играет одинаково важную роль в определении конечной производительности модели.
Факторы, которые следует учитывать при выборе функции потери
Тип задачи: Фундаментальный характер вашей задачи — классификация, регрессия, сегментация или генерация — сужает соответствующие функции потерь. Задачи классификации обычно используют варианты кросс-энтропии, регрессия использует MSE или MAE, преимущества сегментации от Dice или фокусной потери, а генерация использует состязательные или перцептивные потери.
Характеристики данных: Дисбаланс классов, выбросы, уровни шума и размер набора данных влияют на выбор функции потери. Несбалансированные наборы данных выигрывают от фокусной потери или взвешенной кросс-энтропии, в то время как наборы данных с выбросами могут предпочесть надежные потери, такие как потеря Хубера, по сравнению с MSE.
Модельная архитектура: Однако в глубоком обучении нейроны последнего слоя обычно активируются сигмоидной или софтмаксной функцией. Таким образом, обучение с традиционными потерями вызовет меньшую эффективность и точность. Функции активации и выходная структура вашей модели ограничивают, какие функции потери уместны.
Метрика оценки: В идеале ваша функция потерь должна соответствовать тому, как вы будете оценивать производительность модели. Если вы заботитесь об IoU при обнаружении объектов, использование потерь на основе IoU имеет смысл. Если вы оптимизируете для оценки F1 в сегментации, потеря риса (которая связана с F1) является естественным выбором.
Вычислительная эффективность: Некоторые функции потерь являются более вычислительно дорогостоящими, чем другие. Для потери восприятия требуется прохождение вперед через дополнительную предварительно обученную сеть, в то время как для потери противника требуется обучение дискриминатора. Эти вычислительные затраты должны быть сопоставлены с потенциальным приростом производительности.
Многоубыточные стратегии обучения
Некоторые из этих методов использовали комбинацию более чем одной функции потери, особенно для моделей генерации изображений. Современные системы компьютерного зрения часто объединяют несколько функций потери, чтобы использовать дополнительные сильные стороны и решать различные аспекты проблемы обучения.
При обнаружении объектов общая потеря обычно сочетает в себе потерю классификации, потерю локализации, а иногда и дополнительные вспомогательные потери. Каждый компонент решает отдельный аспект задачи, и их относительные веса должны быть тщательно сбалансированы. Слишком большой акцент на классификации может привести к точным предсказаниям классов, но плохая локализация, в то время как переоценка локализации может привести к хорошо расположенным коробкам с неправильными ярлыками классов.
Для генерации изображений сочетание потери от восприятия с потерей от восприятия и потерей от пикселей создает проблему многообъективной оптимизации. Потеря от восприятия поощряет реализм, потеря от восприятия сохраняет смысловое содержание, а потеря от восприятия поддерживает структурное сходство. Задача заключается в поиске правильного баланса между этими целями.
Динамические стратегии взвешивания потерь автоматически корректируют относительную важность различных компонентов потерь во время обучения. Эти подходы признают, что различные цели могут быть более или менее важными на разных этапах обучения, позволяя модели сосредоточиться на том, что имеет наибольшее значение в каждом пункте процесса обучения.
Передовые концепции и последние разработки
Адаптивные и изученные функции потери
В ходе последних исследований изучались сами функции потери обучения, а не их ручное проектирование. Подходы к метаобучению обучают функцию потери распределению задач, позволяя ей обобщать новые задачи. Методы поиска нейронной архитектуры были расширены для поиска оптимальных функций потери наряду с сетевыми архитектурами.
Функции адаптивных потерь автоматически корректируют свое поведение на основе динамики обучения. Например, некоторые потери автоматически уравновешивают несколько целей, контролируя градиентные величины, гарантируя, что ни одна цель не доминирует в обучении. Другие адаптируют свое внимание между легкими и трудными примерами по мере прохождения обучения.
Эти изученные и адаптивные подходы показывают многообещающие результаты, но также вводят дополнительную сложность и вычислительные накладные расходы. Они наиболее ценны при работе с новыми задачами или доменами, где установленные функции потерь могут быть не оптимальными.
Надежность и неопределенность
В этой статье также представлены некоторые передовые проблемы и границы функции потерь в глубоком обучении.k Для повышения стабильности модели исследователи постоянно улучшают надежность функций потерь. Функции устойчивых потерь предназначены для обработки шумных ярлыков, выпадающих и состязательных примеров без катастрофической деградации производительности.
Функции симметричных потерь одинаково лечат положительные и отрицательные ошибки, делая их более устойчивыми к шуму метки. Шумовые потери явно моделируют шум метки как часть процесса обучения, позволяя модели эффективно учиться даже тогда, когда значительная часть меток обучения неверна.
Неосведомленные о неопределенности потери включают неопределенность модели в учебную задачу. Вместо того чтобы рассматривать все прогнозы в равной степени, эти потери объясняют уверенность модели, позволяя ей сосредоточиться на примерах, где она может делать надежные прогнозы, будучи осторожной в отношении неопределенных случаев.
Функции потери для самоконтролируемого обучения
Самоконтролируемое обучение стало мощной парадигмой для обучения визуальным представлениям без ручных меток. Такой подход требует специализированных функций потерь, которые побуждают модель изучать полезные функции из немаркированных данных.
Контрастные потери для обучения под контролем самоконтроля сближают различные дополненные представления одного и того же изображения, одновременно отодвигая взгляды от разных изображений. SimCLR, MoCo и аналогичные фреймворки используют варианты контрастной потери для изучения представлений, которые инвариантны для увеличения данных, но дискриминационны между различными изображениями.
Неконтрастные методы, такие как BYOL и SimSiam, избегают явных отрицательных пар, используя операции прогнозирования и стоп-градиента для предотвращения коллапса до тривиальных решений. Эти подходы достигли впечатляющих результатов, иногда совпадающих или превышающих контролируемую производительность обучения на задачах ниже по потоку.
Моделирование изображений в масках, вдохновленное моделированием языка в NLP, использует потери реконструкции для прогнозирования замаскированных участков изображений. Этот подход оказался эффективным для изучения визуальных представлений, особенно в сочетании с трансформаторами зрения.
Практические соображения по осуществлению
Рамочная поддержка и осуществление
Популярные фреймворки, такие как PyTorch, TensorFlow/Keras и MATLAB, обеспечивают основные функциональные возможности, такие как вычислительные графики, автоматическая дифференциация и предварительно реализованные потери (например, MSE, кросс-энтропия) наряду со стандартными показателями, такими как точность или точность вызова. Современные фреймворки глубокого обучения делают реализацию функций потерь простой, с наиболее распространенными потерями, доступными в качестве встроенных функций.
Для пользовательских функций потерь эти фреймворки предоставляют инструменты, необходимые для их эффективной реализации. Автоматическая дифференциация обрабатывает градиентные вычисления, позволяя сосредоточиться на определении передового прохода потери. Ускорение GPU гарантирует, что даже сложные функции потерь могут быть эффективно вычислены во время обучения.
При реализации пользовательских потерь решающее значение имеет числовая стабильность. Такие операции, как логарифмы и деления, могут производить бесконечные или неопределенные значения, если не обрабатывать их тщательно. Большинство фреймворков обеспечивают численно стабильные реализации общих операций, а следование передовым практикам помогает избежать нестабильности обучения.
Настройка гиперпараметра
Многие функции потерь включают гиперпараметры, которые значительно влияют на обучение. Фокальная потеря имеет параметр фокусировки гамма и параметр балансировки альфа. Потеря тройни имеет параметр запаса. Многопоточные установки требуют весов для каждого компонента. Эти гиперпараметры должны быть настроены для оптимальной производительности.
Поиск по сети и случайный поиск являются общими подходами для настройки гиперпараметров, хотя они могут быть вычислительно дорогими. Байесовская оптимизация и другие передовые методы могут найти хорошие гиперпараметры более эффективно. Кросс-валидация помогает обеспечить обобщение выбранных гиперпараметров для невидимых данных.
Начиная с значений, сообщенных в литературе, обеспечивается хороший базовый уровень, но оптимальные гиперпараметры часто зависят от вашего конкретного набора данных и задачи. Мониторинг кривых обучения и производительность проверки помогает определить, когда гиперпараметры нуждаются в корректировке.
Отладка и мониторинг
Мониторинг значений потерь во время обучения дает важную информацию о процессе обучения. Потери должны, как правило, уменьшаться с течением времени, хотя скорость и характер снижения варьируются в зависимости от задачи и функции потери. Внезапные всплески, плато или расхождения указывают на потенциальные проблемы.
Для многопоточной установки мониторинг каждого компонента по отдельности помогает выявить дисбалансы. Если доминирует один компонент потерь, модель может пренебрегать другими целями. Корректировка весов потерь или скорости обучения для разных компонентов может восстановить баланс.
Визуализация прогнозов наряду с значениями потерь обеспечивает качественные выводы, которые дополняют количественные показатели. Для сегментации изображений наложение прогнозируемых масок на входные изображения показывает, изучает ли модель значимые шаблоны или использует предубеждения набора данных.
Проблемы и будущие направления
Акцент делается на сложных сценариях, включающих мультимодальные данные, классовые дисбалансы и реальные ограничения. Наконец, мы определяем ключевые будущие направления, пропагандируя функции потерь, которые повышают интерпретируемость, масштабируемость и обобщение, что приводит к более эффективным и устойчивым моделям глубокого обучения.
Устранение дисбаланса экстремального класса
Мы обнаружили, что многие важные функции потерь используются для решения проблемы дисбаланса. Идея очаговой потери может эффективно решить эту проблему, и недавние потери в рейтинге могут лучше справиться с ней. Хотя очаговая потеря и взвешенные потери помогают, экстремальный дисбаланс остается сложным, особенно в таких областях, как медицинская визуализация, где аномалии редки.
Будущие направления исследований включают разработку функций потерь, которые автоматически адаптируются к степени дисбаланса, объединение нескольких стратегий для устранения дисбаланса и лучшую интеграцию увеличения данных с дизайном функции потерь. Подходы мета-обучения, которые учатся справляться с дисбалансом из нескольких связанных задач, также показывают перспективы.
Многомодальное и многозадачное обучение
Поскольку системы компьютерного зрения все чаще обрабатывают несколько модальностей (изображения, текст, аудио) и одновременно решают несколько связанных задач, функции потерь должны развиваться, чтобы справиться с этими сложностями. Балансирование целей между модальностями и задачами при обеспечении того, чтобы обучение в одной области не оказывало негативного влияния на другие, остается открытой проблемой.
Кросс-модальные потери, которые способствуют согласованию между различными модальностями, оказались полезными для моделей, основанных на концепции. Убытки, связанные с конкретными задачами, в сочетании с общими потерями представления позволяют эффективно изучать многозадачность. Однако оптимальные стратегии объединения этих потерь и предотвращения негативной передачи требуют дальнейшего изучения.
Интерпретируемость и объяснимость
Понимание того, почему конкретная функция потерь хорошо работает для данной задачи, остается в значительной степени эмпирическим. Разработка теоретических основ, которые предсказывают, какие функции потерь будут эффективными на основе характеристик задачи, ускорит прогресс и уменьшит характер проб и ошибок выбора функции потерь.
Интерпретируемые функции потерь, которые дают представление о том, что изучает модель и почему некоторые примеры сложны, могут помочь практикующим отлаживать модели и улучшать производительность. Подключение дизайна функции потерь к человеческому восприятию и когнитивной науке может привести к потерям, которые лучше согласуются с тем, как люди оценивают качество зрения.
Автоматический дизайн функции потерь
Наконец, мы выявляем открытые проблемы и перспективные направления, в том числе автоматизацию поиска функций потерь и разработку надежных, интерпретируемых мер оценки для все более сложных задач глубокого обучения. Автоматизация открытия оптимальных функций потерь для новых задач может демократизировать глубокое обучение за счет сокращения опыта, необходимого для достижения хороших результатов.
Поиск в нейронной архитектуре успешно автоматизировал разработку модели; применение аналогичных методов для поиска функции потерь является естественным следующим шагом.Проблемы включают определение пространства поиска возможных функций потерь, эффективную оценку кандидатов и обеспечение того, чтобы обнаруженные потери обобщались за пределами конкретных задач, используемых во время поиска.
Полный список функций потери для компьютерного зрения
Для практического использования, вот расширенная категоризация функций потери, обычно используемых в компьютерном зрении:
Регрессивные потери
- Значимая квадратная ошибка (MSE): Стандартная потеря для регрессии, чувствительная к выбросам
- Значение абсолютной ошибки (MAE): Более устойчив к выбросам, чем MSE
- Huber Loss: Комбинирует MSE и MAE, устойчивый к выбросам при сохранении плавности
- Плавная потеря L1: Похожая на потерю Губера, обычно используемая при обнаружении объектов
- Лог-Кош Потеря: Плавное приближение МАЭ с лучшими градиентными свойствами
Классификация потерь
- Потеря перекрестной энтропии: Стандарт для многоклассовой классификации
- Бинарная кросс-энтропия: Для задач бинарной классификации
- Основные потери:Решение классового дисбаланса, сосредоточившись на жестких примерах
- Весовая перекрестная энтропия: Назначает разные веса для разных классов
- Лабеля Успокаивающие потери: Предотвращают слишком самоуверенные прогнозы
- Потеря хенга: Максимально допустимая потеря для СВМ
Сегментация потерь
- Убыток риса: Оптимизация совпадения между предсказанными и наземными масками правды
- Тверская потеря: Обобщение потери Кофейных с регулируемыми ложноположительными/отрицательными штрафами
- Основная потеря Тверского:Совместила очаговую потерю с потерей Тверского
- Убыток границы: Подчеркивает точное определение границы
- Убыток Lovász-Softmax:Прямая оптимизация IoU для сегментации
Убытки по обнаружению объектов
- Убытки IoU:Прямая оптимизация перекрытия ограничивающих коробок
- GIoU Loss: Обобщенный IoU, который обрабатывает неперекрывающиеся коробки
- DIoU Loss: Расстояние IoU с учетом расстояния до центральной точки
- СОУ Убыток: Полный МНВ включая соотношение сторон
- Основные потери: Для классификации при обнаружении объектов
Метрические потери обучения
- Контрастная потеря: Узнает встраивания из пар примеров
- Тройная потеря: Использует якорно-положительно-отрицательные тройни.
- N-парный убыток: Продлевает тройной убыток на несколько отрицательных
- Центр Потеря: Изучает класс центров в встраивании пространства
- Убыток от угла на основе маржи для распознавания лиц:
- Убыток CosFace: Убыток на основе маржинальной прибыли от использования косинуса
Генерирующие потери
- Стороннее поражение: Используется в GAN для отличия реальных от сгенерированных изображений
- Перцептивная потеря: Сравнение высокоуровневых функций из предварительно обученных сетей
- Утрата стиля: Захват художественного стиля через Грамматические матрицы
- Полная потеря вариаций: Поощряет пространственную гладкость
- Потеря реконструкции: Сравнение по пикселю с автокодерами
- SSIM Loss: Индекс структурного сходства для качества изображения
Лучшие практики для работы с функциями потери
Мы предложили два руководства по проектированию или выбору функций потерь. Исследователи могут использовать функцию потерь в соответствии со сценарием приложения или на основе его свойств. Вот практические рекомендации по эффективному использованию функций потерь в проектах компьютерного зрения:
- Начните с установленных базовых линий: Начните со стандартных функций потерь, которые, как известно, хорошо работают для вашего типа задач, прежде чем исследовать более экзотические варианты.
- Понимать ваши данные: Анализ распределения классов, распространенности выбросов и качества данных для определения функции потерь.
- Выберите потери, которые коррелируют с тем, как вы в конечном итоге измеряете успех.
- Мониторинг нескольких показателей: Не полагайтесь исключительно на значения потерь; отслеживайте метрики, относящиеся к конкретным задачам, которые отражают реальную производительность.
- Опыт систематически: При попытке разных потерь измените одну вещь за раз, чтобы понять, что приводит к изменениям производительности.
- Рассмотрите вычислительные затраты: Баланс потенциальных достижений производительности по сравнению с требованиями времени обучения и ресурсов.
- Проверка данных: Убедитесь, что улучшение потери обучения приводит к лучшему обобщению.
- Запишите свои варианты: Запишите, какие потери вы пытались, их гиперпараметры и результаты для создания институциональных знаний.
Ресурсы для дальнейшего обучения
Для тех, кто хочет углубить свое понимание функций потери в компьютерном зрении, несколько ресурсов предоставляют ценную информацию:
Документация PyTorch предлагает полный охват встроенных функций потерь с подробностями реализации и примерами использования. Аналогично, документация функции потерь TensorFlow предоставляет обширные ресурсы для пользователей Keras.
Академические статьи, вводящие новые функции потерь, обычно включают исследования абляции, демонстрирующие их эффективность. Чтение этих статей дает представление о мотивации различных конструкций потерь и проблемах, которые они решают. Сервер препринтов arXiv содержит много недавних статей о функциях потерь и их приложениях.
Онлайн-курсы по глубокому обучению с таких платформ, как Coursera, fast.ai и CS231n Стэнфорда, включают функции потери в свою учебную программу. Эти курсы обеспечивают структурированные пути обучения с практическими упражнениями.
Реализации с открытым исходным кодом самых современных моделей на GitHub демонстрируют, как практикующие специалисты объединяют и настраивают функции потери в реальных приложениях. Изучение этих реализаций раскрывает практические соображения, часто опущенные из статей.
Заключение
Функции потерь имеют основополагающее значение для обучения эффективным моделям компьютерного зрения, служа мостом между прогнозами моделей и желаемыми результатами. Такие потери обычно предназначены для решения уникальных проблем, стоящих перед глубоким обучением. От базовой регрессии и потерь классификации до сложных формулировок, характерных для конкретных задач, ландшафт функций потерь продолжает развиваться наряду с достижениями в архитектурах моделей и областях применения.
Понимание математических основ, практических соображений и соответствующих применений различных функций потерь дает возможность практикующим принимать обоснованные решения при разработке и обучении систем компьютерного зрения. Хотя ни одна функция потерь не работает оптимально для всех сценариев, принципы и руководящие принципы, обсуждаемые в этой статье, обеспечивают основу для выбора и адаптации потерь к конкретным потребностям.
Поскольку компьютерное зрение решает все более сложные задачи - от мультимодального понимания до обучения с несколькими выстрелами до надежного развертывания в критически важных приложениях - функции потери будут продолжать играть решающую роль в формировании того, как модели учатся. Проводимые исследования адаптивных, изученных и надежных функций потерь обещают сделать глубокое обучение более доступным и эффективным в различных приложениях.
Тщательно рассматривая требования к задачам, характеристики данных и цели оценки, практикующие специалисты могут использовать богатый набор доступных функций потери для создания систем компьютерного зрения, которые не только достигают высокой точности, но и хорошо обобщают, изящно обрабатывают краевые случаи и согласуются с реальными ограничениями развертывания. Путь от понимания основных функций потери до освоения их применения необходим для любого, кто серьезно относится к продвижению современного компьютерного зрения.