티스토리 뷰

728x90

소프트맥스 회귀(Softmax regression)

  • 로지스틱 회귀 모델 사용 시 1 혹은 0, 즉 이진 클래스가 아니라 다중 클래스를 예측하고 싶다면 여러 개의 로지스틱 회귀를 연결하면 되지만 소프트맥스 회귀(혹은 다항 로지스틱 회귀)를 사용하여 다중 클래스를 예측할 수 있다.

확률 추정

  • 입력 특성의 가중치 합을 구한 후(각 클래스에 대한 소프트맥스 점수), 그 결과에 소프트맥스 함수(정규화된 지수 함수)를 적용하여 각 클래스의 확률을 추정한다.
  • 각 클래스 k에 대한 소프트맥스 점수
    $$s_k(x) = (\theta^{k(k)})Tx$$
  • 소프트맥스 함수
    $$\hat p_k = \sigma(s(x))_k = \frac {exp(s_k(x))} {(\sum exp(s_j(x)))}$$
  • 예측은 다음과 같이 추정 확률이 가장 높은 클래스를 선택한다.
    $$\hat y = argmax  \sigma(s(x))_k = argmax  s_k(x)$$

학습과 비용 함수

  • 모델이 타겟 클래스에 대해서는 높은 확률을, 다른 클래스에 대해서는 낮은 확률을 추정하도록 만드는 것이 목적이다.
  • 크로스 엔트로피 비용 함수를 최소화하는 것은 타겟 클래스에 대해 낮은 확률을 예측하는 모델을 억제하므로 이 목적에 부합한다.
  • 크로스 엔트로피 함수
    $$J(\theta) = -\frac{1}{m}\sum\sum y_k^{(i)}log(\hat p^{(i)}_k)$$
  • 이 식에서 y^{(i)}_k는 i번째 샘플이 클래스 k에 속할 타겟 확률이고, 일반적으로 샘플이 클래스에 속하는지 아닌지에 따라 1 혹은 0이 된다.
  • 2개의 클래스만 존재한다면 이 비용 함수는 로지스틱 회귀의 비용 함수와 같다.
댓글