Khám phá sức mạnh của One-Shot Learning, một kỹ thuật AI mang tính cách mạng cho phép các mô hình khái quát hóa từ dữ liệu tối thiểu cho các ứng dụng thực tế.
Học một lần (OSL) là một phương pháp tiếp cận tinh vi trong học máy (ML), trong đó một mô hình được thiết kế để nhận dạng và phân loại các đối tượng mới chỉ với một ví dụ được gắn nhãn duy nhất. Trái ngược với các phương pháp học sâu (DL) truyền thống đòi hỏi kho dữ liệu huấn luyện khổng lồ để đạt được độ chính xác cao, OSL mô phỏng khả năng nhận thức của con người, giúp nắm bắt một khái niệm mới ngay lập tức sau khi chỉ nhìn thấy nó một lần. Khả năng này đặc biệt quan trọng đối với các ứng dụng mà việc gắn nhãn dữ liệu tốn kém, dữ liệu khan hiếm hoặc các danh mục mới xuất hiện liên tục, chẳng hạn như trong xác minh danh tính hoặc xác định các bất thường hiếm gặp.
Cơ chế cốt lõi đằng sau OSL liên quan đến việc chuyển đổi bài toán từ phân loại sang đánh giá khác biệt. Thay vì huấn luyện mô hình để ghi nhớ các lớp cụ thể (như "mèo" so với "chó"), hệ thống sẽ học một hàm tương đồng. Điều này thường được thực hiện bằng cách sử dụng kiến trúc mạng nơ-ron (NN) được gọi là Mạng Xiêm. Mạng Xiêm sử dụng các mạng con giống hệt nhau, chia sẻ cùng trọng số mô hình để xử lý đồng thời hai hình ảnh đầu vào riêng biệt.
Trong quá trình này, mạng chuyển đổi các đầu vào đa chiều (như hình ảnh) thành các vectơ nhỏ gọn, ít chiều, được gọi là nhúng (embedding ). Nếu hai hình ảnh thuộc cùng một lớp, mạng được huấn luyện để đặt các nhúng của chúng gần nhau trong không gian vectơ. Ngược lại, nếu chúng khác nhau, các nhúng của chúng sẽ bị đẩy ra xa nhau. Quá trình này phụ thuộc rất nhiều vào việc trích xuất đặc trưng hiệu quả để nắm bắt bản chất độc đáo của một đối tượng. Tại thời điểm suy luận, một hình ảnh mới được phân loại bằng cách so sánh nhúng của nó với một "ảnh" duy nhất được lưu trữ của mỗi lớp bằng cách sử dụng một phép đo khoảng cách, chẳng hạn như khoảng cách Euclidean hoặc độ tương đồng cosin.
Sau đây là Python đoạn trích minh họa cách trích xuất nhúng bằng YOLO11 và tính toán độ tương đồng giữa một "cảnh quay" đã biết và một hình ảnh truy vấn mới.
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}")
Để hiểu được OSL, cần phân biệt nó với các kỹ thuật học dữ liệu thấp khác. Mặc dù chúng cùng hướng đến mục tiêu hiệu quả, nhưng các ràng buộc của chúng lại khác nhau đáng kể:
One-Shot Learning cho phép trí tuệ nhân tạo (AI) hoạt động trong môi trường năng động, nơi việc đào tạo lại các mô hình là không thực tế.
Mặc dù có tính hữu ích, One-Shot Learning vẫn gặp phải những thách thức về mặt khái quát hóa. Do mô hình suy ra một lớp từ một thực thể duy nhất, nó dễ bị nhiễu hoặc các giá trị ngoại lai trong ảnh tham chiếu đó. Các nhà nghiên cứu thường sử dụng siêu học , hay "học để học", để cải thiện tính ổn định của các mô hình này. Các nền tảng như PyTorch và TensorFlow liên tục phát triển để hỗ trợ các kiến trúc tiên tiến này. Ngoài ra, việc kết hợp dữ liệu tổng hợp có thể giúp tăng cường hiệu quả của mô hình học tập một lần, cung cấp một biểu diễn mạnh mẽ hơn cho mô hình học tập.