Аугментация данных
При настройке нейросети дополнительным требованием к модели может быть её инвариантность (invariance) к определённому виду преобразования , где - параметр этого преобразования.
Иными словами, если - прогноз нейросети для объекта , то мы хотим, чтобы этот прогноз не изменялся при определённом преобразовании объекта, т.е. требуем, чтобы
Может быть много разных преобразований , относительно которых мы хотим достичь инвариантности.
Рассмотрим классификацию изображений. Фотография кошки должна относиться к классу кошка, даже если это изображение
-
повернуть на небольшой угол ;
-
изменить яркость цветов на ;
-
обрезать края на пикселей и т.д.
Самый простой способ сделать нейросеть инвариантной к определённым преобразованиям - это расширить обучающую выборку, применяя аугментацию данных (data augmentation), добавляя в обучающую выборку инвариантно преобразованные объекты с тем же откликом.
Таким образом, одно наблюдение преобразуется в целый набор обучающих примеров вида
с одним и тем же откликом для всевозможных параметров инвариантных преобразований .
Эта техника позволяет не только сделать прогнозы сети более инвариантными к преобразованиям, но и существенно увеличить размер обучающей выборки и повысить разнообразие обучающих примеров, улучшив качество настройки модели.
Примеры инвариантных преобразований для классификации изображений
Рассмотрим задачу классификации изображений. Пусть у нас есть следующее изображение, отнесённое к классу "кошка":

Часто используются следующие инвариантные преобразования:









Последнее преобразование (нелинейное искажение) чаще всего применяется в медицине, в которой анализируются фотографии организма. Поскольку организм состоит из эластичных тканей, то для различных изгибов тканей мы всё равно должны получать тот же самый прогноз сети (наличие заболевания или его отсутствие).
Также, в качестве расширения выборки, используется
-
добавление слабого шума к изображению,
-
изменение насыщенности цветов,
-
представление изображения в JPEG-формате с разными уровнями сжатия.
Аугментация данных для текстов
Рассмотрим классификацию текстов. Популярный способ аугментации текстовых данных - это заменить текст его переформулировкой. Её можно сгенерировать автоматически, переводя текст на другой язык, а потом обратно:

Также можно заменить случайные слова их синонимами или близкими по смыслу словами:

Из текста можно исключить случайные слова, а если он состоит из предложений - то и целые предложения:

Если текст состоит из нескольких предложений, их можно менять местами:
