본문 바로가기
  • Deep dive into Learning
  • Deep dive into Optimization
  • Deep dive into Deep Learning
Deep dive into Deep learning

Deep dive into Deep learning part 8. - Updated

by Sapiens_Nam 2023. 3. 29.

 

** 모바일 앱 환경에서는 latex 수식이 깨져 나타나므로, 가급적 웹 환경에서 읽어주시길 바랍니다.**

 

""Linear algebra, Probability and Statistics, Calculus review"

 

 

오늘은 딥러닝을 위한 기초 수학 복습, 통계적 추정을 이야기해보고자 한다.

 

일단 추정 (estimate)이란 무엇인가? 

특정 확률 변수의 분포함수는 모를지라도, 그것의 중요한 값들은 알아야 할 때가 있다.

이를 통계량 (statistics)라고 하는데 확률 변수의 통계량을 알면 설령 그것의 전체 분포 모양은 알지 못할지라도, 그 분포의 중요한 특징들은 알 수 있다.

통계량의 가장 대표적인 값이 "평균" 과 "(공)분산"이다. 

 

*Expected value (평균)

어떤 이산 확률 변수 $X \sim p(x)$에 대해서 함수 $g(X)$의 기댓값은 위와 같이 정의된다.

연속확률변수라면 $\sum$을 $\int$로 바꾸면 된다. 

만약 확률 변수 $X$가 다변수라면, 즉 확률 벡터라면 평균 또한 확률 벡터, 각 성분에 대해 평균을 구한 것을 원소로 갖는 

평균 '벡터'가 나오게 된다. 

 

평균에 중요한 성질 중 하나는 '선형성'을 만족한다는 것이다.

즉 다음이 성립한다.

만약, $f(x) = a g(x) + b h(x)$라면,

이다.

 

또한, 두 확률변수를 이용해서 새로운 확률변수를 만들 수 있는 방법으로 덧셈, 곱셈이 있는데 이때 평균은 다음과 같이 정의된다.

$\mathbb{E}[X + Y] = \mathbb{E}[X] + \mathbb{E}[Y]$

 

추가적으로, 두 확률변수가 독립일 때는 다음이 성립한다.

$\mathbb{E}[XY]  = \mathbb{E}[X] \mathbb{E}[Y]$.

(위 등식은 독립이 아니라면, 성립하지 않는다.)

 

다음으로 중요한 통계량은 "공분산"이 있다.

* Covariance (공분산)

 

먼저 분산의 정의는 다음과 같다.

$V[X] = \mathbb{E}[| X - \mathbb{E}[X] |^2] = \mathbb{E}[X^2] - (\mathbb{E}[X] )^2$.

두 번째 등식은 단순 계산을 통해 쉽게 확인이 가능하다.

 

공분산이란 두 확률 변수 사이의 의존성을 나타내는 지표라 할 수 있는데, 한 확률변수 $X$가 변할 때, 다른 확률 변수 $Y$는 얼마나 영향을 받는가를 나타내는 값이다.

우선 정의를 먼저 보고 가자.

 

다들 분산을 기억할 것이다. 분산의 정의는 위 정의에서 $Y$를 $X$로 바꿔주면 나온다.

Expectation은 위에서 말했듯 선형 연산이기 때문에 단순 계산을 통해 아래와 같은 식도 유도 가능하다 .

 

역시나 $Y$를 $X$로 바꾸면 분산이 되고, 분산을 구하는 또 다른 공식이 나온다.

즉, 공분산은 분산을 더욱 확장한 일반화시킨 개념이라고 볼 수 있다.

 

다음으로 또 중요한 통계량 중 하나가 Correlation (상관계수)가 있다.

 

* Correlation (상관계수)

 

정확히는 "피어슨의 상관계수"라고도 하는데 정의는 위와 같이 공분산을 정규화시킨 값으로 볼 수 있으며, 그 값은 $[-1, 1]$이다. 공분산을 정규화한 값이기 때문에 공분산과 마찬가지로 상관계수도 두 확률 변수의 관련도를 나타내며, 양수인 경우에는 $X$가 증가하면 $Y$도 증가하고, 음수인 경우에는 $X$가 증가하면, $Y$는 감소한다.

그리고 상관계수가 $0$인 경우에는 (=즉 공분산이 $0$인 경우에는) 두 확률 변수 사이의 관계가 없음을 나타낸다.

상관계수가 0인 상황에서 가장 특수한 경우가 두 확률변수가 독립인 경우인데, 두 확률 변수가 독립이면 상관계수는 0이다. 하지만 그 역은 성립하지 않는다.

 

자, 그렇다면 통계적 추정이란 무엇일까?

우선 추정 (estimate)이란 우리가 확률변수의 분포를 모르는 상황에서 그 확률변수의 통계량 값을 추측해봄을 의미한다.

그렇다면 어떤 정보를 이용해서 추정을 할까? 우리가 추정하고자 하는 확률 변수의 분포로부터 sampling된 값들을 이용해서 추정을 한다. 

예를 들어보면 다음과 같다.

 

대한민국 20대 남성의 "평균" 키를 추측해보고자 한다고 해보자. 당연히 모든 20대 남성에게 직접 가서 현재의 키를 물어보는 방법도 있을 것이다. 하지만 이 방법은 시간이 너무 많이 소요되고 비용도 상당히 크게 들 것이다.

이때 쓰이는 것이 '추정'인데 20대 남성이라고 하는 전체 집단 ('모집단')에서 일부 집단 ('표본집단')을 뽑는다.

그리고 그 집단의 키 정보를 이용해서 모집단의 평균 키를 추정하는 것이다.

 

대선, 총선 등 주요 선거가 있을 때마다 방송사들에서는 '출구 조사'를 실시하는 데 이 또한 통계적 추정의 영역이다.

 

자, 그렇다면 우리는 지금 딥러닝을 공부하는 입장으로서 딥러닝에서 추정이란 개념은 어떻게 쓰일까?

 

딥러닝 모델은 확률 분포를 갖는 함수로 볼 수 있다.

지도 학습 (supervised learning)의 분류 task에서 그 분포의 파라미터는 당연히 모델의 파라미터이고 우리는 데이터가 주어졌을 때 그 데이터의 클래스에 가장 높은 확률을 부여하는 것이 목적이다.

즉, $p_{\theta}(y|x)$가 높게 하는 것이 우리의 목적이다. 이는 결국 모델 함수가 데이터에 잘 fitting되는 것이 목표인데, 

다시 말하면, 모델 파라미터 $\theta$로 표현되는 확률 분포 함수 $p(y|x, \theta)$가 원래의 데이터 분포 $p(x, y)$와 잘 들어맞는 것이다. 

이를 표현하는 값이 '가능도' (likelihood)이다.

likelihood란 어떤 분포를 가지는 확률 변수가 있고 ($X \sim p(x)$), 거기서 i.i.d (Independently Identical Distributed)하게 sampling된 data를 가지고 모델 파라미터로 표현되는 확률 분포 $p(y|x, \theta)$가 얼마나 잘 fitting되는가?를 나타내는 값이다.

 

그렇다면 likelihood가 높을수록 모델의 확률 분포가 데이터의 확률 분포와 잘 들어맞는 것이므로, 이렇게 되도록 학습을 진행하면 되고, 이때 우리는 손실 함수를 최소화하는 방향으로 학습/최적화를 진행한다고 하였으므로, Negative likelihood가 낮아질수록 정확히 동치이므로, Negative likelihood를 손실함수로 설정한다.

추가적으로, 어떤 값에 $\log$를 취하여도 $\log$함수는 단조 증가 함수 (일대일 대응)이고, 너무 큰 수치를 줄여주는 효과가 있으므로, 컴퓨터 상에서 수치 연산의 overflow 등의 문제를 피할 수 있기 때문에 우리는 $\log$함수를 붙여서 사용한다. 
좀 더 구체적으로는 모델의 output은 softmax 함수를 거쳐서 나오는데 softmax function은 그 정의상 $\exp$ 함수가 포함되어져 있기 때문에, 수치 연산 과정에서 overflow가 발생할 수 있다. 이를 완화하고자, $\log$ 연산을 취해주는 목적도 있다.

결론적으로, Negative log-likelihood를 최소화하는 방향으로 모델 학습을 진행한다.

 

자, 그런데 앞서 말했듯이 우리는 데이터셋 $\{ (x_1, y_1), \cdots, (x_n, y_n) \}$이 i.i.d하게 sampling되었다고 가정하였다.

이는 머신러닝 / 딥러닝의 대전제이다.

자, 그렇다면 independent인 경우에는 우리가 전체 데이터셋에 대한 likelihood를 각 데이터 샘플 하나에 대한 likelihood의 곱으로 나타낼 수 있으므로,

 각각의 데이터가 갖는 확률분포 $p(y_n|x_n, \theta)$들의 곱으로 표현이 되는데, identically distributed라고 하였으므로, 이들이 결국 모두 같은 확률분포인 것이다.

그리고 여기서 우리는 앞서 $\log$를 취한다고 하였고 로그함수는 곱을 합으로 만드는 성질이 있으므로, 최종적으로 다음과 같이 손실함수를 표현할 수 있다.

Negative Log-likelihood

 

결국 딥러닝에서 '통계적 추정'이란 모델을 확률 분포 함수로 보았을 때 그것의 매개변수인 $\theta$를 추정하는 것이고,
학습 목적은 모델의 분포가 데이터 분포에 가능한 잘 들어맞도록 (fitting)하는 것이므로, fitting의 정도를 나타내는 값인 likelihood (또는 log-likelihood) 를 최대화하는 방향으로, 즉 negative log-likelihood를 최소화하는 방향으로 파라미터의 값을 업데이트하는 과정을 의미한다.
이를 다른 말로 MLE (Maximzed likelihood estimation)이라고 하고 통계적 추정에서 매우 중요한 개념 중 하나이다.

728x90

댓글