재형이의 성장통 일지
  • 확률 개요 및 이산 확률 분포, 연속확률분포
    2024년 02월 01일 14시 23분 27초에 업로드 된 글입니다.
    작성자: 재형이
    반응형
     
     
    • 인공지능에 관심이 생겨서 패스트캠퍼스 환급챌린지에 참여를 하게되었다.
    • 하루 강의 2개 이상씩이 기준이지만 강의수가 생각보다 많아서 100일 정도에 마무리하기 위해서 하루에 4개씩 수강하기로 마음 먹었다.
    • 환급 챌린지는 60일이지만, 이후에도 계속 포스팅할 생각입니다 😎
    • 강의명은 딥러닝·인공지능 Signature 초격차 패키지 Online 입니다.
    • 인공지능 입문의 첫시작으로는 확률이 되겠습니다~

     


     

    1. 확률 개요

    • 인공지능에서 확률이 왜 필요할까?
    • 인공지능이 결과값을 산출할 때는 정확한 값을 도출해내는 것이 아니라 확률에 기반하여 값을 도출하기 때문이다.
      예시 1) 이미지 분류 모델 𝜃가 이미지 𝑥에 대해서 75% 확률로 고양이일 것이라고 예측
      예시 2) 글 쓰기 모델 𝜃는 “나는 밥을“ 이후에 “먹었다“라는 단어가 나올 확률을 42%로 예측

    • 확률을 계산하기 위해서는 경우의 수를 알아야하기 때문에 잠시 학창시절에 배웠던 순열과 조합에 대해서 정리를 해보겠습니다.

    1-1-1. 순열 (Permutation)

    • 순열이란 서로 다른 𝑛개에서 𝑟개를 중복 없이 뽑아 특정한 순서로 나열하는 것을 의미합니다.
    • 순열 공식
    • 순열의 수 공식(𝑛 = 𝑟일 때)
      𝑛𝑃𝑟 = 𝑛!
    • 순열의 수 공식(𝑛 ≠ 𝑟일 때)
      [참고] 0!은 1이다.

    1-1-2. 기계 학습 모델에서의 순열 적용 예시

    • 기계 학습 모델 학습을 위해 𝑁개의 학습 데이터로 학습을 진행하려고 한다.
    • 이때, 매번(epoch) 모델에 학습 데이터를 넣을 순서를 섞어서(shuffling) 학습을 진행한다.
    • 에포크(epoch): 학습 데이터 세트에 포함된 모든 데이터가 한 번씩 모델을 통과한 횟수를 말한다.

    • 즉, 3개의 데이터를 서로 다른 순서로 매번 머신러닝 모델에 학습시키는 경우의 수를 계산할 수 있다

    1-1-3. 파이썬 (Python)을 이용한 순열 계산

    • 파이썬을 이용하면 전체 순열을 간단히 계산할 수 있다.
    from itertools import permutations
    arr = ['A', 'B', 'C']
    # 원소 중에서 2개를 뽑는 모든 순열 계산
    result = list(permutations(arr, 2))
    print(result)
    
    # 실행 결과: [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]

    1-2-1. 조합 (Combination)

    • 서로 다른 𝑛개에서 𝑟개를 중복 없이 순서를 고려하지 않고 뽑는 것을 의미한다
    • 조합 공식

    1-2-2. 기계 학습 모델에서의 조합 적용 예시

    • 딥러닝 아키텍쳐 중에 샴 네트워크(Siamese network)라는 것이 있는데, 두개의 이미지를 받아서 두 이미지가 유사하다면 1, 아니라면 0을 출력한다.
    • 두개의 이미지는 순서는 중요하지 않으니 이 때 조합을 사용하여 어떤 경우의 수로 이미지를 학습시킬 수 있는지 알 수 있다.
    • 예를 들어 4개의 이미지가 있을 때, 순서를 고려하지 않고 2개의 이미지를 뽑는 경우의 수는?
    • 전체 이미지를 {1, 2, 3, 4}라고 했을 때, 가능한 모든 경우는 다음과 같다.
    • 모든 경우: [1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]
    • 경우의 수: 4 × 3 / 2 = 6

    1-2-3. 파이썬 (Python)을 이용한 조합 계산

    • 파이썬을 이용하면 전체 조합을 간단히 계산할 수 있다.
    from itertools import combinations
    arr = ['A', 'B', 'C']
    # 원소 중에서 2개를 뽑는 모든 조합 계산
    result = list(combinations(arr, 2))
    print(result)
    
    # 실행 결과: [('A', 'B'), ('A', 'C'), ('B', 'C')]

    1-3-1. 중복 순열 (Permutation with Repetition)

    • 서로 다른 𝑛개에서 중복을 포함해 𝑟개를 뽑아 특정한 순서로 나열하는 것을 의미한다.
    • 중복 순열의 수 공식

    파이라고 읽음

    1-3-2. 중복 순열 예시

    • 세 개의 숫자 1, 2, 3을 이용해 만들 수 있는 두 자리 자연수의 개수는?
      (단, 같은 숫자를 여러 번 사용하거나, 사용하지 않은 숫자가 있어도 괜찮다.)
    • 모든 경우: 11, 12, 13, 21, 22, 23, 31, 32, 33
    • 경우의 수: $3^{2}=9$

    1-3-3. 파이썬 (Python)을 이용한 중복 순열 계산

    from itertools import product
    arr = ['A', 'B', 'C']
    # 원소 중에서 2개를 뽑는 모든 중복 순열 계산
    result = list(product(arr, repeat=2))
    print(result)
    
    # 실행 결과: [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]

    1-4-1. 중복 조합 (Combination with Repetition)

    • 서로 다른 𝑛개에서 중복을 포함해 순서를 고려하지 않고 𝑟개를 뽑는 것을 의미한다.
    • 중복 조합의 수 공식
      $_{n}\mathrm{H}_{r}=_{(n+r-1)}\mathrm{C}_{r}$

    1-4-2. 기계 학습 모델에서의 중복 조합 적용 예시

    • 딥러닝에서는 학습된 여러 모델의 결과를 활용하여 최종적인 결과를 생성하는 앙상블(ensemble) 방법이 존재한다
    • 앙상블이란 강력한 모델 하나를 사용하지 않고 비교적 약한 모델들 여러개를 사용해 시너지를 내는 느낌이다
    • 마치 오케스트라에서 수 많은 악기들이 조화를 이루어 한명의 아주 작은 실수가 있다하더라도 보이지 않는 것처럼 앙상블에서도 한 모델의 예측이 어긋나더라도 어느정도 보정이 됩니다. 즉, 보다 일반화된 (generalized) 모델이 완성되는 것입니다.

    • 예시) 서로 다른 딥러닝 아키텍쳐 1번, 2번, 3번이 존재한다. 이때, 중복을 허용하여 4개를 골라 딥러닝 모델을 학습하고자 할때 학습 가능한 모든 조합의 수는?
      (단, 같은 아키텍쳐를 여러번 사용하거나, 선택하지 않은 아키텍쳐가 있어도 됨)
    • $_{3}\mathrm{H}_{4}=_{(3+4-1)}\mathrm{C}_{4}=_{6}\mathrm{C}_{2}=15$
    # [('1번', '1번', '1번', '1번'), ('1번', '1번', '1번', '2번'), ('1번', '1번', '1번', '3번'), ('1번', '1번', '2번', '2번'), ('1번', '1번', '2번', '3번'), ('1번', '1번', '3번', '3번'), ('1번', '2번', '2번', '2번'), ('1번', '2번', '2번', '3번'), ('1번', '2번', '3번', '3번'), ('1번', '3번', '3번', '3번'), ('2번', '2번', '2번', '2번'), ('2번', '2번', '2번', '3번'), ('2번', '2번', '3번', '3번'), ('2번', '3번', '3번', '3번'), ('3번', '3번', '3번', '3번')]

    1-4-3. 파이썬 (Python)을 이용한 중복 조합 계산

    from itertools import combinations_with_replacement
    arr = ['A', 'B', 'C']
    # 원소 중에서 2개를 뽑는 모든 중복 조합 계산
    result = list(combinations_with_replacement(arr, 2))
    print(result)
    
    # 실행 결과: [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]

    1-5. 확률 (Probability)

    • 𝒮를 전체 사건(event)의 집합(표본 공간 = sample space)라고 할 때, 사건 𝑋가 일어날 확률(probability) 𝑃(𝑋)는 다음과 같다.
    • 𝑃(𝑋) =사건 𝑋가 일어나는 경우의 수 / 전체 경우의 수 = 𝑛(𝑋) / 𝑛(𝑆)
    • 앞면에 1, 뒷면에 0이 쓰여 있는 2개의 동전을 2번 던졌을 때, 눈금의 합이 1일 확률은?
      𝑛(𝑋) : (0,1), (1,0) → 2
      𝑛(𝑆) : (0,0), (0,1), (1,0), (1,1) → 4
      → 𝑛(𝑋) / 𝑛(𝑆) = $\frac{2}{4}$ = $\frac{1}{2}$

    1-6. 통계적 확률

    • 동일한 시행을 𝑁번 반복해 사건 𝑋가 발생한 횟수를 𝑅이라고 하자.
    • 시행 횟수 𝑁을 무한히 크게 만들었을 때, 𝑅/𝑁이 수렴하는 값을 사건 𝑋의 통계적 확률이라 한다.
    • 목표 확률: 0.167
    시행 횟수 6 60 600 6000 60000
    눈금이 5인 횟수 2 12 104 1025 10074
    확률 0.333 0.200 0.173 0.171 0.1679

    2. 시행 (Trial)과 사건 (Event) 그리고 확률 변수와 확률 분포

    2-1. 시행 (Trial)과 사건 (Event)

    • 시행 (trial): 반복할 수 있으며, 매번 결과가 달라질 수 있는 실험
      ex) 주사위를 2개를 던지는 행동
    • 사건 (event): 시행에 따른 결과를 의미
      ex) 눈금의 합이 7이 되는 사건

    • 확률이란 어떤 사건(event)가 일어날 가능성을 수로 표현한 것
    • 그러면 확률은 수식으로 어떻게 표현할 수 있을까?
    • 이때 사용할 수 있는 것이 확률 변수(Random Variable)이다.

    2-2. 확률 변수 (Random Variable)

    • 확률 변수란, 사건으로 인해 그 값이 확률적으로 정해지는 변수를 의미한다.
    • 확률 변수는 대문자 𝑋로 표기하고, 확률 변수가 취할 수 있는 값은 소문자 𝑥로 표현한다

    2-3. 확률 함수 (Probability Function)

    • 확률 함수란, 확률 변수에 따라서 확률 값을 부여하는 함수를 말한다.
    • 확률 함수는 일반적으로 𝑃라고 표현한다.
    • 예시) 2개의 동전을 던지는 시행에 대하여:
      수학적으로, 각 사건에 대한 확률은 다음과 같이 표현할 수 있다.
      눈금의 합이 0인 사건이 발생할 확률: ((𝑃 (𝑋 = 0) = 1/4))
      눈금의 합이 1인 사건이 발생할 확률: ((𝑃 (𝑋 = 1) = 1/2))
      눈금의 합이 2인 사건이 발생할 확률: ((𝑃 (𝑋 = 2) = 1/4))
    • 확률 변수가 취할 수 있는 모든 값 𝑥의 집합을 상태 공간(state space)이라고 한다
    • 위에서 상태 공간은 {0, 1, 2} 이다.

    2-4. 확률 분포 (Probability Distribution)

    • 각 사건에 어느 정도의 확률이 할당되었는지 표현한 정보를 의미한다.
    • 확률 분포를 통해 통계적인 특성을 쉽게 이해할 수 있다

    2-5. 확률 분포 함수 (Probability Distribution Function)

    • 확률변수 ((𝑋))가 가지는 값 ((𝑥))에 확률 ((𝑃 (𝑋 = 𝑥))) 을 대응시키는 함수를 의미한다.
    • 확률 분포 함수로 대표적인 것으로는 확률 질량 함수, 확률 밀도 함수가 있다

    3. 이산확률분포 (Discrete Probability Distribution)

    • 확률변수 𝑋가 취할 수 있는 모든 값을 셀 수 있는 경우, 이를 이산확률변수라고 한다.
    • 이때 이산확률분포는 이산확률변수의 확률 분포를 의미한다.
    • 주사위를 던졌을 때 나올 수 있는 눈금은 {1, 2, 3, 4, 5, 6} 중 하나이다.
    • 따라서, 이 경우 “주사위 눈금”의 값은 6개만 존재하므로, 이산확률변수이다

    3-1. 이산확률분포 예시

    • 주사위를 던졌을 때 나올 수 있는 눈금(수)을 확률변수 𝑋라고 하자.
    • 확률변수 𝑋는 {1, 2, 3, 4, 5, 6} 중 하나의 값을 가질 수 있다.
    • ((𝑃 (𝑋 = 1) = 𝑃 (𝑋 = 2) = 𝑃 (𝑋 = 3) = 𝑃 (𝑋 = 4) = 𝑃 (𝑋 = 5) = 𝑃 (𝑋 = 6) = 1/6))
    • 이때, 주사위 눈금 𝑋에 대한 확률 분포는 다음과 같다.

    • 이렇게 균등한 이산 확률 분포를 이산 균등 분포라고 부른다.

    3-2. 확률질량함수 (Probability Mass Function, PMF)

    • 확률질량함수는 이산확률변수가 특정한 값을 가질 확률을 출력하는 함수다
    • 동전 2개를 동시에 던지는 시행에서 두 눈금의 합을 𝑋라고 하자.
    • 이때, 𝑋는 이산확률변수로, 확률질량함수 𝑓 𝑥 는 다음과 같이 정의할 수 있다
      ((𝑓 (0) = 𝑃 (𝑋 = 0) = 1/4))
      ((𝑓 (1) = 𝑃 (𝑋 = 1) = 1/2))
      ((𝑓 (2) = 𝑃 (𝑋 = 2) = 1/4))
    • 확률 변수 𝑋에 대한 확률질량함수라는 의미로 ((𝑓_𝑋 (𝑥))) 라고 표기하기도 한다

    3-3. 베르누이 시행 (Bernoulli Trial)

    • 결과가 두 가지 중 하나로만 나오는 시행을 베르누이 시행이라고 한다.
      예시 1) 입학 시험 → 합격 혹은 불합격
      예시 2) 동전 던지기 → 앞면 혹은 뒷면
      예시 3) 꽝 혹은 당첨만 있는 복권
    • 베르누이 시행의 결과를 실수 0 혹은 1로 나타낸다.
    • 확률 변수는 0 혹은 1의 값만 가질 수 있으므로, 이산확률변수다

    3-4. 베르누이 확률분포

    • 베르누이 확률변수의 분포를 베르누이 확률분포라고 한다.
    • 확률변수 𝑋가 베르누이 분포를 따른다고 표현하며, 수식으로는 다음과 같이 표현한다.
      ((𝑋\sim𝐵𝑒𝑟𝑛 (𝑥; 𝜇)))
    • 모수(parameter)는 세미콜론(;) 기호로 구분하여 표기한다.
    • 베르누이 확률분포는 모수로 𝜇를 가지는데, 1이 나올 확률을 의미한다.

    3-5. 베르누이 분포의 확률질량함수

    • 베르누이 확률 분포의 확률질량함수는 다음과 같다
      ((\textit{Bern}(x;\mu)=\begin{cases}\mu,&\mbox{if}\;x\;\mbox{=1}\\1-\mu,&\mbox{if}\;x\;\mbox{=0}\end{cases}))
    • 간단하게 하나의 수식으로 표현할 수 있다
      (( \textit{Bern}(x;\mu)=\mu^x(1=\mu)^{1-x}))
      x가 0일 때랑 x가 1일 때를 생각해보면 위의 복잡한 식과 간단한 식이 같은 것을 알 수 있다.
    • ((\mu))가 0.8인 베르누이 확률 분포는 다음과 같다.

    • 결과가 두 가지이기 때문에 더하면 1이 되야한다

    3-6. 이항 분포

    • 성공 확률이 𝜇인 베르누이 시행을 𝑁번 반복한다.
    • 𝑁번 중에서 성공한 횟수를 확률 변수 𝑋라고 하자.
    • 𝑋는 0부터 𝑁까지의 정수 중 하나이다.
    • 이러한 확률 변수를 이항 분포를 따른다고 한다
    • 다음과 같이 표현할 수 있다
      $X{\sim}Bin(x;N,\mu)$
    • 이항 분포는 모수(parameter)로 𝑁과 𝜇를 가진다.
      모수 1: 시행 횟수 𝑁
      모수 2: 한 번의 횟수에서 1이 나올 확률 𝜇
    • 이항 분포 확률 변수 𝑋의 확률 질량 함수는 다음과 같다.
      $X{\sim}Bin(x;N,\mu) = {N \choose x}\mu^{x}(1-\mu)^{N-x}$
      단, ${N \choose x}$는 𝑁개에서 𝑥개를 선택하는 조합(combination)의 수와 같다.

    3-7. 이항 분포 예시

    • 독립된 사건을 𝑁번 반복 시행했을 때, 특정 사건이 𝑥회 발생한다고 가정한다

    • 예시)
      가구 공장에서 가구를 만들 때, 불량률이 10%라고 한다.
      이 공장에서 만든 가구 10개를 확인했을 때, 불량품이 2개 이하로 나올 확률을 구하여라.
      불량률 10% → 𝑝 = 10%
    • 풀이)
      불량품이 0개 나올 확률 + 불량품이 1개 나올 확률 + 불량품이 2개 나올 확률
      $= {10 \choose 0}p^{0} \times (1 - p)^{10} + {10 \choose 1}p^{1} \times (1 - p)^{9} + {10 \choose 2}p^{2} \times (1 - p)^{8}\\= 0.3487 + 0.3874 + 0.1937 = 0.9298$

    3-8. 포아송 분포

    • 일정한 시간 내 발생하는 사건의 발생 횟수에 대한 확률을 계산할 때 사용한다.
    • 단위 시간에 어떤 사건이 발생할 기댓값이 𝜆일 때, 그 사건이 𝑥회 일어날 확률을 구할 수 있다.
    • 포아송 분포는 푸아송 분포라고 부르기도 한다.
    • 포아송 분포의 확률 질량 함수는 다음과 같다

    • 포아송 분포의 평균을 𝜆로 표기한다.
    • 𝑒는 자연 상수를 의미한다. (𝑒 = 2.718 …)

    3-9. 포아송 예시

    • 단위 시간 내 평균 발생 횟수(𝜆)가 5일 때, 그 사건이 8회 일어날 확률은?
      $f(8;5) = \frac{e^{-5}5^{8}}{8!} = 0.06528$

    • 예시)
      하루에 평균적으로 5개의 스팸 메일이 도착한다
      오늘 하루 동안 스팸 메일이 8개 도착할 확률을 얼마일까?
    • 풀이)
      $f(8;5) = \frac{e^{-5}5^{8}}{8!} = 0.06528$

    4. 연속확률변수 (Continuous Random Variable)

    • 확률변수 𝑋가 취할 수 있는 값이 무한한 경우, 이를 연속확률변수라고 한다.
    • 연속적인 값의 예시: 키, 달리기 성적, …
    • 이러한 경우 키가 170cm 이상, 175cm 미만일 확률을 구하는 방식처럼 범위를 지정하게 된다.
      → 특정한 값 𝑥에 대한 정확한 확률 값을 표현할 수 없다.
      따라서 특정한 구간 𝑎 ≤ 𝑥 ≤ 𝑏에 대한 확률로 표현한다

    4-1. 확률밀도함수 (Probability Density Function, PDF)

    • 확률 밀도 함수란 연속 확률 변수가 주어진 구간 내에 포함될 확률을 출력하는 함수다.
    • 확률 밀도 함수의 대표적인 예시로는 정규 분포가 있다.

    4-2. 연속 확률 분포

    • 확률 변수 𝑋가 어떠한 구간에 속할 확률은 0과 1사이이다
    • 확률 변수 𝑋가 값을 가질 수 있는 모든 구간의 확률을 합치면 1이다. (전체 면적 = 1)
      → 단, 각 구간은 배반(서로 겹치는 게 없을 때) 관계일 때 이것이 성립한다
      $\int_{-\infty}^{\infty} f(x)dx = 1$ → 전체 면적의 합은 1
      $P(a \le X \le b) = \int_{a}^{b} f(x)dx$ → a부터 b까지의 면적
    • 연속 확률 변수는 면적으로 계산되며, 한 점에 대한 확률은 0으로 간주한다
      예시) 나랑 키가 소수점 아래까지 “완벽히” 동일한 사람이 존재할 수 있을까?
      $P(a \le X \le b) = P(a <  X < b)$

    4-3. 균등 분포 (Uniform Distribution)

    • 모든 확률변수에 대해 일정한 확률을 가지는 확률 분포다.
    • 𝑋가 균등 분포를 따를 때 𝑋~𝑈(𝑎, 𝑏) 로 표현한다. (단, 𝑃(𝑎 ≤ 𝑋 ≤ 𝑏) = 1이다)
    • 균등 분포를 따르는 확률 변수 𝑋의 확률밀도함수는 다음과 같다
      $f(x)=
      \begin{cases}
      \frac{1}{b - a}, & a \le X \le b \\
      0, & \mbox{otherwise}
      \end{cases}$

    • 참고로 균등 분포는 이산확률변수에 대해서도 정의될 수 있다
    • 주사위를 한 번 던지는 시행에서, 주사위의 눈금 값을 확률 변수 𝑋라고 할 때 P(X)는 1/6로 모두 동일하다

    4-4. 지수 분포 (Exponential Distribution)

    • 특정 시점에서 어떤 사건이 일어날 때까지 걸리는 시간을 측정할 때 사용한다
    • 포아송 분포는 발생 횟수에 대한 확률을 구할 때 사용했다면, 지수 분포는 대기 시간에 대한 확률을 구할 때 사용한다
      분류 설명
    포아송 분포 이산 확률 분포 발생 횟수에 대한 확률
    지수 분포 연속 확률 분포 대기 시간에 대한 확률
    • 지수 분포의 확률 밀도 함수는 다음과 같다
      ${\lambda}: \mbox{단위 시간 동안 평균 사건 발생 횟수}\\
      f(x) = \lambda e^{-\lambda x},x \ge 0$

    4-5. 지수 분포 예시

    • 예시)
      운영 중인 서버에는 하루 평균 4건의 해킹이 시도된다
      첫 번째 해킹 시도가 3시간 안에 발생할 확률은?
      풀이)
      24시간에 4건의 해킹이 발생하므로, 단위 시간이 “시간(hour)“일 때 평균 발생 횟수는 4/24다
      따라서, 𝜆 = 4/24이며, 확률 밀도 함수는 다음과 같다
      $f(t) = \frac{4}{24}e^{-\frac{4}{24}t},t \ge 0$
      따라서 적분 식을 계산하여 문제를 해결할 수 있다
      $
      \int_{0}^{3} \frac{4}{24} exp \left( -\frac{4}{24} t \right ) dt \\
      = \left [ - exp \left ( - \frac{4}{24} t \right ) \right ]_{0}^{3} \\
      = exp(0) - exp \left ( -\frac{4}{24} \times 3 \right ) = 0.3935
      $

    4-6. 지수 분포의 특징: 무기억성

    • 지수 분포의 특성으로는 무기억성이 존재한다.
    • 특정 시점에서부터 소요되는 시간은 과거로부터 영향을 받지 않는다.
    • 예를 들어, 서버가 해킹당하기까지 걸리는 시간을 지수 분포로 근사한 경우를 고려해 보자.
    • 서버를 3년간 운영한 뒤, 해킹당하기까지 걸리는 시간은 처음 서버를 운영한 뒤 해킹당하기까지 걸리는 시간과 같다.
      → 한계점: 현실 세계에서의 다양한 사례를 모델링하기에는 지나치게 단순한 경향이 있다

     


     

     

     

    반응형
    댓글