
머신러닝에서 데이터를 모델링하는 방법은 다양합니다. 일반적으로 확률 모델을 사용해 데이터가 특정 분포를 따른다고 가정하고 이를 학습하하지만, 특정 확률 분포를 명확히 정의하기 어려운 경우에 오늘 알아볼
EBM(Energy-Based Model)
을 사용할 수 있습니다.
EBM은 확률을 직접적으로 다루지 않고, "에너지"라는 개념을 활용해서 데이터를 평가하는 방식인데요.
이 개념을 바탕으로 대조학습(Contrastive Learning)이 등장하게 되었습니다.
Contrastive Learning 기초 : EBM, NCE, InfoNCE
Contrastive Learning 기초 : EBM, NCE, InfoNCE
이번에 알아볼 것은 Contrastive Learning에서 핵심 개념인 EBM(Energy Based Model), NCE(Noise Contrastive Estimation), 그리고 InfoNCE의 개념에 대해서 자세히 알아보고 이를 정리해보도록 하겠습니다. 1. EBM(Energ
jaylala.tistory.com
[딥러닝 with Python] Self-Supervised Learning (2) : 대조학습(Contrastive Learning)
이번 포스팅에서는 EBM의 개념에 대한 보다 직관적인 이해를 위해 수식과 예시를 들어 설명하겠습니다.
1. EBM(Energy-Based Model)
- EBM은 데이터의 확률 분포를 직접 정의하지 않고, 에너지 함수를 사용해 데이터를 평가하는 모델입니다.
- 특정 데이터 x에 대해 확률을 직접 할당하는 것이 아닌, 데이터의 가능성을 에너지 값인 E(x)로 변환하는 것인데요.
- EBM의 핵심 개념은 다음과 같습니다.
* 가능성이 높은 데이터 -> 낮은 에너지 E(x)
* 가능성이 낮은 데이터 -> 높은 에너지 E(x)
* 이렇게 정의된 에너지를 바탕으로 확률을 정의
- EBM에서 확률 분포는 다음과 같이 정의됩니다.

- 즉, 낮은 에너지를 가지는 데이터는 발생 가능성이 높은 확률을, 높은 에너지를 가지는 데이터는 발생 가능성이 낮은 확률을 갖도록 확률 분포가 결정이 되는 것입니다.
- 그렇다면 왜 EBM이라는 개념을 사용하게 된 것일까요?
* 일반적인 확률 모델(가우시안 분포, 로지스틱 회귀)은 확률 분포를 명확히 정의해야 하지만, 실제 문제에서는 이러한 분포를 알기 어렵습니다.
* EBM은 정확한 확률 분포를 모르더라도, 데이터의 가능성이라는 개념을 상대적으로 비교하는 방식으로 학습할 수 있기 때문에 유용합니다.
- 이러한 EBM의 장점은
* 복잡한 데이터 분포를 다룰 수 있음 : 정규화 상수 Z를 직접 계산하지 않고도 학습 가능
* Contrastive Learning의 기초가 되어줌
* 이상 탐지(Anomaly Detection)에 활용이 가능 : 비정상적인 데이터는 높은 에너지를 갖도록 학습이 되며, 이 높은 에너지를 가지는 데이터를 이상(Anomaly) 라고 정의할 수 있는 것입니다.
2. 예제로 이해해보는 EBM
- 위 설명에 대해서 어느정도는 이해가 되면서도 직관적이지 않기에 이해하기 어려울 수 있는 것이 EBM입니다.
- 이를 보충하기 위해 아래 다음과 같은 에제를 가져와봤습니다.
- 날씨를 예측하는 모델을 만들어보는 예시입니다.
* 어떤 날씨를 예측하는 모델을 만들었다고 가정해보겠습니다.
* 이 모델은 발생가능성이 높은 날씨 현상에 대해서는 낮은 에너지를 부여하고, 발생가능성이 낮은 날씨 현상에 대해서는 높은 에너지를 부여합니다.

* 이제 이 에너지를 확률로 변환해보겠습니다. 앞서 정의한 확률 공식과 주어진 데이터를 가지고 정규화를 진행해줍니다.

* 이제 이를 바탕으로 확률을 정의해줍니다.

* 결과적으로 현실에서 자주 나타날 가능성이 높은 데이터는 확률이 높아지고, 가능성이 낮은 데이터는 확률이 낮아지는 것을 확인할 수 있습니다.
3. EBM 계산의 어려움
- 위의 예제처럼 데이터 수가 적은 경우에는 확률을 계산하는데 큰 문제가 없습니다.
- 하지만, 실제 데이터의 수가 점차 많아진다면 확률을 계산하는 것은 데이터 수에 따라 컴퓨팅 자원이 이에 비례해서 많이 늘어나게 됩니다.
- 즉, EBM에서 정규화 상수인 Z를 계산하려면 전체 데이터의 확률 분포를 알아야 하지만, 현실적으로 모든 데이터를 다 알고 계산한다는 것은 불가능하며 데이터 수가 많을수록 계산자원 또한 늘어나는 것이 현실입니다.
* 데이터의 전체 분포가 이산적이고 유한하다 ==> 데이터 수가 많아서 Z를 계산하는 것에 컴퓨팅 자원이 많이 든다.
* 데이터의 전체 분포가 연속적이다 ==> 데이터 수가 무한하여 정확한 Z를 계산한다는 것은 불가능하며, 여기에 Z를 계산하기위해서 적분이 필요하여 컴퓨팅 자원이 많이 든다.
* 무엇보다 중요한 건 데이터의 전체 분포를 아는 경우는 매우매우 드물다.
- 그래서, 데이터의 발생 확률을 직접 계산하는 것이 아닌, 데이터 간의 상대적인 차이를 이용해 학습하는 방법이 나오게 되었습니다.
- 이때, Euclidean Distance 또는 Similarity 개념을 사용해 상대적인 확률을 학습하는 방식으로 분포를 추정하고자 하였고
이를 통해 나온 개념이 Noise Contrastive Estimatnio(NCE), 이를 변형한 InfoNCE, 그리고 InfoNCE를 변형한 NT-Xent Loss 라는 개념이 나오게 되었습니다.
Contrastive Learning 기초 : EBM, NCE, InfoNCE
Contrastive Learning 기초 : EBM, NCE, InfoNCE
이번에 알아볼 것은 Contrastive Learning에서 핵심 개념인 EBM(Energy Based Model), NCE(Noise Contrastive Estimation), 그리고 InfoNCE의 개념에 대해서 자세히 알아보고 이를 정리해보도록 하겠습니다. 1. EBM(Energ
jaylala.tistory.com
[딥러닝 with Python] Self-Supervised Learning (2) : 대조학습(Contrastive Learning)
댓글