유사도 학습
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
유사도 학습은 객체 간의 유사성을 측정하고, 머신러닝 모델의 성능을 향상시키기 위해 사용되는 기술이다. 이 기술은 회귀, 분류, 랭킹, 지역 민감 해싱(LSH) 등 다양한 설정에서 활용되며, 유사도 함수를 이중 선형 형식으로 모델링하거나 샴 쌍둥이 네트워크와 같은 딥 네트워크 모델을 학습하는 방식으로 구현될 수 있다. 유사도 학습은 또한 거리 메트릭 학습과 밀접한 관련이 있으며, 메트릭 학습은 객체 간의 거리 함수를 학습하는 작업이다. 유사도 학습은 정보 검색, 얼굴 인식, 추천 시스템 등 다양한 분야에 응용되며, metric-learn과 OpenMetricLearning과 같은 소프트웨어를 통해 구현된다.
더 읽어볼만한 페이지
- 의미 유사도 - 반의어
반의어는 의미가 반대되는 낱말이나 어구로, 한자 구성 방식이나 의미상 관계에 따라 분류되지만, 품사가 항상 같지 않고 문맥에 따라 관계가 달라지는 모호성을 지니며, 언어의 문화적 배경과 사용 문맥에 의존한다. - 의미 유사도 - 시맨틱 네트워크
시맨틱 네트워크는 개념 간의 관계를 표현하는 지식 표현 방법으로, 노드와 링크를 사용하여 지식을 구조화하며 인공지능, 언어학 등 다양한 분야에서 활용된다. - 기계 학습 - 비지도 학습
비지도 학습은 레이블이 없는 데이터를 통해 패턴을 발견하고 데이터 구조를 파악하는 것을 목표로 하며, 주성분 분석, 군집 분석, 차원 축소 등의 방법을 사용한다. - 기계 학습 - 지도 학습
지도 학습은 레이블된 데이터를 사용하여 입력 데이터와 출력 레이블 간의 관계를 학습하는 기계 학습 분야로, 예측 모델 생성, 알고리즘 선택, 모델 최적화, 정확도 평가 단계를 거치며, 회귀 및 분류 문제에 적용되고 다양한 확장 기법과 성능 평가 방법을 활용한다.
유사도 학습 | |
---|---|
개요 | |
유형 | 지도 학습 |
작업 | 거리 함수 또는 유사도 함수 학습 |
세부 사항 | |
설명 | 유사도 학습(similarity learning)은 예제 쌍이 얼마나 유사하거나 관련이 있는지 학습하는 지도 학습의 한 영역이다. |
목표 | 유사도 학습의 목표는 대상 함수인 유사도 함수를 학습하는 것이다. |
접근 방식 | 유사도 학습 알고리즘은 일반적으로 쌍으로 된 예제를 입력으로 사용하며, 이러한 쌍이 유사한지 유사하지 않은지를 나타내는 레이블이 지정된다. |
활용 | 추천 시스템 정보 검색 얼굴 인식 |
2. 유사도 학습의 설정
유사도 및 거리 학습에는 일반적으로 네 가지 설정이 있다.
- 회귀 유사도 학습: 객체 쌍의 유사도를 실수 값으로 예측하는 함수를 학습하는 설정이다.
- 분류 유사도 학습: 두 객체가 유사한지 여부를 분류하는 모델을 학습하는 설정이다.
- 랭킹 유사도 학습: 객체 간의 상대적인 유사도 순서를 학습하는 설정이다. 기준 객체에 대해 어떤 객체가 다른 객체보다 더 유사한지를 판별하는 함수를 학습하며, 이는 대조 학습의 한 형태로 볼 수 있다.[1]
- 지역 민감 해싱 (LSH): 유사한 항목이 높은 확률로 동일한 버킷에 해시되도록 하는 기법이다.[2] 이는 대규모 고차원 데이터에서 최근접 이웃 검색 속도를 높이는 데 자주 사용된다.[3]
이러한 유사도 학습 문제를 해결하기 위한 일반적인 접근 방식으로는 유사도 함수를 이중 선형 형식으로 모델링하거나, 데이터가 충분할 경우 샴 쌍둥이 네트워크와 같은 딥러닝 모델을 활용하는 방법이 있다.
2. 1. 회귀 유사도 학습
이 설정에서는 객체 쌍 과 함께 실수 값으로 표현되는 유사도 측정값 이 주어진다. 목표는 모든 새로운 레이블이 지정된 예시 데이터 에 대해, 함수 가 예측하는 유사도 값 이 실제 유사도 와 유사해지도록 함수 를 학습하는 것이다. 이는 일반적으로 정규화(regularization)된 손실 함수(loss function) 를 최소화하는 방식으로 이루어진다.2. 2. 분류 유사도 학습
유사한 객체 쌍 과 유사하지 않은 객체 쌍 가 주어진다. 이와 동등한 공식은 모든 쌍 에 대해 두 객체가 유사한지 여부를 결정하는 이진 레이블 과 함께 제공된다는 것이다. 이 설정의 목표는 새로운 객체 쌍이 유사한지 여부를 결정할 수 있는 분류기를 학습하는 것이다.2. 3. 랭킹 유사도 학습
상대적 유사도가 미리 정의된 순서를 따르는 객체 삼중항 이 주어지는 설정이다. 여기서 는 보다 에 더 가깝다는 정보가 주어진다. 목표는 새로운 객체 삼중항 에 대해 를 만족하는 함수 를 학습하는 것이다. 이는 대조 학습의 한 형태이다.이 방식은 회귀 방식보다 더 약한 형태의 감독(supervision)을 가정한다. 왜냐하면 정확한 유사도 값을 요구하는 대신, 객체 간 유사도의 상대적인 순서 정보만 필요하기 때문이다. 이러한 특징 덕분에 랭킹 기반 유사도 학습은 실제 대규모 응용 프로그램에 더 쉽게 적용될 수 있다.[1]
유사도 학습의 일반적인 접근 방식 중 하나는 유사도 함수를 이중 선형 형식으로 모델링하는 것이다. 예를 들어, 랭킹 유사도 학습에서는 유사도 함수를 형태로 정의하고, 이 함수를 매개변수화하는 행렬 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)을 학습하기도 한다.
만약 객체 가 차원 벡터 공간()의 벡터라면, 대칭이고 양의 준정부호인 행렬 ()를 이용하여 거리 유사 메트릭 를 정의할 수 있다.
여기서 가 대칭이고 양의 정부호 행렬이면, 는 엄밀한 의미의 메트릭이 된다.
모든 대칭 양의 준정부호 행렬 는 형태로 분해될 수 있다 (, ). 이를 이용하면 거리 함수 를 다음과 같이 다시 쓸 수 있다.
이는 원래 벡터 과 를 로 선형 변환한 새로운 특징 벡터 과 사이의 유클리드 거리 제곱과 같다. 즉, 메트릭 학습은 데이터를 적절한 공간으로 변환하여 유클리드 거리가 의미있는 유사도를 나타내도록 하는 과정으로 볼 수 있다.
메트릭 학습을 위한 다양한 방법들이 제안되었다.[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. 확장성
메트릭 학습 및 유사성 학습은 학습된 메트릭이 양선형 형태 를 가질 때, 입력 공간의 차원에 따라 계산량이 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