YOLO Vision Thâm Quyến
Thâm Quyến
Tham gia ngay
Thuật ngữ

Độ tương đồng cosin

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) 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.

Hiểu rõ cơ sở toán học đằng sau hệ mét

Để 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:

  • Điểm 1 có nghĩa là các vectơ cùng hướng, cho thấy mức độ tương đồng tối đa.
  • Điểm số 0 có nghĩa là các vectơ hoàn toàn vuông góc với nhau (góc 90 độ), tức là không có sự tương đồng về hướng.
  • Điểm -1 có nghĩa là chúng chỉ theo hai hướng hoàn toàn ngược nhau.

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 .

Phân biệt các khái niệm liên quan

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ó:

  • Khoảng cách cosin: Mặc dù có mối quan hệ chặt chẽ, hai khái niệm này lại tỷ lệ nghịch với nhau. Khoảng cách cosin được tính đơn giản bằng 1 trừ đi độ tương đồng cosin. Do đó, khoảng cách càng nhỏ thì độ tương đồng giữa các vectơ càng cao.
  • Khoảng cách Euclid: Thước đo này tính toán khoảng cách vật lý theo đường thẳng giữa hai điểm, do đó rất nhạy cảm với kích thước tổng thể hoặc độ lớn của các vectơ. Ngược lại, độ tương đồng cosin chỉ quan tâm đến góc. Ví dụ, trong phân tích văn bản, một tài liệu dài và một câu ngắn có thể có khoảng cách Euclid lớn, nhưng nếu chúng có cùng chủ đề, độ tương đồng cosin của chúng vẫn sẽ cao.

Ứng dụng thực tế trong AI

Độ 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.

  • Tìm kiếm vectơ và RAG: Trong các ứng dụng Xử lý Ngôn ngữ Tự nhiên (NLP) như chatbot, các truy vấn của người dùng và tài liệu nội bộ được chuyển đổi thành các vectơ nhúng dày đặc. Hệ thống tính toán nhanh chóng độ tương đồng cosine để truy xuất các tài liệu có liên quan nhất về mặt ngữ cảnh từ một cơ sở dữ liệu vectơ, một bước quan trọng trong Retrieval-Augmented Generation (RAG).
  • Hệ thống đề xuất: Các dịch vụ thương mại điện tử và phát trực tuyến sử dụng các công cụ như Scikit-learnSciPy để biểu diễn sở thích của người dùng và các mặt hàng trong danh mục dưới dạng vectơ. Bằng cách đo lường điểm tương đồng giữa hồ sơ của người mua và các sản phẩm khác nhau, hệ thống có thể đề xuất chính xác các mặt hàng có liên quan về mặt hình ảnh hoặc chủ đề.

Đo lường mức độ tương đồng về mặt hình ảnh với Ultralytics

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ể.

Hãy cùng nhau xây dựng tương lai của trí tuệ nhân tạo!

Bắt đầu hành trình của bạn với tương lai của học máy