들어가며
이번 글에서는 특성이 멀티모달 분포를 가질 때
어떤 식으로 변환해야 의미있고 안정적인 학습이 가능할 지 알아볼 것이다
우선 멀티모달 분포라는 것은 모드라고 부르는 정점(peak)가 2개 이상 나타나는 분포를 의미한다

이런식으로 봉우리가 2개 이상이 나타나는 분포를 멀티모달 분포라고 부른다
멀티모달 분포가 나타나면 평균이 의미없어지고 최적화가 어려워지는 문제가 발생한다
그러므로 안정적인 학습을 위해 변환을 시켜주어야 한다
버킷타이징을 이용한 변환
멀티모달 분포가 나타날 때 버킷타이징을 사용하여 변환해 줄 수 있다
멀티모달에서의 버킷타이징은 버킷을 크기나 순서대로 나눈 것이 아닌 모드별로 나눈다
예를 들면 저소득/중산층/고소득 이런식으로 모드별로 버킷을 둔 것이다
버킷타이징을 이용하면 머신러닝 모델이 경우 여러 범주에 대해서 다양한 규칙을 쉽게 학습할 수 있게된다
그러나 이런 버킷타이징 특성 상 카테고리로 특성을 다루기에 버킷 인덱스를 인코딩 해서 사용해주어야 한다
그러므로 너무 많은 버킷을 사용하는 것은 효율 측면에서 좋지 않다
방사 기저 함수(RBF)를 이용한 변환
멀티모달 분포를 변환하는 또 다른 방법은 각 데이터가 분포의 모드와 가지는 유사도를 표현한 것이다
유사도를 측정하는 방법으로 보통 방사 기저 함수(radical basis function)를 사용한다
방사 기저 함수는 입력값과 고정 포인트 사이의 거리에만 의존한 함수이다
쉽게 말하면 고정 포인트와 얼마나 가까운지 수치로 나타내는 함수다
가장 널리 사용되는 RBF 함수는 가우스 RBF 함수이다
가우스 RBF는 입력값이 고정 포인트에서 멀어질수록 출력값이 지수적으로 감소하는 형태이다
exp(−γ(x−c)2)
위 식은 방사 기저 함수 식이고 쉽게 보면

이런 식의 형태라고 보면된다
c가 고정 포인트를 의미하고 x는 입력값을 의미한다
γ(감마)는 x가 c로부터의 멀어짐에 따라 유사도 값이 얼마나 빠르게 감소할 지를 결정한다
감마값이 작을수록 넓은 범위에서 유사성을 느끼고
감마값이 클수록 극히 가까운 데이터만 유사하다고 느낀다
사이킷런에서 rbf_kernel()함수를 제공하여 유사도를 통한 가우스 RBF 특성을 만들 수 있다
from sklearn.metrics.pairwise import rbf_kernel
age_simil_35 = rbf_kernel(housing[["housing_median_age"]], [[35]], gamma=0.1)
두번째 파라미터인 35는 고정포인트를 의미한다

위 사진은 감마값에 따라 그래프가 어떻게 바뀌는 지를 보여준다
우선 35에서 정점에 다다르는 것을 볼 수 있고
감마값이 클수록 가까운 데이터를 더 유사하게 생각하고
감마값이 작아질수록 먼 데이터도 유사하게 생각하는 것을 볼 수 있다
마치며
이번 글에서는 멀티모달 분포를 어떤식으로 변환시킬 수 있는 지에 대하여 알아보았다
가우스 RBF에서 하이퍼파라미터인 감마가 어떤 역할을 하는 지 이해하는 데에 조금 시간이 걸렸었다
그래프를 보고 실제 값을 대입해보고 비교해보니 이해하는 데에 도움이 됐다
오늘 나온 수식은 비교적 간단한 수식이지만 앞으로 배울 것들엔
더 복잡한 수식이 나올 것 같아서 미리 대비를 해놓아야 겠다고 생각했다
'AI > Machine Learning' 카테고리의 다른 글
| [AI] 그리드 서치(Grid Search), 랜덤 서치(Random Search) (1) | 2026.02.08 |
|---|---|
| [AI] 변환 파이프라인 (1) | 2026.02.08 |
| [AI] 특성 스케일링(정규화, 표준화) (0) | 2026.02.07 |
| [AI] 텍스트 특성 다루기 (1) | 2026.02.06 |
| [AI] 데이터 정제하기 (0) | 2026.02.04 |
