AI에서 코사인 유사도가 벡터 유사도를 어떻게 측정하는지 알아보세요. Ultralytics 사용하여 시각적 임베딩을 계산하고, Ultralytics 통해 확장성을 확보하세요.
코사인 유사도는 기계 학습(ML) 과 인공지능(AI) 분야에서 두 개의 다차원 배열이나 벡터가 크기나 절대값에 관계없이 얼마나 유사한지를 측정하는 데 사용되는 기본적인 수학적 지표입니다. 벡터 공간 내 두 점 사이의 각도를 계산함으로써, 이들이 대략적으로 같은 방향을 가리키는지 판단합니다. 이러한 각도 기반 접근 방식은 전체 길이보다 방향이 더 중요한 데이터를 처리하는 데 필수적이며, 임베딩과 같은 추상적인 데이터 표현을 비교하는 데 매우 효과적입니다.
이 지표를 계산하려면 두 벡터의 내적을 구한 뒤, 그 결과를 각 벡터의 크기 (길이)의 곱으로 나누면 됩니다. 이렇게 산출된 점수는 항상 -1에서 1 사이의 고정된 범위에 속합니다:
컴퓨터 비전(CV)을 위해 설계된 많은 최신 딥러닝 프레임워크에서는 PyTorch functional 모듈이나 TensorFlow 같이 이 수학적 연산을 위해 최적화된 함수를 쉽게 활용할 수 있습니다.
코사인 유사도를 다른 자주 사용되는 데이터 분석 지표들과 구분해 두면, 이를 언제 사용해야 하는지 이해하는 데 도움이 됩니다:
코사인 유사도는 수많은 최신 소프트웨어 제품의 핵심 엔진 역할을 하며, 원시 데이터와 사람의 의도 사이의 간극을 메워줍니다.
최신 비전 모델을 사용하면 시각 데이터에서 직접 고차원 특징 벡터를 추출할 수 있습니다. 다음 Python 이미지 분류를 위해 Ultralytics 모델을 불러오고, 두 이미지에 대한 임베딩을 생성한 다음, 코사인 유사도 계산을수행하여 두 이미지의 시각적 유사성을 측정하는 방법을 보여줍니다.
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}")
이러한 의미 기반 검색 기능을 확장하고자 하는 개발자들에게는 정확도가 높은 기본 모델을 훈련하는 것이 무엇보다 중요합니다. Ultralytics 데이터 주석 작업, 확장 가능한 클라우드 훈련, 원활한 모델 배포를 위한 강력한 도구를 제공함으로써 이 프로세스를 간소화하여, 기본 임베딩이 최대한 정확하고 의미 있게 활용될 수 있도록 보장합니다.
미래의 머신러닝 여정을 시작하세요