Глава 6. Работа с данными
283
На рис. 6.7 дополнение данных применяется к входному примеру данных, пред
ставляющему собой изображение котенка, из набора маркированных изображений.
Дополнение данных производится путем преобразований в отношении этого изо
бражения: вращения и наклона таким образом, что метка примера данных (CAT)
не меняется, но сам входной пример меняется существенно.
Рис. 6.7.
Генерация изображений котенка путем произвольного дополнения данных.
Из единственного маркированного примера данных получается целое семейство обучающих
примеров, за счет произвольных вращений, отражений, сдвигов и наклонов. Мяу
При использовании подобной схемы дополнения данных для обучения один
и тот же сигнал никогда не подается на вход новой сети дважды. Но ее входные
сигналы тем не менее сильно коррелируют между собой, поскольку их источник —
небольшой набор исходных изображений, ведь мы не можем подобным образом соз
дать новую информацию, а можем только перекраивать уже существующую. Таким
образом этого не всегда достаточно для полного избавления от переобучения. Кроме
того, при дополнении данных возникает риск того, что распределение обучающих
данных теперь может не совпасть с распределением данных, используемых для
284
Часть III • Продвинутые возможности глубокого обучения с TensorFlow.js
вывода, в результате чего возникает асимметрия. Перевешивает ли польза от до
полнительных обучающих псевдопримеров данных недостатки асимметрии, зависит
от конкретного приложения, и иногда единственный выход — экспериментировать
и проверять.
Листинг 6.24 демонстрирует возможность реализации дополнения данных в виде
функции
dataset.map()
для внедрения допустимых преобразований в набор дан
ных. Учтите, что дополнение необходимо применять к каждому примеру данных
отдельно. Важно также понимать, что дополнение
не следует
применять к провероч
ному и контрольному наборам. Контроль работы модели на дополненных данных
приведет к искаженной мере качества модели, поскольку при выполнении вывода
никакого дополнения данных не будет.
Листинг 6.24.
Обучение модели на дополненном наборе данных
Надеемся, эта глава убедила вас, насколько важно разобраться в своих данных,
прежде чем подавать их на вход моделей машинного обучения. Мы поговорили
о готовых инструментах наподобие Facets, с помощью которых можно исследовать
наборы данных, а значит, углублять свои знания о них. Впрочем, для более гибких
и подогнанных под нужды пользователей визуализаций данных приходится писать
код. В следующей главе мы обучим вас основам tfjsvis — модуля визуализации,
созданного и поддерживаемого авторами TensorFlow.js, подходящего для подобных
сценариев визуализации данных.
Do'stlaringiz bilan baham: |