Обнаружение объектов стало важной задачей в компьютерном зрении с широким спектром приложений от беспилотных автомобилей до видеонаблюдения. Одним из самых популярных и эффективных подходов к обнаружению объектов является архитектура нейронной сети You Only Look Once версии 5 (YOLOv5).

Однако архитектура нейронной сети YOLOv5 имеет несколько гиперпараметров, которые могут существенно повлиять на ее производительность. Эти гиперпараметры контролируют поведение модели во время обучения и вывода, и выбор для них подходящих значений имеет решающее значение для достижения оптимальных результатов. К сожалению, исходный код YOLOv5 плохо документирован, что затрудняет понимание и модификацию системы исследователями и практиками.

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

Гиперпараметры YOLOv5:

lr0, lrf — скорость обучения — это гиперпараметр, определяющий размер шага, с которым обновляются параметры нейронной сети во время обучения. Выбор скорости обучения имеет решающее значение для определения того, насколько быстро сеть сходится к оптимальному решению и насколько хорошо она обобщает новые данные.

Снижение скорости обучения во время обучения является обычной практикой для улучшения сходимости и обобщения в нейронных сетях глубокого обучения. Большие начальные скорости обучения (lr0) позволяют системе быстрее приближаться к оптимальному решению, но могут привести к перерегулированию сети, что приведет к нестабильному и колебательному поведению, которое не позволит сети прийти к хорошему решению. Следовательно, когда сеть приближается к оптимальному решению, градиенты становятся меньше, препятствуя выходу сети за пределы минимума и отскоку вокруг него без сходимости.

Позже в процессе обучения меньшая скорость обучения помогает сети более точно исследовать пространство параметров и находить лучший минимум, который хорошо обобщает новые данные. Параметр lrf определяет, насколько малой будет скорость обучения в конце обучения.

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

Член импульса также помогает уменьшить влияние шума в оценках градиента, что может привести к более стабильной оптимизации и лучшему обобщению. Для оптимизатора Адама типичные значения импульса составляют от 0,9 до 0,999.

weight_decay — уменьшение веса — это метод регуляризации, используемый в глубоком обучении для предотвращения переобучения путем добавления штрафного члена к функции потерь. Штрафной срок пропорционален квадрату величины весов в сети. Гиперпараметр уменьшения веса контролирует силу штрафного члена и определяет, насколько веса уменьшаются до нуля.

В контексте обнаружения объектов снижение веса может повлиять на производительность сети, влияя на баланс между недообучением и переоснащением. Если задано слишком низкое затухание веса, модель может перекрыть обучающие данные, что приведет к плохой производительности обобщения новых данных. С другой стороны, если задано слишком большое затухание веса, модель может не соответствовать обучающим данным, что приведет к снижению производительности как на обучающих, так и на тестовых данных.

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

cls_pw, obj_pw — при обнаружении объектов бинарная кросс-энтропийная потеря обычно используется для обучения сети различать объекты и необъекты во входном изображении. Потери вычисляются на основе прогнозируемой вероятности того, что каждый пиксель или блок привязки принадлежит объекту или нет, а также на основе меток истинности.

Типичные значения бинарного веса кросс-энтропийных потерь в сетях обнаружения объектов варьируются в зависимости от конкретного приложения и набора данных. Обычно используются значения от 1 до 10, но значения за пределами этого диапазона также могут быть подходящими в зависимости от специфики решаемой задачи.

iou_t — пороговое значение Intersection over Union (IoU) используется для определения того, считается ли предсказанная ограничивающая рамка для объекта истинным положительным или ложным положительным результатом. Порог IoU — это минимальное перекрытие, необходимое между прогнозируемой ограничивающей рамкой и ограничивающей рамкой истинности, чтобы прогноз считался истинно положительным.

Высокий порог IoU приведет к меньшему количеству, но более точным обнаружениям, в то время как более низкий порог приведет к большему количеству обнаружений, но с более высоким уровнем ложных срабатываний.

anchor_t — поля привязки представляют собой предопределенные ограничивающие прямоугольники разных размеров и соотношений сторон, которые размещаются в разных местах на сетке изображения. Параметр anchor_t, также известный как порог множественных привязок, представляет собой гиперпараметр, определяющий максимальную корректировку, которую можно выполнить для полей привязки во время обучения.

Во время обучения нейронная сеть учится настраивать поля привязки, чтобы лучше соответствовать объектам на входном изображении. Однако, если корректировка слишком велика, поле привязки может не соответствовать ни одному объекту на изображении или соответствовать нескольким объектам, что приведет к неправильному обнаружению. Таким образом, параметр anchor_t ограничивает максимальную корректировку, которую можно выполнить для полей привязки.

В частности, параметр anchor_t определяет максимальное значение, кратное исходному размеру поля привязки, которое может иметь скорректированное поле привязки. Например, если для параметра anchor_t установлено значение 2, скорректированное поле привязки может быть не более чем в два раза больше исходного поля привязки.

fl_gamma — Focal Loss — это модификация функции кросс-энтропийных потерь, которая направлена ​​на решение проблемы дисбаланса классов в задачах обнаружения объектов. В стандартной кросс-энтропийной потере все классы имеют одинаковый вес, что может привести к снижению производительности, когда имеется много легко поддающихся классификации примеров и лишь несколько сложных. Фокусная потеря присваивает меньший вес простым примерам и больший вес сложным примерам, что позволяет модели больше сосредоточиться на сложных примерах.

Значение гаммы зависит от конкретной задачи и набора данных. Как правило, обычно используется значение от 1 до 3. Большее значение гаммы означает, что сеть будет больше фокусироваться на сложных примерах, а меньшее значение означает, что сеть будет более сбалансированно обрабатывать простые и сложные примеры.

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

СТАНЬТЕ ПИСАТЕЛЕМ на MLearning.ai