면접에서 나온 통계 질문 리뷰

면접에서 나온 통계 질문 리뷰

Bayes Rule / Bayes’ theorem이란?

베이즈 룰, 혹은 베이즈 정리라고 부르는 Bayes Rule은 아래와 같다.

결론부터 말하면, 베이즈 정리는 인과를 역전한다 라는 의미가 있다.

수식적으로 이해하려면 아래와 같다.

이때 우리가 알고자 하는 정보는 $Pr(A|B)$이고, 알고있는/알고있다 가정한 정보들은 $Pr(B|A), Pr(A), Pr(B)$ 이다.

$$\Pr(A|B)={\frac {\Pr(B|A)\Pr(A)}{\Pr(B)}}\propto {\mathcal L}(A|B)\Pr(A)$$

간단한 예시를 들어보자.

2020년의 가장 큰 이슈인 COVID-19를 검사하는 테스터기의 성능을 알고싶다고 가정할 때, 우리가 최종적으로 알고자 하는 값은 “COVID-19에 양성(+)으로 나타난 사람이 실제로 감염자일 확률, $Pr(COVID|+)$”이 된다.

그렇다면 우리가 알 수 있는 확률은 어떤 것이 있을까?

  • COVID-19에 걸린 사람에게 테스트했을 때 양성(+)으로 나타날 확률 $= Pr(+|COVID)$

위 식에서 다시 정리를 해 보면 아래와 같이 정리해 볼 수 있다.

$$\Pr(COVID|+)={\frac {\Pr(+|COVID)\Pr(COVID)}{\Pr(+)}}$$

하지만 우리는 현재 $Pr(COVID), Pr(+)$ 의 확률을 알지 못하기 때문에 $Pr(COVID|+)$ 를 곧바로 구할 수가 없다. 즉, 우리는 위 정보 두가지인 “COVID-19에 감염될 확률”“검사가 양성(+)으로 나타날 확률(=False Positive)” 두 가지를 알아야 한다.

이때 실제로 COVID-19에 감염될 확률($Pr(COVID)$)을 정확히 알 수는 없기 때문에 이것을 일정 확률로 가정하는 사전확률(Prior) 값으로 둔다. 이를 통해서 우리는 사건/관찰 이라고 부르는, 여기서는 양성(+), $Pr(+)$ 이 관찰 된 이후의 확률값인 사후확률(Posterior, $Pr(COVID|+)$)을 구하게 된다.

다시 앞선 이야기로 돌아가 위 두가지 확률을 구하기 위해서 아래 두 값을 얻었다고 가정해보자.

  • $Pr(COVID) = 0.002$ (0.2%)
  • $Pr(+|not\ COVID) = 0.05$ (5%)

위 가정을 통해 우리는 $Pr(COVID|+)$ 를 계산하기 위한 모든 정보를 얻을 수 있다.

Prior, Posterior, Likelihood란?

앞서 정리한 베이즈룰 내용을 정리하면 아래와 같다.

  • Prior: $Pr(COVID)$, COVID-19에 걸릴 확률
  • Posterior: $Pr(COVID|+)$, 테스트 결과 양성(+)일 때 실제 COVID-19에 감염되었을 확률
  • Likelihood: $Pr(+|COVID)$, 실제 환자 중 테스트 결과 양성(+)으로 나타나는 비율%

Likelihood의 값이 0~1사이의 %일수도 있고, 10,20..처럼 나타나기도 하는 이유는? & Likelihood를 가장 잘 찾는다는 의미는?

연속 vs 불연속:

  • Likelihood가 0~1사이로 나타나는 케이스 = PDF(prob density func)가 Normal Distribution처럼 연속적으로 나타나는 케이스

  • Likelihood가 10, 20처럼 나타나는 케이스 = PDF가 Poisson Distribution처럼 Discrete한 케이스

Likelihood를 설명하는 것은 결국 PDF, CDF를 설명하는 함수를 잘 찾는다는 것과 같은 의미가 된다는 것이고, 원본의 Distribution을 어떻게 ‘잘 설명하는지’를 의미하는 것이다.

Linear Regression

Linear Regression, 선형 회귀라고 부르는 모델은 X와 Y간의 Linear/선형적 관계를 설명하려는 모델이다. 보통 Least Square, MSE Loss를 사용해 학습한다.

Linear regression - Wikipedia

  • 좀더 이야기를 하면 Biased/unbiased 이야기도 나와야 하긴 하지만…

결과적으로 Linear Regression이 바라는 방향은 알지 못하는 임의의 X가 나왔을때 기대할 Y를 estimate하는 것인 셈이다.

Logistic Regression?

같은 Regression 명칭을 붙이고는 있지만 Linear Regression와는 완전히 다른 목표를 가지고 있는 모델.

아래 그림과 같이 데이터셋이 있을 때 두 데이터셋 사이의 거리를 최대한 벌리는, 두 그룹(혹은 N개의 카테고리)을 분리하는 것을 가장 잘 설명하는 HyperPlane을 찾는 것이 목표인 모델이다.

Scatterplot featuring a linear support vector machine's decision boundary (dashed line)

물론 logistic regression 자체는 Linear Model 중 하나로 특수한 케이스라고 볼 수 있다.

하지만 바라는 목표가 Categorical Classification이기 때문에, Y의 값이 0~1 사이로 고정된다는 것(이항분류), 그리고 결과가 이항적이기 때문에 $P(y|x)$ 가 Normal Distribution 대신 Binomial Distribution을 따른다.

한편 실제 Linear Model에서 나타나는 특성상 Y 값이 0~1사이를 넘어 더 큰 값을 가질 수 있게 되고, 이는 모델의 성능 하락을 가져오기 때문에 Logistic function을 도입해 이를 해결한다.

Why Sigmoid? Odds function?

Logistic Regression 모델을 쓸 때, 앞서 언급한 0~1 사이로 모델의 출력값(logits)을 제한하는 것 이외에도 sigmoid를 쓰는 이유가 있다.

Logistic Function, Sigmoid

여기서 odds ratio 라는 개념이 나오게 된다. Logistic Regression은 0과 1의 Biomial Distribution을 따르게 되는데, 이때 나오는 % 혹은 logits 값은 단순히 해당 사건의 frequentiest적 확률을 이야기 하는 것이 아니라 해당 사건이 일어날 가능도를 의미한다.

이때 주로 사용하는 방법이 odds ratio이고, 아래와 같이 정의된다.

$$odds(p) = \frac{p}{1-p}$$

이러한 $odds(p)$ 를 통해 0과 1 사이로 확률값을 Mapping해 줄 수 있지만, 이 함수를 실제 그래프로 나타내보면 아래와 같은 형태로 나타난다.

Odds

확률 값 즉 $p \sim 1$이 될 경우 위 그래프처럼 $odds$ 값이 하늘로 치솟게 된다.

따라서 이를 방지하기 위해 $log(odds(p))$ 로 Log Odds 값을 사용한다. 위 값에 단순히 log만 취해주면 아래와 같은, $-\infin \sim \infin$ 사이의 값으로 나타나며, 동시에 $p=0.5$ 일때 Log odds 값은 0이 된다.

log odds

한편 이 식은 “Logitics Function”으로 불리기도 한다.

하지만 여전히 문제가 남아있다. 현재의 상태를 수식적으로 나타내면 아래와 같다.

$$\text{log_odds}(P(y=1 \mid x)) = w_o + w_1x_1 + w_2x_2 + … + w_nx_n$$

우리가 얻고자 하는 값은 $P(y=1|x)$, 즉 y=1일 확률 이기 때문에, log_odds 함수를 Inverse한 값을 양측에 취해줘야 한다.

간단하게 위 식을 정리하면 아래와 같다. 이 역함수를 차례대로 구해보자.

$$y = log(\frac{x}{1-x})$$

위 식에서 $x$와 $y$를 치환하면 아래와 같고,

$$x = log(\frac{y}{1-y})$$

위 식에 양 변에 $\exp$를 취해주면 아래와 같다.

$$e^x = \frac{y}{1-y}$$

식을 좀 더 정리해보자.

$$y = (1-y)e^x$$

$$y = e^x - y e^x$$

$$y + ye^x = e^x$$

$$y(1 + e^x) = e^x$$

$$y = \frac{e^x}{1+e^x}$$

$$y = \frac{1}{\frac{1}{e^x} + 1}$$

$$y = \frac{1}{1 + e^{-x}}$$

결과적으로 마지막 식은 우리가 익히 알고 있는 Sigmoid function이 된다.

sigmoid

Vector / Matrix?

벡터를 이야기 할 때는 물리적 의미, 대수적 의미, 그리고 ML/DL에서 사용하는 의미로 분류해서 이야기 할 수 있다.

가장 기본적으로 물리적인 의미로 벡터는 “방향과 크기를 가진 표현도구”로 정의할 수 있다.

Wikipedia: 2차원 벡터

한편 선형대수에서 이야기 하는 Vector는 Vector Space에서 정의하는 원소가 해당한다. (선형대수와 군 책에서 이야기하는, 그 ‘체에 대한 가군’의 특수한 경우에 해당한다.)

또한 위와 거의 동등한 의미로 딥러닝 등에서 말하는 벡터 역시 위의 선형대수적 의미에서 기반한 일종의 Array로 구현해 사용한다.

그렇다면 행렬, Matrix는 무엇인가?

가장 단순하게 설명한다면 행렬은 “여러 벡터의 집합”이라고 볼 수 있다.

한편, Vector 하나하나가 Vector Space에서의 위치를 의미한다면 이에 Matrix를 곱하는 것은 특정 Vector를 다른 Vector Space로 사영하는, 즉 Linear Tranformation/선형변환을 하는 것이라고 볼 수 있다.

따라서 Matrix가 해주는 역할은 특정한 데이터가 있을 때 해당 데이터를 우리 목적(분류든 회귀든)에 맞도록 잘 쓸 수 있는 Hyper Dimension으로의 Projection을 해주는 것이라고 볼 수 있다.

(이에 맞춰서 아래와 같이 SVM등 하면서 원하는 Feature Space를 만들어주는 거라 볼 수 있다.)

Support Vector Machines

Reference

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×