Tìm hiểu cách độ tương đồng cosine đo lường mức độ tương đồng giữa các vectơ trong trí tuệ nhân tạo. Tính toán các mô hình nhúng hình ảnh bằng Ultralytics và mở rộng quy mô với Ultralytics .
Độ tương đồng cosin là một thước đo toán học cơ bản được sử dụng trong học máy (ML) và trí tuệ nhân tạo (AI) để đo lường mức độ tương đồng giữa hai mảng đa chiều hoặc vectơ, bất kể kích thước hay độ lớn của chúng. Bằng cách tính toán góc giữa hai điểm trong một không gian vectơ, nó xác định xem chúng có cùng hướng hay không. Phương pháp dựa trên góc này rất quan trọng trong việc xử lý dữ liệu nơi hướng quan trọng hơn độ dài tổng thể, khiến nó trở nên rất hiệu quả khi so sánh các biểu diễn dữ liệu trừu tượng như embedding.
Để tính toán chỉ số này, bạn cần tính tích vô hướng của hai vectơ và chia kết quả đó cho tích của các độ lớn (chiều dài) riêng lẻ của chúng. Điểm số thu được luôn nằm trong khoảng cố định từ -1 đến 1:
Trong nhiều khung công tác học sâu hiện đại được thiết kế cho nhận diện hình ảnh (CV), bạn có thể dễ dàng truy cập các hàm đã được tối ưu hóa cho phép toán này, chẳng hạn như mô-đun functionalPyTorch hoặc TensorFlow .
Việc phân biệt độ tương đồng cosine với các chỉ số phân tích dữ liệu khác thường được sử dụng sẽ giúp chúng ta hiểu rõ khi nào nên áp dụng nó:
Độ tương đồng cosine đóng vai trò là động cơ cốt lõi cho nhiều sản phẩm phần mềm hiện đại, giúp thu hẹp khoảng cách giữa dữ liệu thô và ý định của con người.
Bạn có thể trích xuất các vectơ đặc trưng đa chiều trực tiếp từ dữ liệu hình ảnh bằng cách sử dụng các mô hình thị giác tiên tiến nhất. Python sau đây minh họa cách tải mô hình Ultralytics để phân loại hình ảnh, tạo các vectơ nhúng cho hai hình ảnh và thực hiện tính toán độ tương đồng cosin để đo lường mức độ tương đồng về mặt hình ảnh giữa chúng.
import torch
import torch.nn.functional as F
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Generate embedding vectors for two separate images
results = model.embed(["bus.jpg", "car.jpg"])
# Calculate the cosine similarity between the two visual embeddings
similarity = F.cosine_similarity(torch.tensor(results[0]), torch.tensor(results[1]), dim=0)
print(f"Visual Similarity Score: {similarity.item():.4f}")
Đối với các nhà phát triển mong muốn mở rộng quy mô các khả năng tìm kiếm ngữ nghĩa này, việc huấn luyện các mô hình cơ sở có độ chính xác cao là điều tối quan trọng. Ultralytics giúp tối ưu hóa quy trình này bằng cách cung cấp các công cụ mạnh mẽ cho việc chú thích dữ liệu, huấn luyện trên đám mây có khả năng mở rộng và triển khai mô hình liền mạch, đảm bảo các mô hình nhúng cơ bản của bạn đạt độ chính xác và ý nghĩa cao nhất có thể.
Bắt đầu hành trình của bạn với tương lai của học máy