본문 바로가기
딥러닝 with Python

[딥러닝 with Python] EBM(Energy-Based Model) 이해 : 확률을 에너지로 바꾸기

by CodeCrafter 2025. 3. 5.
반응형

 

 

 머신러닝에서 데이터를 모델링하는 방법은 다양합니다. 일반적으로 확률 모델을 사용해 데이터가 특정 분포를 따른다고 가정하고 이를 학습하하지만, 특정 확률 분포를 명확히 정의하기 어려운 경우에 오늘 알아볼 

 

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)

 

 

 

 

반응형

댓글