AIにおいてコサイン類似度がベクトルの類似性をどのように測定するのかを学びましょう。Ultralytics を使用して視覚的埋め込みを計算し、Ultralytics スケーリングを行います。
コサイン類似度は、 機械学習(ML)や 人工知能(AI)において、 2つの多次元配列や ベクトルが、そのサイズや大きさを問わず、 どれほど類似しているかを測定するために用いられる基本的な数学的指標です。ベクトル空間内の2点間の角度を計算することで、 それらが概ね同じ方向を指しているかどうかを判断します。この角度に基づくアプローチは、 全長よりも向きが重要となるデータの処理において極めて重要であり、 埋め込み(エンベディング)のような抽象的なデータ表現の比較に 非常に有効です。
この指標を算出するには、2つの ベクトルの内積を求め、それをそれぞれの 大きさ(長さ)の積で割ります。その結果得られるスコアは、常に -1から1までの固定された範囲内に収まります:
コンピュータビジョン(CV)向けに設計された多くの現代的なディープラーニングフレームワークでは、 この数学的演算用に最適化された関数に簡単にアクセスできます。 例えば、PyTorchモジュールや TensorFlow 挙げられます。
コサイン類似度を、他のよく使われる データ分析指標と区別しておくことは、 いつそれを使用すべきかを理解する上で役立ちます:
コサイン類似度は、数多くの最新ソフトウェア製品の核となるエンジンとして機能し、生データと 人間の意図との間をつなぐ役割を果たしています。
最先端の画像認識モデルを使用すれば、視覚データから直接高次元の特徴ベクトルを抽出することができます。 以下のPython 、 画像分類 Ultralytics モデルを読み込み、 2つの画像に対して埋め込みベクトルを生成し、 それらの視覚的な類似度を測定するために コサイン類似度計算を実行する方法を示しています。
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 、データアノテーション、スケーラブルなクラウド学習、 そしてシームレスなモデルデプロイメントのための堅牢な ツールを提供することで、このパイプラインを効率化し、 基盤となる埋め込み表現が可能な限り正確かつ意味のあるものとなるよう保証します。
未来の機械学習で、新たな一歩を踏み出しましょう。