Улучшение глубокого обучения с увеличением данных

Увеличение данных — это важнейший метод в конвейерах машинного обучения и глубокого обучения, который помогает повысить производительность и обобщение моделей. Он включает в себя применение различных преобразований к существующему набору данных, тем самым создавая новые примеры, которые являются вариациями исходных данных. В контексте данных изображения увеличение данных включает в себя такие операции, как вращение, отражение, масштабирование и другие. В этой статье мы рассмотрим различные методы увеличения данных с использованием фреймворка TensorFlow/Keras.

Оглавление:

· 1. Зачем Data Augmentation?
· 2. Методы увеличения данных
2.1 Метод 1: Использование функции ImageDataGenerator
(1) Отражение по горизонтали и вертикали
(2) Вращение
( 3) Масштабирование
(4) Регулировка яркости и контрастности
(5) Сдвиг
(6) Сдвиг канала
(7) Нормализация
(8) Пример реализации
2.2 Метод 2: Использование слоя расширения
(1) Слой RandomFlip
(2) RandomRotation Layer
(3) RandomContrast Layer
(4) RandomBrightness layer
(5) Определить слои Keras Augmentation
(5) Пример реализации
· Заключение

1. Почему увеличение данных?

В общем, увеличение данных служит нескольким целям:

  1. Повышенная надежность: дополненные данные вводят вариации, которые помогают модели стать более устойчивой к изменениям входных данных.
  2. Обобщение: обучаясь на более разнообразном наборе данных, модели могут лучше обобщать невидимые примеры.
  3. Преодоление ограниченных данных: когда доступный набор данных невелик, увеличение данных может искусственно расширить его, уменьшая переоснащение.

2. Методы увеличения данных