회귀 분류

1 minute read

로지스틱 회귀

로지스틱 회귀 알고리즘을 분류로 사용한다.

확률 추정

작동 방식 : 입력 특성의 가중치 합을 계산하여 결괏값의 로지스틱을 출력한다.

로지스틱 회귀 모델의 확률 추정
$\hat{p} = h_\theta(\mathbf{x}) = \sigma(\theta^T\mathbf{x})$

로지스틱은 시그모이드 함수이다.

로지스틱 회귀 모델이 샘플 $\mathbf{x}$가 양성 클래스에 속할 확률 $\hat{p} = h_\theta(\mathbf{x})$를 추정하면 이에 대한 예측을 쉽게 구할 수 있다.

$\hat{y} = \begin{cases} 0, & \hat{p} \lt 0.5\mbox{ then}
1, & \hat{p} \ge 0.5\mbox{ then} \end{cases}$

훈련과 비용 함수

훈련의 목적은 양성 샘플에 대해서는 높은 확률을 추정하고 음성 샘플에 대해서는 낮은 확률을 추정하는 모델의 파라미터 벡터 $\theta$를 찾는 것이다.

  • 양성 샘플 = 1 => 0.5 이상의 높은 확률
  • 음성 샘플 = 0 => 0.5 이하의 낮은 확률

$c(\theta) = \begin{cases} -log(\hat{p}) & y=1일 때
-log(1-\hat{p}) & y=0일 때 \end{cases} $

양성 샘플(1)을 0에 가까운 확률로 추정하면 (잘못 추정했으니까) 비용 함수가 크게 증가할 것이다. 반대로 음성 샘플(0)을 1에 가까운 확률로 추정해도 비용이 증가할 것이다.

전체 훈련세트에 대한 비용 함수는 모든 훈련 샘플의 비용을 평균한 것이다.

로지스틱 회귀의 비용 함수(로그 손실)

$J(\theta) = -\frac{1}{m}\sum_{i=1}^m \left[y^{(i)}log(\hat{p}^{(i)})+(1-y^{(i)})log(1-\hat{p}^{(i)}) \right]$

이 비용 함수의 최솟값을 계산하는 해는 없다. 볼록 함수이므로 경사 하강법이 전역 최솟값을 찾는 것을 보장한다.

소프트맥스 회귀

직접 다중 클래스를 지원하도록 일반화한다.

샘플 $\mathbf{x}$가 주어지면 소프트맥스 회귀 모델이 각 클래스 k에 대한 점수 $s_k(\mathbf{x})$를 계산하고, 그 점수에 소프트맥스 함수를 적용하여 각 클래스의 확률을 추정한다.

클래스 k에 대한 소프트맥스 함수
$s_k(\mathbf{x}) = (\theta^{(k)})^T\mathbf{x}$

각 클래스는 자신만의 파라미터 벡터 $\theta^{(k)}$가 있다.

소프트맥스 회귀 분류기는 한 번에 하나의 클래스만 예측한다. 그래서 종류가 다른 붓꽃같이 상호 배타적인 클래스에서만 사용해야한다.

훈련 방법 : 크로스 엔트로피 비용 함수를 최소화 하는 것은 타깃 클래스에 대해 낮은 확률을 예측하는 모델을 억제한다.