머신 러닝 확률 과 통계 | 머신 러닝에서 사용되는 수학: 수학을 잘 해야 할까? 답을 믿으세요

당신은 주제를 찾고 있습니까 “머신 러닝 확률 과 통계 – 머신 러닝에서 사용되는 수학: 수학을 잘 해야 할까?“? 다음 카테고리의 웹사이트 you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: https://you.tfvp.org/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 코드잇 이(가) 작성한 기사에는 조회수 16,569회 및 좋아요 230개 개의 좋아요가 있습니다.

머신 러닝 확률 과 통계 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 머신 러닝에서 사용되는 수학: 수학을 잘 해야 할까? – 머신 러닝 확률 과 통계 주제에 대한 세부정보를 참조하세요

머신 러닝을 배우려면 꼭 알아야 할 것 같은 수학.
근데 어떤 수학이 머신 러닝에 이용되는 걸까요?
머신 러닝을 배우기 위해서 수학을 꼭 잘해야 하는 걸까요?

머신 러닝에 대해 더 자세히 배워보고 싶다면
코드잇 ‘머신 러닝’ 강의를 확인해보세요!
👉 https://bit.ly/2UtSSyR

머신 러닝 확률 과 통계 주제에 대한 자세한 내용은 여기를 참조하세요.

머신러닝(Machine Learning)과 확률(Probability)

그 과정에서 선형대수에 관련된 문서나 글을 읽을 일이 많아 선형대수가 중요하다는 것은 알겠는데, 확률과 통계는 그럼 진짜 중요한가? 하는 의문이 들기 …

+ 여기에 보기

Source: devkihyun.github.io

Date Published: 1/20/2022

View: 837

Chapter 6. 통계 기반 머신러닝 1 – 확률분포와 모델링

주로 식별과 예측 등을 목적으로 둘 때가 많으므로 데이터를 선형 결합으로 나타내려는 특성을 이용합니다. 자율학습(Unsupervised Learning) : 입력 데이터의 정답을 …

+ 여기에 더 보기

Source: artificialnetworkforstarters.readthedocs.io

Date Published: 12/21/2022

View: 7110

2.6. 확률과 통계

확률과 통계¶. 머신 러닝은 어떤 방식이든지 결국 예측을 수행하는 것입니다. 어떤 환자의 의료 기록을 바탕으로 내년에 심장 마비를 겪을 확률 예측하기를 예로 들어 …

+ 여기에 표시

Source: ko.d2l.ai

Date Published: 6/27/2021

View: 8148

[딥러닝 입문 5] 확률·통계의 기초(1/5) – 두우우부

여기서는 기계학습에 이용하는 확률, 통계의 개념과 용어를 설명합니다. 세상에는 ‘무작위’로 일어나는 사건이나 배경의 메커니즘을 모르기 때문에 …

+ 여기에 자세히 보기

Source: doooob.tistory.com

Date Published: 8/2/2021

View: 6605

확률(Probability)과 딥 러닝(Deep Learning) – 지그시

딥러닝의 학습 방법은 확률론에 기반을 두고 있다. 특히, 기계학습의 손실함수는 데이터 공간을 통계적으로 해석하여 유도하게 된다. 즉, 예측이 틀리는 …

+ 여기에 더 보기

Source: glanceyes.tistory.com

Date Published: 1/30/2022

View: 8791

[통계분석] 01. 확률분포는 머신러닝에서 어떻게 사용될까?

도수분포표를 만드는 과정은 다음과 같습니다. 1. 데이터의 개수를 센다. 2. 데이터 내에서 최대/최소값을 찾는다. 3. 몇 개의 구간으로 나눌지 …

+ 여기에 더 보기

Source: ssung-22.tistory.com

Date Published: 11/29/2021

View: 6694

딥러닝을 위한 수학, 확률과 통계

인공지능 시스템의 행동을 분석하기 위해 확률과 통계를 사용한다. 또 일반적인 컴퓨터 과학과는 다르게 기계학습은 대부분 불확실한 것과 확률적인 …

+ 여기에 표시

Source: www.sallys.space

Date Published: 3/30/2022

View: 3269

머신 러닝을 위한 수학(4) – 확률과 통계 :: Methimazole

확률과 통계 모집단 -> 전체 데이터의 집합 모수 -> 평균, 표준편차 등의 모집단의 특성을 나타내는 수 표본 -> 모집단에서 일부 추출한 것 통계량 …

+ 자세한 내용은 여기를 클릭하십시오

Source: dndi117.tistory.com

Date Published: 9/14/2021

View: 1479

주제와 관련된 이미지 머신 러닝 확률 과 통계

주제와 관련된 더 많은 사진을 참조하십시오 머신 러닝에서 사용되는 수학: 수학을 잘 해야 할까?. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

머신 러닝에서 사용되는 수학: 수학을 잘 해야 할까?
머신 러닝에서 사용되는 수학: 수학을 잘 해야 할까?

주제에 대한 기사 평가 머신 러닝 확률 과 통계

  • Author: 코드잇
  • Views: 조회수 16,569회
  • Likes: 좋아요 230개
  • Date Published: 2020. 6. 10.
  • Video Url link: https://www.youtube.com/watch?v=3Fd8wXidxtY

머신러닝(Machine Learning)과 확률(Probability)

안녕하세요. 이번 시간에는 머신러닝과 확률을 얘기하려고 합니다. 최소한 김성훈 교수님의 모두의 딥러닝 강의를 이수한 수준은 필요로 하고 기본적으로 고등학교 수준의 확률과 통계를 알고 있다고 여기고 진행하겠습니다.

확률론적 관점

최근엔 잘 만들어진 딥러닝 프레임워크들이 많아 코딩만 할 줄 알면 딥러닝에 대해 깊이 있게 알지 않아도 데이터와 코드 몇 줄만으로도 그럴듯한 결과물을 얻을 수가 있습니다. 그래서 딥러닝 개발의 진입 장벽이 많이 낮아졌다고 할 수 있죠. 그 과정에서 선형대수에 관련된 문서나 글을 읽을 일이 많아 선형대수가 중요하다는 것은 알겠는데, 확률과 통계는 그럼 진짜 중요한가? 하는 의문이 들기도 합니다. 중요하다는 얘기는 많이 들었는데 정작 체감을 못 하기 때문입니다. 그래서 이번엔 우리가 알고 있는 딥러닝 모델을 확률론적인 관점에서 해석해보고자 합니다.

분류 문제(Classification) 를 예시로 한번 들어보겠습니다. 우리가 딥러닝으로는 제일 먼저 해보게 되는 게 아마 MNIST 숫자 손글씨 데이터 로 해당 숫자를 분류해보는 과제일 겁니다. MNIST는 숫자 데이터 X와 클래스 Y(라벨)가 쌍으로 구성된 데이터셋 입니다. 단순하게 베이직한 뉴럴네트워크로 이루어져 있는 모델이 있다고 하면, 우리가 입력값으로 X를 넣으면, 모델이 계산한 결과(Output)를 Y랑 비교하면서 잘 분류가 되도록 학습됩니다. 즉, 이 모델은 데이터 X를 잘 이해해서 해당 클래스 Y를 ‘예측’ 할 수 있는 ‘함수’ 를 알아내는 겁니다. 보통은 이 학습과정을 선형대수로도 충분히 설명할 수 있습니다. 지금까지 설명한 내용을 아래의 그림으로 간단히 정리해보겠습니다.

그림출처 http://sanghyukchun.github.io/58/

여기서 알고리즘 A가 바로 데이터를 잘 분석한 ‘함수’ 가 되는 것입니다. 근데 이 ‘함수’ 부분을 확률론적 관점 으로 해석해 볼 수가 있습니다. 본격적으로 확률론적 관점을 설명하기에 앞서 몇 가지 확률 개념을 소개하도록 하겠습니다.

확률 (Probability)

확률(Probability)은 해당 사건(event) 이 일어날 가능성을 의미합니다. 확률 이라는 개념은 관점에 따라 설명하는 게 달라집니다. 기존의 우리가 잘 알고 있는 확률의 개념은 해당 사건의 빈도수를 따져 그 사건이 발생할 가능성을 의미합니다. 보통 실험적인 성향을 갖는 반복되는 시도를 통해 사건의 빈도수를 측정해서(ex. 동전 던지기, 주사위 던지기) 확률값 을 계산합니다. 이런 경우를 Frequentist probability 라고 합니다. 다른 관점으로는 Bayesian Probability 가 있습니다. 확률을 지식 또는 믿음의 정도를 나타내는 양 으로 해석하는 확률론입니다. Bayesian Probability 은 다음 시간에 설명하도록 하겠습니다.

확률 변수 (Random Variable)

확률 변수(Random Variable)는 발생가능한 모든 사건(event) 들의 집합인 표본공간 안에서 특정한 확률을 가지고 발생하는 사건을 특정 수치에 대응(mapping)시키는 함수 입니다. 함수 라는 것이 중요한 부분입니다. 그래서 확률 변수를 대문자 \(X\) 로 표기하고, 확률 변수에서 나온 값은 소문자 \(x\) 로 표기합니다. 확률변수가 취할 수 있는 모든 실수(\(x\))들의 집합을 상태공간(State Space) 이라 합니다.

예시를 들어 진행해보겠습니다. 동전 하나를 2번 던지면 앞면앞면, 앞면뒷면, 뒷면앞면, 뒷면뒷면 총 4가지 사건이 발생 할 수 있습니다. 앞면이 나오는 횟수로 실수값을 부여하면 상태공간은 {0,1,2} 가 되는 것이죠. 우리는 이렇게 사건을 실수로 매핑 할 수 있습니다. 확률변수가 가질 수 있는 값들 중에서 한 \(x\) 가 있고 확률변수 X에서 그 \(x\) 가 나올 확률로 대응 해주는 확률 함수 를 \(P\) 라고 하겠습니다. 확률 함수 를 이용해서 예시를 수식으로 표현하면 \(P(X = 0) = 1/4\), \(P(X = 1) = 1/2\), \(P (X = 2) = 1/4\) 가 됩니다. 간단히 정리하면, \(P(X = x)\) 는 사건(event)이 발생할 확률을 의미하는 게 아니라 확률변수 \(X\) 에서 실수 \(x\) 나올 확률을 의미합니다. 예시로 들었던 상태공간의 값들인 0,1,2는 이산적(discrete)이기 때문에 방금과 같은 확률변수 \(X\)는 이산확률변수(discrete random variable) 입니다. 만약 확률변수 \(X\) 가 연속적(continuous)이면 연속확률변수(continuous random variable) 이죠. 데이터도 마찬가지입니다. 어떠한 사건이 발생했으니깐 그게 데이터로 남는 거겠죠? 따라서 데이터는 사건이라는 것을 명심하기 바랍니다.

그럼 잠시 돌아와서 분류 문제 를 다시 떠올려 봅시다. 우리의 분류모델을 말로 설명해 보면 ‘입력값 X를 넣어주면 모델에서 Y가 나올 확률’ 이라고 할 수 있습니다. 여기서 X,Y는 아까 확률변수로 표기한 \(X\), \(Y\) 를 의미하는게 아니라, 보통 데이터의 입력과 라벨을 표기할때 관행상 X,Y 라고 표기하기 때문에 헷갈리시면 안됩니다. 그럼 이제 구하고자 하는 Y는 사건(event) 이라 볼 수 있습니다. 그러고 나서 Y를 어느 특정 실수들로 일대일 매핑을 해주면 그 과정이 확률변수가 되는 거죠. 근데 조금 찝찝한 부분이 남아 있습니다. 그럼 입력값 X는 뭐로 이해하면 될까요? 그건 뒤에서 다시 얘기하도록 하고 이 정도까지만 이해하고 넘어가도록 하겠습니다.

확률 분포 (Probability Distribution)

확률 분포는 이 확률변수 \(X\) 이 취할 수 있는 모든 \(x\) 와 그에 대한 확률값들이 어떻게 분포되어 있는지를 말해줍니다. 그림을 보시면 바로 이해되실겁니다.

그림출처 https://www.statisticsfromatoz.com/blog/statistics-tip-of-the-week-different-distributions-can-have-discrete-or-continuous-probability-graphs-for-discrete-or-continuous-data

셀 수 있는 이산확률변수 를 확률함수 \(P\) 에 넣으면 그래프에 결과값들이 점 처럼 찍히게 됩니다. 또는 왼쪽 그림처럼 히스토그램처럼 그릴 수도 있습니다. 하지만 셀 수 없는 연속확률변수 를 \(P\)에 넣어주면 점이 모여서 선 이 되는 것처럼 오른쪽 그림의 분포를 그리게 됩니다. 따라서 확률함수 \(P\) 가 곧 확률 분포다 라고 할 수 있습니다. 좀 더 나아가서 \(P(X)\) 는 확률변수 \(X\) 에 대한 확률 분포 라고도 할 수 있습니다.

이산확률분포는 확률 질량 함수, Probability mass function(PMF)으로 나타냅니다. 연속확률분포는 확률 밀도 함수, Probability density function(PDF)으로 나타냅니다. 이산확률분포는 특정값 \(x\) 에 대한 정확한 확률값을 표현할 수 있습니다. 반면에 연속확률분포는 셀 수 없는 확률 변수들의 분포이기 때문에 특정값 \(x\) 에 대한 정확한 확률값을 표현할 수 없습니다. 그 대신 정해진 구간 \(a \leqslant x \leqslant b\) 에서의 수치를 표현합니다.

우리가 사건을 예측하기 위해서 해당 사건의 확률을 계산합니다. 그러기 위해선 결국 확률 분포를 구해야 합니다. 머신러닝의 학습과정이 바로 그 확률 분포를 찾는 것입니다. 일단 여기서 한번 그림으로 정리해보겠습니다.

조건부 확률 (Conditional Probability)

조건부 확률의 사전적 정의는 어떤 사건이 일어난 조건이 있을 경우 다른 사건이 일어날 확률이라고 정의합니다. 하지만 이렇게 말하기보다는 ‘어떤 사건이 일어날 확률을 구하는 과정에서 또 다른 사건을 단서로 제공한다’ 고 말하는 게 더 옳습니다. 제공되는(given) 사건이 A라고 하고 우리가 구하고자 하는 사건 B에 대한 조건부 확률을 기호로 나타내면 \(P(B \mid A)\) 라고 할 수 있습니다. 우리의 관심사는 B이고 그 단서로 A를 고려를 하는 거죠.

잠시 머신러닝 얘기로 돌아오도록 하죠. 우리는 앞에서 분류모델을 ‘입력값 X를 넣어주면 모델에서 Y가 나올 확률’ 이라고 표현했습니다. 그럼 방금 우리가 배운 조건부 확률에다가 적용해 볼 수 있지 않을까요? 입력값 데이터 X 를 단서로 주었더니 라벨 데이터 Y가 나올 확률이니 \(P(Y \mid X)\) 일 것 같지 않나요? 이렇게 표현하는게 가능은 합니다. 하지만 주의해야 될 점이 있습니다.

앞서 말했듯이 데이터 쌍 X,Y는 사건(event)이고 조건부확률 \(P(Y \mid X)\) 의 \(X, Y\) 는 확률 변수입니다. 따라서 데이터 X,Y를 바로 확률변수 \(X,Y\) 로 취급해서 넣으시면 잘못된 표현이 됩니다. 개념상 확률분포는 사건(event)이 아닌 매핑된 수치 를 입력값으로 받아드립니다. 그러나 실제로는 데이터들은 대부분은 숫자입니다. 예를 들어 28×28 크기의 사진이라는 데이터가 있다고 하면, 이 사진은 사건이기도 하지만 0부터 255 사이의 정수값을 갖는 28×28, 총 784 개의 픽셀들이 모여있는 하나의 수치이기도 합니. 확률함수의 입력값은 확률변수에 의해 나온 수치들이 된다는 것을 생각해보면 데이터들 \(x_{1}, x_{2}, …, x_{n}\) 으로 이루어진 데이터 집합 X를 확률변수 \(X\)로 여기고 표현해도 크게 문제가 되지는 않습니다. 만약 엄격하게 명시하고 간다면 데이터 X,Y 에 포함되는 특정값 x,y 가 있다고 하면

\[P(Y=y \mid X=x)\]

라고 표현하는게 맞습니다. 엄격하게 얘기해야 되는 상황에선 제대로 표기하시면 되고 이번 시간에는 설명의 편의를 위해 \(P(Y \mid X)\) 로 하겠습니다. 다시 정리하면 아래와 같습니다.

\[Given: 입력값 X\] \[Interest: 라벨 Y\]

입력값 X를 넣어주면 Y가 나올 확률

가능도 (Likelihood)

\[P(Y \mid X)\]

우리가 만약 확률 분포를 알고 있다면, 우리는 해당 분포에 확률 변수를 넣어 바로 확률을 계산할 수 있습니다. 하지만 현실에선 데이터가 매우 많고 또 데이터 차원이 높은 경우가 많아 확률 분포를 알아내는 것이 쉽지가 않습니다. 실전에선 관측 값(데이터)만 주어지고 확률 분포를 알아내야 하는 경우가 대부분이라고 생각하시면 됩니다. 이 얘기는 이제 우리는 확률 분포가 뭔지 모르니깐 어떠한 특정 확률 분포를 미리 가정 하고 시작하자는 것입니다. 그리고 ‘그 가정한 확률 분포에다가 우리한테 주어진 관측값을 넣었을 때 나오는 확률값’ 을 Likelihood 라고 합니다.

어떠한 확률 분포가 있다고 하면 분명 그 확률 분포를 구성하는 Parameter 가 있을 것입니다. 이제부터 Parameter 를 \(\theta\) 로 표기하도록 하겠습니다. 예를 들어 y 라는 확률 분포가 y = ax+b 라는 방정식을 이루고 있다고 가정해봅시다. 그러면 x는 우리한테 주어진 관측값이라고 할 때 y의 값은 Likelihood 가 되고 그 값이 어떻게 나올지는 a 와 b가 결정하게 됩니다. 그럼 a와 b가 y 라는 확률 분포의 \(\theta\) 가 되는 것입니다. \(\theta\) 는 언제든 바뀔 수 있는 ‘변수’ 입니다. 이 \(\theta\) 가 어떤 값을 갖는지에 따라 해당 확률 분포의 모양이 결정되는 것이죠.

그러면 Likelihood 도 확률분포의 결과값이고 확률 도 확률분포의 결과값이면 이 둘은 같은 개념일까요? 엄밀히 말하자면 이 둘은 같지 않습니다. 가설 로 세워진 확률 분포에 대해서 관측값을 넣어서 나온 결과값은 Likelihood 이고, 반대로 실제 고정된 확률 분포에 관측값을 넣었을 때 나온 결과값이 확률 입니다. 즉, Likelihood 는 언제든 \(\theta\) 가 바뀌면 관측값은 고정이어도 결과값이 다르게 나올 수 있습니다. 그래서 Likelihood 를 \(\theta\) 에 대한 확률이라고 말하기도 합니다. 가정한 \(\theta_{hypothesis}\) 가 실제 확률 분포의 \(\theta_{real}\) 와 얼마나 가까운지로 얘기 할 수 있다는 거죠.

\(Given\) \(\theta : Probability\)

\(Given\) \(observed\) \(X : Likelihood\)

Likelihood 개념을 들여다보면 사실 주 관심사는 \(\theta\) 라고 할 수 있죠. 우리가 확률 분포를 가정한 이유는 실제 데이터에 대한 확률 분포를 알 지 못하기 때문입니다. 그럼 확률 분포를 가정하고 나서 관측한 데이터들이 잘 표현되도록 \(\theta\) 를 조절하면 실제 확률 분포와 비슷하지 않을까요? 그럼 잘 표현하려면 어떻게 해야될까요? 우리는 확률 분포를 추정하는 방법 중에서 최대우도추정법(MLE, Maximum Likelihood Estimation) 사용하도록 하겠습니다.

최대우도추정법 (Maximum Likelihood Estimation)

MLE 는 각 관측값에 대한 총 가능도(모든 가능도의 곱)가 최대가 되는 분포를 찾는 추정법입니다. 원리는 굉장히 간단합니다. 가정한 분포를 이루는 \(\theta\) 를 업데이트 해가면서 분포를 움직인다고 생각하시면 됩니다. 계속해서 움직이다 보면 분명 Likelihood 가 제일 큰 부분에 오게 될테고 우리는 잘 추정했다고 결론 내리는 것입니다.

딥러닝도 역시 가설을 세우고 그 가설이 최대화되는 \(\theta\) 를 찾도록 역전파(Backpropagation) 방식으로 \(\theta\) 를 업데이트 합니다. 따라서 확률론적인 관점으로 보면 MLE 를 통해 \(\theta\) 를 업데이트해서 확률 모델을 최대화하는 게 가능한 것입니다.

이제 우리는 ‘실제 확률 분포는 모르지만 분명 뭔가 있을 거다’ 라고 확신 을 갖고 임의의 확률 분포를 가정하기로 약속했습니다. 그러면 어떻게 가정을 해야 되는 걸 까요? 다행히 그냥 유명한 확률 분포들을 선택해서 가정해도 충분합니다. 이산 확률 분포로는 푸아송 분포, 이항 분포, 베르누이 분포 등이 있고 연속확률분포는 유명한 가우시안 분포(Gaussian Distribution) 있습니다. 가우시안 분포는 정규 분포(Normal Distribution) 라고도 합니다.

정규 분포 (Normal Distribution = Gaussian Distribution)

통계학에서 정규 분포는 굉장히 자주 쓰이는 중요한 분포입니다. 자연계에서 발생하는 현상들 중 거의 대부분은 분포가 정규 분포로 매우 가깝게 표현되는 경우가 많기 때문이죠. 그래서 확률 분포를 가정해야 하는 경우에는 대부분 정규 분포로 가정해도 무방합니다. 우리가 딥러닝을 공부하면서 다룰 데이터들 또한 자연계에서 관측된 데이터들인 경우가 많습니다. 따라서 이에 대한 분포를 모를 경우엔 과감하게 정규 분포로 가정해도 크게 문제가 되진 않습니다.

정규 분포의 또 하나의 장점은 평균(\(\mu\)) 과 표준편차(\(\sigma\))만 알면 언제든지 정규 분포를 그릴 수 있다는 점입니다. 즉, 정규 분포를 구성하는 \(\theta\) 는 평균(\(\mu\)) 과 표준편차(\(\sigma\))가 되는 것이죠. 그럼 가정한 분포가 정규 분포라고 하면 MLE 를 이용해 Likelihood 가 최대화되도록 업데이트되는 \(\theta\) 는 당연히 평균과 표준편차가 되는 것입니다. 이제 그림으로 한번 정리해 보겠습니다.

Y는 확률 변수입니다. 그 확률변수 Y에 대해 실제 확률 분포(모르지만)는 \(f_{r}(Y)\) 이고 우리가 가정한 확률 분포는 \(f_{h}(Y)\) 입니다. \(f_{h}(Y)\) 를 구성하는 \(\theta\) 는 \(\mu\) 와 \(\sigma\) 입니다. y 라는 특정값에 대해 \(f_{h}(y)\) 는 Likelihood 이고 \(f_{r}(y)\) 는 확률 입니다.

\(f_{h}(y)\) 가 \(f_{r}(y)\) 보다 낮은 값을 가진 것을 볼 수 있습니다. 만약, 우리가 가정한 확률 분포가 실제 확률 분포랑 같다고 하면 이 두 결과값은 동일해야 됩니다.

이 그림은 MLE 가 대략 어떻게 돌아가는지 시각적으로 표현한 것입니다. \(\mu\) 의 변화에 따라 정규 분포의 위치도 바뀌게 되면서 동시에 Likelihood 도 높아지게 됩니다. 이렇게 높아지도록 계속해서 이동하게 되면 언젠가는 Likelihood 가 실제 확률 분포의 확률값과 같게 되겠죠. 하지만 앞에서도 말했듯이 우리는 실제 분포가 어떻게 되는지 알 수가 없기 때문에 사실 y 에 대한 확률값을 구할 수가 없습니다. 그 얘기는 관측값에 대한 Likelihood 가 어떤 값이 되어야 되는지 모른다는 것이죠. 다행히도 Likelihood 가 최대가 되는 경우는 우리가 알 수 있습니다. 정규 분포 특성상 \(\mu\) 에 대한 Likelihood 가 제일 높기 때문에 \(\mu\) 가 최대한 관측값들과 가까운 위치에 놓이면 되는 것입니다.

이렇게 해서 우리는 확률 분포를 가정하고 관측값에 대해 가장 가능성 있는 \(\theta\)를 추정하는 방법까지 알아보았습니다. 이제 남은 것은 지금까지 배운 개념들을 이용해서 실제 분류모델의 출력이 나오는 과정을 이해하는 것만 남았습니다.

분류모델은 \(P(Y \mid X)\) 라는 확률 분포를 알아내야 합니다. 그러나 실제 확률 분포를 알 수 없기 때문에 정규분포라고 가정할 것입니다. 그러면 우리가 알아야 하는 것은 정규분포를 이루는 \(\theta\) 입니다. 즉, \(X\) 가 주어졌을 때(Given) \(Y\) 에 대한 확률 분포의 최적의 \(\theta\) 를 알아내는 것이죠. 딥러닝에서는 역전파(Backpropagation) 을 통해서 더 이상의 변화가 없을 때까지 \(\theta\) 를 업데이트합니다. 이것을 Maximum Likelihood Estimation 으로 해석이 가능한 것이죠.

근데 궁금한 것이 생겼습니다. 확률 분포가 \(P(Y)\) 가 아니라 \(P(Y \mid X)\) 라면 어떤 모양을 이루게 되는 걸까요? 조건부확률의 경우에는 확률 분포는 조건부확률분포(Condtional Distribution) 라고 합니다. 관심사인 확률변수 \(Y\) 에 대한 확률 분포는 주어진 단서인 또 다른 확률변수 \(X\) 까지 고려해서 확률 분포를 이루게 됩니다. 고려해야 하는 확률 변수가 많아지게 된다면 확률 분포 또한 앞에선 본 것처럼 단순한 2차원 평면으로 표현하기가 힘들어집니다. 아래는 이해를 돕기 위한 자료입니다.

그림출처 https://assessingpsyche.wordpress.com/2014/01/23/conditional-normal-distributions-provide-useful-information-in-psychological-assessment/

이렇게 확률 변수가 많아지게 되면 분포는 입체적으로 됩니다. 위의 경우엔 \(Z\)축에 확률 분포가 놓이게 되는거죠. 현실에서는 데이터가 고차원이고 다변수의 경우도 많아 확률 분포를 계산하기가 어려워집니다. 하지만 분포가 복잡하다 해도 결국 관측값을 통해서 \(\theta\) 를 찾아야 된다는 것은 변함이 없습니다. 아래 그림은 \(P(Y \mid X)\) 를 평면도로 좀 더 간단하게 표현한 그림입니다.

분류문제에서는 이런 식으로 분포가 추정된다고 이해하시면 됩니다. 그럼 이제 우리가 마지막으로 알고 싶은 게 있습니다. 머신러닝의 학습을 확률론적 관점으로 해석하는 건 알았는데, 그럼 확률 분포를 알아내면 딥러닝에서는 어떻게 결과값을 뽑아서 라벨 \(Y\)와 비교를 하는걸까요?

딥러닝에선 hidden layer 있는 Weight 와 Bias 가 입력값과 연산되어서 결과값을 내고내고 해당 라벨과 비교했습니다. 확률론적 관점에선 위의 그림의 \(Y\)축에는 분명 확률 변수 \(Y\)에 속한 \(y\) 값들이 있을 겁니다. 우리가 가정한 확률분포는 \(X\) 를 고려한 \(Y\)에 대한 분포이고, 그 다음 MLE 를 통해 \(\theta\) 를 업데이트 해줍니다. \(\theta\) 는 확률 분포를 구성하는 변수이지만, 가장 높은 확률을 갖는 확률 변수이기도 합니다. 따라서 \(\theta\) 를 관심사로 둔 확률 변수 \(Y\) 와 동일선상에 놓고 다룰 수 있는거죠. 제대로 학습이 되었다면 그 확률 분포의 \(\theta\) 는 알고자 하는 해당 라벨 \(y\) 와 같은 값을 내보내게 될 것입니다. 우리가 이번 시간에선 정규 분포로 가정해서 하기로 했으니깐 \(\theta\)는 당연히 \(\mu\) 와 \(\sigma\) 겠죠? 편의상 \(\mu\) 만 구하자고 하면 아래와 같습니다.

그리고 나서 여러분들은 얻어낸 \(\theta\) 와 \(Y\)를 적합한 Loss function 을 이용해 계산해주시면 됩니다.

이렇게 해서 우리는 분류문제의 모든 과정을 최대한 확률론적 관점으로 설명을 했습니다. 결국 \(\theta\)를 알아야 한 다는 점에선 기존과 크게 다를건 없습니다. \(\theta\) 를 관심사로 두게 되면 우리는

\[P(Y \mid X) = P_{\theta}(Y \mid X)\]

라고 다시 표현할 수 있습니다. 달라진 부분은 크게 없고 말하는 의미가 조금 달라졌을 뿐입니다. \(P_{\theta}(Y \mid X)\) 을 해석을 하자면 \(X\) 가 주어졌을 때 \(Y\) 가 나올 경우를 최대화 하는 \(\theta\) 를 찾을 거다 라고 이해하면 됩니다. 딥러닝 논문들을 읽다보면 \(P_{\theta}(Y \mid X)\) 의 표현도 자주 나오기 때문에 마무리 하기 전에 잠시 짚어보았습니다.

마치며

지금까지 확률론의 기초적인 개념들을 다시 배우면서 확률론적 관점으로 머신러닝을 해석하는 시간을 가졌습니다. 다음번에 포스팅 할 Variational Autoencoder 개념을 이해하기 전에 알아두기 위한 차원에서 최대한 수식을 사용하지 않고 설명했기 때문에 다소 명확하지 않은 부분도 있을 수도 있습니다. 긴 글 읽으시느라 수고하셨고 피드백 언제든지 환영합니다.

Reference

확률분포와 모델링 — ArtificialNeuralNetworkForNewbie 0.0.1 documentation

베이즈 네트워크¶

베이즈 네트워크 는 acyclic and directed graph와 a set of nodes, a set of link를 통해 random variable을 conditionally independent하게 표현하는 graphical notation입니다.

Typical Local Structure

2.6. 확률과 통계 — Dive into Deep Learning documentation

2.6. 확률과 통계¶

머신 러닝은 어떤 방식이든지 결국 예측을 수행하는 것입니다. 어떤 환자의 의료 기록을 바탕으로 내년에 심장 마비를 겪을 확률 예측하기를 예로 들어볼 수 있습니다. 비정상 탐지를 위해서, 비행기 제트 엔진의 센서 데이터가 정상적으로 동작할 때 어떤 값을 갖게 될지 예측을 할 수도 있습니다. 강화학습에서는 에이전트가 주어진 환경에서 똑똑하게 동작하게 만드는 것이 목표입니다. 이 경우에는 주어진 행동들 중에 가장 높은 보상을 받는 확률을 고려해야합니다. 추천 시스템을 만드는 경우에도 확률을 고려해야합니다. 예를 들어 여러분이 대형 온라인 서점에서 일을 한다면, 어떤 책을 홍보했을 때 특정 사용자가 그 책을 구매할지에 대한 확률을 추정하고 싶어할 것입니다. 이를 위해서 우리는 확률과 통계의 언어를 사용할 필요가 있습니다. 확률을 다루는 별도의 과정, 전공, 논문, 직업 심지어는 부서까지도 있습니다. 이 책의 목표는 이 모든 주제들에 대해서 배워보는 것은 아니고, 여러분이 스스로 머신 러닝 모델을 만들 수 있을 정도의 내용을 알려주고, 이후에 스스로 공부해 볼 수 있는 주제들을 선택할 수 있도록 하는 것입니다.

지금까지 확률에 대해서 많이 이야기를 해왔지만, 확률에 정확하게 무엇인지를 설명하지 않았고 구체적인 예제를 들지는 않았습니다. 동물의 사진이 주어졌을 때, 고양이인지 개인지를 구분하는 문제를 조금 자세하게 살펴 보겠습니다. 이 문제는 간단해 보이지만, 사실 쉽지 않은 문제가 있습니다. 우선은 문제의 난이도가 이미지의 해상도에 따라 차이가 있을 수 있습니다.

10px 20px 40px 80px 160px

사람이 320 픽셀 해상도의 이미지에서 개와 고양이를 구분하는 것은 쉽습니다. 하지만, 40 픽셀이 되면 그 분류가 어렵고, 10픽셀로 줄어들면 거의 불가능합니다. 즉, 개와 고양이를 먼 거리에서 판별하는 것은 (또는 낮은 해상도의 이미지에서) 동전 던지기를 해서 추측하는 것과 동일해집니다. 확률은 확실성에 대한 추론을 하는 공식적인 방법을 제공합니다. 만약, 이미지에 고양이가 있다는 것을 완벽하게 확신한다면, 해당 레이블 \(l\) 이 고양이일 확률, \(P(l=\mathrm{cat})\) 는 1.0이라고 말합니다. 만약 \(l =\mathrm{cat}\) 인지 \(l = \mathrm{dog}\) 에 대한 아무런 판단을 못한다면, 두 확률은 동일하다고 하다고 말하며, \(P(l=\mathrm{cat}) = 0.5\) 이 됩니다. 만약 이미지에 고양이가 있다는 것을 확실하지는 않지만 어느 정도 확신한다면, 확률은 \(.5 < P(l=\mathrm{cat}) < 1.0\) 로 주어질 것입니다. 이제 두번째 예를 들어보겠습니다. 대만 날씨에 대한 데이터를 관찰한 데이터가 있을 때, 내일 비가 내릴 확률을 예측하고자 합니다. 여름인 경우에는 비가 내릴 확률이 \(0.5\) 정도가 될 것입니다. 위 두가지 예제 모두 살펴볼 가치가 있습니다. 두 경우 모두 결과에 대한 불확실성이 있지만, 주요 차이점이 있습니다. 첫번째 예제는 이미지가 고양이인지 개이지만, 우리가 어떤 것인지 모르는 경우이고, 두번째 예제는 결과가 실제로 임의로 일어나는 이벤트일 수도 있습니다. 즉, 확률이란 우리의 확실성에 대한 사고를 하기 위한 유연한 언어이며, 다양한 경우에 효과적으로 적용될 수 있습니다. 2.6.1. 기초 확률 이론¶ 주사위를 던져서 다른 숫자가 아닌 1일 나오는 확률이 얼마나 되는지 찾는 경우를 생각해보겠습니다. 주사위가 공정하다면, 모든 6개 숫자들, \(\mathcal{X} = \{1, \ldots, 6\}\), 은 일어날 가능성이 동일합니다. 학술 용어로는 “1은 확률 \(\frac{1}{6}\) 로 일어난다”라고 말합니다. 공장에서 막 만들어진 주사위에 대해서 우리는 이 비율을 알지 못할 수 있고, 주사위가 공정한지 확인해야할 필요가 있습니다. 주사위를 조사하는 유일한 방법은 여러 번 던져보면서 결과를 기록하는 것입니다. 주사위를 던질 때마다, 우리는 \(\{1, 2, \ldots, 6\}\)에 하나의 숫자를 얻게 되고, 이 결과들이 주어지면, 각 숫자들이 일어날 수 있는 확률을 조사할 수 있습니다. 가장 자연스러운 방법은 각 숫자들이 나온 횟수를 전체 던진 횟수로 나누는 것입니다. 이를 통해서 우리는 특정 이벤트에 대한 확률을 추정 합니다. 큰 수의 법칙(the law of large numbers)에 따라, 던지는 횟수가 늘어날 수록 이 추정은 실제 확률과 계속 가까워집니다. 더 자세한 논의를 하기 전에, 실제로 실험을 해보겠습니다. 우선 필요한 패키지들을 import 합니다. [1]: import mxnet as mx from mxnet import nd 다음으로는 주사위를 던지는 것을 해야합니다. 통계에서는 확률 분포에서 샘플을 뽑는 것을 샘플링 이라고 합니다. 연속되지 않은 선택들에 확률이 부여된 분포를 우리는 다항(multinomial) 분포라고 합니다. 분포(distribution) 에 대한 공식적인 정의는 다음에 다루겠고, 지금은 분포를 이벤트들에 확률을 할당하는 것 정도로 생각하겠습니다. MXNet에서 nd.random.multinomial 함수를 이용하면 다항 분포에서 샘플을 추출할 수 있습니다. [2]: probabilities = nd . ones ( 6 ) / 6 nd . random . multinomial ( probabilities ) [2]: [3] 여러 샘플을 뽑아보면, 매번 임의의 숫자를 얻는 것을 확인할 수 있습니다. 주사위의 공정성을 추정하는 예제에서 우리는 같은 분포에서 많은 샘플을 추출하기를 원합니다. Python의 for loop을 이용하면 너무 느리기 때문에, random.multinomial 이 여러 샘플을 한번째 뽑아주는 기능을 이용해서 우리가 원하는 모양(shape)의 서로 연관이 없는 샘플들의 배열을 얻겠습니다. [3]: print ( nd . random . multinomial ( probabilities , shape = ( 10 ))) print ( nd . random . multinomial ( probabilities , shape = ( 5 , 10 ))) [3 4 5 3 5 3 5 2 3 3] [[2 2 1 5 0 5 1 2 2 4] [4 3 2 3 2 5 5 0 2 0] [3 0 2 4 5 4 0 5 5 5] [2 4 4 2 3 4 4 0 4 3] [3 0 3 5 4 3 0 2 2 1]] 이제 주사위를 던지는 샘플을 구하는 방법을 알았으니, 100번 주사위를 던지는 시뮬레이션을 해서, 각 숫자들이 나온 횟수를 카운팅합니다. [4]: rolls = nd . random . multinomial ( probabilities , shape = ( 1000 )) counts = nd . zeros (( 6 , 1000 )) totals = nd . zeros ( 6 ) for i , roll in enumerate ( rolls ): totals [ int ( roll . asscalar ())] += 1 counts [:, i ] = totals 1000번을 던져본 후에 최종 합계를 확인합니다. [5]: totals / 1000 [5]: [0.167 0.168 0.175 0.159 0.158 0.173] 결과에 따르면, 모든 숫자 중에 가장 낮게 추정된 확률은 약 \(0.15\) 이고, 가장 높은 추정 확률은 \(0.188\) 입니다. 공정한 주사위를 사용해서 데이터를 생성했기 때문에, 각 숫자들은 \(1/6\) 즉 \(0.167\) 의 확률을 갖는다는 것을 알고 있고, 예측도 매우 좋게 나왔습니다. 시간이 지나면서 이 확률이 의미 있는 추정치로 어떻게 수렴하는지를 시각해 볼 수도 있습니다. 이를 위해서 우선은 (6, 1000) 의 모양(shape)을 갖는 counts 배열을 살펴봅시다. 1000번을 수행하는 각 단계마다, counts 는 각 숫자가 몇 번 나왔는지를 알려줍니다. 그렇다면, counts 배열의 \(j\) 번째 열의 그때까지 던진 총 횟수로 표준화해서, 그 시점에서의 추정 확률 current 를 계산합니다. counts 객체는 다음과 같습니다. [6]: counts [6]: [[ 0. 0. 0. … 165. 166. 167.] [ 1. 1. 1. … 168. 168. 168.] [ 0. 0. 0. … 175. 175. 175.] [ 0. 0. 0. … 159. 159. 159.] [ 0. 1. 2. … 158. 158. 158.] [ 0. 0. 0. … 173. 173. 173.]] 던진 총 횟수로 표준화 하면, [7]: x = nd . arange ( 1000 ) . reshape (( 1 , 1000 )) + 1 estimates = counts / x print ( estimates [:, 0 ]) print ( estimates [:, 1 ]) print ( estimates [:, 100 ]) [0. 1. 0. 0. 0. 0.] [0. 0.5 0. 0. 0.5 0. ] [0.1980198 0.15841584 0.17821783 0.18811882 0.12871288 0.14851485] 결과에서 보이듯이, 주사위를 처음 던진 경우 하나의 숫자에 대한 확률이 \(1.0\) 이고 나머지 숫자들에 대한 확률이 \(0\) 인 극단적인 예측을 하지만, 100번을 넘어서면 결과가 상당히 맞아 보입니다. 플롯을 그리는 패키지 matplotlib 을 이용해서 이 수렴 과정을 시각화 해봅니다. 이 패키지를 아직 설치하지 않았다면, install it 를 참고해서 지금 하세요. [8]: % matplotlib inline from matplotlib import pyplot as plt from IPython import display display . set_matplotlib_formats ( ‘svg’ ) plt . figure ( figsize = ( 8 , 6 )) for i in range ( 6 ): plt . plot ( estimates [ i , :] . asnumpy (), label = ( “P(die=” + str ( i ) + “)” )) plt . axhline ( y = 0.16666 , color = ‘black’ , linestyle = ‘dashed’ ) plt . legend () plt . show () 각 선은 주사위의 숫자 중에 하나를 의미하고, 1000번 주사위 던지기를 수행하면서 각 횟수마다 각 숫자가 나올 확률의 추정값을 나타내는 그래프입니다. 검은 점선은 진짜 확률(true probability, \(1/6\))을 표시합니다. 횟수가 늘어가면 선들이 진짜 확률에 수렴하고 있습니다. 주사위 던지기 예를 통해서 확률 변수(random variable)라는 개념을 소개했습니다. 여기서 \(X\) 로 표현할 확률 변수는 어떤 양이 될 수 있고, 결정적이지 않을 수 있습니다. 확률 변수는 여러 가능성들의 집합에서 하나의 값을 나타낼 수도 있습니다. 집합은 괄호를 이용해서 표현합니다. 예를 들면, \(\{\mathrm{cat}, \mathrm{dog}, \mathrm{rabbit}\}\) 입니다. 집합에 속한 아이템들은 원소(element) 라고 하고, 어떤 원소 \(x\) 가 집합 \(S\) 에 속한다 라고 하면 표기는 \(x \in S\) 로 합니다. 기호 \(\in\) 는 “속한다”라고 읽고, 포함 관계를 표현합니다. 예를 들어, \(\mathrm{dog} \in \{\mathrm{cat}, \mathrm{dog}, \mathrm{rabbit}\}\) 입니다. 주사위 던지는 것의 경우, 확률 변수 \(X \in \{1, 2, 3, 4, 5, 6\}\) 입니다 연속적이지 않은 확률변수(예를 들어 주사위의 6면)와 연속적인 확률변수(예를 들어 사람의 몸무게나 키) 사이에는 미묘한 차이점이 있다는 것을 기억하세요. 두 사람의 키가 정확하게 같은지를 묻는 경우는 드물 것입니다. 아주 정확한 측정 방법이 있어서 이를 적용한다면, 이 세상에 키가 완전하게 같은 사람 두사람이 없습니다. 사실, 적당히 정교한 측정을 하는 경우에도 아침에 일어났을 때의 키와 밤에 잠자기 전에 잰 키는 다르게 나옵니다. 즉, 어떤 사람의 키가 \(2.00139278291028719210196740527486202\) 미터일 확률을 물어보는 것은 의미가 없습니다. 전체 인구에 대해서도 이 확률은 거의 \(0\) 입니다. 따라서, 어떤 사람의 키가 어느 구간(예를 들면 1.99 와 2.01 미터 사이)에 속하는지를 묻는 것이 더 의미가 있습니다. 이런 경우들에는 우리는 어떤 값을 밀도(density)로 볼 가능성을 정량화 합니다. 정확하게 2.0미터인 키에 대한 확률은 없지만, 밀도는 0이 아닙니다. 서로 다른 두 키의 구간에 대해서는 확률값이 0이 아닌 수가 됩니다. 기억해 두어야할 몇가지 중요한 확률에 대한 공리(axiom)들이 있습니다. 어떤 이벤트 \(z\) 에 대해서, 확률은 절대로 음수가 아닙니다. 즉, \(\Pr(Z=z) \geq 0\)

에 대해서, 확률은 절대로 음수가 아닙니다. 즉, 두 이벤트 \(Z=z\) 과 \(X=x\) 에 대해서, 두 이벤트의 합집합(union)에 대한 확률은 각 이벤트의 확률의 합보다 클 수 없습니다. 즉, \(\Pr(Z=z \cup X=x) \leq \Pr(Z=z) + \Pr(X=x)​\) .

과 에 대해서, 두 이벤트의 합집합(union)에 대한 확률은 각 이벤트의 확률의 합보다 클 수 없습니다. 즉, . 어떤 확률 변수에 대해서, 모든 값들에 대한 확률의 합은 항상 1입니다. 즉, \(\sum_{i=1}^n \Pr(Z=z_i) = 1\) .

. 서로 겹치지 않는 두 사건, \(Z=z\) 과 \(X=x\) , t,에 대해서, 둘 중에 한 사건이 일어날 확률은 각 사건의 확률의 합과 같습니다. 즉, \(\Pr(Z=z \cup X=x) = \Pr(Z=z) + \Pr(X=x)\) .

2.6.2. 여러 확률 변수 다루기¶ 종종 하나 이상의 확률 변수를 동시에 다룰 필요가 생깁니다. 질병과 증상의 관계를 모델링하는 경우를 들 수 있습니다. 질병과 증상이 주어졌을 때, 예를 들면 ‘독감’과 ’기침’, 두개는 어떤 확률로 환자에게 일어날 수도 일어나지 않을 수 있습니다. 이 둘에 대한 확률이 작기를 기대하지만, 더 좋은 의료 처방을 할 수 있도록 확률과 둘 사이의 관계를 예측하고자 합니다. 더 복잡한 예로, 수백만 픽셀로 이루어진 이미지를 들어보겠습니다. 즉, 수백만 확률 변수가 존재합니다. 많은 경우에 이미지들은 이미지에 있는 객체를 지칭하는 레이블을 갖습니다. 이 레이블도 확률 변수로 생각할 수 있습니다. 더 나아가서는, 위치, 시간, 구경(apeture), 초점 거리, ISO, 초점, 카메라 종류 등 과 같은 모든 메타 데이터를 확률 변수로 생각할 수도 있습니다. 이 모든 것은 연관되어 발생하는 확률 변수들입니다. 여러 확률 변수를 다룰 때 몇가지 중요한 것들이 있습니다. 첫번째는 교차 확률 분포 \(\Pr(A, B)\) 입니다. 두 원소 \(a\) 와 \(b\) 가 주어졌을 때, 교차 확률 분포는 동시에 \(A=a\) 이고 \(B=b\) 일 확률이 얼마인지에 대한 답을 줍니다. 임의의 값 \(a\) 와 \(b\) 에 대해서, \(\Pr(A,B) \leq \Pr(A=a)\) 이라는 사실은 쉽게 알 수 있습니다. \(A\) 와 \(B\) 가 일어났기 때문에, \(A\) 가 발생하고, \(B\) 또한 발생해야 합니다. (또는 반대로). 즉, \(A\) 와 \(B\) 가 동시에 일어나는 것은 \(A\) 와 \(B\) 가 별도로 일어나는 것보다는 가능성이 낮습니다. 이 사실로 흥미로운 비율을 정의할 수 있습니다. 즉, \(0 \leq \frac{\Pr(A,B)}{\Pr(A)} \leq 1\). 우리는 이것을 조건부 확률(conditional probability) 이라고 부르며, \(\Pr(B | A)\) 로 표현합니다. 다시 말하면, \(A\) 가 일어났을 때 \(B\) 가 일어날 확률입니다. 조건부 확률의 정의를 이용하면, 확률에서 가장 유용하고 유명한 방정식을 도출할 수 있는데, 이것이 바로 베이즈 이론(Bayes’ theorem)입니다. 이를 도출하는 방법으로 \(\Pr(A, B) = \Pr(B | A) \Pr(A)\) 로부터 출발합니다. 대칭성을 적용하면, \(\Pr(A,B) = \Pr(A | B) \Pr(B)\) 이 돕니다. 조건 변수들 중 하나에 대해서 풀어보면 다음 공식을 얻게 됩니다. \[\Pr(A | B) = \frac{\Pr(B | A) \Pr(A)}{\Pr(B)}\] 어떤 것으로부터 다른 어떤 것을 추론(즉 원인과 효과)하고자 하는데, 반대 방향에 대한 것만 알고 있을 경우에 아주 유용합니다. 주변화(marginalization)는 이것이 작동하게 만드는데 아주 중요한 연산입니다. 이 연산은 \(\Pr(A,B)\) 로 부터 \(\Pr(A)\) 와 \(\Pr(B)\) 를 알아내는 연산입니다. \(A\) 가 일어날 확률은 모든 \(B\)에 대한 교차 확률(joint probability)의 값으로 계산됩니다. 즉, \[\Pr(A) = \sum_{B’} \Pr(A,B’) \text{ and } \Pr(B) = \sum_{A’} \Pr(A’,B)​\] 점검해야 할 아주 유용한 특성은 종속과 독립 입니다. 독립은 하나의 사건의 발생이 다른 사건의 발생에 영향을 주지 않는 것을 의미합니다. 위 경우에는 \(\Pr(B | A) = \Pr(B)\) 를 의미합니다. 그 외의 경우들은 \(A\) 와 \(B\)가 종속적이라고 합니다. 주사위를 두 번 연속으로 던지는 것은 독립적이나, 방의 전등 스위치의 위치와 방의 밝기는 그렇지 않습니다. (이 둘이 완전히 결정적이지는 않습니다. 왜냐하면, 전구가 망가질 수도 있고, 전원이 나갈 수도 있고, 스위치가 망가질 경우 등이 있기 때문입니다.) 그럼 배운 것을 테스트해보겠습니다. 의사가 환자에게 AIDS 테스트를 하는 것을 가정하겠습니다. 이 테스트는 상당히 정확해서, 환자가 음성일 경우 이를 틀리게 예측하는 확률이 1%이고, 환자가 양성일 경우 HIV 검출을 실패하지 않습니다. \(D\) 는 진단 결과를 \(H\) 는 HIV 상태를 표기합니다. \(\Pr(D | H)\) 결과를 표로 만들어보면 다음과 같습니다. 결과 HIV 양성 HIV 음성 테스트 결과 – 양성 1 0.01 테스트 결과 – 음성 0 0.99 같은 열의 값을 더하면 1이나, 행으로 더하면 그렇지 않습니다. 그 이유는 조건부 확률도 합이 확률처럼 1이여야하기 때문입니다. 테스트 결과가 양성일 경우 환자가 AIDS에 결렸을 확률을 계산해보겠습니다. 당연하게 도 이는 질병이 얼마나 일반적인가에 따라 달라집니다. 인구의 대부분이 건강하다고 가정하겠습니다. 즉 \(\Pr(\text{HIV positive}) = 0.0015\). 베이즈 이론(Bayes’ Theorem)을 적용하기 위해서 우리는 다음을 결정해야합니다. \[\begin{split}\begin{aligned} \Pr(\text{Test positive}) =& \Pr(D=1 | H=0) \Pr(H=0) + \Pr(D=1 | H=1) \Pr(H=1) \\ =& 0.01 \cdot 0.9985 + 1 \cdot 0.0015 \\ =& 0.011485 \end{aligned}\end{split}\] 따라서, 우리가 얻는 것은 다음과 같습니다. \[\begin{split}\begin{aligned} \Pr(H = 1 | D = 1) =& \frac{\Pr(D=1 | H=1) \Pr(H=1)}{\Pr(D=1)} \\ =& \frac{1 \cdot 0.0015}{0.011485} \\ =& 0.131 \end{aligned}\end{split}\] 이 결과는 99% 정확도로 테스트 결과가 양성으로 나올지라도 환자가 실제로 AIDS에 걸렸을 확률은 13.1% 밖에 되지 않는 다는 것을 의미입니다. 이 결과에서 보듯이, 통계는 매우 직관적이지 않을 수 있습니다.

2.6.3. 조건부 독립성¶ 그렇다면, 환자가 이렇게 무서운 결과를 받았을 때 어떻게 해야할까요? 아마도 환자는 의사에게 테스트를 다시 해봐달라고 요청할 것입니다. 두번째 테스트는 다르게 나왔다고 하겠습니다. (즉, 첫번째 만큼 좋지 않습니다.) 결과 HIV 양성 HIV 음성 테스트 결과 – 양성 0.98 0.03 테스트 결과 – 음성 0.02 0.97 안타깝게도 두번째 테스트 역시 양성으로 나오고 있습니다. 베이즈 이론(Bayes’ Theorom)을 적용하기 위한 필요한 확률값들을 계산해봅니다. \(\Pr(D_1 = 1 \text{ and } D_2 = 1) = 0.0003 \cdot 0.9985 + 0.98 \cdot 0.0015 = 0.00176955\)

\(\Pr(H = 1 | D_1 = 1 \text{ and } D_2 = 1) = \frac{0.98 \cdot 0.0015}{0.00176955} = 0.831\) 즉, 두번째 테스트 결과는 좋지 않다는 것에 더 확신하게 만듭니다. 두번째 결과는 첫번째 보다 덜 정확함에도 불구하고, 예측 결과를 더 향상시켰습니다. 그렇다면, 첫번째 테스트를 두번하지 않을까요? 결국, 첫번째 테스트가 더 정확했습니다. 두번째 테스트가 필요한 이유는 첫번째 테스트를 독립적으로 확인하기 위함입니다. 즉, \(\Pr(D_1, D_2 | H) = \Pr(D_1 | H) \Pr(D_2 | H)\) 이라는 암묵적인 가정을 했습니다. 통계학에서는 이런 확률 변수를 조건에 독립적이라고 하며, \(D_1 \perp\!\!\!\perp D_2 | H\) 라고 표현합니다.

2.6.4. 요약¶ 이 절에서 우리는 확률, 독립, 조건 독립, 그리고 기본적인 결론을 도출하는데 이것들을 어떻게 사용하는지를 알아봤습니다. 이 개념들은 아주 유용합니다. 다음 절에서는 나이브 베이즈 분류기(Naive Nayes)를 사용한기본적인 예측을 하는데 이 개념들이 어떻게 사용되는지 살펴보겠습니다.

2.6.5. 문제¶ \(\Pr(A)\) 과 \(\Pr(B)\) 확률로 두 사건이 주어졌을 때, \(\Pr(A \cup B)\) 와 \(\Pr(A \cap B)\) 의 상한과 하한을 구하세요. 힌트 – Venn Diagram을 사용하는 상황을 그려보세요. 연속적인 사건, 즉 \(A\) , \(B\) , \(C\) , 들이 있는데, \(B\) 는 \(A\) 에만 의존하고, \(C\) 는 \(B\) 에만 의존한다고 가정합니다. 이 경우 교차 확률(joint probability)를 간단하게 할 수 있을까요? 힌트 – 이는 Markov Chain 입니다.

[딥러닝 입문 5] 확률·통계의 기초(1

반응형

5. 확률 · 통계의 기초

여기서는 기계학습에 이용하는 확률, 통계의 개념과 용어를 설명합니다.

세상에는 ‘무작위’로 일어나는 사건이나 배경의 메커니즘을 모르기 때문에 무작위로 취급해야만 하는 사건이 존재합니다. 이러한 임의의 사건을 이론적으로 취급하자면 사건 자체나, 사건 사이의 관계를 수학적으로 설명할 수 있어야 합니다. 확률론에서는 랜덤 하게 발생한 일을 사건(event)이라고 합니다(정확한 정의는 생략합니다).

여기서는 먼저 사건을 설명하는 도구로서 확률분포를 도입하고 이와 관련된 개념(주변 확률, 조건부 확률, 확률 변수의 독립)을 설명합니다. 또한 이러한 개념을 이용하여 베이즈의 정리를 설명합니다. 베이즈 정리에 의하면, 어떤 사건이 관측되었을 때, 그 원인이 되는 사건이 일어난 확률을 계산할 수 있습니다. 다음은 확률분포 중에서 관측 데이터에 적합한 최적 확률분포를 선택하는 방법인 최대사후확률추정치(MAP 추정)을 소개합니다. 기계 학습의 맥락에서, 이들은 훈련모델의 ‘최적’ 파라미터를 결정하도록 대응합니다. 마지막으로, 기계 학습에서 자주 사용되는 통계 용어(평균, 분산, 표준편차, 상관계수 등)를 설명합니다.

5.1 확률 · 통계 및 기계학습의 관계

기계학습 시스템이 학습에 사용하는 것은 제한된 수의 관측 데이터지만, 대부분의 기계학습 태스크에서 원하는 것은 주어진 관측 데이터 뒤에 있는 보편성과 법칙을 파악하고, 미래의 사건에 대한 예측을 실시하는 것입니다. 기계학습은 그것을 달성하기 위해 통계학의 개념을 이용합니다.

통계학은 어떤 집단 전체에 대하여 조사하기 어려운 경우 집단에서 무작위 샘플링을 실시하여 원래 집단의 특성을 추정합니다. 수중에 있는 관측 데이터를 어떤 법칙에 의해 얻을수 있는 확률적인 샘플로 간주하여, 기계학습과 통계학을 연결시킵니다. 통계학을 이용하는 것으로, 어느 데이터가 미지의 데이터 원천에서 발생하기 쉬운지, 데이터가 틀렸는지, 어떤 방법으로 모델을 학습시키면 좋을지 등의 문제를 객관적으로 판단할 수 있도록 합니다. 또한 학습시킨 모델의 성능에 대한 이론적 보증도 통계에 의해 가능합니다. 이러한 기계학습의 통계적 측면을 강조할 경우를 ‘통계적 기계학습’이라고 합니다.

5.2 확률 변수와 확률 분포

현대 수학에서 널리 이용되는 ‘확률’의 개념을 공식화하기 위해 다양한 준비가 필요하므로, 이 문서에서는 ‘확률’이라는 말을 수학적으로 엄밀하게 정의하지는 않습니다. 대신 다음과 같이 생각합시다. 어느 대상으로 하는 현상에서 다양한 이벤트를 얻을 때, 각각의 이벤트마다 그것이 ‘어느 정도 일어날 것인가’라는 정도를 생각한다면, 확률은 그 정도를 말하는 것으로 합시다. 그리고 그 확률에 따라 다양한 값을 취할 수 있는 확률 변수(random variable)를 알아봅시다. 확률 변수는 이름에 ‘변수’라고 붙어 있습니다 만, ‘이벤트’를 ‘수치’로 변환하는 함수로 생각하면 쉽게 이해할 수 있습니다. 예를 들어, “동전을 던져 앞면이 나온다”는 이벤트를 ‘1’이라는 ‘수치’로 변환하고, “동전을 던져서 뒷면이 나온다”라는 이벤트를 ‘0’이라는 ‘수치’로 변환하는 함수를 생각하면, 이것은 ‘1’또는 ‘0’값 중 하나를 취할 수 있는 확률 변수(주석 1)라는 것입니다.

◇ 주석 1

여기에서는 개념의 설명을 쉽게하기 위해, 이 예와 같이 이산적인 값을 갖는 확률 변수를 고려하고, 특별히 명시하지 않는 이상 연속 값의 확률 변수는 생각하지 않기로 합니다.

그럼 확률적 현상의 예를 생각해 보겠습니다. 어느 찌그러진 주사위가 있어서, “주사위를 던져 x라는 눈이 나왔다”는 사건(주석 2)을 x라는 수치에 대응하는 확률 변수 X가 있다고 합시다. 그리고 이 확률 변수가 취할 수 있는 모든 값이 각각 어떤 확률로 출현하는지를 나타낸 표가 아래와 같습니다.

◇ 주석 2

x 는 1,2,3,4,5,6 중 하나입니다. 즉 x∈{1,2,3,4,5,6}

확률 변수 X값 그 값을 취할 확률 1 0.3 2 0.1 3 0.1 4 0.2 5 0.1 6 0.2

이러한 표를 확률 분포(probability distribution)라고 합니다. 확률 분포에는 중요한 제약이 있으며, 「확률 변수가 취할 수 있는 모든 값의 확률을 모두 더하면 합이 반드시 1이 될 것」 , 「모든 확률은 0이상의 값일 것」 이렇게 두 가지를 항상 충족시켜야 합니다. 위 표의 왼쪽 열의 수치를 실현 값이라고 하며 소문자 x로 나타냅니다. 그리고 오른쪽 열의 각각의 x에 대응하는 확률을 p(x)라고 쓸 수 있습니다. 즉 위의 표에서 p(1)=0.3, p(2)=0.1,…… 입니다. 이 표기법을 사용하면 확률 분포를 가지는 2개의 제약은 다음과 같이 나타낼 수 있습니다.

여기에서 ∑x 는 모든 가능한 x값의 합을 나타내며, 위의 주사위의 예에서는

가 되겠습니다. ∀x는 가능한 x의 모든 값에서, 오른쪽의 조건 ( p(x)≥0 )가 성립한다는 것을 의미합니다.

p(1)=0.3이라는 것은, 확률 변수 X가 1을 취할 확률입니다만, 이것을 p(X=1)=0.3으로 쓰고 있습니다. 위의 p(x)는 확률 변수 X의 존재를 암시적으로 가정하고 p(X=x)를 쉽게 표기한 것, 즉 X라는 확률 변숫값 x를 취하는 확률로 생각할 수 있습니다. 한편, p(X)와 확률 변수만을 인수로 할 경우, 위의 표와 같은 확률 분포를 보입니다.

5.3 결합 분포 · 주변 확률

앞 절에서는 하나의 확률 변수에 대하여 그 분포란 무엇인가와 분포가 가지는 제약에 대해 설명했습니다. 이 절에서는 여러 확률 변수가 등장할 경우에 대해 생각해봅시다.

먼저 구체적인 예를 들어 보면, 2개의 주사위가 있습니다. 각각의 주사위에서 나오는 눈을 2개의 확률 변수 X, Y로 나타냅니다. 이 2개의 주사위를 동시에 흔들어, 첫 번째 주사위 x값을 취하고, 두 번째 주사위 y값을 취하는 사건의 확률은 다음과 같이 표기합니다.

x, y는 모두 1,2,3,4,5,6의 6개의 숫자 중 하나입니다. 예를 들어, “3”과 “5”의 눈이 나올 사건의 확률은

로 표시됩니다. 이와 같이, X=3이 되는 승리하는 Y=5이되는 등 여러 조건을 지정했을 때, 그들이 모두 동시에 성립할 확률을 동시 확률 (joint probability) 이라고합니다.

그럼 다음으로, 2개의 주사위를 별도로 살펴봅시다. 예를 들어, “첫 주사위 눈이 3″이라는 사건이 일어날 확률 p(X=3)은 첫 번째 주사위가 3이고, 두 번째 주사위가 1일 경우 / 2일 경우 / 3일 경우 /… / 6일 경우, 이렇게 6개의 패턴이 발생할 확률을 모두 더한 것입니다. 즉,

로 표시할 수 있습니다. 이때, ∑y는 “Y의 취할 수 있는 모든 값 y에 대한 합”입니다. 이것을 “(두 번째 주사위 값이 뭐든) 첫 번째 주사위 값이 x일 확률”로 일반화하면 다음과 같이 됩니다.

마찬가지로, “(첫 번째 주사위가 뭐든) 두 번째 주사위 y일 확률”은 첫 번째 주사위에 대해 가능한 모든 값의 확률의 합을 취하면 좋기 때문에,

가 됩니다. 이처럼 동시 확률이 주어졌을 때, 주목하지 않는 쪽의 확률변수가 취할 수 있는 모든 값에 대해 동시 확률을 계산하고 그 합을 취하는 것을 주변화(marginalization)라고 부르며, 결과적으로 얻는 확률을 주변 확률(marginal probability)이라고 합니다. 또한 주변 확률을 그 주목하고 있는 확률 변수가 취할 수 있는 모든 값에 대하여 나열하는 것을 주변 확률분포(marginal probability distribution)라고 합니다. 또한, 위의 예처럼 두 확률 변수의 동시 확률을 생각할 때, 취할 수 있는 모든 조합의 확률을 나열하는 것을 결합 분포(joint distribution)라고 합니다.

여기에서 2개의 주사위의 결합 분포표는 커져버리기 때문에 더 간단한 예로, 앞면이 나올 확률과 뒷면이 나올 확률이 다른 2개의 동전을 생각해 봅시다. 이 2개의 동전을 동시에 던질 때의 앞뒤 조합의 결합 분포가 다음과 같다고 합시다.

Y = 앞면 Y = 뒷면 X = 앞면 1 / 5 2 / 5 X = 뒷면 1 / 5 1 / 5

여기에서 첫 번째 동전의 양면을 나타내는 확률 변수를 X, 두 번째 동전의 양면을 나타내는 확률 변수를 Y로 하고 있습니다. 2개의 동전이 모두 앞면이 될 확률은 p(X=앞면,Y=앞면)=1/5 입니다.

그럼, 이 표 안의 숫자를 행별로 합계를 내 봅시다. 첫 번째 줄은

입니다. 이것은

(주석 3)을 계산하는 것이므로, 주변화에 의해 p(X=앞)라는 주변 확률을 추구하는 것과 동일합니다.

◇ 주석 3

y는 두 번째 동전이 취할 수 있는 상태로, 이 경우 ‘앞’과 ‘뒤’의 둘 중 하나.

마찬가지로, 첫 번째 열 값을 합계하여 보면, 이번에는

(주석 4)를 계산하는 것이므로, 주변화에 의해 P(Y=앞)이라는 주변 확률을 계산하는 것입니다.

◇ 주석 4

x는 첫 번째 동전이 취할 수 있는 상태로, 이 경우 ‘앞’과 ‘뒤’의 둘 중 하나.

이렇게 계산된 주변 확률을 위의 결합 분포의 표로 나타내 보겠습니다.

Y = 앞면 Y = 앞면 p(X) X = 앞면 1 / 5 2 / 5 3 / 5 X = 뒷면 1 / 5 1 / 5 2 / 5 p(Y) 2 / 5 3 / 5

이처럼 주변 확률은 종종 동시 분포표로 기술됩니다.

반응형

확률(Probability)과 딥 러닝(Deep Learning)

2022년 1월 17일(월)부터 21일(금)까지 네이버 부스트캠프(boostcamp) AI Tech 강의를 들으면서 개인적으로 중요하다고 생각되거나 짚고 넘어가야 할 핵심 내용들만 간단하게 메모한 내용입니다. 틀리거나 설명이 부족한 내용이 있을 수 있으며, 이는 학습을 진행하면서 꾸준히 내용을 수정하거나 추가해나갈 예정입니다.

확률(Probability)

딥 러닝과 확률론

딥러닝의 학습 방법은 확률론에 기반을 두고 있다.

특히, 기계학습의 손실함수는 데이터 공간을 통계적으로 해석하여 유도하게 된다.

즉, 예측이 틀리는 것을 최소화하도록 데이터를 학습하는 원리를 가진다.

예를 들어, 회귀 분석에서 손실함수로 사용되는 $L_2$ Norm은 예측오차의 분산을 가장 최소화하는 방향으로 학습하도록 유도한다.

또한 분류 문제에서 사용되는 교차엔트로피(cross-entropy)는 모델 예측의 불확실성을 최소화하는 방향으로 학습을 유도한다.

기계학습에서 사용되는 모든 손실함수는 실제 데이터의 분포와 모델을 예측하는 분포의 차이를 줄이려고 하는 것이며, 이 두 대상을 측정하는 방법은 통계학을 기반으로 한다.

확률분포(Probability Distribution)

[출처] https://commons.wikimedia.org/wiki/File:Effects_of_a_scale_parameter_on_a_positive-support_probability_distribution.gif, Walwal20

확률분포는 데이터 공간에 위치하는 데이터들을 이해하기 위한 일종의 초상화이다.

하지만 실제 데이터가 생성되는 확률분포 $\mathscr{D}$를 알 수 없고, 데이터만을 가지고 확률분포를 파악할 수는 없다. 그래서 기계학습을 통해 이 확률분포에 근사하는 함수를 찾고자 한다.

즉, 실제 데이터의 확률 분포는 알 수 없으므로 머신러닝을 통해 실제 확률분포에 근사하는 함수를 찾아야 한다.

확률변수(Random Variable)

[출처] https://commons.wikimedia.org/wiki/File:Random_Variable_as_a_Function-en.svg, Niyumard

확률변수는 데이터 공간 상에서 관측 가능한 데이터이다.

변수가 1개인 지도학습을 상정했을때, 데이터 공간은 $x×y$가 된다.

확률변수는 이 공간상에서 관측되는 원소들이다.

확률변수는 함수에 의해 해석된다.

이 함수는 임의로 데이터 공간상에서 관측하게 되는 함수이다.

데이터 공간상에서 데이터를 추출할 때 확률변수를 사용하게 되며, 이렇게 추출된 데이터의 분포 $\mathcal{D}$가 실제 분포 $\mathscr{D}$에 근사하는 것을 목표로 한다.

이산확률변수와 연속확률변수

데이터 공간으로부터 확률변수에 의해 추출된 데이터는 분포를 가지며, 확률분포 $\mathscr{D}$라고 할 수 있다.

이 확률분포 $\mathscr{D}$에 따라 변수의 형태가 이산형인지 연속형인지 구분된다.

이는 데이터 공간 $x×y$와 무관하며, 오직 $\mathscr{D}$에 의해 결정된다.

즉, 확률변수의 분포가 이산형인지 연속형인지에 따라 이산확률변수 또는 연속확률변수라고 한다.

예를 들어, -0.5와 0.5 중 한 값을 지니는 데이터 분포가 있을 때, -0.5와 0.5는 실수 데이터 공간을 지니지만 연속형이 아닌 이산형 확률변수를 가진다고 할 수 있다.

이산형 확률변수는 확률변수가 가질 수 있는 모든 경우의 수를 고려하여 확률을 모두 더해 모델링한다.

$$ P(X∈A)=Σ_{x∈A}P(X=x) $$

[출처] https://commons.wikimedia.org/wiki/File:Standard_Normal_Distribution.svg, D Wells

연속형 확률변수는 데이터 공간에 정의된 확률변수의 밀도의 적분을 통해 모델링한다.

여기서의 밀도는 누적확률분포의 변화율을 모델링하는 것이며, 이는 확률과는 다르다.

즉, 특정 값에서의 확률값은 알 수 없고, 구간을 통해서 데이터가 그 구간에 속할 가능성을 구하는 것이다.

$$P(X∈A)=∫_AP(x)dx$$

모든 확률변수가 항상 두 가지로 구별되는 것은 아니라는 점에 주의한다.

결합분포(Joint Distribution)

[출처] https://commons.wikimedia.org/wiki/File:Multivariate_normal_sample.svg, IkamusumeFan

결합분포는 주어진 데이터로부터 확률변수 $x$와 $y$를 통해 얻은 것으로 $\mathcal{D}$를 의미한다.

즉, 결합분포 $P(x,y)$는 $\mathcal{D}$를 모델링하는 것이다. 강의에서는 두 개의 확률변수만 고려했지만, 결합분포는 확률변수가 여러 개인 경우를 고려하는 것임을 유의한다.

주변확률분포

[출처] https://commons.wikimedia.org/wiki/File:Jointdist_twodepvars.PNG, CaitlinJo

$P(x)$는 입력 $x$에 대한 주변확률분포로 $y$에 대한 정보를 주지 않는다.

오직 $x$에 대해서만 그려진 확률분포를 의미하는 것이다.

이는 변수의 특성에 따라 다음과 같이 정의된다.

$\mathscr{D}$가 이산형일 때, $P(x)=∑_yP(x,y)$

$ \mathscr{D} $가 연속형일 때, $P(x)=∫_yP(x,y)dy$

조건부 확률분포(Conditional Distribution)

$P(x|y)$는 $y$가 특정 값으로 주어졌을 때 $x$에 대한 확률분포를 의미한다.

이는 데이터 공간에서 입력 $x$와 출력 $y$ 사이의 관계를 모델링한다. 즉, 특정한 클래스가 주어진 조건에서 데이터의 확률분포를 보여준다.

단, 연속확률분포일 경우에는 $P(x|y)$ 또는 $P(y|x)$ 는 확률이 아니고 밀도로 해석해야 한다는 점을 유의한다.

조건부확률과 기계학습

로지스틱 회귀에서 사용했던 선형모델과 softmax 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는데 사용된 것이다.

분류 문제에서 $softmax(Wϕ+b)$는 데이터 $x$로부터 추출된 특징패턴 $ϕ(x)$과 가중치 행렬 $W$을 통해 조건부 확률 $P(y|x)$을 계산하는 것이다.

즉, Input $x$가 특정 Class인 $y$에 해당하는가를 모델링 한 것이다.

조건부 기대값

회귀문제의 경우에는 특정 $y$값이 될 확률을 구하는 것이 아니기 때문에 조건부 기대값을 추정한다.

조건부 기대값인 $E[y|x]$은 함수 $f(x)$와 일치하는데, 이 함수는 $L_2$ Norm인 $E||y−f(x)||_2$를 최소화하는 함수이다.

조건부 기대값은 밀도함수인 조건부 확률분포에서 $y$에 대해 적분한 값이 된다.

기댓값(Expectation)

기댓값은 데이터를 대표하는 통계량이며, 다른 통계적 수치를 계산하는데 사용된다.

$P(x)$가 연속형일 때, $E[f(x)]=∫f(x)P(x)dx$

$P(x)$가 이산형일 때, $E[f(x)]=∑f(x)P(x)$

기댓값을 이용해 분산, 첨도, 공분산 등 여러 통계량을 계산할 수 있다.

딥러닝과 특징패턴

딥러닝은 주어진 데이터 $x$로부터 다층 신경망을 통해 특징패턴 $ϕ$를 추출한다.

이때, 특징패턴을 학습하기 위해 어떤 손실함수를 사용할지는 기계학습의 문제와 모델에 의해 결정되는 것이다.

몬테카를로 방법(Monte Carlo method)

기계학습에서는 확률분포를 대체로 모를 때가 많다.

이때, 데이터를 이용해 기댓값을 계산하는 방법으로 몬테카를로 샘플링을 이용한다.

데이터를 여러 번 독립추출하면 대수의 법칙에 따라 이들의 기댓값(샘플링의 기댓값)은 실제 데이터 분포의 기댓값에 수렴하며, 이는 이산형 또는 연속형 확률변수에 무관하게 사용 가능하다.

단, 샘플링하는 데이터의 크기가 어느 정도 커야 한다.

$X_1$ $X_2$, $…$, $X_n$이 평균 $\mu$와 분산 $\sigma^2$을 갖는 임의의 $i.i.d.$ 확률변수들이라고 할 때, $n$이 충분히 크다면 $X_1$ $X_2$, $…$, $X_n$의 표본평균 $\overline{X}$는 평균 $\mu$와 분산 $\dfrac{\sigma^2}{n}$을 갖는 정규분포에 가까워진다는 중심극한정리(central limit theorem)와 유사한 맥락에서 나오는 개념인 것으로 이해할 수 있다고 본다.

[통계분석] 01. 확률분포는 머신러닝에서 어떻게 사용될까?

데이터 분석을 할 때 첫번째 가정은 “분석할 데이터는 어떤 확률 변수로부터 실현된 표본이다”입니다. 즉, 데이터를 표본 자체만으로 보기보다 이 데이터를 만들어내는 확률 변수의 분포를 봐야한다는 것입니다. 더구나 데이터의 분포에 따라 다르게 전처리를 하고 알고리즘을 사용하기 때문에 머신러닝을 할 때도 중요합니다.

그렇다면 확률변수가 어떤 확률분포 따르는가는 어떻게 아는 걸까요?

히스토그램을 그려서 확률 분포의 모양을 통해 데이터의 특성을 알아내면 됩니다.

히스토그램

히스토그램은 확률 분포의 모양을 보는 것 외에도 이상치가 존재하는지, 그룹 간의 평균의 차이가 있는 지 등을 통해 탐색적 데이터 분석하기에 좋은 시각화입니다. 히스토그램을 알기 위해서는 도수분포표 개념에 대해 알아야합니다. 도수분포표는 연속형 데이터를 구간을 설정하여 범주형 데이터로 변환하여 특정 구간에 속하는 데이터의 개수를 나타내는 표입니다.

도수분포표를 만드는 과정은 다음과 같습니다.

1. 데이터의 개수를 센다.

2. 데이터 내에서 최대/최소값을 찾는다.

3. 몇 개의 구간으로 나눌지 결정한다.

– 이때 구간이 너무 많지 않는 것이 좋음.

4. 측정 구간에 속하는 개수, 즉 도수를 구한다.

5. 표로 나타낸다.

도수는 측정구간에 속하는 개수, 도수를 총 도수의 합으로 나눈 것을 상대도수라고 합니다. 도수 분포표를 시각화로 나타내 준 그림이 히스토그램입니다. 자료에 따라 히스토그램은 다양하게 분포됩니다. (x축: 구간, y축: 구간 별 빈도수) 히스토그램이 정규분포를 따르지 않는다면 정규분포를 따르도록 변환하여 회귀분석을 할 때 설명력을 높일 수도 있습니다. R에서 hist 함수로 히스토그램을 생성할 수 있고 계급값을 자동으로 만들어서 그래프를 그려줍니다.

히스토그램의 다양한 분포 형태 [2]

확률 분포

확률 분포에서 확률은 사건이 일어날 가능성을 말하고 이때 사용되는 변수인 확률 변수는 발생 가능한 모든 사건들의 집합인 표본 공간 안에서 특정한 확률을 가지고 발생하는 사건을 수치에 대응시키는 함수를 말합니다. 확률 분포는 이산형 확률 변수에 대한 분포인 이산형 확률 분포, 연속형 확률 변수에 대한 분포인 연속형 확률 분포 두가지로 나뉩니다. 이산형 확률 변수는 어떤 값을 가질 확률을 계산하는 함수이고 연속형 확률 변수는 어떤 구간 내에 포함될 확률을 계산하는 변수입니다.

이산형 확률 변수와 연속형 확률 변수

확률 분포의 종류는 다음과 같습니다. 화살표를 눈여겨 확인해보면 좀 더 쉽게 분포를 받아들일 수 있습니다.

확룰 분포 함수 종류 [3]

이산형 확률 변수일 때 사용하는 확률 분포는 대표적으로 다음과 같습니다.

베르누이 분포: 성공/실패와 같이 두 가지에 대한 분포로 성공확률 p, 실패확률 1-p가 있는 분포

균일 분포: 모든 확률변수에 대해 균일한 확률을 갖는 분포

이항 분포: 성공확률이 p인 베르누이 시행이 n번 반복되었을 때 성공횟수를 확률 변수로 하는 분포를 말합니다.

포아송 분포: 데이터가 불연속할 때 측정되는 이산형 변수에 대한 확률 분포로 일정 단위에서 평균 성공 수가 m 일 때 성공 횟수를 확률 변수로 하는 분포입니다. 특정 시간 내의 빈도수를 예측하는 경우에 사용될 수 있습니다.

기하분포

초기하분포: 반복하지 않는 시도에서 사건이 발생할 확률 분포

연속형 확률 변수일 때 사용하는 확률 분포는 대표적으로 정규분포와 t-분포가 있습니다.

정규분포: 가장 많이 사용하는 분포 개념은 실험의 측정 오차나 사회 현상 등 자연계의 현상은 정규분포를 따르는 경향이 있습니다.

t-분포

일양분포

감마분포: 특정 수의 사건이 일어날 때까지 걸리는 시간에 관한 연속 확률 분포

지수분포: 감마분포의 모양으로 매개변수 k=1일 때 사건이 일어나는 시간 간격의 확률 분포

로그정규분포

카이제곱분포: 집단을 몇 가지로 나눴을 때 크기가 작은 집단에 보편성이 있는 지 확인할 수 있는 분포로 통계적 추론에서 독립성 검정으로 이용되며 임상시험이나 사회과학 설문조사 등에 자주 사용되는 확률 분포

f분포

베타분포: 2개의 변수를 갖는 특수 함수인 베타함수를 이용한 분포로 베이즈 통계학에서 사전 분포 모델로 이용할 때가 많은 확률 분포

일반적으로 모분산은 정확히 알 수 없지만 모분산에 따라 정규분포의 모양이 바뀌곤 합니다. 이런 경우 정규분포를 이용한 검정 방법이 신뢰성을 잃게 되기 때문에 정규분포와 형태는 비슷하지만 모분산 항을 포함하고 있지 않고 표본분산을 이용한 분산을 고안한 분포가 t-분포입니다. 즉. t-분포는 평균을 검정하기 위해 고안된 분포로 정규분포와 다르게 모분산을 포함하고 있지않습니다. t-분포는 아래 그림과 같이 정규분포와 비슷한 형태이며 자유도에 따라 종의 형태가 조금씩 변합니다. 통상적으로 데이터의 개수 n이 30개 이상되면 정규분포를 따른다고하고 30개 미만이면 t 분포를 따른다고 말합니다. 아래 사진과 같이 t-분포의 데이터가 30개 이상이되면 정규분포에 근접하게 된다는 관계입니다.

정규분포와 t-분포 [1]

데이터의 특성에 따라 다음과 같은 규칙을 정의할 수 있습니다.

데이터는 0 또는 1 뿐이다. -> 베르누이분포

데이터는 카테고리 값이어야 한다. -> 카테고리분포

데이터는 0과 1 사이의 실수 값이어야 한다. -> 베타분포

데이터는 항상 0 또는 양수이어야 한다. -> 로그정규분포, 감마분포, F분포, 카이제곱분포, 지수분포, 하프코시분포 등

데이터가 크기 제한이 없는 실수다. -> 정규분포 또는 스튜던트 t분포, 코시분포, 라플라스분포 등

하지만 예외가 있을 수 있습니다. 항상 양수인 데이터도 정규분포로 나타낼 수 있으면 정규분포로 나타낼 수 있습니다.

모든 확률 분포는 한 개 이상의 모수를 갖고 있으며 이 모수는 확률 분포의 모양을 결정합니다. 정규분포의 경우 평균, 분산 2개의 모수가 있고 이 모수들이 정규분포의 모양을 결정합니다.

모수적 모델 vs 비모수적 모델 vs 세미모수적 모델

모수의 형태를 함수 형태로 분포를 가정하느냐의 유무에 따라 모델은 나뉩니다.

모수적 모델은 확률 분포를 기반으로 해당 모수를 추정하는 과정이 포함되어 있는 모델로 모수의 형태를 함수 형태의 분포로 가정하는 것을 말합니다. 모수적 모델의 예로는 선형 회귀 모델, 로지스틱 회귀 모델, Simple Neural Networks 가 있습니다. 선형 회귀의 경우 독립변수와 종속변수 사이의 관계를 직선으로 나타낸 것으로 독립변수를 이용하여 종속변수를 예측하거나 설명합니다. 실제로 두 변수 사이의 랜덤성으로 인해 독립변수만을 가지고 종속변수를 100% 설명할 수 없기 때문에 오차가 발생합니다. 이 오차값들이 평균이 0이고 분산이 특정값을 갖는 정규분포를 따른다는 가정하에 모델이 데이터를 설명하기에 적합하다고 판단합니다. 이처럼 선형회귀모델은 모델 구축시 정규분포를 가정하기 때문에 모수적 방법론 중 하나인 것입니다. 모수적 모델은 간단하고 빠르며 적은 데이터에도 잘 동작하지만 제한적이고 복잡성에 한계가 있습니다.

비모수적 모델은 모수의 형태를 함수 형태의 분포로 가정하지 않는 모델로 모집단의 형태에 관계없이 주어진 데이터에서 직접 확률을 계산하여 검정하는 모델을 말합니다. 비모수적 모델의 예로는 KNN, 랜덤포레스트, 의사결정나무 등이 있습니다. KNN의 경우 하이퍼모수인 K개의 관측치를 결정한 후 이들의 특성을 이용해 관심 관측치를 예측하는 알고리즘입니다. 이때 확률분포는 사용되지 않기 때문에 비모수적 모델입니다. 비모수적 모델의 장점은 유연하고 강력하지만 많은 데이터를 필요로하고 느리며 오버피팅이 발생할 수 있습니다.

세미모수적 모델은 모수적 모델과 비모수적 모델을 상충시켜서 만든 모델로 일부에서는 모수가 존재하지만 확률 분포를 가정하지 않는 모델을 말합니다. 연결선의 가중치인 모수는 존재하지만 이 모수는 확률 분포와 무관하게 얻어지는 것입니다. 세미모수적 모델의 예로는 SVM, 인공신경망 등이 있습니다. 인공신경망 모델은 기본적으로 input layer, hidden layer, output layer 3개의 층으로 구성되어 있으며 서로 연결된 형태입니다. 이때 층 간 노드들을 연결하는 선의 weight를 모수라고하고 은닉층의 개수, 은닉층에 포함될 노드의 개수 등은 하이퍼모수이기 때문에 모수는 있지만 확률 분포를 가정하지 않는 모델인 것입니다.

참고

[1] blog.naver.com/gracestock_1/120201816950

[2] drhongdatanote.tistory.com/24

[3] destrudo.tistory.com/16

728×90

딥러닝을 위한 수학, 확률과 통계

This site requires JavaScript. Here are the instructions how to enable JavaScript in your web browser.

머신 러닝을 위한 수학(4) – 확률과 통계

반응형

확률과 통계

모집단 -> 전체 데이터의 집합

모수 -> 평균, 표준편차 등의 모집단의 특성을 나타내는 수

표본 -> 모집단에서 일부 추출한 것

통계량 -> 표본을 요약하는 수. 모집단에서의 모수 평균 중앙값 최빈값 분산 편차의 제곱의 합을 n으로 나눈 것 표본분산의 경우 n-1로 나눈다 표준편차 -> 분산의 제곱근 공분산 두 변수가 평균으로부터 떨어진 정도 두 변수의 편차의 곱의 합을 n으로 나눈 것 상관관계 -> 공분산을 각 변수의 표준편차로 나누어서 구한다

확률 불확실한 발생 정도를 정량적으로 표현한 것 이산discrete -> 표본점을 하나씩 셀 수 있는 경우 연속continous -> 셀 수 없는 경우 사상event -> 표본 공간의 부분 집합

베이즈 정리 P(B|A) -> A가 주어졌을 때 B가 일어날 확률 B라는 사건의 확률을 알고 있을 때, 새로 알게된 A와의 관계를 통해 확률을 ‘업데이트’하여 더 정확한 추정을 하기 위함

예시 – 연관 규칙 마이닝 판매되는 제품의 품목을 분석하여 품목 간 패턴을 발견하는 기법 지지도support -> A와 B를 동시에 구매할 확률 신뢰도confidence -> A를 구매했을 때 추가로 B를 구매할 확률 향상도lift -> P(B|A)/P(B). 값이 높을수록 연관성이 높다는 것을 의미 그러나 연관성이 인과관계를 나타내는 것은 아니다 코드 실습 -> 소매점의 고객 구매 데이터 이용

import pandas as pd from mlxtend.preprocessing import TranscationEncoder # 손님별로 산 물건을 리스트로 묶음 dataset = [[‘Milk’, ‘Cookie’, ‘Apple’, ‘Beans’, ‘Eggs’, ‘Yogurt’], [‘Coke’, ‘Cookie’, ‘Apple’, ‘Beans’, ‘Eggs’, ‘Yogurt’], [‘Milk’, ‘Apple’, ‘Kidney Beans’, ‘Eggs’], [‘Milk’, ‘Orange’, ‘Corn’, ‘Beans’, ‘Yogurt’], [‘Corn’, ‘Cookie’, ‘Cookie’, ‘Beans’, ‘Ice cream’, ‘Eggs’]] # 리스트를 처리해주고 데이터프레임으로 변환 # 트랜잭션 형태로 변환하면 각 항목에 대한 bool값을 반환해준다 te = TransactionEncoder() te_ary = te.fit(dataset).transform(dataset) df = pd.DataFrame(te_ary, columns = te.columns_) from mlxtend.frequent_patterns import apriori temp = apriori(df, min_support = 0.6, use_colnames = True) # 지지도가 0.6 이상인 것만 출력 # 결과 출력 temp[‘length’] = temp[‘itemsets’].apply(lambda x : len(x)) # 아이템셋의 길이를 입력한 컬럼 추가 print(temp[(temp[‘length’]>=2) & temp[‘support’] >= 0.6) # 패턴 찾기 ## 기본값confidence 향상도lift를 바탕으로 필터링 rules = association_rules(temp, metric = “confidence”, min_threshold = 0.7)

반응형

키워드에 대한 정보 머신 러닝 확률 과 통계

다음은 Bing에서 머신 러닝 확률 과 통계 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 머신 러닝에서 사용되는 수학: 수학을 잘 해야 할까?

  • 코드잇
  • 4차산업혁명
  • 머신 러닝
  • 머신 러닝 수학
  • 수학
  • machine learning
  • mathematics in machine learning
  • codeit
  • 개발자
  • 데이터 사이언티스트
  • AI

머신 #러닝에서 #사용되는 #수학: #수학을 #잘 #해야 #할까?


YouTube에서 머신 러닝 확률 과 통계 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 머신 러닝에서 사용되는 수학: 수학을 잘 해야 할까? | 머신 러닝 확률 과 통계, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment