4장 - 퍼셉트론과 일반화 선형 모델

🏷️ "cs229" "machine-learning" "book"

4장. 퍼셉트론과 일반화 선형 모델

이번 강의에서는 퍼셉트론 알고리즘을 간략히 살펴본 뒤, 지수족(exponential family)과 일반화 선형 모델(GLM)을 깊이 다룬다. 선형 회귀와 로지스틱 회귀가 사실은 하나의 통합된 프레임워크에서 자연스럽게 도출된다는 사실을 확인하고, 마지막으로 다중 클래스 분류를 위한 소프트맥스 회귀를 소개한다.


4-cs229-glm.png

4.1 퍼셉트론 알고리즘

퍼셉트론 알고리즘은 오늘날 실무에서 널리 사용되지는 않는다. 주로 역사적 의의 때문에 다루며, 구조가 단순하여 분석하기 쉽다는 장점이 있다.

시그모이드에서 계단 함수로

로지스틱 회귀에서는 시그모이드 함수 \(g(z) = \frac{1}{1+e^{-z}}\)를 사용했다. 이 함수는 \(z=0\)에서 \(g(z) = 0.5\)이고, \(z \to -\infty\)이면 \(g(z) \to 0\), \(z \to +\infty\)이면 \(g(z) \to 1\)이다.

퍼셉트론은 이 시그모이드의 경판(hard) 버전을 사용한다.

\[g(z) = \begin{cases} 1 & \text{if } z \geq 0 \\ 0 & \text{if } z < 0 \end{cases}\]

이에 따라 가설 함수는 다음과 같다.

\[h_\theta(x) = g(\theta^T x)\]

\(\theta^T x\)가 0 이상이면 1을, 0 미만이면 0을 출력한다. 로지스틱 회귀에서는 \(h_\theta(x) = \frac{1}{1+e^{-\theta^T x}}\)로 연속적인 확률값을 출력했던 것과 대조된다.

업데이트 규칙

퍼셉트론과 로지스틱 회귀는 표면적으로 같은 형태의 업데이트 규칙을 공유한다.

\[\theta_j := \theta_j + \alpha \left( y^{(i)} - h_\theta(x^{(i)}) \right) x_j^{(i)}\]

다만 \(h_\theta(x)\)의 정의가 다르다. 퍼셉트론에서는 \(h_\theta(x)\)가 0 또는 1만 출력하므로, \(y^{(i)} - h_\theta(x^{(i)})\) 역시 세 가지 값만 취한다.

상황

\(y^{(i)} - h_\theta(x^{(i)})\)

결과

올바르게 분류됨

\(0\)

매개변수 변경 없음

\(y^{(i)}=1\)인데 0으로 예측

\(+1\)

\(\theta\)\(\alpha x\)를 더함

\(y^{(i)}=0\)인데 1로 예측

\(-1\)

\(\theta\)에서 \(\alpha x\)를 뺌

기하학적 직관

입력 공간에 두 클래스(네모와 동그라미)가 있고, 현재 학습된 \(\theta\)가 결정 경계 \(\theta^T x = 0\)을 형성한다고 하자. 결정 경계는 \(\theta\) 벡터에 수직인 초평면이다.

새로운 양성 예제 \(x\)가 결정 경계의 잘못된 쪽에 놓이면, 알고리즘은 \(\theta\)\(\alpha x\)를 더한다. 벡터 덧셈의 효과로 \(\theta\)\(x\) 방향으로 회전하고, 결정 경계도 함께 회전하여 \(x\)를 양성 영역에 포함시킨다.

핵심 원리는 다음과 같다. - \(y=1\)인 예제에 대해서는 \(\theta\)\(x\)유사하게 만들고 싶다. 두 벡터가 유사하면 내적이 양수이기 때문이다. - \(y=0\)인 예제에 대해서는 \(\theta\)\(x\)다르게 만들고 싶다. 두 벡터가 다르면 내적이 음수이기 때문이다.

알고리즘은 온라인 방식으로 한 예제씩 처리하며, 이미 올바르게 분류된 예제는 건너뛰고, 잘못 분류된 예제에 대해서만 매개변수를 조정한다.

퍼셉트론의 한계

퍼셉트론이 실무에서 사용되지 않는 이유는 크게 두 가지다.

  1. 확률적 해석이 없다. 결정 경계의 기하학적 의미는 있지만, 예측에 대한 확률적 해석을 제공하지 않는다.
  2. 선형 분리 불가능한 데이터를 처리하지 못한다. 1960년대 마빈 민스키(Marvin Minsky)가 지적한 바와 같이, 퍼셉트론은 선형으로 분리할 수 없는 데이터(예: XOR 문제)를 절대 올바르게 분류할 수 없다.

로지스틱 회귀는 퍼셉트론의 "부드러운(soft)" 버전이라고 볼 수 있으며, 확률적 해석과 함께 더 안정적인 학습을 제공한다.

수렴 기준에 대해서는, 학습률을 매 단계마다 점진적으로 감소시켜 \(\theta\)의 변화가 충분히 작아지면 학습을 중단하는 방식이 일반적이다.


4.2 지수족 (Exponential Family)

지수족은 수학적으로 편리한 성질을 가진 확률 분포의 한 부류다. 일반화 선형 모델(GLM)과 밀접하게 연관되어 있다.

정의

확률 밀도 함수(PDF)가 다음 형태로 쓸 수 있는 분포를 지수족이라 한다.

\[p(y ; \eta) = b(y) \cdot \exp\left( \eta^T T(y) - a(\eta) \right)\]

각 구성 요소의 의미는 다음과 같다.

기호

이름

설명

\(y\)

데이터

분포가 모델링하는 대상

\(\eta\)

자연 매개변수(natural parameter)

분포의 매개변수

\(T(y)\)

충분 통계량(sufficient statistic)

\(y\)만의 함수. 이 강좌에서는 대부분 \(T(y) = y\)

\(b(y)\)

기저 측도(base measure)

\(y\)만의 함수. \(\eta\)를 포함할 수 없음

\(a(\eta)\)

로그 분할 함수(log-partition function)

\(\eta\)만의 함수. \(y\)를 포함할 수 없음

동일한 분포를 다음과 같이 쓸 수도 있다.

\[p(y ; \eta) = \frac{b(y) \cdot \exp\left( \eta^T T(y) \right)}{\exp\left( a(\eta) \right)}\]

여기서 \(\exp(a(\eta))\)는 전체 분포가 1로 적분되도록 만드는 정규화 상수(분할 함수)다. \(a(\eta)\)는 이 정규화 상수의 로그이므로 "로그 분할 함수"라 부른다.

\(b\), \(a\), \(T\)를 적절히 선택하면 다양한 확률 분포를 지수족의 형태로 표현할 수 있다. 어떤 분포가 지수족에 속함을 보이려면, 그 분포의 PDF를 위 형태로 변환하여 각 구성 요소를 패턴 매칭하면 된다.

예제 1: 베르누이 분포

베르누이 분포는 이진 데이터를 모델링하며, 매개변수 \(\phi\)는 사건이 발생할 확률이다.

\[p(y ; \phi) = \phi^y (1-\phi)^{1-y}\]

이 표현은 프로그래밍의 if-else와 같다. \(y=1\)이면 \(\phi\), \(y=0\)이면 \(1-\phi\)가 된다.

지수족 형태로 변환하기 위해 \(\log\)\(\exp\)로 감싼다.

\[p(y ; \phi) = \exp\left( \log\frac{\phi}{1-\phi} \cdot y + \log(1-\phi) \right)\]

패턴 매칭 결과:

구성 요소

\(b(y)\)

\(1\)

\(T(y)\)

\(y\)

\(\eta\)

\(\log\frac{\phi}{1-\phi}\)

\(a(\eta)\)

\(-\log(1-\phi) = \log(1+e^\eta)\)

\(\eta\)\(\phi\)의 관계를 역으로 풀면 다음을 얻는다.

\[\phi = \frac{1}{1+e^{-\eta}}\]

이것은 바로 시그모이드 함수다. 이것이 우연이 아님을 곧 확인하게 된다.

예제 2: 가우시안 분포 (분산 고정)

분산을 \(\sigma^2 = 1\)로 고정한 가우시안 분포를 생각하자.

\[p(y ; \mu) = \frac{1}{\sqrt{2\pi}} \exp\left( -\frac{(y-\mu)^2}{2} \right)\]

대수적으로 정리하면 다음과 같이 쓸 수 있다.

\[p(y ; \mu) = \frac{1}{\sqrt{2\pi}} \exp\left( -\frac{y^2}{2} \right) \cdot \exp\left( \mu y - \frac{\mu^2}{2} \right)\]

패턴 매칭 결과:

구성 요소

\(b(y)\)

\(\frac{1}{\sqrt{2\pi}} \exp\left(-\frac{y^2}{2}\right)\)

\(T(y)\)

\(y\)

\(\eta\)

\(\mu\)

\(a(\eta)\)

\(\frac{\mu^2}{2} = \frac{\eta^2}{2}\)

분산이 미지수인 경우에도 지수족으로 표현할 수 있다. 이때 \(\eta\)는 스칼라가 아닌 벡터가 되며, 각 정준 매개변수와 자연 매개변수 사이의 매핑이 존재한다.

데이터 유형에 따른 분포 선택

데이터 유형

분포

예시

실수값

가우시안

주택 가격

이진

베르누이

합격/불합격

카운트(비음수 정수)

포아송

웹사이트 방문자 수

양의 실수값

감마, 지수

사건까지의 시간

확률 분포에 대한 분포

베타, 디리클레

베이지안 통계

지수족의 유용한 성질

  1. 최대 우도 추정(MLE)의 볼록성: 자연 매개변수 \(\eta\)에 대해 MLE를 수행하면 최적화 문제가 오목(concave)하다. 음의 로그 우도(NLL)는 볼록(convex)하다.

  2. 기댓값과 분산의 간편한 계산: 일반적으로 기댓값과 분산을 구하려면 적분이 필요하지만, 지수족에서는 로그 분할 함수의 미분만으로 구할 수 있다.

\[E[y] = \frac{\partial}{\partial \eta} a(\eta), \qquad \text{Var}(y) = \frac{\partial^2}{\partial \eta^2} a(\eta)\]

다변량 가우시안의 경우, 2차 미분은 헤시안 행렬이 된다.


4.3 일반화 선형 모델 (GLM)

일반화 선형 모델은 지수족을 확장하여 입력 특성 \(x\)를 포함시키는 자연스러운 프레임워크다. 지수족 자체는 \(y\)만 다루지만, GLM은 적절한 지수족 분포를 선형 모델에 결합하여 강력한 모델을 구축한다.

세 가지 가정

GLM을 구성하기 위한 가정(또는 설계 선택)은 다음과 같다.

  1. *\(y \mid x ; \theta\)는 지수족에 속한다.* 문제의 성격에 따라 적절한 분포를 선택한다(회귀라면 가우시안, 이진 분류라면 베르누이 등).

  2. *\(\eta = \theta^T x\)이다.* 자연 매개변수를 입력 특성의 선형 함수로 설정한다. 여기서 \(\theta \in \mathbb{R}^n\), \(x \in \mathbb{R}^n\)이다.

  3. 테스트 시 출력은 분포의 기댓값이다. 새로운 \(x\)가 주어지면, 해당 지수족 분포의 평균을 예측값으로 사용한다.

\[h_\theta(x) = E[y \mid x ; \theta]\]

GLM의 작동 방식

GLM의 전체 구조를 다음과 같이 시각화할 수 있다.

입력 x → 선형 모델 (θᵀx = η) → 지수족 분포 (η를 매개변수로) → E[y|η] = 예측값

핵심은 모델 부분(선형 모델)과 분포 부분(지수족)이 분리되어 있다는 것이다. 선형 모델의 출력이 지수족 분포의 자연 매개변수가 되고, 그 분포의 기댓값이 최종 예측이 된다.

학습 과정

학습 시에는 \(\theta\)에 대해 최대 우도 추정을 수행한다.

\[\max_\theta \sum_{i=1}^{m} \log p(y^{(i)} \mid x^{(i)} ; \theta)\]

여기서 자연 매개변수 \(\eta\)\(\theta^T x\)로 재매개변수화한 뒤, \(\theta\)에 대해 경사 상승법(또는 뉴턴 방법)을 적용한다.

중요한 점은, 학습되는 것은 모델 매개변수 \(\theta\)뿐이라는 것이다. 분포의 매개변수(\(\mu\), \(\sigma^2\), \(\eta\) 등)는 학습 대상이 아니라 \(\theta^T x\)의 출력으로 결정된다.

통일된 업데이트 규칙

GLM의 놀라운 특성 중 하나는, 어떤 분포를 선택하든 학습 업데이트 규칙이 동일한 형태라는 것이다.

\[\theta_j := \theta_j + \alpha \left( y^{(i)} - h_\theta(x^{(i)}) \right) x_j^{(i)}\]

분류든 회귀든 포아송 회귀든, 적절한 \(h_\theta(x)\)만 대입하면 바로 학습을 시작할 수 있다. \(\theta\)를 임의의 값으로 초기화하고, 선택한 분포에 맞는 \(h_\theta(x)\)를 대입하여 반복하면 된다.

배치 경사 하강법의 경우 전체 예제에 대해 합산하면 되고, 특성 차원이 수천 이하라면 뉴턴 방법을 사용하는 것이 GLM에서는 가장 일반적이다.

세 가지 매개변수화

GLM에는 세 가지 서로 다른 매개변수화가 존재하며, 이들 사이의 관계를 이해하는 것이 중요하다.

매개변수화

기호

예시

모델 매개변수

\(\theta\)

학습 대상. 선형 모델의 가중치

자연 매개변수

\(\eta\)

\(\eta = \theta^T x\). 지수족의 매개변수

정준 매개변수

분포별 상이

베르누이: \(\phi\), 가우시안: \((\mu, \sigma^2)\), 포아송: \(\lambda\)

이들 사이의 매핑: - \(\theta \to \eta\): 선형 관계 (\(\eta = \theta^T x\)) - \(\eta \to\) 정준 매개변수: 정준 응답 함수 \(g(\eta)\) (자연 매개변수에서 분포의 평균으로) - 정준 매개변수 \(\to \eta\): 정준 링크 함수 \(g^{-1}\) (역방향)

정준 응답 함수 \(g(\eta)\)는 로그 분할 함수의 1차 미분과 같다.

\[g(\eta) = E[y \mid \eta] = \frac{\partial}{\partial \eta} a(\eta)\]


4.4 GLM으로부터 도출되는 익숙한 모델들

선형 회귀 = 가우시안 GLM

가우시안 분포를 선택하면 자연 매개변수 \(\eta = \mu\)이므로,

\[h_\theta(x) = E[y \mid x ; \theta] = \mu = \eta = \theta^T x\]

이것은 바로 선형 회귀의 가설 함수다. 각 \(x\)에 대해 평균이 \(\theta^T x\)이고 분산이 1인 가우시안으로부터 \(y\)가 생성된다고 가정하는 것이다. 주어진 데이터로부터 이 \(y\)값들이 가장 높은 확률로 생성되었을 직선(즉, \(\theta\))을 찾는 것이 최대 우도 추정이다.

로지스틱 회귀 = 베르누이 GLM

베르누이 분포를 선택하면,

\[h_\theta(x) = E[y \mid x ; \theta] = \phi = \frac{1}{1+e^{-\eta}} = \frac{1}{1+e^{-\theta^T x}}\]

로지스틱 회귀를 처음 소개할 때 시그모이드 함수를 "0과 1 사이로 압축하는 함수"로서 직관적으로 꺼냈지만, GLM 프레임워크에서 보면 이 함수가 자연스럽게 도출됨을 알 수 있다. 베르누이 분포를 출력 분포로 선택하면 시그모이드 함수가 저절로 나타난다.

\(x\)에 대해 확률 \(\phi = \sigma(\theta^T x)\)인 베르누이 분포로부터 \(y\)가 생성된다고 가정하며, 시그모이드 곡선을 통해 \(\phi = 0.5\)가 되는 지점이 결정 경계가 된다.

분포 선택의 원칙

GLM이 분류에 쓰이는지 회귀에 쓰이는지는 전적으로 분포 선택에 달려 있다. GLM은 데이터를 모델링하는 일반적인 방법이며, 데이터가 이진이면 베르누이, 실수이면 가우시안, 카운트이면 포아송 등 데이터의 성격이 분포 선택을 결정한다. 분포를 선택하고 나면 GLM의 기계 장치가 나머지를 자동으로 처리해준다.


4.5 소프트맥스 회귀 (다중 클래스 분류)

소프트맥스 회귀는 로지스틱 회귀를 다중 클래스로 확장한 것이다. 강의 노트에서는 GLM의 일원으로 설명하지만, 여기서는 교차 엔트로피 최소화라는 관점에서 접근한다. 결과적으로 같은 수식에 도달한다.

문제 설정

\(k\)개의 클래스가 있다고 하자(예: 동그라미, 네모, 세모). 입력 \(x \in \mathbb{R}^n\)이 주어졌을 때, 이 입력이 어떤 클래스에 속하는지 예측하는 것이 목표다.

로짓에서 확률로

새로운 입력 \(x\)가 주어지면, 각 클래스에 대해 **로짓(logit)**을 계산한다.

\[z_c = \theta_c^T x \quad \text{(각 클래스 } c \text{에 대해)}\]

이 로짓은 \(-\infty\)에서 \(+\infty\)까지의 실수값이다. 확률 분포를 얻기 위해 두 단계를 거친다.

  1. 지수화: 모든 로짓을 양수로 만든다. \(e^{z_c}\)
  2. 정규화: 전체 합으로 나누어 합이 1이 되도록 한다.

\[\hat{p}(y = c \mid x) = \frac{e^{\theta_c^T x}}{\sum_{j=1}^{k} e^{\theta_j^T x}}\]

이것이 소프트맥스 함수다. 출력은 \(k\)개 클래스에 대한 확률 분포이며, 모든 확률의 합은 1이다.

기하학적 해석

각 클래스의 매개변수 \(\theta_c\)는 입력 공간에서 결정 경계를 형성한다.

교차 엔트로피 손실

실제 레이블 분포 \(p(y)\)(원핫 벡터)와 예측 분포 \(\hat{p}(y \mid x)\) 사이의 교차 엔트로피를 최소화한다.

\[H(p, \hat{p}) = -\sum_{c=1}^{k} p(y=c) \log \hat{p}(y=c \mid x)\]

원핫 벡터에서는 정답 클래스 \(c^*\)에 대해서만 \(p(y=c^*)=1\)이므로,

\[H(p, \hat{p}) = -\log \hat{p}(y=c^* \mid x) = -\log \frac{e^{\theta_{c^*}^T x}}{\sum_{j=1}^{k} e^{\theta_j^T x}}\]

이것을 손실 함수로 사용하여 매개변수 \(\theta\)에 대해 경사 하강법을 수행한다. 핵심 아이디어는 예측 분포를 실제 레이블 분포에 최대한 가깝게 만드는 것이다.


핵심 정리

개념

핵심

퍼셉트론

시그모이드의 경판 버전. 0 또는 1만 출력. 역사적 의의가 크지만 실무에서는 미사용

지수족

\(p(y;\eta) = b(y)\exp(\eta^T T(y) - a(\eta))\) 형태의 분포 부류

로그 분할 함수

\(a(\eta)\)의 1차 미분 = 기댓값, 2차 미분 = 분산

GLM 가정

(1) \(y \mid x;\theta\)가 지수족 (2) \(\eta = \theta^T x\) (3) 출력 = \(E[y]\)

통일된 업데이트 규칙

\(\theta_j := \theta_j + \alpha(y^{(i)} - h_\theta(x^{(i)}))x_j^{(i)}\) — 모든 GLM에 동일

선형 회귀

가우시안 GLM. \(h_\theta(x) = \theta^T x\)

로지스틱 회귀

베르누이 GLM. 시그모이드가 자연스럽게 도출됨

소프트맥스 회귀

다중 클래스 확장. 클래스별 매개변수, 교차 엔트로피 손실

세 가지 매개변수화

모델(\(\theta\)), 자연(\(\eta\)), 정준(분포별 상이)


이전 장: 3장 - 국소 가중 회귀와 로지스틱 회귀 다음 장: 5장 - GDA와 나이브 베이즈