5장 - GDA와 나이브 베이즈
5장. GDA와 나이브 베이즈
지금까지 배운 학습 알고리즘은 모두 판별 학습 알고리즘이었다. 이번 장에서는 완전히 다른 접근법인 생성 학습 알고리즘을 소개한다. 가우시안 판별 분석(GDA)으로 연속형 특성을, 나이브 베이즈로 이산형 특성을 다루는 방법을 배운다. — Andrew Ng
5.1 판별 학습 알고리즘 vs 생성 학습 알고리즘
지금까지 배운 로지스틱 회귀, 퍼셉트론, 일반화 선형 모델 등은 모두 **판별 학습 알고리즘(discriminative learning algorithm)**이라는 큰 범주에 속한다. 이번 장에서는 전혀 다른 접근법인 **생성 학습 알고리즘(generative learning algorithm)**을 다룬다.
판별 학습 알고리즘의 접근법
이진 분류 문제에서 두 클래스의 데이터가 있을 때, 로지스틱 회귀 같은 판별 학습 알고리즘은 양성 예제와 음성 예제를 분리하는 결정 경계를 직접 찾는다. 매개변수를 무작위로 초기화한 뒤, 경사 하강법을 반복하면서 결정 경계가 점차 이동하여 두 클래스를 잘 나누는 직선을 찾아간다.
생성 학습 알고리즘의 접근법
생성 학습 알고리즘은 두 클래스를 동시에 보고 분리선을 찾는 대신, 각 클래스를 개별적으로 모델링한다.
암 진단 예시를 들어 보자.
- 먼저 모든 악성 종양 데이터만 보고, "악성 종양은 대략 이런 모양이다"라는 모델을 만든다.
- 그다음 모든 양성 종양 데이터만 보고, "양성 종양은 대략 이런 모양이다"라는 모델을 만든다.
- 새 환자가 왔을 때, 그 환자의 특성을 악성 모델과 양성 모델에 각각 비교하여 어느 쪽에 더 가까운지 판단한다.
수학적 정의
구분 |
학습 대상 |
설명 |
|---|---|---|
판별 학습 |
\(P(y \mid x)\) 또는 \(x \to y\) 매핑 |
입력에서 레이블로의 직접 매핑을 학습 |
생성 학습 |
\(P(x \mid y)\)와 \(P(y)\) |
각 클래스에서 특성의 분포를 학습 |
판별 학습 알고리즘은 \(P(y \mid x)\)를 직접 학습하거나, 입력 \(x\)에서 레이블 \(y\)로의 매핑 함수를 직접 학습한다. 반면 생성 학습 알고리즘은 \(P(x \mid y)\), 즉 "주어진 클래스에서 특성이 어떤 분포를 따르는가"를 학습한다.
- \(P(x \mid y)\): 종양이 악성일 때 특성 \(x\)의 분포는 어떠한가? 종양이 양성일 때는?
- \(P(y)\): **클래스 사전 확률(class prior)**이라 부르며, 환자를 진찰하기 전에 종양이 악성일 확률이 얼마인지를 나타낸다.
5.2 베이즈 규칙과 생성 모델의 예측
\(P(x \mid y)\)와 \(P(y)\)를 학습했다면, **베이즈 규칙(Bayes' rule)**을 사용하여 새로운 입력 \(x\)에 대해 예측할 수 있다.
\[P(y = 1 \mid x) = \frac{P(x \mid y = 1) \, P(y = 1)}{P(x)}\]
여기서 분모 \(P(x)\)는 다음과 같이 계산한다.
\[P(x) = P(x \mid y = 1) \, P(y = 1) + P(x \mid y = 0) \, P(y = 0)\]
\(P(x \mid y)\)와 \(P(y)\)를 학습했다면, 이 공식의 모든 항을 계산할 수 있으므로 \(P(y = 1 \mid x)\)를 구할 수 있다. 이것이 생성 학습 알고리즘의 기본 프레임워크다.
이 장에서는 두 가지 생성 학습 알고리즘을 다룬다.
- 연속형 특성을 위한 가우시안 판별 분석(GDA) — 종양 분류 같은 문제에 적합
- 이산형 특성을 위한 나이브 베이즈(Naive Bayes) — 이메일 스팸 분류 같은 문제에 적합
5.3 다변량 가우시안 분포
가우시안 판별 분석을 이해하려면 먼저 **다변량 가우시안 분포(multivariate Gaussian distribution)**를 알아야 한다.
정의
1차원 가우시안 분포는 익숙한 종 모양의 곡선이다. 다변량 가우시안은 이를 벡터 값 확률 변수로 일반화한 것이다.
확률 변수 \(z \in \mathbb{R}^n\)이 평균 벡터 \(\mu \in \mathbb{R}^n\)과 공분산 행렬 \(\Sigma \in \mathbb{R}^{n \times n}\)을 갖는 가우시안 분포를 따르면 다음과 같이 표기한다.
\[z \sim \mathcal{N}(\mu, \Sigma)\]
기댓값과 공분산은 다음과 같다.
\[E[z] = \mu, \quad \text{Cov}(z) = E[(z - \mu)(z - \mu)^T] = \Sigma\]
확률 밀도 함수
\[p(z) = \frac{1}{(2\pi)^{n/2} |\Sigma|^{1/2}} \exp\!\left( -\frac{1}{2} (z - \mu)^T \Sigma^{-1} (z - \mu) \right)\]
이 공식을 처음부터 외울 필요는 없다. 알고리즘을 구현하다 보면 반복적으로 사용하게 되고, 자연스럽게 익숙해진다.
매개변수의 효과
다변량 가우시안 분포의 모양은 \(\mu\)와 \(\Sigma\) 두 매개변수에 의해 결정된다. 2차원 가우시안을 예로 들어 각 매개변수의 효과를 살펴보자.
공분산 행렬 \(\Sigma\)의 대각 원소를 변화시킬 때:
\(\Sigma\) |
효과 |
|---|---|
\(I\) (항등 행렬) |
표준 가우시안. 등고선이 원형 |
\(0.6I\) |
분산 감소 → 분포가 좁고 높아짐 |
\(2I\) |
분산 증가 → 분포가 넓고 낮아짐 |
확률 밀도 함수는 항상 적분값이 1이어야 하므로, 분산을 줄이면 분포가 좁아지는 대신 높아지고, 분산을 늘리면 넓어지는 대신 낮아진다.
공분산 행렬 \(\Sigma\)의 비대각 원소를 변화시킬 때:
비대각 원소 |
효과 |
|---|---|
\(0\) |
\(z_1\)과 \(z_2\)가 상관 없음. 등고선이 원형 |
양수 (예: \(0.5\), \(0.8\)) |
양의 상관관계. 등고선이 우상향으로 기울어진 타원 |
음수 (예: \(-0.5\), \(-0.8\)) |
음의 상관관계. 등고선이 우하향으로 기울어진 타원 |
참고로 공분산 행렬은 항상 대칭 행렬이다. 공분산 행렬의 고유벡터(eigenvector)는 타원의 주축 방향을 나타내는데, 이에 대해서는 주성분 분석(PCA)을 다룰 때 자세히 살펴본다.
평균 벡터 \(\mu\)를 변화시킬 때:
\(\mu\)는 가우시안 분포의 중심 위치를 결정한다. 예를 들어 \(\mu = (0, 0)\)이면 원점에, \(\mu = (0, 1.5)\)이면 해당 좌표에 분포의 중심이 위치한다.
5.4 가우시안 판별 분석 (GDA)
모델 정의
GDA에서는 특성 \(x\)가 연속 값이라고 가정한다. 생성 학습 알고리즘을 개발할 때는 \(x_0 = 1\) 규약을 사용하지 않으므로, \(x \in \mathbb{R}^n\)이다(기존의 \(\mathbb{R}^{n+1}\)이 아님).
GDA의 핵심 가정은 다음과 같다. 각 클래스에서 특성의 분포가 가우시안을 따른다.
\[P(x \mid y = 0) = \frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}} \exp\!\left(-\frac{1}{2}(x - \mu_0)^T \Sigma^{-1}(x - \mu_0)\right)\]
\[P(x \mid y = 1) = \frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}} \exp\!\left(-\frac{1}{2}(x - \mu_1)^T \Sigma^{-1}(x - \mu_1)\right)\]
\[P(y) = \phi^y (1 - \phi)^{1-y}\]
매개변수
GDA 모델의 매개변수는 네 가지다.
매개변수 |
차원 |
의미 |
|---|---|---|
\(\mu_0\) |
\(\mathbb{R}^n\) |
음성 클래스(\(y=0\))의 평균 벡터 |
\(\mu_1\) |
\(\mathbb{R}^n\) |
양성 클래스(\(y=1\))의 평균 벡터 |
\(\Sigma\) |
\(\mathbb{R}^{n \times n}\) |
두 클래스가 공유하는 공분산 행렬 |
\(\phi\) |
\([0, 1]\) |
클래스 사전 확률 \(P(y = 1)\) |
두 클래스에 **같은 공분산 행렬 \(\Sigma\)**를 사용하되, **다른 평균 \(\mu_0\), \(\mu_1\)**을 사용하는 것이 표준적인 GDA다. 같은 공분산 행렬을 사용하면 결정 경계가 선형이 된다. 별도의 \(\Sigma_0\), \(\Sigma_1\)을 사용할 수도 있지만, 그 경우 매개변수 수가 대략 두 배로 늘어나고 결정 경계가 더 이상 선형이 아니게 된다.
5.5 GDA의 매개변수 추정
결합 우도 최대화
GDA의 매개변수를 학습하기 위해 **결합 우도(joint likelihood)**를 최대화한다.
\[\mathcal{L}(\phi, \mu_0, \mu_1, \Sigma) = \prod_{i=1}^{m} P(x^{(i)}, y^{(i)})\]
판별 학습 알고리즘(로지스틱 회귀 등)에서는 조건부 우도 \(\prod P(y^{(i)} \mid x^{(i)})\)를 최대화했다. 생성 학습 알고리즘에서는 결합 우도 \(\prod P(x^{(i)}, y^{(i)})\)를 최대화한다는 점이 핵심적인 차이다.
최대 우도 추정 결과
로그 우도를 취하고, 각 매개변수에 대해 미분하여 0으로 놓고 풀면 다음과 같은 닫힌 형태의 해를 얻는다.
\[\phi = \frac{1}{m} \sum_{i=1}^{m} \mathbf{1}\{y^{(i)} = 1\}\]
\[\mu_0 = \frac{\sum_{i=1}^{m} \mathbf{1}\{y^{(i)} = 0\} \, x^{(i)}}{\sum_{i=1}^{m} \mathbf{1}\{y^{(i)} = 0\}}\]
\[\mu_1 = \frac{\sum_{i=1}^{m} \mathbf{1}\{y^{(i)} = 1\} \, x^{(i)}}{\sum_{i=1}^{m} \mathbf{1}\{y^{(i)} = 1\}}\]
\[\Sigma = \frac{1}{m} \sum_{i=1}^{m} (x^{(i)} - \mu_{y^{(i)}})(x^{(i)} - \mu_{y^{(i)}})^T\]
여기서 \(\mathbf{1}\{\cdot\}\)는 **지시 함수(indicator function)**로, 괄호 안의 조건이 참이면 1, 거짓이면 0을 반환한다.
각 공식의 직관적 의미는 다음과 같다.
- *\(\phi\)*: 전체 훈련 예제 중 양성 클래스(\(y=1\))의 비율. 동전 던지기에서 앞면이 나올 확률을 추정하는 것과 같다.
- *\(\mu_0\)*: 음성 클래스에 속하는 모든 예제의 특성 벡터 평균
- *\(\mu_1\)*: 양성 클래스에 속하는 모든 예제의 특성 벡터 평균
- *\(\Sigma\)*: 전체 예제에 대해, 각 예제의 특성 벡터에서 해당 클래스의 평균을 뺀 벡터의 외적 평균
예측
매개변수를 학습한 후 새로운 입력 \(x\)에 대해 예측할 때는 다음과 같이 한다.
\[\hat{y} = \arg\max_y \; P(y \mid x) = \arg\max_y \; \frac{P(x \mid y) \, P(y)}{P(x)} = \arg\max_y \; P(x \mid y) \, P(y)\]
분모 \(P(x)\)는 \(y\)에 의존하지 않는 상수이므로, 예측 시에는 분자만 비교하면 된다. 실제 확률값이 필요한 경우에만 분모를 계산하여 정규화한다.
arg max 표기법: \(\min_z (z-5)^2 = 0\)은 최솟값 자체이고, \(\arg\min_z (z-5)^2 = 5\)는 그 최솟값을 달성하는 \(z\)의 값이다. 마찬가지로 \(\arg\max_y\)는 해당 식을 최대화하는 \(y\)의 값을 반환한다.
5.6 GDA의 결정 경계와 로지스틱 회귀와의 관계
알고리즘 작동 비교
같은 데이터셋에 대해 두 알고리즘이 어떻게 작동하는지 비교해 보자.
로지스틱 회귀(판별 학습): 1. 매개변수를 초기화한다. 2. 경사 하강법을 반복하며 조건부 우도를 최대화한다. 3. 약 20회 반복 후 양성과 음성 예제를 분리하는 직선에 수렴한다.
GDA(생성 학습): 1. 양성과 음성 예제 각각에 가우시안 분포를 피팅한다. 2. 베이즈 규칙을 적용하여 결정 경계를 도출한다. 3. 반복 없이 한 단계에 완료된다.
두 알고리즘은 약간 다른 결정 경계를 생성한다.
시그모이드 함수와의 관계
1차원 특성의 간단한 예시를 통해 GDA가 시그모이드 함수를 내포하고 있음을 확인할 수 있다.
1차원 데이터에서 음성 예제와 양성 예제에 각각 가우시안을 피팅하면 두 개의 종 모양 곡선이 만들어진다. 이때 \(x\)축을 따라 \(P(y=1 \mid x)\)를 점별로 계산하여 그래프를 그리면 다음과 같은 패턴이 나타난다.
- \(x\)가 매우 왼쪽에 있으면: 음성 가우시안에서 생성되었을 가능성이 압도적으로 높으므로 \(P(y=1 \mid x) \approx 0\)
- \(x\)가 두 가우시안의 중간에 있으면: 어느 쪽인지 알 수 없으므로 \(P(y=1 \mid x) = 0.5\)
- \(x\)가 매우 오른쪽에 있으면: 양성 가우시안에서 생성되었을 가능성이 높으므로 \(P(y=1 \mid x) \approx 1\)
이 점들을 연결하면 정확히 시그모이드 함수의 형태가 된다.
5.7 GDA vs 로지스틱 회귀: 언제 무엇을 쓸 것인가
가정의 강도
GDA의 가정(가우시안 분포)에서 로지스틱 회귀의 가정(시그모이드 함수)을 유도할 수 있다. 그러나 역방향은 성립하지 않는다.
\[\text{GDA 가정} \implies \text{로지스틱 회귀 가정}\]
\[\text{로지스틱 회귀 가정} \not\Rightarrow \text{GDA 가정}\]
즉, GDA는 더 강한 가정을 하고, 로지스틱 회귀는 더 약한 가정을 한다.
흥미로운 사실이 하나 더 있다. \(x \mid y=1\)이 포아송 분포, \(x \mid y=0\)도 포아송 분포를 따르는 경우에도 \(P(y=1 \mid x)\)는 로지스틱 함수 형태가 된다. 이는 지수족 분포(exponential family distribution)에 속하는 분포에서 자연 매개변수만 다른 경우에 일반적으로 성립하는 성질이다.
선택 기준
상황 |
권장 알고리즘 |
이유 |
|---|---|---|
데이터가 적고, 분포 가정이 타당할 때 |
GDA |
강한 가정이 알고리즘에 더 많은 정보를 제공 |
데이터가 충분하고, 분포를 모를 때 |
로지스틱 회귀 |
약한 가정으로 잘못된 모델링에 강건함 |
대량의 모델을 빠르게 피팅해야 할 때 |
GDA |
반복 없이 평균과 공분산만 계산하면 완료 |
데이터가 가우시안이 아닌 것이 확실할 때 |
로지스틱 회귀 |
GDA의 가우시안 가정이 성능을 크게 떨어뜨림 |
알고리즘에는 두 가지 지식의 원천이 있다. 하나는 우리가 알고리즘에 알려준 가정이고, 다른 하나는 데이터에서 학습한 것이다. 빅데이터 시대에는 데이터가 풍부하므로 가정을 적게 하고 데이터에서 더 많이 배우는 로지스틱 회귀가 선호되는 경향이 있다.
머신러닝의 핵심 원리 하나를 정리하면 이렇다. 데이터가 적을수록, 알고리즘에 부여하는 가정과 사전 지식의 중요성이 커진다. 숙련된 팀과 미숙한 팀의 성능 차이는 데이터가 풍부할 때보다 데이터가 부족할 때 훨씬 크게 벌어진다. 100개의 예제로도 좋은 성능을 내는 것이 진정한 실력이다.
5.8 나이브 베이즈 (Naive Bayes)
GDA는 연속형 특성에 적합한 생성 학습 알고리즘이었다. 이제 이산형 특성에 적합한 또 다른 생성 학습 알고리즘인 나이브 베이즈를 살펴보자. 이메일 스팸 분류를 주요 예시로 사용한다.
특성 벡터의 구성
텍스트 분류에서 첫 번째 과제는 이메일을 특성 벡터로 변환하는 것이다.
나이브 베이즈에서는 다음과 같은 방식으로 특성 벡터를 구성한다.
- 사전(dictionary)을 구성한다. 실제로는 영어 사전 전체를 사용하지 않고, 훈련 세트에서 가장 자주 출현하는 상위 10,000개 단어를 사용한다.
- 이진 특성 벡터를 만든다. 각 단어가 이메일에 등장하면 1, 등장하지 않으면 0으로 표시한다.
\[x_j = \mathbf{1}\{\text{단어 } j \text{가 이메일에 등장}\}\]
따라서 \(x \in \{0, 1\}^n\)이며, 여기서 \(n\)은 사전의 크기(예: 10,000)이다.
조건부 독립 가정 (나이브 베이즈 가정)
\(x\)가 10,000차원 이진 벡터이므로, 가능한 \(x\)의 값은 \(2^{10,000}\)개다. 이를 다항 분포로 직접 모델링하려면 \(2^{10,000} - 1\)개의 매개변수가 필요하므로 실용적이지 않다.
나이브 베이즈는 이 문제를 해결하기 위해 **조건부 독립 가정(conditional independence assumption)**을 도입한다.
확률의 연쇄 법칙에 의해 다음이 항상 성립한다.
\[P(x_1, \ldots, x_n \mid y) = P(x_1 \mid y) \, P(x_2 \mid x_1, y) \, P(x_3 \mid x_1, x_2, y) \cdots P(x_n \mid x_1, \ldots, x_{n-1}, y)\]
나이브 베이즈 가정은 이를 다음과 같이 단순화한다.
\[P(x_1, \ldots, x_n \mid y) = \prod_{j=1}^{n} P(x_j \mid y)\]
즉, 클래스 \(y\)가 주어지면 각 단어의 출현 여부는 서로 독립이라고 가정한다. 스팸 이메일이라는 사실을 알고 있다면, "buy"라는 단어의 출현이 "discount"라는 단어의 출현 여부에 영향을 미치지 않는다고 가정하는 것이다.
이 가정은 수학적으로 엄밀하게 성립하지 않는다. 그러나 가우시안 가정이 완벽하지 않아도 GDA가 합리적으로 작동하듯이, 이 가정도 충분히 실용적이다.
매개변수와 최대 우도 추정
나이브 베이즈 모델의 매개변수는 다음 세 가지다.
매개변수 |
의미 |
|---|---|
\(\phi_{j \mid y=1} = P(x_j = 1 \mid y = 1)\) |
스팸 이메일에서 단어 \(j\)가 등장할 확률 |
\(\phi_{j \mid y=0} = P(x_j = 1 \mid y = 0)\) |
정상 이메일에서 단어 \(j\)가 등장할 확률 |
\(\phi_y = P(y = 1)\) |
이메일이 스팸일 사전 확률 |
GDA와 마찬가지로 결합 우도를 최대화한다.
\[\mathcal{L}(\phi_y, \phi_{j \mid y=0}, \phi_{j \mid y=1}) = \prod_{i=1}^{m} P(x^{(i)}, y^{(i)})\]
로그를 취하고 미분하여 0으로 놓으면 다음과 같은 최대 우도 추정치를 얻는다.
\[\phi_y = \frac{\sum_{i=1}^{m} \mathbf{1}\{y^{(i)} = 1\}}{m}\]
\[\phi_{j \mid y=1} = \frac{\sum_{i=1}^{m} \mathbf{1}\{x_j^{(i)} = 1 \;\wedge\; y^{(i)} = 1\}}{\sum_{i=1}^{m} \mathbf{1}\{y^{(i)} = 1\}}\]
\[\phi_{j \mid y=0} = \frac{\sum_{i=1}^{m} \mathbf{1}\{x_j^{(i)} = 1 \;\wedge\; y^{(i)} = 0\}}{\sum_{i=1}^{m} \mathbf{1}\{y^{(i)} = 0\}}\]
각 공식의 직관적 의미는 다음과 같다.
- *\(\phi_y\)*: 전체 이메일 중 스팸의 비율
- *\(\phi_{j \mid y=1}\)*: 모든 스팸 이메일 중에서 단어 \(j\)가 등장하는 비율
- *\(\phi_{j \mid y=0}\)*: 모든 정상 이메일 중에서 단어 \(j\)가 등장하는 비율
나이브 베이즈의 장점과 한계
장점: - 매개변수 추정이 단순히 "세는 것(counting)"이므로 매우 효율적이다. - 예측도 확률값의 곱셈만으로 이루어진다. - 반복적인 최적화 과정이 필요 없다. - 새로운 데이터가 들어올 때 모델을 효율적으로 갱신할 수 있다.
한계: - 특정 매개변수 추정치가 0이 되는 문제가 발생할 수 있다. 예를 들어, 훈련 데이터에서 특정 단어가 스팸 이메일에 한 번도 등장하지 않으면 \(\phi_{j \mid y=1} = 0\)이 되어 확률 계산에 문제가 생긴다. 이 문제는 **라플라스 스무딩(Laplace smoothing)**으로 해결하며, 이에 대해서는 이후 장에서 다룬다. - 로지스틱 회귀에 비해 대부분의 경우 분류 정확도가 떨어진다.
핵심 정리
개념 |
핵심 |
|---|---|
판별 학습 |
\(P(y \mid x)\)를 직접 학습. 로지스틱 회귀가 대표적 |
생성 학습 |
\(P(x \mid y)\)와 \(P(y)\)를 학습한 뒤 베이즈 규칙으로 예측 |
GDA |
\(P(x \mid y)\)를 가우시안으로 모델링. 같은 \(\Sigma\), 다른 \(\mu_0\), \(\mu_1\) |
GDA 매개변수 추정 |
닫힌 형태 해: 클래스별 평균, 전체 공분산, 클래스 비율 |
GDA vs 로지스틱 회귀 |
GDA는 강한 가정 → 소량 데이터에서 유리. 로지스틱 회귀는 약한 가정 → 강건함 |
GDA → 시그모이드 |
GDA 가정 하에서 \(P(y=1 \mid x)\)는 시그모이드 함수. 역은 성립하지 않음 |
나이브 베이즈 |
이산 특성용 생성 모델. 조건부 독립 가정으로 매개변수 수를 극적으로 감소 |
나이브 베이즈 추정 |
단순 빈도 계산. 반복 최적화 불필요 |
라플라스 스무딩 |
나이브 베이즈에서 확률이 0이 되는 문제의 해결책 (다음 장에서 다룸) |
이전 장: 4장 - 퍼셉트론과 일반화 선형 모델 다음 장: 6장 - 서포트 벡터 머신