Улучшение глубокого обучения с увеличением данных
Увеличение данных — это важнейший метод в конвейерах машинного обучения и глубокого обучения, который помогает повысить производительность и обобщение моделей. Он включает в себя применение различных преобразований к существующему набору данных, тем самым создавая новые примеры, которые являются вариациями исходных данных. В контексте данных изображения увеличение данных включает в себя такие операции, как вращение, отражение, масштабирование и другие. В этой статье мы рассмотрим различные методы увеличения данных с использованием фреймворка 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. Почему увеличение данных?
В общем, увеличение данных служит нескольким целям:
- Повышенная надежность: дополненные данные вводят вариации, которые помогают модели стать более устойчивой к изменениям входных данных.
- Обобщение: обучаясь на более разнообразном наборе данных, модели могут лучше обобщать невидимые примеры.
- Преодоление ограниченных данных: когда доступный набор данных невелик, увеличение данных может искусственно расширить его, уменьшая переоснащение.