
임베딩(Embedding)은 고차원 데이터를 저차원 벡터 공간으로 변환하는 기술로, 주로 자연어 처리(NLP)와 컴퓨터 비전(CV) 분야에서 많이 사용됩니다. 예를 들어, 단어를 수치 벡터로 변환하면, 단어 간의 유사성을 벡터 간의 거리로 측정할 수 있습니다. 임베딩은 주어진 데이터를 더 작은 차원의 벡터로 표현하면서도 그 안에 중요한 의미적, 패턴적 관계를 보존하려고 합니다. 대표적인 임베딩 방법으로는 Word2Vec, GloVe, BERT 등이 있으며, 이미지에서는 Convolutional Neural Network(CNN)의 중간 계층 출력이 임베딩으로 사용될 수 있습니다.
Word2Vec은 단어를 임베딩 벡터로 변환하는 방법 중 하나로, 특히 Skip-Gram 모델은 주어진 단어로부터 주변 단어들을 예측하는 방식으로 임베딩을 학습합니다. 예를 들어, "고양이가 창문을 넘었다"라는 문장에서 "고양이"라는 단어가 주어졌을 때, "창문"이나 "넘었다"와 같은 주변 단어들을 예측하는 방식입니다. 이 과정을 통해 비슷한 문맥에서 등장하는 단어들은 비슷한 임베딩을 얻게 되며, 이 임베딩 공간에서 단어 간의 유사성을 수치적으로 측정할 수 있습니다.
Word2Vec(Skip-Gram)은 다음과 같은 단계로 진행됩니다:
t-SNE(t-distributed Stochastic Neighbor Embedding)는 고차원 데이터를 저차원(주로 2차원 또는 3차원) 공간으로 시각화하는 데 사용되는 기법입니다. 이는 비선형 차원 축소 방법으로, 특히 고차원 임베딩 벡터를 2D 또는 3D로 시각화하여 데이터 간의 구조적 관계를 확인할 때 유용합니다. Word2Vec으로 학습된 단어 벡터나 이미지 임베딩을 t-SNE를 통해 시각화하면, 의미적으로 유사한 단어들이 어떻게 군집을 이루는지 확인할 수 있습니다.
t-SNE는 다음과 같은 장점이 있습니다:
Retrieval(검색)은 대규모 데이터베이스에서 특정 데이터를 찾아내는 작업을 의미합니다. 검색 엔진이나 추천 시스템처럼, 사용자 입력(쿼리)에 가장 유사한 결과를 찾아 제공하는 것이 Retrieval의 기본적인 목표입니다. Retrieval 시스템에서는 주로 임베딩을 통해 입력과 데이터베이스에 있는 데이터 간의 유사성을 계산하고, 이를 바탕으로 가장 유사한 결과를 반환합니다. 예를 들어, 이미지 검색에서 사용자는 하나의 이미지를 쿼리로 제공하면, 시스템은 데이터베이스에서 가장 유사한 이미지를 찾아 반환합니다.
Retrieval에서는 데이터 간의 유사성을 측정하는 방법이 중요한 역할을 합니다. 거리 메트릭(Distance Metrics)은 이러한 유사성을 수치화하여 가까운 결과를 반환하는 방식입니다. 몇 가지 대표적인 거리 측정 방법은 다음과 같습니다:
이러한 메트릭들은 데이터의 특성과 문제 유형에 따라 선택되며, Retrieval 시스템의 성능을 좌우할 수 있습니다.
Arcface는 얼굴 인식 및 인증에서 주로 사용되는 각도 기반의 손실 함수입니다. Arcface는 사람의 얼굴 이미지 간의 유사성을 각도로 측정하여, 같은 사람의 얼굴은 가까운 각도로, 다른 사람의 얼굴은 멀리 떨어진 각도로 학습합니다.
Arcface의 주요 개념은 softmax 손실 함수를 확장하여 각도 거리를 기반으로 클래스 간의 분리를 강화하는 것입니다. 기존의 softmax 손실 함수는 학습된 벡터들의 크기와 방향을 모두 고려하지만, Arcface는 벡터의 각도(angular distance)만을 기준으로 하여 학습합니다. 이를 통해 학습된 임베딩 벡터는 동일한 클래스는 각도가 유사하고, 다른 클래스는 각도가 더 멀어지도록 학습됩니다.
Arcface는 얼굴 인식 뿐만 아니라, 이미지 분류, 객체 인식 등 다양한 분야에서 활용될 수 있습니다.

(출처: https://norman3.github.io/papers/images/arcface/f03.png)
CLIP(Contrastive Language-Image Pretraining)은 멀티모달 학습 모델로, 텍스트와 이미지를 동일한 임베딩 공간으로 매핑하여 텍스트-이미지 검색 작업을 수행할 수 있습니다. CLIP은 텍스트와 이미지의 연관성을 학습하기 위해 대규모 텍스트-이미지 쌍을 학습하며, 텍스트와 이미지 사이의 의미적 유사성을 임베딩 벡터로 변환합니다.
CLIP은 다음과 같은 방식으로 작동합니다:
1. 텍스트 임베딩: 주어진 텍스트는 텍스트 임베딩 모델(주로 Transformer 기반 모델)을 통해 벡터로 변환됩니다.
2. 이미지 임베딩: 이미지는 이미지 임베딩 모델(주로 CNN 기반 모델)을 통해 벡터로 변환됩니다.
3. 대조 학습: CLIP은 텍스트와 이미지의 임베딩 벡터를 대조(Contrastive)하는 방식으로 학습합니다. 즉, 텍스트와 이미지가 의미적으로 가까운 쌍은 임베딩 공간에서 가까운 벡터로, 의미적으로 다른 쌍은 멀리 떨어진 벡터로 학습합니다.
DINO(Self-Distillation with No Labels)는 비지도 학습(Self-Supervised Learning) 방식으로 이미지를 학습하는 딥러닝 모델입니다. DINO는 자기 지시 학습(self-distillation) 방식을 통해, 레이블 없이도 데이터를 학습할 수 있으며, 특히 이미지 임베딩 학습에서 높은 성능을 발휘합니다. DINO는 특히 이미지 간의 유사성을 학습하여, 이미지 검색과 같은 작업에서 우수한 성능을 보여줍니다.
DINO는 교사-학생 구조(teacher-student architecture)를 사용하여 이미지를 학습합니다. 이 구조에서:
DINO는 이 과정을 통해, 라벨 없이도 데이터를 학습하며, 이미지 간의 유사성을 잘 파악할 수 있습니다.