맨위로가기

유사도 학습

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

유사도 학습은 객체 간의 유사성을 측정하고, 머신러닝 모델의 성능을 향상시키기 위해 사용되는 기술이다. 이 기술은 회귀, 분류, 랭킹, 지역 민감 해싱(LSH) 등 다양한 설정에서 활용되며, 유사도 함수를 이중 선형 형식으로 모델링하거나 샴 쌍둥이 네트워크와 같은 딥 네트워크 모델을 학습하는 방식으로 구현될 수 있다. 유사도 학습은 또한 거리 메트릭 학습과 밀접한 관련이 있으며, 메트릭 학습은 객체 간의 거리 함수를 학습하는 작업이다. 유사도 학습은 정보 검색, 얼굴 인식, 추천 시스템 등 다양한 분야에 응용되며, metric-learn과 OpenMetricLearning과 같은 소프트웨어를 통해 구현된다.

더 읽어볼만한 페이지

  • 의미 유사도 - 반의어
    반의어는 의미가 반대되는 낱말이나 어구로, 한자 구성 방식이나 의미상 관계에 따라 분류되지만, 품사가 항상 같지 않고 문맥에 따라 관계가 달라지는 모호성을 지니며, 언어의 문화적 배경과 사용 문맥에 의존한다.
  • 의미 유사도 - 시맨틱 네트워크
    시맨틱 네트워크는 개념 간의 관계를 표현하는 지식 표현 방법으로, 노드와 링크를 사용하여 지식을 구조화하며 인공지능, 언어학 등 다양한 분야에서 활용된다.
  • 기계 학습 - 비지도 학습
    비지도 학습은 레이블이 없는 데이터를 통해 패턴을 발견하고 데이터 구조를 파악하는 것을 목표로 하며, 주성분 분석, 군집 분석, 차원 축소 등의 방법을 사용한다.
  • 기계 학습 - 지도 학습
    지도 학습은 레이블된 데이터를 사용하여 입력 데이터와 출력 레이블 간의 관계를 학습하는 기계 학습 분야로, 예측 모델 생성, 알고리즘 선택, 모델 최적화, 정확도 평가 단계를 거치며, 회귀 및 분류 문제에 적용되고 다양한 확장 기법과 성능 평가 방법을 활용한다.
유사도 학습
개요
유형지도 학습
작업거리 함수 또는 유사도 함수 학습
세부 사항
설명유사도 학습(similarity learning)은 예제 쌍이 얼마나 유사하거나 관련이 있는지 학습하는 지도 학습의 한 영역이다.
목표유사도 학습의 목표는 대상 함수인 유사도 함수를 학습하는 것이다.
접근 방식유사도 학습 알고리즘은 일반적으로 쌍으로 된 예제를 입력으로 사용하며, 이러한 쌍이 유사한지 유사하지 않은지를 나타내는 레이블이 지정된다.
활용추천 시스템
정보 검색
얼굴 인식

2. 유사도 학습의 설정

유사도 및 거리 학습에는 일반적으로 네 가지 설정이 있다.


  • 회귀 유사도 학습: 객체 쌍의 유사도를 실수 값으로 예측하는 함수를 학습하는 설정이다.
  • 분류 유사도 학습: 두 객체가 유사한지 여부를 분류하는 모델을 학습하는 설정이다.
  • 랭킹 유사도 학습: 객체 간의 상대적인 유사도 순서를 학습하는 설정이다. 기준 객체에 대해 어떤 객체가 다른 객체보다 더 유사한지를 판별하는 함수를 학습하며, 이는 대조 학습의 한 형태로 볼 수 있다.[1]
  • 지역 민감 해싱 (LSH): 유사한 항목이 높은 확률로 동일한 버킷에 해시되도록 하는 기법이다.[2] 이는 대규모 고차원 데이터에서 최근접 이웃 검색 속도를 높이는 데 자주 사용된다.[3]


이러한 유사도 학습 문제를 해결하기 위한 일반적인 접근 방식으로는 유사도 함수를 이중 선형 형식으로 모델링하거나, 데이터가 충분할 경우 샴 쌍둥이 네트워크와 같은 딥러닝 모델을 활용하는 방법이 있다.

2. 1. 회귀 유사도 학습

이 설정에서는 객체 쌍 (x_i^1, x_i^2)과 함께 실수 값으로 표현되는 유사도 측정값 y_i \in R이 주어진다. 목표는 모든 새로운 레이블이 지정된 예시 데이터 (x_i^1, x_i^2, y_i)에 대해, 함수 f가 예측하는 유사도 값 f(x_i^1, x_i^2)이 실제 유사도 y_i와 유사해지도록 함수 f를 학습하는 것이다. 이는 일반적으로 정규화(regularization)된 손실 함수(loss function) \min_W \sum_i \text{loss}(w; x_i^1, x_i^2, y_i) + \text{reg}(w)를 최소화하는 방식으로 이루어진다.

2. 2. 분류 유사도 학습

유사한 객체 쌍 (x_i, x_i^+)과 유사하지 않은 객체 쌍 (x_i, x_i^-)가 주어진다. 이와 동등한 공식은 모든 쌍 (x_i^1, x_i^2)에 대해 두 객체가 유사한지 여부를 결정하는 이진 레이블 y_i \in \{0,1\}과 함께 제공된다는 것이다. 이 설정의 목표는 새로운 객체 쌍이 유사한지 여부를 결정할 수 있는 분류기를 학습하는 것이다.

2. 3. 랭킹 유사도 학습

상대적 유사도가 미리 정의된 순서를 따르는 객체 삼중항 (x_i, x_i^+, x_i^-)이 주어지는 설정이다. 여기서 x_ix_i^-보다 x_i^+에 더 가깝다는 정보가 주어진다. 목표는 새로운 객체 삼중항 (x, x^+, x^-)에 대해 f(x, x^+) > f(x, x^-)를 만족하는 함수 f를 학습하는 것이다. 이는 대조 학습의 한 형태이다.

이 방식은 회귀 방식보다 더 약한 형태의 감독(supervision)을 가정한다. 왜냐하면 정확한 유사도 값을 요구하는 대신, 객체 간 유사도의 상대적인 순서 정보만 필요하기 때문이다. 이러한 특징 덕분에 랭킹 기반 유사도 학습은 실제 대규모 응용 프로그램에 더 쉽게 적용될 수 있다.[1]

유사도 학습의 일반적인 접근 방식 중 하나는 유사도 함수를 이중 선형 형식으로 모델링하는 것이다. 예를 들어, 랭킹 유사도 학습에서는 유사도 함수를 f_W(x, z) = x^T W z 형태로 정의하고, 이 함수를 매개변수화하는 행렬 W를 학습하는 것을 목표로 할 수 있다. 데이터가 풍부한 경우에는 매개변수를 공유하는 딥러닝 모델인 샴 쌍둥이 네트워크를 학습시키는 접근 방식도 흔히 사용된다.

2. 4. 지역 민감 해싱 (LSH)

지역 민감 해싱(LSH)은 유사한 항목이 높은 확률로 메모리의 동일한 "버킷"에 매핑되도록 입력 데이터를 해시하는 방법이다.[2] 여기서 버킷의 수는 전체 가능한 입력 항목의 수보다 훨씬 적다. 이 기법은 이미지 데이터베이스, 문서 모음, 시계열 데이터베이스, 게놈 데이터베이스와 같이 대규모 고차원 데이터에서 최근접 이웃 검색을 효율적으로 수행하기 위해 자주 사용된다.[3]

3. 거리 메트릭 학습

유사도 학습은 데이터로부터 적절한 거리 함수를 학습하는 '''거리 메트릭 학습'''과 밀접한 관련이 있다.[4][5] 이는 단순히 사전에 정의된 거리를 사용하는 대신, 데이터의 특성을 잘 반영하여 유사한 객체는 가깝게, 다른 객체는 멀게 만드는 거리 측정 방식을 학습하는 것을 목표로 한다. 학습된 거리는 수학적인 메트릭 조건을 엄격히 따르거나, 일부 조건을 완화한 유사 메트릭(pseudo-metric) 형태일 수 있다.

메트릭 학습은 데이터를 효과적으로 표현하는 공간으로 변환하는 과정으로도 볼 수 있으며, 이를 통해 변환된 공간에서의 유클리드 거리가 의미있는 유사도를 나타내도록 한다. 메트릭 학습을 위한 주요 접근 방식으로는 삼중항 손실(triplet loss) 기반 학습,[6] 최대 마진 최근접 이웃(Large Margin Nearest Neighbor, LMNN),[7] 정보 이론적 메트릭 학습(Information Theoretic Metric Learning, ITML)[8] 등이 있다. 통계학마할라노비스 거리 역시 데이터의 공분산을 이용한 메트릭 학습의 한 예시로 볼 수 있다.

3. 1. 메트릭의 정의

유사도 학습은 ''거리 메트릭 학습''과 밀접한 관련이 있다. 메트릭 학습은 객체 간의 거리를 측정하는 함수, 즉 거리 함수를 학습하는 과정이다. 수학에서 메트릭 또는 거리 함수는 다음 네 가지 조건을 만족해야 한다.

  • 음이 아님: 거리는 항상 0 이상이어야 한다.
  • 구별 불가능자의 동일성: 거리가 0이면 두 객체는 동일하다.
  • 대칭성: A에서 B까지의 거리와 B에서 A까지의 거리는 같다.
  • 가산성 (또는 삼각 부등식): A에서 C까지의 거리는 A에서 B를 거쳐 C까지 가는 거리보다 항상 작거나 같다.


하지만 실제 메트릭 학습 알고리즘에서는 '구별 불가능자의 동일성' 조건을 완화하여 유사 메트릭(pseudo-metric)을 학습하기도 한다.

만약 객체 x_id차원 벡터 공간(R^d)의 벡터라면, 대칭이고 양의 준정부호인 행렬 W(W \in S_+^d)를 이용하여 거리 유사 메트릭 D_W를 정의할 수 있다.

D_W(x_1, x_2)^2 = (x_1-x_2)^{\top} W (x_1-x_2)

여기서 W가 대칭이고 양의 정부호 행렬이면, D_W는 엄밀한 의미의 메트릭이 된다.

모든 대칭 양의 준정부호 행렬 WW = L^{\top}L 형태로 분해될 수 있다 (L \in R^{e \times d}, e \geq rank(W)). 이를 이용하면 거리 함수 D_W를 다음과 같이 다시 쓸 수 있다.

D_W(x_1, x_2)^2 = (x_1-x_2)^{\top} L^{\top}L (x_1-x_2) = \| L (x_1-x_2) \|_2^2

이는 원래 벡터 x_1x_2L로 선형 변환한 새로운 특징 벡터 x_1'= Lx_1x_2'= Lx_2 사이의 유클리드 거리 제곱과 같다. 즉, 메트릭 학습은 데이터를 적절한 공간으로 변환하여 유클리드 거리가 의미있는 유사도를 나타내도록 하는 과정으로 볼 수 있다.

메트릭 학습을 위한 다양한 방법들이 제안되었다.[4][5] 대표적인 예로는 삼중항 손실(triplet loss)을 이용한 상대적 비교 학습,[6] 최대 마진 최근접 이웃(Large Margin Nearest Neighbor, LMNN),[7] 그리고 정보 이론적 메트릭 학습(Information Theoretic Metric Learning, ITML)[8] 등이 있다.

통계학에서는 데이터의 공분산 행렬을 사용하여 마할라노비스 거리라는 메트릭을 정의하기도 한다.

3. 2. 마할라노비스 거리

통계학에서 데이터의 공분산 행렬은 때때로 마할라노비스 거리라고 하는 거리 메트릭을 정의하는 데 사용된다.

4. 응용 분야

유사도 학습은 정보 검색에서의 랭킹 학습, 얼굴 인증 또는 식별,[9][10] 추천 시스템 등 다양한 분야에서 응용된다. 또한, 특정 메트릭에 의존하는 클러스터링(비지도 학습)이나 K-최근접 이웃 알고리즘(지도 학습)과 같은 여러 머신 러닝 기법들의 성능 향상을 위한 전처리 단계로 사용되기도 한다.[11]

4. 1. 정보 검색

유사도 학습은 랭킹 학습을 위한 정보 검색, 얼굴 인증 또는 얼굴 식별,[9][10]추천 시스템에 사용된다.

4. 2. 얼굴 인식 및 인증

유사도 학습은 얼굴 인식 또는 얼굴 인증 분야에서 활용된다.[9][10]

4. 3. 추천 시스템

유사도 학습은 랭킹 학습을 위한 정보 검색, 얼굴 인증 또는 얼굴 식별,[9][10]추천 시스템에 사용된다.

4. 4. 기타 응용

유사도 학습은 랭킹 학습을 위한 정보 검색, 얼굴 인증 또는 얼굴 식별,[9][10] 그리고 추천 시스템 등 다양한 분야에서 활용된다.

또한 많은 머신 러닝 접근 방식이 특정 메트릭에 의존하며, 이때 유사도 학습(메트릭 학습)은 성능 향상을 위한 전처리 단계로 제안되기도 한다.[11] 가깝거나 유사한 객체를 함께 묶는 클러스터링(비지도 학습)이나, 주변 객체의 레이블을 참조하여 새로운 객체의 레이블을 결정하는 K-최근접 이웃 알고리즘(지도 학습) 등이 대표적인 예이다.[11]

5. 확장성

메트릭 학습 및 유사성 학습은 학습된 메트릭이 양선형 형태 f_W(x, z) = x^T W z 를 가질 때, 입력 공간의 차원에 따라 계산량이 2차적으로 증가하는 확장성 문제를 가진다.[12][13] 이는 데이터의 특징(차원)이 많아질수록 계산 부담이 급격히 커진다는 것을 의미한다.

더 높은 차원의 데이터로 확장하기 위해서는 행렬 모델에 희소성(sparsity) 구조를 적용하는 접근 방식이 필요하다. 예를 들어 HDSL[12] 및 COMET[13]과 같은 연구에서는 이러한 희소성 구조를 활용하여 고차원 데이터에 대한 확장성을 개선하고자 하였다.

6. 소프트웨어

유사도 학습을 구현하고 활용하는 데 도움이 되는 여러 파이썬 기반 소프트웨어 라이브러리가 있다. 대표적인 예로는 다음과 같은 것들이 있다.


  • metric-learn: 지도 및 약지도 학습 기반의 유사도 및 거리 학습 알고리즘을 제공하는 자유 소프트웨어 라이브러리.[14][15]
  • OpenMetricLearning: 고품질 임베딩 모델의 훈련과 검증을 지원하는 프레임워크.[16]


자세한 내용은 각 하위 섹션을 참고할 수 있다.

6. 1. metric-learn


  • ''metric-learn''[14]은 여러 지도 및 약지도 유사도 및 거리 학습 알고리즘의 효율적인 구현을 제공하는 자유 소프트웨어 파이썬 라이브러리이다. ''metric-learn''의 API는 scikit-learn과 호환된다.[15]
  • ''OpenMetricLearning''[16]은 고품질 임베딩을 생성하는 모델을 훈련하고 검증하기 위한 파이썬 프레임워크이다.

6. 2. OpenMetricLearning

OpenMetricLearning[16]은 고품질 임베딩을 생성하는 모델을 훈련하고 검증하기 위한 파이썬 프레임워크이다.

참조

[1] 논문 Large Scale Online Learning of Image Similarity Through Ranking http://www.jmlr.org/[...]
[2] 문서 Similarity search in high dimensions via hashing VLDB
[3] 웹사이트 Mining of Massive Datasets, Ch. 3. http://infolab.stanf[...]
[4] 논문 A Survey on Metric Learning for Feature Vectors and Structured Data
[5] 논문 Metric Learning: A Survey https://www.nowpubli[...]
[6] 논문 Learning a distance metric from relative comparisons https://papers.nips.[...]
[7] 논문 Distance Metric Learning for Large Margin Nearest Neighbor Classification http://books.nips.cc[...]
[8] 논문 Information-theoretic metric learning http://www.cs.utexas[...]
[9] 논문 Is that you? Metric learning approaches for face identification http://hal.inria.fr/[...]
[10] 논문 PCCA: A new approach for distance learning from sparse pairwise constraints http://hal.archives-[...]
[11] 논문 Distance Metric Learning, with Application to Clustering with Side-information https://ai.stanford.[...]
[12] 논문 Similarity Learning for High-Dimensional Sparse Data http://jmlr.org/proc[...]
[13] 논문 Learning Sparse Metrics, One Feature at a Time http://jmlr.org/proc[...]
[14] 웹사이트 Scikit-learn-contrib/Metric-learn https://github.com/s[...]
[15] 논문 metric-learn: Metric Learning Algorithms in Python https://www.jmlr.org[...]
[16] 웹사이트 OML-Team/Open-metric-learning https://github.com/O[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com