기초 통계 2 [ 최대 우도법, 오즈비, 로짓 함수, 로지스틱 함수, 크로스 엔트로피]

    분류에 관련된 통계를 시작한다,   항상 분류에 대한 통계를 들어 갈 때는 강좌를 하는 사람이나 받는 사람 모두  부담이 된다.    최근에 딥러닝이,  그나마 성숙하고 성장하게 된 계기는 분류에 대한 부분이 최근에 발달이 잘 되어서 이다.   조금 어렵지만,   강의 자료인 만큼 쉽게 풀어서 쓸 것이다. 


 1. 최대 우도법   

  최대 우도법 (Maximum Likelihood Estimation, MLE)는 모수적인 데이터 밀도 추정 방법으로서  파라미터  $ θ = (θ_1,  \cdot\cdot\cdot,  θ_m) $으로 구성된 어떤 확률 밀도 함수 P(x|θ)에서 관측된 표본 데이터 집합을  $  x = (x_1,x_2, \cdot\cdot\cdot, x_n) $  이라 할 때 이 표본들에서 파라미터 $ θ = (θ_1,  \cdot\cdot\cdot,  θ_m) $를 추정하는 방법이다. 

   사전적인 정의는 매우 어렵다.   
    아래와 같은 예제를 봐도 쉽지는 않다.     

   예제 ) 브라질이 아르헨티나를 이긴 횟수 
    

   샘플공간 $ x^n  = (x_i \cdot \cdot \cdot \cdot \cdot, x_n) $  주어졌을때 
     
   
    T (승리)  = 7번,  F(패배) = 3번
    $x_i = 1$ 승리, $x_i = 0$ 패배,

    $x_i = 1$은 베르누이 독립 변수이며 parameter θ를 모를때  θ는 확률 0부터 1까지의 값을 가짐 

 $ f(x_i:θ) =  θ^{xi} (1- θ)^{1-xi}  $


위 공식대로 Python에 적용하면  좌측 그림과 같이 Expected Value(기대 값) 이 나온다.
 

  보이는 것에 대한 승률은  브라질 70% 이다.   공식   $ Argmax θ^{xi} (1- θ)^{xi} $를 적용해서 Maximum Likelihood (최대우도법)을 구할 수 있다. 

   
위의 사전을 보고 브라질 승률(70%) 에 대한 경우의 수를 구하면,  조합의 확률을 적용 하여 아래와 같이 식이 나온다. 

     $$  c = {10 \choose 7}  = {  10! \over  7!3! }  = 120가지 $$

위 공식을 계산 하여 전재 하면 아래 식과 같다. 
$$ f(x_i:θ) = Argmaxθ C × θ^7 (1- θ)^3  $$

  위의 수를 계산 하기 어려우니, 우리는 별도의 수학적 테크닉을 사용한다. 
 $$ θ^* = Argmax_θ C × θ^7 (1 - θ)^3$$

 MLE를 구하고자 하면 log를 취한다. 
$$ θ^* =  log(C) × 7log(θ) + 3log(1 - θ) $$
$$ f'(θ) =  log(C) × 7log(θ) + 3log(1 - θ) $$
  θ 에 대하여,  미분을 하면, log(C) 가 없어지고   $ f'(θ) =  { 7 \over θ } - {3 \over 1- θ } =0 $ 가 남는데  보이것을 최대하기 위해 값을 0으로 만들고 아래 식을 풀면 θ 가 산출 된다. 
$$ 7 - 7θ = 3θ,  7 = 10θ,  θ = {7 \over 10} $$
 

 2. odds ratio (오스비) 

   Odds Ratio (OR)는 성공확률과  실패확률의 비율이다.   공식은 아래와 같다. 
   
   $$  OR(odds ration)   = { P \over  1-P }  (P=  성공확률) $$    
     
    아래는 웨스트 게이트 라스베가스 슈퍼북을 통해  우승을 차지 할 수 있는 가능 성을 살펴 보았다. 
 



우승의 가능성을 표현 할 때,  독일은 9-2,  브라질은 5-1,  프랑스는 11-2 ...   한국은 500-1 이라고 한다.   그러니까?  대한민국은 500번 개최하면 1번 우승 할 수 있다는 것이다.   어찌 되었든 우승 확률은 독일이 가장 높았다.   

   
  예를 들어서 각 나라 별로  Odd ratio 하면 어떻게 될까?
    독일 :   $  Odds =   {   2/11  \over  1 - (2/11)  } =  0.222  $
    브라질:    $ Odds =  {   1/6  \over  1 - (1/6)  } =    0.2 $
    프랑스 :  $ Odds =  {   2/13  \over  1 - (2/13)  } =    0.1818 $
    대한민국 : $ Odds = { 1/501 \over 1- (1/501) } =   0.002  $
  
 즉 쉽게 이야기 하면  우승할 확률과 우승하지 못할 확률을 나누는 것이다. 

 결론 적으로 이야기 하면 2018년 Fifa Word Cup 우승국은 프랑스 였다. 
 
    경기상 이길 확률은 아래와  같다.    
    1:1  이면  50%
    2:1 이면 66.7%
    4:1 이면  80% 이다. 

    
브라질이 아르헨티나를 이길 확률  P = 0.7
   OR(odds ration)$ = {0.7 \over 1- 0.7} = 2.33$

브라질이 중국을 이길 확률 p =99
   OR(odd ration) $ = {0.99 \over 1-0.99}  = 99$





 3. logit function(로짓함수)

   로짓 함수는 딥러닝에서 쓰이는 분야가 있는데,   지식증류화 기법이다.  지식증류화 기법은 두 네트워크  Student  와 teacher 가 작동 하는데,  이것은 모델이 학습 곡선이 불안정 할때 작동 된다.  즉 온도가 로짓함수의  -6 < 6  사이의 범위를 조정해서 학습곡선을 안정적으로 만든다.  

  로짓 함수가 아주 중요한 이유가 결국 A 확률과 B 확률이 있었을때,  서로 나누어서 확률을 계산 한다.   즉 두 네트워크를 통합을 할 때,  매우 중요한 역할을 한다. 

  
 로짓 함수 오즈비의 log를 곱하면 

 (브라질이 아르헨티나 이길 확률 70%)
  
  logit(p) $= log ({  p  \over  1-p } )= log(2.33) = 0.847$

로짓함수의 세로측을 z로 가로 축을 p로 놓으면
   $ log({ p \over 1-p }) =z  $







4. logistic function(로지스틱 함수)    

로지스틱은  딥러닝에서 fully connected Layer의 하나의 셀에 활성 함수(activation function)에서 주로 사용하게 된다.   즉 앞에서 이야기 하였던 승산(Odds)과 관련성이 있다고 보면 된다.  모든 딥러닝에서 Activation이 0.5 이상이면 활성화 된다. 

   



 로지스틱 함수 유도 과정에 앞서서 자연로그 함수 규칙을 정의 한다. 
   $ logx = y  는  x = e^y $    log 밑 x 를 가져오려면,   오일러 상수 $e^y$으로 변환이 된다.    

 로지스틱 함수의 유도 과정
   $ log ( {  p \over  1-p  }) = z $

   $ {  p  \over  1-p  }= e^z,   p = e^z (1-p) $

   $ e^z - e^zp = p ,  e^2 = p(1+e^z) $

   $ p = {  e^z  \over 1+e^z  } = { 1 \over 1 + e^-z } $



5. 크로스 엔트로피(cross entropy)

    Entropy란 불확실성(uncertainty)에 대한 척도 이다 결국 예측 모형을 하고자 하는 것은 불확실성을 제어하고자 하는 경우이다.    공식은 아래와 같다.


 $$ H_p(q) = - \sum_{C=1}^C q(y_c)log(p(y_c) $$

  • C = 범주의 개수
  • q = 예측 모형의 실제 분포
  • p = 예측 분포
크로스 엔트로피는 분류 문제에 있어서 Loss 함수를 구하는 핵심적인 내용인데,   위와  같이 강좌를 하면  어느 누구도 흥미롭게 듣지 않는다.   이것 모르면,  그냥 딥러닝을 하지 않는게 낮을 정도로 매우 중요한 내용인데도 말이다. 

그래서 지금까지 본 축구 경기 중에서 가장 재미 있게 본 게임이 있었다. (- 유일하게 처음부터 끝까지 본 축구 게임임)  북한이 브라질 간담이 서늘 하게 한 게임 이다.   이 때 화제가 된 선수는 정대세 였는데,  아직 까지 정대세하고 그 유명한 브라질 선수 카카의 사진이 있다. 

 

    북한과 브라질 16강 전 게임 하기 전에 아래와 같이 내부에서 내기를 하였었다.   몰론 이 경기는 놀랄 만한 경기이기  때문에,  어느 누구도 돈을  가져가지 못했다. 

   

NO

이름

북한

브라질

비고

1

김학곤위원

0

7

- 북한 0 : 브라질(4~7)

예측 95%

2

최효성위원

0

5

3

이명식책임

0

4

4

임덕빈책임

0

5

5

옥정현책임

1

3

6

김용규책임

0

6

7

이현균위원

0

5

8

박정만책임

0

4

결과

1

2

​가끔 가다 튀는 사람도 있지만, 북한과 브라질의 경기 차이가 엄청 난다는 것은 미리 예측되어 있었다. 물론 혼자 다 차지 하려고, 다른 점수를 올려 놓았다.

하지만, 어느 누구도 예측 하지 못한 결과가 나왔다.


    브라질이 첫골을 넣었을때도,  북한은 정신력을 잃지 않았다.  끝까지 최선을 다한 경기라 축구마니아가 아닌 사람도 재미 있게 보았다. 

    사전에 대부분의 사람은 0:(4~7)로 예측 하였다.   1:2는 예측을 못하였는데  아래와 같이 가정을 하겠다. 

    가정 
   - 북한  0  : 브라질 (4~7)   예측 95%  더 이상일 수도 있음
   - 북한  1  : 브라질 2  예측 5%   예측이 0.01% 일수도 있음


공식은 아래와 같고  

 $$ H_p(q) = - \sum_{C=1}^C q(y_c)log(p(y_c) $$

 골인을 넣은 지윤남도  감격을 한게 아니라 놀랐다. 

                 

  Entropy (브라질이 4~7점 차이로 이겼을 경우: 이 경우는 사전 확률로 계산함)
  0.05 * log(0.05) + 0.95 * log(0.95) = 0.086

 Entropy (브라질이 1:2로  이기는 것이 맞는 경우 )
  1* log(0.05) + 1 * log(0.95) = 1.3010  

  ` 15배 놀람 `   즉 재미있는 경기가 되었다.    어짜피  북한이 브라질을 이길 승산은 없다  그런데,  베팅 게임에서도 1:2가 될것 이라고 배팅 하여 돈을 가져가 가능성은 없다 하지만,  북한이 놀랄 정도로 경기를 잘해서,  위와 같은 경기 결과를 내면  돈은 가장 많이 가져 갈 것이다.  

  사례 까지 만들어가 면서 크로스 엔트로피에 시간을 많이 사용한 것은 그 만큼 크로스 엔트로피가 중요하기 때문다. 





                 

댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...