ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Bishop - Pattern recognition and ML] - 1.2.1 확률 이론 - 조건부 확률과 베이즈 정리
    IT/인공지능 2021. 9. 20. 22:59
    728x90
    SMALL
    SMALL

    머신러닝을 공부하다보니, 확률과 통계에 대해 잘 알아야겠다는 생각이 들었다. (아니 어쩌면 전부일수도....) 그렇지만, 고등학교때부터 확률과 통계는 포기했던 사람으로서 너무 어렵게 느껴졌고, 지인과 스터디를 하기로 하였다. 교재는 제목에 써져 있는 것처럼 "Bishop: Pattern recognition and Machine Learning"이라는 교재이다. 아주 유명한 교재라고 해서 선택해봤는데, 확실히 고등학교 때 배웠던 것보다 훨씬 상세하고 이해하기 쉽도록 나와있어서 좋았다.
    (원서라 번역하는게 너무 힘들긴 했다. 하지만 토익 300점대임에도 어떻게 잘 독해해서 읽어지긴 했음)

    아무튼 본론으로 들어가서, 1.2 Chapter의 Probability Theory에 대해서 공부했다. 양이 많기도 하고, 영어이기도 해서 스터디를 한 2~3시간 한 것 같은데, 1.2.1 Probability densities까지 밖에 공부하지 못했다. 거기까지 공부한거라도 기록을 남겨보려고 한다.

    우선 이 포스팅에서는 다음과 같은 주제들에 대해서 다룰 것이다.

    - sum rule, product rule
    - conditional probabilities (조건부 확률)
    - Bayes' theorem (베이즈 정리)

    1. Sum rule & Product rule & Conditional Probabilities

     

    우선 예시로 먼저 접근해보자. 주황색 공은 오렌지, 연두색 공은 사과라고 가정해본다.

    위와 같이, red box와 blue box가 있다. 여기서 박스 하나를 먼저 랜덤하게 선택하고 그 후에 선택한 박스에서 과일을 하나 선택한다고 가정해보자. 그리고 red box를 선택할 확률을 40%, blue box를 선택할 확률을 60%로 가정해본다. 공식으로 표기하면 아래와 같다.



    이제 여기서 우리는 여러가지 질문을 던질 수 있다. 책에 나와있는 예시 질문은 아래 두개였다. (이거 외에도 여러 질문을 가질 수 있다는 소리이다.)

    • 사과를 뽑을 확률은 얼마일까?
    • 오렌지를 뽑았는데 blue box에서 뽑았을 확률은 얼마나 될까?


    이 질문들에 대해 sum rule과 product rule을 통해서 대답을 할 수 있다. sum rule과 product rule에 대해서 알기 전, joint probability에 대해서 먼저 알아야 한다. joint probability는 아래 그림처럼 표현할 수 있다.

    먼저 Box에 대한 변수를 X로 놓고, Fruit에 대한 변수를 Y로 놔보자.
    여기서 X는 i가지의 경우, Y는 j가지의 경우를 가질 수 있다.
    그리고 N번 뽑았다고 했을 때, X = x_i, Y = y_j 일때 우리는 n_ij라고 할 수 있다. 이를 joint probability라고 부른다. 위의 그림에서 보면 X가 x_i이고 Y가 y_j일 때 겹치는 부분을 n_ij라고 표기하였다.

    그런데 개인적으로, 공부할 때 이 그림이 잘 이해되지 않았다. 그래서 아래 유튜브 링크를 참조하니 바로 이해가 되었다.
    https://youtu.be/u7P9hg1dVDU


    위 유튜브 링크에서 설명한대로 X와 Y의 관계를 그림으로 다시 표현해보면 아래와 같이 표현할 수 있다. X는 박스에 대한 변수이므로 red일 경우, blue일 경우 2가지 경우가 있고, Y는 과일에 대한 변수이므로 orange일 경우, apple일 경우 2가지로 표현할 수 있는 것이다.



    전체 시도 횟수를 N이라고 하고, N = 1000이라고 가정하고, 1000번의 시도 중에 red box 이면서 orange인 경우가 495번, blue box이면서 orange인 경우는 87번, red box이면서 apple인 경우가 170번, blue box이면서 apple인 경우를 250번이라고 가정해보면 아래 그림과 같이 표현할 수 있다.



    이제 이 그림에서, 우리는 joint probability를 바로 구할 수 있다. joint probability는 X = x_i, Y = y_j일 때의 확률이므로 p(X = x_i, Y = y_j)로 표현할 수 있고, n_ij / N 으로 값을 구할 수 있다. 예를 들어 X 가 red box이고 (R이라고 표현), Y가 orange일 경우(O라고 표현)는
    p(X=R, Y=O)라고 표현할 수 있고, 총 1000번 던졌고 red box일 때 orange일 경우는 495번이 나왔으므로, p(X=R, Y=O) = 495 / 1000, 즉 거의 1/2의 확률을 가진다. 따라서 joint probability는 "거의 1/2"이라고 구할 수 있는 것이다.



    그리고, Y를 고려하지 않고 X만의 probability는 위에 나온 격자에서 c_i를 전부 합하고, 즉, X가 red일 때 Y의 값을 전부 더해주고 N (총 trial 횟수)으로 나눠주면 값을 구할 수 있다. 박스가 red일 경우만 구해보면 전체 1000번 중에서 orange 495번, apple 170번이 나왔으므로, 495 + 170 / 1000 의 확률을 갖는 것이다.


    우리는 여기서 유의미한 아래와 같은 공식을 발견할 수 있다.


    이 공식을 해석해보자면, X가 x_i이고, Y가 y_j이고 j가 L개라고 가정할 때,
    1 <= j <= L일 때 y_j를 전부 더해준 값이 X가 x_i일 확률을 구할 수 있다는 것이다. 이것을 바로 "sum rule"이라고 하는 것이다. "marginal probability"라고도 한다. 전부 더해서 확률을 구하므로 "sum rule"이라고 하는 것 같다.

    또한, X가 x_i일 때 Y가 y_j일 때의 확률도 구할 수 있다. 그 공식은 아래와 같다.


    이 공식은, X가 x_i일 때 모든 y_j를 더한 값으로 n_ij를 나눠주면 확률을 구할 수 있다는 것을 의미한다. 이 공식을 이용하면 아래 처럼 풀어볼 수 있다.


    결국, 이 공식에서 나온 것처럼 X가 x_i일 때 Y가 y_j일 확률에 X가 x_i일 때 확률을 곱해준 값과 같으므로 이를 "product rule"이라고 한다.

    정리하자면, 아래 그림과 같이 정리할 수 있다.


    product rule에서 P(Y|X)는 Y given X라고 읽는다.
    그리고 이는 사건 X가 발생했을 때 사건 Y가 발생할 확률이고, 이를 Conditional Probabilities, 즉 조건부 확률이라고 부른다.

    2. Bayes' theorem

    Bayes' theorem은 "베이즈 정리"라고 보통 부르는데, 이걸 이해하는데 시간이 좀 걸린 듯 하다. 베이즈 정리는 조건부 확률 P(X | Y)가 있다고 했을 때, P(Y | X)를 유추하는데 쓰이는 이론이라고 간단하게 정리할 수 있다. 즉, 사전확률을 예측할 수 있다는 것이다.
    이 부분 또한 책으로만 이해하기는 좀 어려워서 유튜브를 활용해서 이해하였다.
    https://youtu.be/xDD4CpdQRCk


    위 유튜브 영상을 참고해보면 P(Y | X)는 X가 일어났을 때 Y가 일어날 확률인데, 이는 P(X | Y)와 같지 않다. 왜냐하면 X가 일어났을 때 Y가 일어날 확률과 Y가 일어났을 때, X가 일어날 확률은 같을 수 없기 때문이다. 그래서, 이는 아래 공식처럼 표현할 수 있다. 이것이 바로 베이즈 정리이다.


    베이즈 정리를 알면, 우리는 이제 orange를 뽑았을 때, orange가 red box에서 나왔을 확률을 구할 수 있다. 순서상으로 box를 먼저 선택하고, 거기서 과일을 뽑게 되므로 orange를 뽑았고, 그 전에 어디 박스에 나왔는지 확률을 구하는 것이므로 사전확률을 예측하는게 된다. orange를 뽑았고, box가 red box일 확률은 p(B=r | F=o)로 표현할 수 있고, 이는 위에서 봤던 공식에 따라, p(F=o | B =r) * p(B=r) / p(F = o) 공식에 값만 대입해서 orange를 뽑았을 때 red box에서 뽑았을 확률을 구할 수 있다.


    p(F=o | B =r)는 red box에서 orange를 꺼낼 확률이므로, red box에 있는 과일은 총 8개이고 그 중에 orange는 6개, 즉, 3/4의 확률을 갖는다. p(B = r)은 앞에서 40%라고 가정했으므로, 4/10이라고 둘 수 있다. p(F=o)는 앞에서 본 sum rule에 따라 red box에서 나온 경우, blue box에서 나온 경우 모두를 더해주어야 하므로 4/10(red box를 뽑을 확률) * 3/4(red box에서 orange를 뽑을 확률) + 6/10(blue box를 뽑을 확률) * 1/4(blue box에서 orange를 뽑을 확률) = 9/20이라는 값을 가질 수 있다. 따라서, 3/4 * 4/10 * 20/9 = 2/3이라는 값이 나온다. 따라서 orange를 뽑았는데, 그게 red box에서 나왔을 확률은 2/3라는 것이다.


    막상 다 정리하고보니, 양이 얼마 안되는 것 같은데 이를 이해하기 까지 몇시간은 걸린 거 같다. 실제로 빅데이터를 다루는 머신러닝에서 굉장히 중요한 개념이라고 한다. 잘 알아두어야 겠다.

    728x90
    LIST

    댓글

Designed by Tistory.