Существуют некоторые варианты нормализации изображений, но большинство, похоже, используют эти два метода:
- Вычтите среднее значение для канала, рассчитанное для всех изображений (например, VGG_ILSVRC_16_layers )
- Вычесть по пикселю / каналу, рассчитанному по всем изображениям (например, CNN_S , также см. Эталонную сеть Caffe )
Естественный подход будет в моем уме нормализовать каждое изображение. Изображение, полученное при ярком дневном свете, вызовет больше нейронов, чем изображение в ночное время, и хотя оно может сообщить нам о времени, когда мы обычно заботимся о более интересных функциях, присутствующих на краях и т. Д.
В 3.3.3 Пьер Серманет ссылается на локальную нормализацию контраста , которая будет основана на каждом изображении, но я не сталкивался с этим ни в одном из примеров / учебных пособий, которые я видел. Я также видел интересный вопрос Quora и пост Сюй-Шэнь Вэя, но они, кажется, не поддерживают два вышеупомянутых подхода.
Что именно мне не хватает? Это проблема нормализации цвета или есть документ, который на самом деле объясняет, почему так много людей используют этот подход?
источник
Ответы:
Вычитание среднего значения набора данных служит для «центрирования» данных. Кроме того, в идеале вы хотели бы разделить на sttdev этого объекта или пикселя, если вы хотите нормализовать каждое значение объекта по z-значению.
Причина, по которой мы делаем обе эти вещи, заключается в том, что в процессе обучения нашей сети мы будем умножать (весовые коэффициенты) и прибавлять (смещать) эти начальные входные данные, чтобы вызвать активацию, которую мы затем обратно добавим с градиентами для тренировать модель.
В этом процессе мы хотели бы, чтобы каждая функция имела одинаковый диапазон, чтобы наши градиенты не выходили из-под контроля (и чтобы нам был нужен только один глобальный множитель скорости обучения).
Еще один способ думать об этом - это сети с глубоким обучением, которые традиционно используют много параметров - если вы не масштабируете свои входные данные таким образом, чтобы получить одинаковые значения характеристик объектов (то есть: по всему набору данных путем вычитания среднего), общий доступ не будет это происходит очень легко, потому что для одной части изображения вес
w
велик, а для другой он слишком мал.В некоторых моделях CNN вы увидите, что для каждого изображения используется отбеливание, которое больше соответствует вашим взглядам.
источник
Перед нормализацией партии среднее вычитание на канал использовалось для центрирования данных вокруг нулевого среднего для каждого канала (R, G, B). Это обычно помогает сети учиться быстрее, поскольку градиенты действуют одинаково для каждого канала. Я подозреваю, что если вы используете нормализацию партии, то шаг предварительной обработки среднего вычитания для каждого канала на самом деле не нужен, так как в любом случае вы нормализуете для каждой мини-партии.
источник
Нормализация для каждого изображения является обычной и даже единственной встроенной функцией в настоящее время в Tensorflow (в первую очередь из-за простоты реализации). Он используется по той причине, которую вы упомянули (день против ночи для того же изображения). Однако, если вы представите более идеальный сценарий, в котором освещение контролируется, то относительные различия между каждым изображением будут иметь большое значение в алгоритме, и мы бы не хотели стирать это с помощью нормализации для каждого изображения (и хотели бы выполнить нормализацию в контексте всего набора обучающих данных).
источник
Это называется предварительной обработкой данных перед их использованием. Вы можете обрабатывать разными способами, но есть одно условие, что вы должны обрабатывать все данные с одной и той же функцией X_preproc = f (X), и это f (.) Не должно зависеть от самих данных, поэтому, если вы используете текущее изображение, значит обрабатывать это текущее изображение, тогда ваш f (X) будет действительно f (X, изображение), и вы этого не хотите.
Нормализация контраста изображения, о которой вы говорили, предназначена для другой цели. Нормализация контраста изображения поможет в особенности.
Но f (.) Выше поможет в оптимизации, сохранив все функции численно равными друг другу (конечно, приблизительно)
источник