Является ли использование онлайн-дополнения данных хорошим сравнением моделей CNN? - PullRequest
0 голосов
/ 28 июня 2018

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

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

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Если я вас правильно понял, вас интересует, влияет ли случайность, вызванная увеличением данных, на результат?

Случайность увеличения не влияет на результат (по крайней мере, до степени, которая в любом случае имеет значение), если вы тренируетесь достаточно долго. Другие варианты у вас есть (как я думаю об этом):

  1. Дополните ваши данные детерминистическим применением того же преобразования к вашим изображениям до вставки их в вашу модель. Эти преобразования могут быть (а) либо случайными, например, поверните ваши изображения на произвольную степень между некоторыми пределами или (b) заранее определенными, например, поверните все свои изображения на 1, 3 и 5 градусов.
  2. Не увеличивайте ваши данные вообще. Используйте ваши начальные данные для обучения вашей модели.

Эффект от этих выборов:

  1. Количество примененных вами преобразований ограничено, и даже если выбран вариант 1a, он будет предварительно задан. Если вы хотите значительно увеличить это, возникают другие проблемы, например, где вы собираетесь хранить все эти данные, как вы будете обрабатывать их во время обучения и т. Д. Таким образом, преимущество «на лету» в том, что хранилище ваших данных не меняется вы также не можете справиться со своими данными Недостаток, конечно, заключается в более медленной процедуре (которая в зависимости от преобразования может иметь большое значение).
  2. Этот выбор действителен означает, что у вас есть много данных. И много значить (в зависимости от проблемы, конечно) иногда много не достаточно. Поскольку вы (вероятно) используете разные данные для тестирования, между данными об обучении и тестировании возникают различия во многих аспектах. Например, для обнаружения человеком (произвольный выбор) распространены различия в позах, цветах, условиях освещения, четкости изображения, размере изображения, соотношении сторон. Как ты с этим справляешься? Вы либо собираете огромную коллекцию данных, либо (возможно) используете расширение данных, верно?

Подводя итог, это справедливо, потому что в долгосрочной перспективе это не имеет большого значения. Рассмотрим вариант ранней остановки для вашей модели, например. Справедливо ли сравнивать модели, которые остановили свое обучение не в лучшей итерации? Ну, это не совсем справедливо, но это не имеет значения.

0 голосов
/ 28 июня 2018

На мой взгляд, вы уже даете часть ответа на свой вопрос:

изображения увеличиваются на лету, действительно ли это справедливо, поскольку каждая модель получает немного разные изображения?

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