Откройте для себя мощь обучения с одного примера (One-Shot Learning), революционной техники AI, позволяющей моделям обобщать данные из минимального объема данных для реальных приложений.
Одномоментное обучение (One-Shot Learning, OSL) - это сложный подход в рамках машинного обучения (ML), при котором модель разрабатывается для распознавания и категоризации новых объектов на основе только одного помеченного примера. В отличие от традиционных методов глубокого обучения (DL), которые требуют огромных огромные хранилища обучающих данных для достижения высокой OSL имитирует человеческую когнитивную способность мгновенно усваивать новую концепцию, увидев ее всего один раз. Эта Эта способность особенно важна для приложений, где маркировка данных стоит дорого, данных мало или новые категории появляются динамически, как, например, при проверке личности или выявлении редких аномалий.
Основной механизм, лежащий в основе OSL, заключается в переносе задачи с классификации на оценку различий. Вместо того чтобы обучения модели для запоминания конкретных классов (например, "кошка" против "собаки"), система обучается функцию сходства. Для этого часто используется нейронной сети (НС), известной как Сиамская сеть. Сиамские сети используют идентичные подсети, которые имеют одинаковые веса модели для обработки двух разных входных изображений одновременно.
В ходе этого процесса сеть преобразует высокоразмерные входные данные (например, изображения) в компактные низкоразмерные векторы. известные как вкрапления. Если два изображения принадлежат одному классу, сеть обучается располагать их вкрапления близко друг к другу в векторном пространстве. И наоборот, если если они разные, то их вкрапления раздвигаются. Этот процесс в значительной степени опирается на эффективное извлечения признаков, чтобы уловить уникальную сущность объекта. Во время вывода новое изображение классифицируется путем сравнения его вложения с единственным хранящимся в памяти "выстрелом" каждого класса с помощью метрики расстояния, такой как Евклидово расстояние или косинусное сходство.
Следующий фрагмент Python иллюстрирует извлечение вкраплений с помощью YOLO11 и вычислить сходство между известным "снимком" и новым изображением для запроса.
import numpy as np
from ultralytics import YOLO
# Load a pre-trained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Extract embeddings for a 'shot' (reference) and a 'query' image
# The model returns a list of results; we access the first item
shot_result = model.embed("reference_image.jpg")[0]
query_result = model.embed("test_image.jpg")[0]
# Calculate Cosine Similarity (1.0 = identical, -1.0 = opposite)
# High similarity suggests the images belong to the same class
similarity = np.dot(shot_result, query_result) / (np.linalg.norm(shot_result) * np.linalg.norm(query_result))
print(f"Similarity Score: {similarity:.4f}")
Для понимания OSL необходимо отличать ее от других методов обучения с малым объемом данных. Хотя их объединяет цель эффективность, их ограничения существенно различаются:
Одномоментное обучение позволило искусственный интеллект (ИИ) функционирует в динамичных средах, где переобучение моделей нецелесообразно.
Несмотря на свою полезность, One-Shot Learning сталкивается с проблемами обобщения. Поскольку модель определяет класс на основе одного экземпляра, она подвержена влиянию шума или выбросов в этом эталонном изображении. Исследователи часто используют метаобучение, или "обучение для обучения", чтобы чтобы повысить стабильность этих моделей. Такие фреймворки, как PyTorch и TensorFlow постоянно развиваются для поддержки этих передовых архитектуры. Кроме того, включение синтетических данных может помочь дополнить одиночный снимок, обеспечивая более надежное представление для обучения модели.