Нормализация данных сверточных автоэнкодеров - PullRequest
0 голосов
/ 14 октября 2019

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

Насколько мне известно, есть варианты предварительной обработки изображений: - нормализация - стандартизация (z-оценка)

При нормализации с использованием подхода MinMax (масштабирование от 0 до 1) сеть работает нормально, но мой вопрос здесь: - При использовании минимальных максимальных значений обученияустановлен ли для масштабирования, должен ли я использовать минимальные / максимальные значения изображений с шумом или наземных изображений истинности?

Второе, что я заметил при обучении моего автоэнкодера: - При использовании стандартизации z-показателя потери уменьшаются длядве первые эпохи, после этого она останавливается на отметке 0,030 и остается там (она застревает). Почему это? С нормализацией потери уменьшаются намного больше.

Заранее спасибо,

ура,

Майк

1 Ответ

0 голосов
/ 22 октября 2019

[Примечание: этот ответ представляет собой компиляцию приведенных выше комментариев, для записи]

MinMax действительно чувствителен к выбросам и некоторым типам шума, поэтому его не следует использовать в шумоподавляющемприменение. Вместо этого вы можете использовать квантили 5% и 95% или использовать z-показатель (для которого готовые реализации являются более распространенными).

Для более реалистичного обучения следует выполнить нормализацию на зашумленных изображениях.

Поскольку в последнем слое используется сигмовидная активация (информация из ваших комментариев), выходы сети будут принудительно установлены в диапазоне от 0 до 1. Следовательно, он не подходит для автоматического кодирования на изображениях с преобразованием z-показателя (поскольку интенсивность цели может приниматьпроизвольные положительные или отрицательные значения). Активация идентификации (называемая в Keras линейной) в этом случае является правильным выбором.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...