3장 - 국소 가중 회귀와 로지스틱 회귀

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

3장. 국소 가중 회귀와 로지스틱 회귀

이번 강의에서는 선형 회귀를 변형하여 비선형 함수를 피팅하는 국소 가중 회귀를 다룬 뒤, 선형 회귀의 확률적 해석을 통해 제곱 오차의 이론적 근거를 제시한다. 이어서 첫 번째 분류 알고리즘인 로지스틱 회귀와 이를 빠르게 최적화하는 뉴턴 방법을 소개한다.


3-cs229-logistic-regression.png

3.1 특성 선택의 문제

2장에서 선형 회귀 알고리즘을 배웠다. 가설 \(h_\theta(x) = \theta_0 + \theta_1 x_1\)은 데이터에 직선을 피팅한다. 그런데 데이터가 직선으로 잘 설명되지 않는 경우가 많다.

주택 가격 데이터가 약간 휘어진 곡선 형태라면 어떻게 해야 할까? 몇 가지 선택지가 있다.

핵심은 새로운 특성 \(x_2\)를 정의하면 2장에서 배운 선형 회귀의 기계를 그대로 사용하여 비선형 함수를 피팅할 수 있다는 것이다. 이 강좌 후반부에서는 최적의 특성 집합을 자동으로 선택하는 특성 선택(feature selection) 알고리즘을 배운다.

그러나 오늘은 특성 선택과는 다른 접근법을 소개한다. 데이터가 직선으로 잘 맞지 않을 때, 특성을 수동으로 설계하지 않고도 비선형 곡선을 피팅하는 국소 가중 회귀라는 알고리즘이다.


3.2 매개변수적 학습과 비매개변수적 학습

국소 가중 회귀를 이해하려면 먼저 두 가지 학습 알고리즘의 범주를 구분해야 한다.

구분

매개변수적 학습 (Parametric)

비매개변수적 학습 (Non-parametric)

정의

고정된 수의 매개변수 \(\theta_i\)를 데이터에 피팅

유지해야 할 데이터/매개변수의 양이 훈련 세트 크기에 따라 증가

예측 시

매개변수 \(\theta\)만 저장하면 되고 훈련 데이터는 삭제 가능

모든 훈련 데이터를 메모리에 유지해야 함

예시

선형 회귀

국소 가중 회귀

매개변수적 알고리즘에서는 훈련 세트가 아무리 커도 매개변수 \(\theta_i\)만 피팅하면 된다. 훈련이 끝나면 훈련 세트를 컴퓨터 메모리에서 지우고 \(\theta_i\)만으로 예측할 수 있다.

비매개변수적 알고리즘에서는 저장해야 할 정보의 양이 훈련 세트 크기에 비례하여 선형적으로 증가한다. 따라서 매우 큰 데이터셋에서는 적합하지 않을 수 있지만, 특성을 수동으로 조정하지 않아도 복잡한 곡선을 잘 피팅할 수 있다는 장점이 있다.


3.3 국소 가중 회귀 (Locally Weighted Regression)

기본 아이디어

일반 선형 회귀에서 특정 입력 \(x\)에 대한 예측을 하려면, 전체 데이터에 대해 비용 함수를 최소화하여 \(\theta\)를 피팅한 뒤 \(\theta^T x\)를 반환한다.

국소 가중 회귀는 다르게 동작한다. 예측하려는 지점 \(x\) 근처의 훈련 예제에 집중하여 국소적으로 직선을 피팅한다.

  1. 예측하려는 지점 \(x\) 주변의 훈련 예제에 높은 가중치를 부여한다.
  2. 멀리 떨어진 예제에는 낮은 가중치(거의 0)를 부여한다.
  3. 이 가중치를 적용한 비용 함수를 최소화하여 국소 직선을 피팅한다.
  4. 피팅된 직선으로 해당 지점의 예측값을 반환한다.

다른 지점에서 예측하려면 이 과정을 처음부터 다시 수행한다. 즉, 예측할 때마다 새로운 직선을 피팅하는 것이다.

수학적 공식화

국소 가중 회귀에서는 다음의 변형된 비용 함수를 최소화한다.

\[\sum_{i=1}^{m} w^{(i)} \left( y^{(i)} - \theta^T x^{(i)} \right)^2\]

여기서 \(w^{(i)}\)가중치 함수로, 일반적으로 다음과 같이 정의한다.

\[w^{(i)} = \exp\left( -\frac{(x^{(i)} - x)^2}{2\tau^2} \right)\]

이 가중치 함수의 핵심 성질은 다음과 같다.

이 함수의 형태는 가우시안 종 모양 곡선과 유사하지만, 확률 밀도 함수가 아니다. 적분하여 1이 되지 않으며, 단지 가까운 예제에는 높은 가중치를, 먼 예제에는 낮은 가중치를 부여하는 역할만 한다.

대역폭 매개변수 \(\tau\)

\(\tau\)대역폭(bandwidth) 매개변수 또는 하이퍼파라미터라고 부른다. \(\tau\)의 값에 따라 가중치 함수의 종 모양 곡선이 넓어지거나 좁아진다.

\(\tau\)

효과

\(\tau\)

넓은 이웃을 참조 --- 데이터를 과도하게 평활화(over-smoothing)할 수 있음 (과소적합)

작은 \(\tau\)

좁은 이웃만 참조 --- 매우 들쭉날쭉한 피팅이 될 수 있음 (과적합)

적절한 \(\tau\) 값을 선택하는 것이 국소 가중 회귀의 핵심적인 조정 사항이다.

적용 시 고려사항


3.4 선형 회귀의 확률적 해석

2장에서 비용 함수로 제곱 오차를 사용했다. 그런데 왜 하필 제곱 오차인가? 절댓값 오차나 4제곱 오차가 아니라? 이 절에서는 특정 확률적 가정 하에서 제곱 오차가 자연스럽게 도출됨을 보인다.

가정

주택 가격 예측 문제에서 다음을 가정한다.

\[y^{(i)} = \theta^T x^{(i)} + \epsilon^{(i)}\]

여기서 \(\epsilon^{(i)}\)는 미모델화 효과(예: 판매자의 기분, 학군, 날씨, 교통 접근성)와 무작위 잡음을 포함하는 오차항이다.

핵심 가정은 다음 두 가지이다.

  1. 가우시안 오차: \(\epsilon^{(i)} \sim \mathcal{N}(0, \sigma^2)\)

\[p(\epsilon^{(i)}) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left( -\frac{(\epsilon^{(i)})^2}{2\sigma^2} \right)\]

  1. IID (독립 동일 분포): 각 오차항 \(\epsilon^{(i)}\)는 서로 독립이며 동일한 분포를 따른다.

왜 가우시안인가? 중심극한정리에 의해, 서로 크게 상관되지 않은 많은 작은 잡음원(판매자의 기분, 학군, 날씨, 교통 등)이 합산되면 그 분포는 가우시안에 수렴한다. 가우시안은 기본적인 잡음 분포로서 널리 채택되었다. IID 가정은 현실적인가? 엄밀히 말하면 아니다. 같은 거리에 있는 주택들의 가격 오차는 서로 상관될 가능성이 높다. 그러나 이 가정은 "충분히 좋은" 근사이며, 이로부터 계산적으로 효율적인 알고리즘을 도출할 수 있다.

조건부 분포

위의 가정에서 다음이 따라온다.

\[p(y^{(i)} \mid x^{(i)};\, \theta) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left( -\frac{(y^{(i)} - \theta^T x^{(i)})^2}{2\sigma^2} \right)\]

즉, \(x\)\(\theta\)가 주어졌을 때 \(y\)의 분포는 평균이 \(\theta^T x^{(i)}\)이고 분산이 \(\sigma^2\)인 가우시안이다.

\[y^{(i)} \mid x^{(i)};\, \theta \sim \mathcal{N}(\theta^T x^{(i)},\, \sigma^2)\]

표기법 참고: 세미콜론(;)은 "~로 매개변수화된"이라고 읽는다. \(\theta\)는 확률 변수가 아니라 분포를 매개변수화하는 값이므로, 조건부 확률에서 쉼표 대신 세미콜론을 사용한다. 이는 빈도주의(frequentist) 통계학의 관례이며, 실용적 관점에서는 크게 중요하지 않다.

우도 함수와 최대 우도 추정

**우도 함수(likelihood function)**는 매개변수 \(\theta\)의 함수로서, 관측된 데이터의 확률을 나타낸다.

\[L(\theta) = p(\vec{y} \mid X;\, \theta) = \prod_{i=1}^{m} p(y^{(i)} \mid x^{(i)};\, \theta)\]

IID 가정 덕분에 결합 확률이 개별 확률의 곱으로 분해된다.

우도 vs 확률: 이 둘은 수학적으로 같은 값이지만, 관점에 따라 용어를 달리 사용한다. 데이터를 고정하고 \(\theta\)를 변수로 보면 **우도(likelihood)**라 하고, \(\theta\)를 고정하고 데이터를 변수로 보면 **확률(probability)**이라 한다.

**최대 우도 추정(Maximum Likelihood Estimation, MLE)**은 우도를 최대화하는 \(\theta\)를 찾는 것이다.

계산의 편의를 위해 우도 대신 **로그 우도(log-likelihood)**를 최대화한다. 로그는 단조 증가 함수이므로 최대화하는 \(\theta\)는 동일하다.

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

\[= m \log \frac{1}{\sqrt{2\pi}\sigma} - \frac{1}{2\sigma^2} \sum_{i=1}^{m} \left( y^{(i)} - \theta^T x^{(i)} \right)^2\]

핵심 결론

로그 우도를 최대화하려면 다음을 최소화해야 한다.

\[\frac{1}{2} \sum_{i=1}^{m} \left( y^{(i)} - \theta^T x^{(i)} \right)^2 = J(\theta)\]

이것은 바로 2장에서 정의한 최소제곱 비용 함수 \(J(\theta)\)이다.

따라서 오차항이 가우시안이고 IID라는 가정 하에서 최대 우도 추정을 수행하면, 최소제곱법과 정확히 동일한 알고리즘이 도출된다. 이것이 제곱 오차를 사용하는 이론적 근거다.


3.5 분류 문제로의 전환

왜 선형 회귀를 분류에 쓰면 안 되는가

확률적 해석에서 핵심 단계는 두 가지였다.

  1. \(p(y \mid x;\, \theta)\)에 대한 가정을 세운다.
  2. 최대 우도 추정을 수행한다.

이 프레임워크를 \(y \in \{0, 1\}\)이진 분류(binary classification) 문제에 적용하려 한다. 그 전에, 선형 회귀를 분류에 직접 사용하는 것이 왜 좋지 않은지 살펴보자.

직관적으로 생각하면, 데이터에 직선을 피팅하고 출력이 0.5보다 크면 1, 작으면 0으로 예측하면 될 것 같다. 그러나 이 접근법에는 심각한 문제가 있다.

원래 데이터에서는 패턴이 명확하다. 특정 지점 왼쪽은 0, 오른쪽은 1이다. 그런데 오른쪽 끝에 하나의 양성 예제를 추가하면 어떻게 되는가? 패턴은 여전히 동일하지만(해당 예제도 당연히 1이어야 한다), 직선 피팅의 기울기가 완만해져 결정 경계가 크게 이동한다.

선형 회귀를 분류에 사용할 때의 또 다른 문제는 출력이 0 미만이거나 1 초과의 값을 가질 수 있다는 점이다. 확률로 해석하기에 부자연스럽다.


3.6 로지스틱 회귀 (Logistic Regression)

로지스틱 회귀는 아마도 가장 널리 사용되는 분류 알고리즘이다. 선형 회귀와 로지스틱 회귀 두 가지가 가장 자주 사용되는 학습 알고리즘이라 할 수 있다.

시그모이드 함수

분류 문제에서 가설의 출력이 \([0, 1]\) 범위에 있기를 원한다. 이를 위해 시그모이드 함수(또는 로지스틱 함수)를 도입한다.

\[g(z) = \frac{1}{1 + e^{-z}}\]

이 함수의 형태는 다음과 같다.

S자 곡선으로, 출력이 항상 0과 1 사이에 있다.

가설 함수

로지스틱 회귀의 가설 함수는 다음과 같이 정의한다.

\[h_\theta(x) = g(\theta^T x) = \frac{1}{1 + e^{-\theta^T x}}\]

선형 회귀에서는 \(h_\theta(x) = \theta^T x\)였지만, 로지스틱 회귀에서는 \(\theta^T x\)를 시그모이드 함수에 통과시켜 출력을 \([0, 1]\) 범위로 제한한다.

왜 하필 시그모이드 함수인가? 0과 1 사이의 값을 출력하는 함수는 무수히 많다. 시그모이드 함수를 특별히 선택하는 이유는 **일반화 선형 모델(GLM)**이라는 더 넓은 알고리즘 클래스에서 자연스럽게 도출되기 때문이다. 또한 시그모이드 함수를 사용하면 우도 함수가 **오목(concave)**해져서 지역 최적값 문제가 없다는 보장을 얻는다.

확률적 가정

로지스틱 회귀에서는 다음을 가정한다.

\[P(y = 1 \mid x;\, \theta) = h_\theta(x)\]

\[P(y = 0 \mid x;\, \theta) = 1 - h_\theta(x)\]

즉, 가설의 출력 \(h_\theta(x)\)\(y = 1\)일 확률로 해석한다. \(y\)는 0 또는 1만 가능하므로 두 확률의 합은 1이다.

확률 분포의 통합 표현

\(y \in \{0, 1\}\)이므로, 위 두 식을 하나의 식으로 압축할 수 있다.

\[p(y \mid x;\, \theta) = h_\theta(x)^y \cdot (1 - h_\theta(x))^{1-y}\]

이 표현이 성립하는 이유는 간단하다.

\(y\)의 값에 따라 한쪽 항의 지수가 0이 되어 1로 사라지고, 나머지 항만 남는 깔끔한 표기법이다.

우도 함수와 로그 우도

우도 함수를 구성한다.

\[L(\theta) = \prod_{i=1}^{m} p(y^{(i)} \mid x^{(i)};\, \theta) = \prod_{i=1}^{m} h_\theta(x^{(i)})^{y^{(i)}} \cdot (1 - h_\theta(x^{(i)}))^{1 - y^{(i)}}\]

로그 우도는 다음과 같다.

\[\ell(\theta) = \sum_{i=1}^{m} \left[ y^{(i)} \log h_\theta(x^{(i)}) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right]\]

최대 우도 추정에 의해 \(\ell(\theta)\)를 최대화하는 \(\theta\)를 찾는다.

경사 상승법 (Gradient Ascent)

로그 우도를 최대화하기 위해 **경사 상승법(gradient ascent)**을 사용한다. 2장의 경사 하강법과 두 가지 차이가 있다.

구분

선형 회귀 (경사 하강법)

로지스틱 회귀 (경사 상승법)

목적

비용 함수 \(J(\theta)\) 최소화

로그 우도 \(\ell(\theta)\) 최대화

부호

\(\theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta)\)

\(\theta_j := \theta_j + \alpha \frac{\partial}{\partial \theta_j} \ell(\theta)\)

미분을 풀면 업데이트 규칙은 다음과 같다.

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

선형 회귀와의 비교

이 업데이트 규칙의 형태는 선형 회귀의 업데이트 규칙과 표면적으로 동일하다.

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

부호를 정리하면 같은 형태가 된다. 그렇다면 두 알고리즘은 같은 것인가? 아니다. 결정적 차이는 \(h_\theta(x)\)의 정의에 있다.

알고리즘

\(h_\theta(x)\) 정의

선형 회귀

\(h_\theta(x) = \theta^T x\)

로지스틱 회귀

\(h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}}\)

업데이트 규칙의 표면적 형태가 같은 것은 우연이 아니다. 이는 두 알고리즘이 모두 **일반화 선형 모델(Generalized Linear Model)**이라는 더 넓은 알고리즘 클래스에 속하기 때문이며, 이 클래스의 모든 알고리즘은 동일한 형태의 업데이트 규칙을 가진다.

로지스틱 회귀의 볼록성

로지스틱 회귀의 로그 우도 함수 \(\ell(\theta)\)오목(concave) 함수다. 따라서 지역 최댓값이 존재하지 않으며, 유일한 최댓값이 곧 전역 최댓값이다. 이는 시그모이드 함수를 선택한 또 하나의 중요한 이유이기도 하다.

정규 방정식의 부재

선형 회귀에서는 정규 방정식 \(\theta = (X^TX)^{-1}X^T\vec{y}\)로 한 단계에 최적해를 구할 수 있었다. 로지스틱 회귀에서는 이러한 닫힌 형태의 해가 존재하지 않는다. 따라서 반드시 경사 상승법이나 뉴턴 방법 같은 반복적 최적화 알고리즘을 사용해야 한다.


3.7 뉴턴 방법 (Newton's Method)

경사 상승법(또는 경사 하강법)은 안정적이지만 매 단계마다 작은 걸음만 옮기므로 수렴에 많은 반복이 필요할 수 있다. 뉴턴 방법은 훨씬 큰 폭으로 이동하여 적은 반복 횟수로 수렴하는 알고리즘이다.

1차원에서의 뉴턴 방법

먼저 \(\theta\)가 스칼라인 단순한 경우를 살펴보자. 함수 \(f(\theta) = 0\)을 만족하는 \(\theta\)를 찾는 문제를 풀고자 한다.

뉴턴 방법의 한 반복은 다음과 같이 진행된다.

  1. 현재 점 \(\theta_0\)에서 함수 \(f\)접선을 긋는다.
  2. 이 접선이 수평축과 만나는 점을 구한다.
  3. 그 점을 새로운 \(\theta_1\)로 설정한다.

접선의 기울기는 \(f'(\theta_0)\)이고, 높이는 \(f(\theta_0)\)이므로, 수평 이동 거리 \(\Delta\)는 다음과 같다.

\[f'(\theta_0) = \frac{f(\theta_0)}{\Delta} \quad \Longrightarrow \quad \Delta = \frac{f(\theta_0)}{f'(\theta_0)}\]

따라서 업데이트 규칙은 다음과 같다.

\[\theta_{t+1} = \theta_t - \frac{f(\theta_t)}{f'(\theta_t)}\]

최적화에의 적용

로그 우도 \(\ell(\theta)\)를 최대화하려면 \(\ell'(\theta) = 0\)인 점을 찾아야 한다. \(f(\theta) = \ell'(\theta)\)로 설정하면 다음을 얻는다.

\[\theta_{t+1} = \theta_t - \frac{\ell'(\theta_t)}{\ell''(\theta_t)}\]

즉, 1차 도함수를 2차 도함수로 나눈 값을 빼는 것이다.

이차 수렴 (Quadratic Convergence)

뉴턴 방법의 강력한 성질은 이차 수렴이다. 직관적으로 말하면, 매 반복마다 수렴한 유효 자릿수의 수가 두 배로 늘어난다.

반복

오차

0

0.01

1

0.0001

2

0.00000001

최솟값 근처에서 뉴턴 방법은 극도로 빠르게 수렴한다.

다차원 일반화

\(\theta\)가 벡터일 때, 뉴턴 방법은 다음과 같이 일반화된다.

\[\theta_{t+1} = \theta_t - H^{-1} \nabla_\theta \ell(\theta_t)\]

여기서: - \(\nabla_\theta \ell(\theta)\)\((n+1)\)차원 그래디언트 벡터 (1차 편도함수의 벡터) - \(H\)\((n+1) \times (n+1)\) 헤시안 행렬 (2차 편도함수의 행렬)

\[H_{ij} = \frac{\partial^2 \ell(\theta)}{\partial \theta_i \, \partial \theta_j}\]

장단점과 실용적 지침

항목

경사 상승법/하강법

뉴턴 방법

반복 횟수

많음 (100~1,000+)

적음 (5~15)

반복당 비용

낮음: \(O(mn)\)

높음: 헤시안 계산 및 역행렬 \(O(n^3)\)

적합한 경우

매개변수 수 \(n\)이 큰 경우

매개변수 수 \(n\)이 작은 경우

실용적 지침: - 매개변수 10~50개: 뉴턴 방법이 거의 항상 더 빠르다. 10회 이내에 수렴할 가능성이 높다. - 매개변수 10,000개 이상: 헤시안 행렬(\(10{,}000 \times 10{,}000\))의 역행렬 계산이 비실용적이므로 경사 하강법을 사용한다.


핵심 정리

개념

핵심

매개변수적 vs 비매개변수적

매개변수적 알고리즘은 고정된 \(\theta\)를 학습, 비매개변수적 알고리즘은 모든 훈련 데이터를 유지

국소 가중 회귀

예측 지점 근처 데이터에 높은 가중치를 부여하여 국소 직선을 피팅. 대역폭 \(\tau\)로 이웃 크기 조절

확률적 해석

가우시안 IID 오차 가정 + MLE = 최소제곱법. 제곱 오차의 이론적 근거

로지스틱 회귀

\(h_\theta(x) = \frac{1}{1+e^{-\theta^Tx}}\), 이진 분류를 위한 가장 널리 쓰이는 알고리즘

경사 상승법

\(\theta_j := \theta_j + \alpha \sum(y^{(i)} - h_\theta(x^{(i)}))x_j^{(i)}\), 로그 우도 최대화

뉴턴 방법

\(\theta_{t+1} = \theta_t - H^{-1}\nabla\ell\), 적은 반복으로 수렴하나 반복당 비용이 큼

이차 수렴

뉴턴 방법은 매 반복마다 유효 자릿수가 두 배로 증가


이전 장: 2장 - 선형 회귀와 경사 하강법 다음 장: 4장 - 퍼셉트론과 일반화 선형 모델