본문 바로가기
데이터 분석, 통계/통계학 개념 정리

딥러닝/데이터 분석을 위한 통계 - 1편) 확률변수, 확률분포

by W_log 2023. 10. 14.

이 글은 통계학을 공부하는 과정에서 왜 딥러닝에서 통계가 필요하고 어떤 개념들이 데이터 분석/딥러닝 실무에서 중점적으로 필요한지 개인적으로 정리하기 위한 목적으로 쓴 시리즈 글입니다.

(사실 데이터 분석을 실무를 경험했지만 딥러닝에서는 실무를 경험해보지 않았기 때문에 딥러닝 관점에서는 사실 공부하면서 중요하다고 생각한 개념들이라고 봐주시면 좋을 것 같습니다.)

 

나조차도 딥러닝 공부하겠다고 그동안 통계공부를 도전해 왔었는데 수학 문제집에서 “집합” 부분만 너덜너덜한 것처럼 항상 평균과 분산, t분포, 중심극한 정리가 공부하다가 이게 앞으로 내가 공부하는 과정에서 왜 필요한지에 대해서 의문을 가져왔는데 해답을 찾지 못해 항상 지지부진했었는데 다시 통계를 공부하기 시작한 시점에서 이를 정리해보려고 합니다.

 

 

 

서론

 

인생에서 Birth와 Death 사이에는 Choice가 존재한다는 격언이 있다.

  • 살아가면서 끊임없이 선택을 하는 이유는 세상은 항상 우리에게 명확한 답을 정해주고 있지 않기 때문이다.
  • 세상은 불확실성을 가지고 있고, 인간이 가지고 있는 거라곤 여러 정보들 중에 결정에 도움이 될만한 정보들을 추려내고, 그 정보를 기반으로 최대한 좋은 의사결정을 하기 위해 끊임없이 노력한다.
  • 이 관점에서 통계학이라는 학문의 중요성이 생겨나는 것 같다.
    • 세상을 살아가는데 있어서 정답이 있다면 우리는 확률이나 통계라는 것이 필요하지 않다.
    • 많은 정보들 중에서 의미 있는 정보를 발라내는 능력과 각각의 선택을 했을 때 우리가 이익을 볼 확률을 알 수 있는 방법을 배우는 것이 통계학이다.
  • 정리해 보면 통계학은 이렇게 정의해 볼 수 있을 것 같다.
    • 수많은 데이터에서 “유용한” 의미를 추출하는 방법을 배우는 학문
    • (수치로 표현할 수 있는) 나의 주장/선택이 옳다는 것을 검증할 수 있는 방법을 배울 수 있는 학문

 

그렇다면 데이터 분석/딥러닝 관정에서는 왜 통계가 중요할까?

  • 내가 PO로 일하던 당시 회사에서는 내가 맡은 제품의 PMF를 찾은 후에 개선해야 할 기능들이 유저로부터 끊임없이 쏟아졌다. 우리의 리소스는 한정적이기 때문에 어떠한 기능들을 가장 먼저 개선해야 할지 우선순위에 대한 고민이 내 업무의 가장 중요한 포인트였다.
    • 이 기능을 올렸을 때 우리가 목표로 하는 지표를 얼마만큼 올릴 수 있을지에 대한 가설을 세우고 실제 배포 후에 얼만큼 해당 지표가 올랐는지에 대해서 검증하는 형태로 업무를 했고 이때 단순히 뇌피셜이 아니라 실질적인 수치/성과를 만들어냈다는 것을 검증하기 위해서는 통계적 작업이 필수였다.
  • 딥러닝은 기계에게 방법을 알려주는 것이 아니라 기계가 스스로 방법을 학습시키게 만들기 때문에 흔히들 black-box 알고리즘이라고 불린다. 그래서 통계와는 전혀 관계가 없다는 의견이 많은데 딥러닝에서는 사실 크게 세 가지 유용성이 있는 것 같다.
    • 딥러닝 알고리즘이 좋은 결과를 냈는지에 대해서 검증하기 위해서 위의 기능 개선 프로젝트처럼 A/B 테스트 등을 통해서 이 알고리즘의 실제 가치를 평가하는 작업이 있다. 혹은 분류/회귀 작업에서 실제로 모델이 잘 학습하는지 확인하기 위해 다양한 방법들을 쓰는데 이때에도 통계적 방법론들을 활용한다.
    • 두 번째로, 딥러닝에서 학습시켜야 할 데이터와 실제 프로덕션의 데이터에 차이가 있는지를 살펴보는 것이 중요하다.
      • 학습데이터셋과 검증 데이터셋간의 데이터 분포가 동일한지에 대한 검토에서 통계가 활용된다.
    • 세 번째로는 논문을 보다 보면 일단 기계에게 학습시켜 본 후에 결과가 잘 나왔다고 하더라도 이에 대해서 실제 설명가능한 형태로 여러 통계적 이론들을 활용하는 경우가 많다.
      • 한 예시로 Batch Normalization이라는 논문 역시도 실제로는 통계적인 증명을 논문에서 설명하고 있는 것을 볼 수 있다.

 

이제까지는 통계가 어떤 의미가 있는지에 대한 이야기였고 이제 진짜 딥러닝을 하는 데 있어서 필요한 통계 이론에 대해서 설명해보려고 한다. 이번 글에서는 확률변수, 확률분포까지만 글을 써보려고 한다.

 

 

확률 변수

통계책들을 보면 대부분 평균, 분산 등을 먼저 설명하지만 설명하는데 있어서 도움이 되기에 확률 변수부터 설명해보려고 한다.

 

앞서 세상은 불확실성이 있고 인간은 본인이 생각하기에 가장 합리적이라고 생각하는 선택을 하게 된다고 했다. 이를 통계적으로 풀어보면 나에게 주어진 선택지들은 선택했을 때 행복할 확률들을 각각 가지고 있게 되고 그중에서 나는 가장 높을 것이라고 예상되는 선택지를 하게 되는 것이다.

 

이처럼 각각의 경우의 수가 확률값을 가지고 있는 것들을 확률 변수라고 한다. 쉬운 예시로는 동전 던지기가 있다.

 

  • 500원짜리 동전을 1번 던졌을 때 50%는 학 모양이, 50%는 숫자 모양이 나온다.
  • 500원짜리 동전던지기 확률변수는 총 두 가지의 선택(앞면, 뒷면)이 있고 각각이 가지고 있는 확률은 0.5이다.

 

다른 예시로 로또를 들어보자. 로또 당첨이라는 확률변수는 총 몇 가지일까?

우선 가짓수는 로또 당첨인 1~5등과, 미당첨으로 나눠볼 수 있다. 각각의 확률이 있을 것이고 다 더했을 때 모든 경우의 수를 커버하기 때문에 확률변수라고 할 수 있다.

 

앞에서 잠깐 말했지만 확률변수/확률은 아래와 같은 특징을 가지는데 너무나 당연해서 참고차 보시면 된다.

  1. 모든 확률변수가 가지는 확률의 합은 1이다.(100%)
  2. 각 확률은 0 이상 이어야 한다.(어떤 일이 일어날 확률이 마이너스일 수 있을까?)
  3. 각 확률변수가 독립이라면 각 사건이 일어날 확률은 각 확률변수의 값의 곱과 같다.
    • 동전을 던졌을 때 1번째에 앞면이 나왔다고 했을 때 2번째에 뒷면이 나오는 것이 관계가 있을까? 없다. 즉 각 확률변수끼리 서로 그 결과에 따라 영향이 없으면 독립이라고 한다.

 

 

확률 분포

여러 분포의 종류(t분포, 카이제곱 분포 등)를 설명하는 것은 하지 않고 간단하게 확률분포가 우리가 앞으로 공부하는 것에 있어서 의미하는 바에 대해서만 설명하려고 한다. 각 분포의 의미들에 대해서는 다음 장에서 정리하려고 한다.

 

 

앞에서 우리는 확률변수들을 배웠다. 근데 예시가 다 주사위, 동전 던지기 같이 충분히 우리가 상상가능하고 예측가능한 확률변수들 뿐이다.

삶은 그렇게 호락호락하지 않기 때문에(?) 실생활에서는 이보다 더 복잡한 확률변수들이 존재한다.

 

우리가 태어나기 몇백 년 전부터 지속적으로 인간은 불확실성을 줄이려고 했고, 삶에서 나타나는 여러 케이스들을 예측가능한 형태로 표현하고 싶어 했다.

 

다른 학문의 예시로 들어보면 만유인력법칙이나 f = ma와 같은 공식은 실생활에서 발생하는 여러 물리학적 원리들을 수식으로 표현하려고 하는 노력의 일환이었다.

 

이처럼 통계학자들 역시도 실생활에서 발생할 수 있는 여러 케이스들에 대해서 확률로 계산할 수 있는 방식들을 찾아왔고 이를 수학적인 공식으로 표현한 것들을 우리는 확률 분포라고 한다. (일종의 함수라고 보면 된다. 확률변수 x가 주어졌을 때 그 확률값을 계산할 수 있는 함수)

 

*물론 엄밀한 정의로는 우리가 공식으로 표현할 수 없는 것들도 확률분포라고 하지만, 어디까지나 확률 분포가 도움이 되는 이유는 어떤 경우의 수에 대해서 우리가 확률을 계산할 수 있다는 점에서 온다.

 

 

분포의 종류들은 엄청 많겠지만 가장 도움이 되고 많이 들어본 분포를 두 개만 설명하고 넘어가려고 한다.

 

정규분포에 대해서 알아보기 전에 통계를 공부하면서 내가 터득한 점은 여러 분포들을 공부하다 보면, 대부분의 사례들은 실제 데이터를 그래프로 그려보고, 그 그래프들의 형태와 가장 유사한 분포들에 근사(쉽게 말하면 최대한 비슷하게 끼워 맞춘다.) 해봤더니 잘 나왔다는 점과, 당연히 현실세계를 수리적으로 표현하는 것이기 때문에 수식은 복잡할 수밖에 없다는 점이다.

 

 

1. 이항분포

 

우선 첫 번째는 이항분포이다. 아까 예시로 든 동전 던지기는 이항분포에 해당한다.

이항 분포란 어떤 사건이 일어날 확률을 p라고 했을 때 여러 번 시행했을 때 그 사건이 일어날 확률을 표현한 식이다.

 

동전 던지기에 대입해 보면 동전을 두 번 던졌을 때 1번이 앞면이 나올 확률은 Pr(K = 1) = 2 * (0.5^1 * (1-0.5)^1)로 표현할 수 있다.

 

풀어서 정리해 보면 2번 중에 첫 번째에 앞면이 나오고 두 번째에 뒷면이 나오는 경우, 첫번째에 뒷면이 나오고 두번째에 앞면이 나오는 경우가 있기 때문에 2C1로 앞에 2가 곱해지고, 실제 앞면 뒷면이 나오는 확률은 각각 0.5이기 때문에 0.5*0.5를 해주는 것이다.

 

이항 분포의 수식 자체가 사건이 발생하는 횟수만큼 확률을 곱해주고, 각 횟수가 일어날 순서를 계산하는 것이기 때문에 이 분포는 비교적 명확하다고 볼 수 있다.

 

 

2. 정규분포

 

우선 나무위키에서의 사전적 정의를 가져와보자.(위키가 정석이긴 하지만 이해하기에는 나무위키가 더 쉬워서 가져와봤다.)

💡 “인간과 자연 세상에서 일어나는 수많은 일을 설명하는 핵심 개념이며, 통계학에서 사용하는 각종 확률 분포 중에서도 가장 중요하게 다루는 분포이다. 일명 통계학의 꽃.

출처 : https://namu.wiki/w/정규분포

 

정규분포는 사실 위에서 설명한 이항분포의 시행 횟수를 무한으로 했을 때의 근사식이다. 이에 대한 증명은 다른 블로그(링크)에서 많이 찾아볼 수 있고 개념 설명에 있어서는 크게 중요한 것은 아니기에 별도로 여기에는 남기지 않는다.(추후에 통계 -> 수식 증명 카테고리에 별도로 추가할 예정이다.)

 

직관적으로 설명해 보면, 동전 던지기를 10만 번 던졌을 때 앞면이 나오는 갯수를 x축으로 하고 갯수당 나올 확률을 y로 하는 그래프를 그린다고 하자. 앞면이 만번 나오는 게 가장 보편적일까? 아니면 5만 번이 나오는게 보편적일까? 당연히 10만개의 0.5인 5만번이 나올 확률이 가장 높을 것이고 5만번 근처에서 멀어질수록(1만 번, 9만 번 같이) 확률이 낮아지는 것을 예상할 수 있다. 

 

이런 경우 외에도 일상생활에서는 정규분포를 굉장히 많이 마주치게 된다. 대한민국 성인 남성의 키를 분포로 세워보면 가장 많이 나오는 키가 있을 것이고 이 키를 중심으로 종모양을 그리게 될 것이다. (2m 30cm는 극히 작을 것이고, 10cm 또한 매우 작을 것이다.)

 

정규분포가 일상생활에서 자주 보이는 이유에 대해서 이렇게 생각해 볼 수 있다. 아까 이항분포의 시행 횟수를 무한으로 한 케이스처럼 남성의 키는 유전의 영향을 많이 받을 것이고 한국인은 유사한 인종 DNA를 가지고 있기 때문에 특정 키를 이룰 확률이 p인 이항 분포라고 가정해 볼 수 있다. 그렇다면 결국 특정 키가 대부분 많이 발생하기 때문에 이를 중심으로 정규분포를 이루게 되지 않을까?

 

실제 일상생활이 확률변수로 이루어져 있고 각각의 상황을 모두 이항분포로 표현할 수 있기에 대부분의 케이스가 정규분포로 표현되는 것을 감으로나마 이해할 수 있을 것이다.

 

 추가로, 정규분포의 그래프 모양을 결정짓는 것은 크게 두 가지이다. 첫 번째는 종모양 그래프 기준으로 확률이 가장 높을 때의 x좌표(대한민국 성인 남성의 평균 키)로 우리는 이를 평균이라고 하고, 평균을 기준으로 얼마나 그래프가 퍼져있는지를 의미하는 분산이 있다.  이는 대푯값에서 더 설명하려고 한다.

 

 

 

 

 

Summary

이상이 확률변수와 확률 분포에 대해 배운 내용이다. 정리해 보면 우리가 통계적 기법을 적용하는 대상들은 모두 확률적으로 표현할 수 있는 확률변수이고, 이 확률변수들이 어떠한 분포(예를 들어 정규분포)를 따른다고 가설을 세우고 난 후에 실제로 이 분포를 따르는지를 검증하는 것이 앞으로 배우는 대부분의 것이다. 

 

이것이 우리가 t분포, 중심극한정리 등 복잡하고 어려운 수식들을 배우는 이유라고 볼 수 있다.

그래서 여러 통계적 개념들을 배울 때에는 새로운 개념이 무엇인지를 이해하는 것도 중요하지만, 이후에 어떠한 확률변수 데이터들을 마주쳤을 때 어떠한 분포를 따를 것이다라는 후보군을 떠올릴 수 있도록 분포가 가지고 있는 특성과 전제, 그리고 그 분포를 따른다는 것을 어떻게 검증하는지를 공부하고 이해해 두는 것이 중요하다.