Метод нормализации для сверточной нейронной сети - PullRequest
0 голосов
/ 07 мая 2018

Существует три распространенных метода нормализации данных изображения:

1. X = (X - X.mean) / X.std
2. X /= 255. # (based on formula: (X - min) / (max - min) which can converge data into [0, 1].)
3. X = 2 * (X - min) / (max - min) - 1 # converge into [-1, 1]

Я обнаружил в разных руководствах или постах CNN, что люди могут использовать одно из них для нормализации данных. Но я немного запутался в них, как выбрать один в разных ситуациях?

Спасибо за любые объяснения заранее.

1 Ответ

0 голосов
/ 07 мая 2018

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

Какой именно метод нормализации вы выберете, зависит от данных, с которыми вы имеете дело, и от ваших предположений относительно этих данных. Все три вышеуказанных метода нормализации основаны на двух идеях: центрировании и масштабировании. Способ 2. включает только масштабирование данных в определенный диапазон. Это гарантирует, что масштаб различных объектов находится в одинаковом диапазоне и, следовательно, дает стабильные градиенты. Метод 1. включает центрирование данных вокруг среднего значения точки данных, а затем деление каждого измерения точки данных на его стандартное отклонение, чтобы все измерения имели одинаковую важность для алгоритма обучения. Эта нормализация более эффективна, когда у вас есть основания полагать, что различные измерения в данных имеют существенно различающийся диапазон. Приведение всех измерений в один и тот же диапазон делает эффективное использование параметров эффективным. Метод 3 также может рассматриваться как кто-то, выполняющий работу sam как метод 1.

...