안녕, 세상!

비지도 학습 - (2) 확률적 클러스터링, 머신러닝에서의 가능도(Likelihood) 본문

It공부/Machine Learning

비지도 학습 - (2) 확률적 클러스터링, 머신러닝에서의 가능도(Likelihood)

dev_Lumin 2021. 1. 4. 02:02

(1) 확률적 클러스터링 

K-means 기법은 데이터 점이 반드시 클러스터에 할당됩니다.

하지만 같은 클러스터로 분류된 데이터 내부에서 클러스터 중심 벡터로부터 가까운 데이터가 있고 먼 데이터가 있습니다. 

이에 따라 특정 클러스터 중심벡터로 부터 먼 데이터의 경우 또 다른 클러스터의 데이터일 확률도 존재할 것입니다.

 

확률적 클러스터링은 입력 데이터에 대한 클러스터를 분류하되, 입력 데이터들의 각각에 대한 전체 클러스터의 종류에 속할 확률까지 고려한 클러스터링 기법입니다.

 

전체 클러스터에 대한 입력데이터의 클러스터 확률을 부담률(responsibility)이라고 하며 γ(감마)로 표기합니다.

부담률의 합은 1이어야 합니다.

ex) [0.5, 0.3, 0.2]

 

입력 데이터에 대한 클러스터를 분류하는 행렬은 Z로 표기하며, 앞서 K-means의 R과 거의 같은 역할입니다.

 

부담률을 구하기 위해서 가우스 함수에 대해서 알아야 합니다.

 

 

(2) 가우스 함수

① 1차원 가우스 함수

 

가우스 함수의 식은 다음과 같습니다.

μ : 중심(평균)

σ : 확산(표준 편차)

a : 높이


x를 적분하여 1로 만들려면 a를 다음과 같이 설정해야 합니다.

 

가우스 함수

 

② 2차원 가우스 함수

2차원 가우스 함수는 X를 2차원 벡터라고 했을 때 기본식은 다음과 같습니다.

 

그리고 이 기본식의 중심을 이동시키거나 굵기를 조절하기 위해 몇 가지 매개변수를 더한 형태가 다음과 같습니다.

μ : 중심(평균)벡터

Σ : 공분산(Convariance) 행렬 - 두 개의 확률변수의 상관 정도를 나타내는 값

a : 높이

 

Σ는 공분산 행렬로 2x2 행렬입니다.

시그마 0과 1은 x0과 x1 방향의 분포의 퍼짐을 나타냅니다.

(x0과 x1은 2차원에서의 각각의 축)

시그마 2는 분포의 기울기(x0과 x1의 상관관계)에 대응하고 있으며, 양수라면 오른쪽으로 치우친 분포, 음수라면 왼쪽으로 치우친 분포가 표현됩니다.

 

조건을 가정하고 2차 가우스 식을 풀이하면 다음과 같습니다.

 

a는 함수의 크기를 제어하는 매개변수지만, 가우스 함수에서 확률 분포를 나타나는 경우에는 다음과 같이 설정합니다.

 

 

③ 가우시안 혼합 모델

가우시안 호합 모델은 2차원 가우스 함수를 여러 개 합친 것입니다.

식은 다음과 같습니다.

μk : 중심(평균) 벡터

Σk : 공분산(Convariance) 행렬 - 두 개의 확률변수의 상관 정도를 나타내는 값 (분포의 퍼짐을 나타냄)

πk : 혼합 계수 - 각 가우스 분포의 크기의 비율을 나타냄 (0 <= πk <=1)

N : 클래스(클러스터) K를 뜻함 K의 개수

 

 

(3) EM(Expectation-maximization) 알고리즘

EM알고리즘은 가우시안 혼합 모델을 사용하는 알고리즘으로 K-means의 확률적 클러스터링에 사용됩니다.

K-means 알고리즘에 가우시안 혼합 모델이 사용되는 이유는 다음 사진을 통해 가우시안 혼합 모델과 K-means를 이용한 데이터 분포가 서로 형태가 비슷하다는 것을 알 수 있기 때문입니다.

 

그러므로 데이터 분포를 가우시안 혼합 모델 측면으로 접근해서 투영하며, 가우시안 혼합 모델은 입체적으로 분포를 나타내므로 확률을 표현해 줄 수 있기 때문에 부담률을 구할 수 있습니다. 

 

 

가우시안 혼합 모델의 EM 알고리즘 순서

Step (1)

클러스터 수를 정하고 μk, Σk, πk 각각의 값에 초기값을 할당합니다.

 

위의 경우는 3개의 클러스터이며, 3개의 클러스터 각각에 대하여 초기값을 다음과 같이 설정했습니다.

πk = [0.33, 0.33, 0.34]

μk = [ [-2 -1] [-2 0] [-2 1] ]

Σk = [   [ [1 0] [0 1] ]    [ [1 0] [0 1] ]    [ [1 0] [0 1] ]   ] 

 

 

Step (2) 

E step ( Estimation step)

각 데이터 점의 부담률을 다음과 같은 식으로 계산합니다.

 

K는 클러스터 수이며 Xn은 모든 점들을 의미합니다.

그러므로 위의 식을 해석하자면,

분자는 존재하는 모든 클러스터에 대해서 모든 점들에 대한 가우스 분포의 합이고,

분모는 특정 클러스터에 대해서만 모든 점들에 대한 가우스 분포를 말합니다.

이를 통해 하나의 점(하나의 입력 데이터)에 대하여 어떤 클러스터에 얼마 큼 연관이 있는지(가까운지) 확률을 구할 수 있습니다.

 

다음은 각 입력 데이터들에 대한 부담률을 구하고 그에 맞는 색상으로 표기한 상태입니다.

K-means와 같이 3개의 색상으로 명확히 구분되어 있는 것이 아닌 3개의 색상에 대해 연속적인 변화로 색상이 나타남을 확인할 수 있습니다.

입력 데이터들 마다 클러스터들의 부담률을 적용해서 색상을 입혔기 때문입니다.

 

 

Step (3)

M step ( Maximization step)

이제 각 데이터들에 대해서 클러스터를 부담률에 대해서 설정을 해줬으니 그에 맞게 πk ,μk ,Σk의

 

우선 각 클러스터에 대한 부담률의 합 Nk를 구합니다.

( N1은 클러스터 1에 대한 부담률 합)

 

이제  πk의

πk 는 각 클러스터(가우스 함수)에 대한 크기를 나타내므로 다음과 같이 갱신이 됩니다

N은 전체 데이터 수입니다.

하나의 데이터에 대한 부담률의 합은 1이고 그중 특정 클러스터들에 대한 부담률합이 Nk 이므로 위의 식이 성립합니다.

 

μk 는 다음과 같이 갱신됩니다.

 

중심 벡터는 K-means에서 클러스터 데이터의 평균을 구한다는 단계와 대응합니다.

 

 

Σk 는 다음과 같이 갱신됩니다.

 

πk ,μk ,Σk 의 값들을 모두 갱신시킨 가우시안 모델은 다음과 같이 그려지게 됩니다.

 

 

Step (4)

K-means와 마찬가지로 가우시안 모델이 변화가 크지 않을 때까지 E step과 M step을 반복합니다.

 

초기 중심벡터가 ([[2, 2], [-2, 0], [2, -2]]) 일 경우 (뮤와 시그마 값은 위의 순서도 첫 예시와 동일)

 

K-means와 마찬가지로 클러스터링 결과는 매개 변수의 초기값(πk ,μk ,Σk)에 따라 달라집니다.

실제로는 다양한 초기값을 사용해 가장 좋은 결과를 선택하게 됩니다.

그러므로 초기값의 선택도 중요합니다.

만약 3개의 클러스터들에 대해서 초기값 조건을 똑같이 두고 시작하면 3개의 클러스터들은 각각 완전 똑같게 결과가 나오므로 클래스를 분류하는 의미가 없게 됩니다.

 

EM 알고리즘은 가우시안 혼합 모델이 입력 데이터 X의 분포에 맞게 매개 변수를 갱신하는 알고리즘입니다.

입력 데이터가 조밀한 부분을 중심으로 가우스 함수가 배치되어, 입력 데이터가 띄엄띄엄한 부분은 분포의 값이 낮도록 매개변수가 조정됩니다.

그 결과, 각 가우스 분포가 다른 클러스터를 나타낸 것입니다.

 

그럼 이러한 EM 알고리즘의 목적 함수(손실 함수)는 무엇일까요?

바로 가능도(Likelihood)입니다.

 

(4) 가능도(Likelihood) (우도)

입력 데이터 X는 가우시안 혼합 모델에서 생성된 것으로 생각하여, X가 생성된 확률(가능도)이 가장 높도록 매개변수가 갱신되고 있는 것입니다.

즉, 최대 가능도가 되도록 가우시안 혼합 모델의 매개변수들이 갱신이 됩니다.

가우시안 혼합 모델의 πk ,μk ,Σk 값에 따라서 데이터들의 발생 확률이 매 번 달라지게 됩니다.

 

예를 들어 다음과 같은 데이터 5개가 주어졌다고 가정하겠습니다.

이때 x의 데이터에 대해서 두 개의 가우스 함수를 그리겠습니다.

 

각 데이터에 대해서 주황색 가우스 함수와 파란색 가우스 함수를 확인할 수 있습니다.

가우스 함수라는 것은 곧 분포를 나타내고, 분포라는 것을 통해 확률을 얻을 수 있습니다.

즉, 가우스 함수의 분포에 따라 매 번 5개의 원소에 대한 발생 확률이 다르다는 것입니다.

주황색 가우스 함수를 O(x)라고 가정하겠습니다.

예시로 주황색 가우스 함수에서 데이터 1의 발생 확률이라는 것은 

O(1) / ( O(1)+O(4)+O(5)+O(6)+O(9) )입니다.

 

위 예시의 가능도는,

(1이 발생할 확률) * (4가 발생할 확률) * (5가 발생할 확률) * (6이 발생할 확률) * (9가 발생할 확률)

입니다.

이 가능도를 크게 하려면 즉, 최대 가능도로 만들려면 파란색보다는 주황색 가우스 함수가 최대 가능도에 가깝게 만들어 줍니다.

최대 가능도에 가까워질수록 밀접한 데이터 중심으로 가우스 함수의 평균이 형성되는 것을 확인할 수 있습니다. (EM 알고리즘의 목적함수가 최대 가능도인 이유)

 

이를 통해 가우시안 혼합 모델은 가우스 함수와 본질적으로 같으므로

각 가우시안 혼합 모델들에게 초기값 πk ,μk ,Σk 을 분산시켜 잘 설정하고, 목적함수를 최대 가능도를 가지도록 유도하면, 클러스터들이 잘 분류되게 한다는 것을 알 수 있습니다.

 

그러므로 가우시안 혼합 모델을 이용한 EM 알고리즘의 목적함수는 가능도가 최대 가능도가 되게 한다는 것입니다.

 

 

이제 목적함수를 가능도를 사용해야 된다는 것을 알았으므로 다시 본론으로 돌아와서,

EM 알고리즘 순서에서 보여준 예시에서 데이터들에 대한 가능도 식을 표현하면 다음과 같습니다.

 

K는 클러스터 수(가우시안 모델 수), N은 전체 데이터 수

이를 해석하자면 'X라는 데이터들에 대한 발생할 확률은 π ,μ ,Σ 의 값에 따라 결정이 되는데 이때의 가능도는 다음과 같다.'라고 해석하면 됩니다.

가능도는 발생 확률들의 곱이니 곱의 기호가 사용된 것을 확인할 수 있습니다.

 

이제 위의 가능도 함수에 로그를 취해서 로그 가능도 식을 만듭니다.

로그 가능도로 바꿔 준 이유는 로그함수가 곱셈을 덧셈으로 바꿔서 계산하기 편한 형태로 취해주기 때문입니다.

 

목적함수(손실 함수)는 가고자 하는 목적을 나타내는 동시에 해당 모델에 대한 오차라고 생각할 수 있습니다.

양의 log 함수는 증가함수이므로 log 함수에 마이너스(-)를 취해줍니다.

따라서 로그 가능도 오차 함수의 식은 다음과 같습니다.

 

E Step과 M step의 반복을 통해서 E Step 이후 음의 로그 가능도( 로그 가능도 오차 함수)를 그래프로 표현하면 다음과 같습니다.

이를 통해 EM 알고리즘의 목적 함수는 최대 가능도라는 것을 다시 한 번 증명한 셈이 된 것입니다.

 

 

 

위의 설명에서 가능도라는 것이 이해가 안될 수 도 있으니 가능도에 대해 예시를 들어 자세히 설명하겠습니다.

 

 

가능도라는 것을 설명하자면

주어진 데이터들에 대해서 각 데이터들 마다 데이터가 발생할(생성될) 확률(w)이 있습니다.

여기서 데이터를 클래스라고 간주하는 것이 이해하기 편할 것입니다.

( 클래스의 예시 : 동전이 앞면인 경우(1), 뒷면인 경우(0) )

 

우리가 일반적으로 확률에 대해서 생각을 할 때 실험적인 확률보다 수학적인 확률을 사용합니다.

단순하게 생각했을 때 동전이 앞면이 나올 확률과 뒷면이 나올 확률을 각각 1/2라고 생각합니다.

하지만 실제로 어떤 사람이 동전을 직접 던져서 실험적 확률을 구하면 앞면이 나올 확률과 뒷면이 나올 확률은 1/2이 아닙니다.

예를 들어서, 동전을 4번 던졌다고 가정했을 때 결과는 다음과 같이 나왔습니다.

결과(r)      |     시간(t) 1회 2회  3회 4회
앞면(1)      
뒷면(0)  

이러한 실험적인 확률을 수학적 관점의 확률로 보게 되면

4번 중 앞면은 1번, 뒷면은 3번 나왔으므로,

앞면이 나올 확률은 1/4, 뒷면이 나올 확률은 3/4 가 됩니다. (최대 가능도 or 최대 우도법)

 

이를 통해 우리는 여기서 실험적인 확률을 계산할 때 발생 확률(w)에 대해서 장담을 할 수 없다는 중요한 사실을 알게 되는 것입니다.

 

그러므로 위의 동전을 4번 던진 예시에서도 4번 던져서 다음과 같이 결과가 나왔다고 하더라도,

앞면이 나올 확률이 1/4라고 단언할 수 없습니다.

 

그래서 발생 확률에 대해서 미지수 값 w로 줄 것입니다.

 

동전을 4번 던진 예시의 가능도를 앞면 발생 확률이 w라고 하고 결과를 r라고 할 때 다음과 같이 표현할 수 있습니다.

p(R = 0 0 0 1 | t ) = (1-w)**3  *  (w)

이것이 바로 가능도(Likelihood)입니다.

즉,  가능도라는 것은 각 데이터들 마다 발생 확률의 곱을 말하는 것입니다.

 

 

여기서 이러한 가능도가 최대로 나오게 하는 것이 최대 가능도(MLE)입니다.

 

최대 가능도라는 것을 보다 쉽게 의미적으로 풀어서 설명하자면,

어떠한 유한한 실험적 데이터가 있는데 그 유한한 데이터들 마다 결과가 있을 것이고 특정 유한한 실험적 데이터의 결과에 최대한 맞도록,

즉, 해당 결과가 나올 확률이 가장 크게 나오도록 발생 확률을 정하는 것이 최대 가능도 입니다.

 

위의 동전 4번 던진 예시로 비유해서 설명하자면,

앞면이 위와 같이 앞면이 1번 나오고 뒷면이 3번 나오는 가능도가 (1-w)**3  *  (w)인데

가능도가 최대한 앞면이 1번 나오고 뒷면이 3번 나오도록 하는 앞면의 발생 확률 w에 대한 가능도가 최대 가능도라는 것입니다.

 

그래서 최대한 앞면이 1번 나오고 뒷면이 3번 나오도록 하는 앞면의 발생 확률은 1/4입니다.

그러므로 최대 가능도는 (3/4)**3  *  (1/4)입니다.

이를 통해 우리가 보통 실험적인 확률을 계산하는데 최대 가능도를 적용해서 계산함을 알 수 있습니다.

 

위의 예제에서 (1-w)**3  *  (w) 의 가능도가 최대로 나오는 값이 최대 가능도인데,

최대값을 구하기 위해서 실제로 가능도를 미분한 값이 0인 w값을 구하게 되면

w가 1/4인 경우에 미분 값이 0인 것을 확인할 수 있습니다.

 

 

 

위의 머신러닝 비지도 학습에서 가능도를 설명했는데, 사실 가능도는 비지도 학습뿐만 아니라 머신러닝 지도 학습에서 혹은 딥러닝에서 모두 해석할 수 있습니다.

예를 들어 어떤 한 개의 데이터에 대해서만 가능도를 최대 가능도로 유도한다는 것은 한 개의 데이터에 대한 발생 확률이 최대가 되도록 유도한다고 생각할 수 있습니다.

이를 확률적으로 생각한다면 '해당 분류 데이터의 발생 확률이 최대가 되도록 한다'라고 생각할 수 있고 이는 곧 지도 학습의 분류 학습에서 설명할 수 있다는 것을 알 수 있습니다.

 

 

 

 

(본 정리는 '파이썬으로 배우는 머신러닝의 교과서' 학습을 바탕으로 정리하였습니다.)

(4) 설명의 일부 이미지의 출처는 다음과 같습니다.

angeloyeo.github.io/2020/07/17/MLE.html#likelihood-function%EC%9D%98-%EC%B5%9C%EB%8C%80%EA%B0%92%EC%9D%84-%EC%B0%BE%EB%8A%94-%EB%B0%A9%EB%B2%95

 

'It공부 > Machine Learning' 카테고리의 다른 글

비지도 학습 - (1) K-means 기법  (0) 2021.01.03
Comments