Что такое Few-shot learning?
Few-shot learning позволяет модели распознавать и классифицировать новые изображения после того, как она была обучена на небольшом количестве обучающих примеров.
Зачем это придумали? Ведь модели обычно обучают на огромных количествах данных? Чем больше, тем лучше, так?
Да, но… Few-shot learning — это важный концепт в ML по нескольким причинам.
Во-первых, такой метод сокращает время, необходимое для разметки больших наборов данных.
Во-вторых, не нужно добавлять разные функции для разных задач, если мы используем один и тот же набор данных для создания разных примеров. И это, с одной стороны, круто, потому что обучение на небольшом количестве данных научит модели лучше распознавать объекты на основе их меньшего количества. Это означает, что модели становятся более универсальными, а не такими специализированными, как обычно.
С другой стороны, в бизнесе востребованы разные модели для разных отраслей, потому что это учитывает особенности рынка и потребности предприятий. Экспертиза в определенной сфере помогает сократить время на разработку моделей, которые уже соответствуют требованиям этой отрасли, и, следовательно, требуют меньше изменений.
Короче говоря, метод обучения зависит от целей.
Обучение на малых данных наиболее часто используется в computer vision, поскольку характер проблем CV требует либо больших объемов данных, либо гибкой модели.
А можно ли сделать модель, обученную на небольшом количестве данных, сделать гибче? И как?
Возможно, конечно, если придерживаться определенных стратегий. Можно добавить дополнительные слои или изменить число нейронов в слоях. Да, это увеличит её сложность модели, но также и улучшит ее способность к обобщению.
Есть ещё методы аугментации данных: повороты, масштабирование и отражение изображений. Они помогают увеличить разнообразие обучающего набора и сделать модель менее чувствительной к вариациям в данных.
Есть и другие. Техники адаптивного обучения, о которых мы уже рассказывали в рубрике #технокульт в этом материале. Правда, не в контексте обучения моделей, а RL-агентов, но суть не меняется. Другие варианты — это алгоритмы ансамбля: бэггинг, бустинг или стекинг… Обо всём этом — чуть позднее.