Замена среднего на медиану по размеру партии, чтобы уменьшить влияние выбросов.

Вопрос или проблема

В случае обучения нейронной сети на задаче регрессии. Предполагая, что в данных присутствует значительное количество выбросов. При условии, что ошибка должна измеряться по методу RMS, а не MAE. Может ли быть лучше (то есть менее чувствительно к выбросам) заменить среднее значение по размеру батча при обновлении весов на вычисление медианы по размеру батча?

Для достаточно большого размера батча это должно уменьшить влияние вкладов от выбросов. Однако это не кажется распространённой практикой по крайней мере на текущий момент. Каковы недостатки этого подхода?

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

Возможно, я неправильно интерпретировал вопрос, позвольте мне ответить на оба аспекта

  1. Если вы обсуждаете использование медианы для значения потерь, это довольно странно, поскольку вы будете отбрасывать большую часть вашего батча на каждой итерации. Как только вы выбираете медиану, это эквивалентно тому, что ваша модель просто не видит никаких изображений, которые соответствуют небедной потере, и использует размер батча 1 с наиболее типичным изображением на каждой итерации. Предположим, вы используете размер батча 33 и большой набор данных. Тогда изображение с потерей ниже 30-го процентиля будет видно только в случае, если оно является медианой батча, что происходит менее чем в 1% случаев $(.3^{16} .7^{16} \binom{32}{16}=.0086)$. Другими словами, модель не увидит большую часть ваших данных.

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

В любом случае, возможно, существует какое-то обоснование, но если цель состоит в том, чтобы игнорировать выбросы, вы можете просто отбросить потери от элементов с высокой потерей.

Ответ или решение

Замена среднего на медиану при обновлении весов нейронной сети для снижения влияния выбросов

Обучение нейронной сети для решения регрессионных задач часто сталкивается с проблемой выбросов в данных. Эти выбросы могут значительно исказить результаты, особенно если принимаемая метрика – среднеквадратичная ошибка (RMS), а не средняя абсолютная ошибка (MAE). В данной статье рассматривается вопрос: может ли замена среднего значения на медиану при расчете обновления весов в батче уменьшить чувствительность модели к выбросам?

Плюсы использования медианы

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

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

Недостатки подхода

Несмотря на потенциальные преимущества, данная стратегия имеет значительные недостатки:

  1. Сложность вычислений: Как уже упоминалось, расчет медианы может быть более затратным по сравнению с вычислением среднего. Медиана может быть найдена с помощью алгоритма Quickselect, который имеет линейную сложность в худшем случае, тогда как для среднего достаточно всего лишь суммировать значения и разделить на их количество. Это становится критически важным при больших размерах данных и необходимости быстрого обновления весов.

  2. Потеря информации о данных: Использование медианы для расчета потерь может привести к тому, что модель фактически проигнорирует большинство данных в батче. Например, если батч состоит из 33 изображений, и одно из них имеет очень высокую ошибку, оно не повлияет на обновление весов, если оно находится вне медианной точки батча. Это значит, что модель может никогда не "увидеть" данные с низкой потерей, если они не находятся рядом с медианой. Это существенно ухудшает обобщающую способность модели.

  3. Неправильное направление градиента: Если бы вы использовали медиану для обновления весов в каждой ноде сети, это могло бы привести к очень неожиданным и не всегда корректным обновлениям. В отличие от градиентного спуска, при использовании медианы вы фактически игнорируете некоторые потери, что может нарушить стандарты градиентного обучения.

Альтернативные решения

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

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...