ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Statistics] Odds, Logit 알아보기
    AI-ML 2023. 11. 24. 09:43
    728x90
    반응형

     

    - 목차

     

    키워드.

    • - Odds
    • - Logit Function

     

    들어가며.

    머신러닝 모델 중에서도 Classification 관련 문제를 해결하는 과정에서 Probability, Odds, Logit 등의 용어를 목격하는 경우가 많습니다.

    이해하는 것이 중요하지만, 긴급하지 않았던지라 매번 그냥 넘어갔던 기억이 많은데요.

    이번 글에서 이 개념에 대해 상세히 알아보도록 하겠습니다.

     

    Probability.

    먼저 Probability 에 대해서 알아봅니다. 이는 모두가 알듯이, 확률을 의미합니다.

    확률이란 어떤 사건이 발생하는 경우의 수를 비율적인 수치로 제공됩니다.

    확률은 아래와 같이 표현할 수가 있는데요.

    $$ P(x) = \frac{ x 가 발생한 경우의 수 }{ x 가 발생한 경우의 수 + x 가 발생하지 않는 경우의 수 } $$

    $$ P(x) = \frac{ x 가 발생한 경우의 수 }{ 모든 경우의 수 } $$

     

    모든 경우의 수 중에서 x 라는 사건이 발생하는 경우의 수의 비율이 곧 Probability 가 됩니다.

    대표적인 예시로 동전 던지기가 존재하죠.

    저희는 동전 던지기의 정확한 확률의 분포를 알고 있습니다.

    아래와 같이 0.5 확률을 가지는 2개의 경우의 수가 존재하죠.

    이는 대표적인 Discrete Random Variable (이산 확률 변수) 의 확률 분포이며, 모든 경우의 수와 확률값을 알 수 있습니다.

     

     

    반면에 Continuous Random Variable (연속 확률 변수) 의 경우에는 그 확률 분포를 정확히 알기가 쉽지 않습니다.

    예를 들어, "대한민국 국민들의 키"를 확률 변수로 삼고 이에 대한 확률 분포를 만든다고 가정합니다.

    전 국민을 대상으로 한 전수조사를 실시한다면 정확한 분포를 알 수 있겠지만, 일반적으로 표본을 조사한 후에 그 확률 분포를 예측합니다.

    (전수조사가 힘들기 때문에..)

    확률 분포가 아래와 같은 정규분포를 띈다고 할 때에 이에 따른 확률을 획득할 수 있습니다.

    출처 : https://www.scribbr.com/statistics/standard-normal-distribution/

     

    즉, 확률을 제대로 알기 위해서는 확률 분포를 정확히 알아야합니다.

    "동전던지기", "주사위 굴리기" 와 같은 이산 확률 변수는 그 경우의 수가 제한적이기에 정확한 확률 분포를 얻을 수 있지만,

    현실의 여러 상황들은 연속 확률 변수를 취급하는 케이스가 빈번합니다.

    즉, 여러가지 통계적인 기법을 동원하여 오차가 적은 확률 분포를 알아내는 것이 Probability 의 첫 걸음이 됩니다.

     

     

    Odds.

    Odds 는 Probability 와도 관련이 있지만, 구체적으로는 집합 그리고 여집합과 관련이 깊습니다.

    Odds 의 수학적인 공식은 아래와 같습니다.

    $$ Odds(x) = \frac{P(x)}{1 - P(x)} $$

    $$ Odds(x) = \frac{P(x)}{ ~ P(x)} $$

    $$ Odds(x) = \frac{ x 가 발생한 경우의 수 }{ x 가 발생하지 않은 경우의 수 } $$

     

    즉, 어떤 사건 X 가 있을 때에 사건 X 가 발생하는 경우와 발생하지 않은 경우에 대한 비율을 의미합니다.

    예를 들어, 동전 던지기 게임에서 동전의 앞면이 나올 Odds 는 0.5 / 0.5 이며 결과적으로 Odds 는 1 이 됩니다.

    주사위 던지기 게임은 어떨까요 ? 주사위를 던져 1 이 나올 Odds 는 1 / 5 로써 Odds 의 값은 0.2 가 됩니다.

    이렇게 Odds 는 특정 사건의 집합와 여집합의 비율을 의미합니다.

     

    그럼 굳이 Odds 를 사용하는 이유는 무엇일까요 ?

    Probability 와 Odds 는 서로 상호변환이 가능한 개념인데, Probability 대신에 왜 Odds 를 사용할까요 ?

    그 이유는 크게 두가지가 존재합니다.

    첫번째로 Odds 를 사용함으로써 수의 범위가 0 ~ 1 이 아닌 $ - \infty ~ \infty$ 의 범위를 가지게 됩니다.

    즉, 표현하고자하는 값의 범위가 0 과 1 사이의 영역에서 실수의 영역으로 확장됩니다.

    P 가 0 인 경우의 Odds 는 0 이 되고,

    P 가 0.5 인 경우에는 Odds 가 1 이 됩니다.

    그리고 P 가 1에 수렴할 수록 Odds 는 무한대의 값을 가지게 됩니다.

     

    두번째로 Odds 는 Log Function 과 잘 어울립니다.

    Log Function 은 태생적으로 1 보다 작은 값은 음수로 표현되고, 1 보다 큰 값은 양수로 표현됩니다.

    그리고 Log(1) 은 0 이 됩니다.

    Odds 는 분수 형태로 표현되기 때문에 값의 스케일과 단위가 균등하지 않습니다.

    예를 들어, P 가 0.2 인 Odds 는 1/4 인데 반해, P 가 0.8 인 Odds 는 4가 됩니다.

    확률은 4배의 차이가 나지만, Odds 는 16배의 차이가 나죠.

    이 Odds 에 Log Function 을 적용하게 되면, log(1/4) 와 log(4) 는 -log(4) 와 log(4) 의 관계가 되어,

    대칭적인 관계를 확인할 수 있습니다.

     

    여러 머신러닝 문제에서 사용하는 Function 들은 미분 가능 여부가 중요합니다.

    확률 문제에 접근할 때에 이 확률을 Log Function 의 표현으로 변환함으로써 머신러닝 문제 해결에 도움을 주기도 합니다.

     

     

    Logits.

    Logits 은 Log Function 과 Odds 의 합친 표현입니다.

    위에서 Log 함수로 Odds 를 표현하는 방식과 장점에 대해서 잠깐 설명드렸는데요.

    Logit 은 $ f(x) = ln\frac{x}{1 - x} $ 와 같은 형식으로 표현됩니다.

    x 은 Probability 를 의미하구요.

    $ \frac{x}{1-x} $ 는 Odds 의 공식입니다.

    이 Odds 에 Log Function 을 취함으로써 Logits 으로 변환이 되는데요.

    Logits 은 아래의 그래프와 같이 표현됩니다.

    출처 : https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Logit.svg/1200px-Logit.svg.png

     

     

     

     

     

     

     

    반응형

    'AI-ML' 카테고리의 다른 글

    [pytorch] nn.BatchNorm 알아보기  (0) 2023.12.24
    [pytorch] optim.SGD 알아보기  (0) 2023.12.13
    [pytorch] nn.Sigmoid 알아보기  (0) 2023.10.30
    Collaborative Filtering 이해하기  (0) 2023.09.25
    [ CNN ] Feature Map 이해하기  (0) 2023.09.19
Designed by Tistory.