티스토리 뷰

728x90

로지스틱 회귀(Logistic Regression)

  • 분류에서 사용되는 회귀 알고리즘이다.
  • 샘플이 특정 클래스에 속할 확률을 추정하는 데 사용된다.
    • 확률이 50%가 넘으면 해당 클래스에 속한다고 예측한다.

확률 추정

  • 입력 특성의 가중치 합에 편향을 더한 후, 그 결과에 로지스틱 함수를 적용한 결과 값을 출력한다.

$$\hat p = h(x) = \sigma(\theta^Tx)$$

  • 로지스틱은 0과 1 사이의 값을 출력하는 시그모이드 함수이며, 아래와 같다.
    $$\sigma(t) = \frac {1}{1+exp(-t)}$$

$${\hat p}$$를 추정하면 이에 대한 에측 값 $$\hat y$$를 다음과 같이 구할 수 있다.
$$ \hat y= \begin{cases} 0,\;if\;\hat p<0.5\ 1,\;if\;\hat p\geq0.5 \end{cases} $$

t를 보통 로짓(logit)이라고 부른다. $$logit(p) = \frac {p}{1 - p}$$로 정의되는 로짓 함수는 로지스틱 함수의 역함수라는 사실에서 이름을 따왔다.
로짓을 로그 오즈(log-odds)라고도 부른다. 로그 오즈는 양성 클래스 추정 확률과 음성 클래스 추정 확률 사이의 로그 비율이기 때문이다.

학습과 비용 함수

  • 확률을 추정하는 방법을 알았다면 그 다음은 그래서 이 모델을 어떻게 학습시킬 수 있는가이다. 학습이란 양성 샘플에 대해서는 높은 확률을 추정하고, 음성 샘플에 대해서는 낮은 확률을 추정하는 모델의 파라미터 벡터 $\theta$를 찾는 것이다. 이를 위해 $\theta$를 인자로 하는 비용 함수를 정의해야 한다. 하나의 샘플에 대한 비용 함수는 아래와 같이 정의한다.
    $$c(\theta) = \begin {cases} -log(\hat p), \;\;\;\;\;\; \;if\; y = 1 \ -log(1 - \hat p), \;if\; y = 0 \end {cases} $$
  • $$\theta^Tx$$가 0에 가까워지면 $$-log(\hat p)$$가 매우 커지고, 1에 가까워지면 $$-log(1 - \hat p)$$가 매우 커지므로 타당하다고 할 수 있다.
  • 전체 training 데이터 셋에 대한 비용 함수는 모든 training 샘플의 비용을 평균한 것이다. 이를 로그 손실(log loss)라 부르며 아래와 같이 하나의 식으로 쓸 수 있다.

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

  • 이 비용 함수의 최솟값을 계산하는 알려진 해는 없지만 볼록 함수이므로 경사 하강법 혹은 다른 최적화 알고리즘을 통해 전역 최솟값을 구할 수 있다.(학습률이 크지 않고 충분히 오랫동안 학습한다면)
  • 이 비용 함수의 j번째 모델 파라미터 $$\theta_j$$에 대해 편미분을 계산하면 아래와 같다.
    $$\frac {\partial}{\partial\theta_j}J(\theta) = \frac{1}{m}\sum(\sigma(\theta^Tx^{(i)} - y^{(i)})x^{(i)}_j)$$
댓글