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

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

Получите удовольствие! 🎉

Так что в этом есть смысл.

Увеличение данных - это стратегия, которая позволяет практикам значительно увеличить разнообразие данных, доступных для обучающих моделей, без фактического сбора новых данных. Для обучения больших нейронных сетей обычно используются методы увеличения данных, такие как обрезка, заполнение и горизонтальное отражение. Однако большинство подходов, используемых при обучении нейронных сетей, используют только базовые типы дополнений. Хотя архитектуры нейронных сетей были глубоко исследованы, меньше внимания уделялось обнаружению сильных типов увеличения данных и политик увеличения данных, которые фиксируют инвариантность данных.

Теперь вопрос, откуда брать данные, если больше данных нет?

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

Вы угадали - Эйфелева башня
Видите ли вы в кадре ниже какой-нибудь другой памятник, содержащий 4 «разных изображения» - Ах, не для вас! но для нейронной сети все по-другому из-за ее размера, цвета, уровня масштабирования, обрезки, поворота, наклона и т. д.

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

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

Давайте посмотрим на визуализацию различных дополнений данных.

Давайте посмотрим с расширенным и без расширенного набора данных.

(Здесь мы собираемся использовать PyTorch)

Давайте сначала визуализируем набор данных Fashion-MNIST (MNIST слишком просто 😎):

Давайте теперь дополним набор данных различными преобразованиями.

Хорошо, теперь вам может быть любопытно, что это за преобразования?

RandomRotation(degrees) : Rotate the image by angle.   
degrees : Range of degrees to select from. If degrees is a number instead of sequence like (min, max), the range of degrees will be (-degrees, +degrees).
RandomResizedCrop(size) : Crop the given PIL Image to random size and aspect ratio.
size – expected output size of each edge
RandomHorizontalFlip(p) : Horizontally flip the given PIL Image randomly with a given probability p.
Resize(size) : Resize the input PIL Image to the given size.
size (sequence or int) – Desired output size. If size is a sequence like (h, w), output size will be matched to this. If size is an int, smaller edge of the image will be matched to this number. i.e, if height > width, then image will be rescaled to (size * height / width, size)
CenterCrop(size): Crops the given PIL Image at the center.

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

Давайте также визуализируем это на некотором наборе данных каналов RGB.
Здесь мы берем CIFAR-10:

Если мы применим те же преобразования, что и раньше, к этому набору данных:

Давайте применим больше преобразований:

ColorJitter(brightness=0, contrast=0, saturation=0, hue=0) :
Randomly change the brightness, contrast and saturation of an image.
The parameters describe how much to jitter.

Результаты -

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

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

«Размер эпохи не меняется, вы просто получаете случайно преобразованные образцы каждую эпоху. Таким образом, концепция статического набора данных становится немного более динамичной », - Сумит Чинтала, создатель PyTorch.

Совет 1. Мы также можем создавать преобразования для определенных классов в определенном наборе данных, но давайте оставим это на другой день!

Совет 2. Кроме того, иногда без надобности применение тяжелых аугментаций может привести к снижению точности.

Совет 3. Как правило, не рекомендуется использовать увеличение данных в наборе тестов, так как мы не обучаем по набору тестов.

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

— — — — — — — — — — — — — — — — — — — — — — — — — —

🏆 Бонусный совет: расширение набора данных используется не только в проблемах со зрением, но также в задачах и приложениях НЛП, потому что вам снова нужно обучить модель и протестировать ее в реальном мире, поэтому она должна содержать нюансы и актуальный язык. используются людьми при общении друг с другом, и поэтому для тех, кто хочет больше узнать, какие удивительные дополнения используются для повышения точности модели в задачах НЛП, проверьте эту ссылку, чтобы получить более подробное объяснение этого вопроса @ neptune.ai



— — — — — — — — — — — — — — — — — — — — — — — — — —

Ссылки:

🔗 https://pytorch.org/tutorials/beginner/data_loading_tutorial.html
🔗 http://cs231n.stanford.edu/reports/2017/pdfs/300.pdf

Чтобы увидеть больше таких интересных историй, вы можете подписаться на меня или подписаться на меня.

Не стесняйтесь поделиться своими мыслями об увеличении данных в разделе комментариев ниже.

Хлопайте! Поделись! Следуй за мной!

— — — — — — — — — — — — — — — — — — — — — — — — — —

— — — — — — — — — — — — — — — — — — — — — — — — — —