끄적거림

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 4.Related Research (1): Background(MC-Integration, Dropout) 본문

개인 공부 정리/Bayesian

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 4.Related Research (1): Background(MC-Integration, Dropout)

Signing 2021. 1. 26. 17:35
728x90
반응형

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 1.Prologue

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 2.Abstract

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 3.Introduce

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 4.Related Research (1): Background(MC-Integration, Dropout)

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 4.Related Research (2): Background(Gaussian Process)

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 4.Related Research (3): Background(Bayesian Neural Network, Variational Inference, Re-parameterization trick)

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 5.Methodolgy

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 6.Experiment

[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 7.Conclusion

[논문 실습] Dropout as a Bayesian Approximation 실습 코드 - pytorch ver


이제 본격적으로 논문의 핵심을 이해하기 위해서 알아야할 사전 지식부터 체크하고 넘어가도록 하겠다.

논문에서 사용되는 지식과 개념들이 결코 쉬운 것들이 아니니 내가 짚는 항목들에 대해서 더 공부하고 다시 이 논문으로 돌아와도 괜찮을 거 같다.

나도 이 챕터에서 다루는 개념들을 100% 다 이해한 것이 아니니, 다소 부족하거나 잘못된 부분이 있을 수 있으니 좋은 피드백과 지적은 환영입니다. :)

 


Monte Carlo Integration

몬테카를로라고 하는 말은 많이 접해봤을 것이라 생각된다.

흔히 몬테카를로라고 하는 것은 여러 번의 시행을 의미한다.

넓이 구하기 with 몬테카를로 방법

위의 그림을 보면 변의 길이가 1인 정사각형이 존재하고 그 안에 있는 사분원의 넓이를 구하고 싶은 것이다.

우리는 이미 사분원에 대한 공식을 알고 있어서 손쉽게 구할 수 있지만, 얘를 들어, 복잡한 도형이라 가정했을 때는 사뭇 어려운 문제가 된다.

다시 사분원으로 돌아와서 넓이를 어떻게 구할 수 있을까?

우선, 그림처럼 많은 점을 random하게 정사각형 안에 찍어보는 것이다.

그랬을 때 사분원안에 들어오는 점의 수를 count하면 사분원의 넓이에 얼추 근사할 것이다.

이렇듯 여러번 시행하여 근사시키는 것을 몬테카를로 근사라고 한다.

 

적분 근사

이런 몬테카를로 근사를 이용하여 적분도 근사시킬 수 있다.

보통 미분은 gradient descent 같은 방법으로 많이 근사시킬 수 있다. 그러면 적분은?

가장 대표적인 방법으로는 MC Integration 방법이 있다.

위의 그림처럼 원하는 함수를 적분하기 위해서 분모와 분자에 p(x)를 곱하여 기대값으로 변환시켜서 값을 구할 수 있다.

여기서 중요한 것은 integral을 summation으로 변환했다는 점이다.

이는 수식으로 존재하는 것을 실제로 trail을 통해 적분 수식을 근사시킬 수 있음을 의미한다.

 

 


 

Dropout

Dropout

dropout은 딥러닝을 조금이라도 공부한 사람이라면 잘 알고있는 개념일 것이다.

모든 layer의 노드들을 random하게 선택하여 overfit을 방지하는 목적으로하는 regularization 효과를 가져올 수 있다.

single layer Neural Network

여기 하나의 layer를 갖는 single layer NN 모델이 있다고 가정해보자.

input layer와 output layer, 그리고 중간에 hidden layer가 있다.

각 layer 사이에는 노드들을 잇는 W1, W2가 있고 bias인 B가 있다.

이것을 수식으로 표현하면 다음과 같을 것이다.

single layer NN 수식

y^hat의 경우 output을 의미하며, sigma는 activation function을 의미한다.

NN with dropout

여기에 dropout을 적용시켜보자.

어떤 식으로 적용시킬 것이냐면, 일정 확률(p)로 0과 1을 내뱉는 분포인 베르누이(Bernoulli) 분포를 따르는 확률변수 z1, z2가 있다고 가정하고 이 확률변수들을 각 W1, W2에 곱하게되면, 우리가 알고 있는 dropout을 적용시킨 Neural Network가 된다.

 

dropout loss function

dropout을 적용시킨 모델의 loss function은 위와 같다.

loss function을 기억하고 있으면 좋다.

뒤에 이 loss function을 시작으로 복잡한 증명이 나온다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
Comments