일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- PYTHON
- VAE
- R
- 강화학습
- 빅데이터
- 텍스트분석
- 논문리뷰
- 파이썬
- Crawling
- YarinGal
- Graph
- 코딩테스트
- uncertainty
- selenium
- 우분투
- 텍스트마이닝
- pytorch
- 베이지안
- GNN
- pandas
- 알고리즘
- DATA
- bayesian
- dropout
- 리눅스
- AI
- 크롤링
- 불확실성
- 데이터분석
- 백준
- Today
- Total
끄적거림
[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 6.Experiment 본문
[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 6.Experiment
Signing 2021. 2. 1. 16:56[논문 리뷰] 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 설명 - 5.Methodolgy
[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 6.Experiment
[논문 리뷰] Dropout as a Bayesian Approximation 설명 - 7.Conclusion
[논문 실습] Dropout as a Bayesian Approximation 실습 코드 - pytorch ver
Regression Task
위 그림은 CO2 농도에 대한 dataset으로 regression task를 진행한 결과이고,
plot 설명
- 파란 점선 왼편의 빨간색 실선은 실제 데이터
- 파란 점선 왼편의 파란색 실선은 예측값(=함수값)
- 왼쪽부터 파란 점선까지는 training data
- 파란 점선부터 빨간 점선까지는 train data와는 전혀 상관이 없는 데이터
- 파란색 음영진 부분은 uncertainty를 나타냄
모델 설명
- 4~5 layer와 1024 hidden units을 갖는 NN 모델
- activation function으로는 ReLU와 TanH를 사용
- dropout ratio는 0.1과 0.2를 사용
실험 결과 설명
- (a): 일반적인 dropout으로 적용시킨 결과이며, uncertainty를 구한 결과가 아니기 때문에 파란색 음영을 찾아 볼 수 없다. 예측값은 무난하다.
- (b): Gaussian Process로 fitting한 결과이며 standard error를 uncertainty로 구한 결과를 나타내고 있다. 자세히보면 파란 점선 이후 극초반엔 서서히 커지다가 얼마 안가서는 일정하고 큰 uncertainty를 갖는 것을 확인할 수 있다. 예측값 또한 무난하다.
- (c): MC-Dropout과 ReLU activation function을 적용한 결과이다. training data와 멀어질수록 uncertainty도 그와 비례하여 높아지는 것을 확인할 수 있다. 뿐만 아니라, 예측값 또하 어떠한 추세를 가지고 있고, 주기성 또한 갖고 있는 것을 확인할 수 있다. 예측 추세가 다소 좋지는 않으나, uncertainty가 reasonable하다는 것은 누구나 알 수 있을 것이다.
- (d): MC-dropout과 TanH activation function을 적용한 결과이다. uncertainty는 매우 작아서 보이지 않을 정도로 bound 되어 있다. 반면 예측값은 무난한 정도이다.
우리가 여기서 주목해야할 점은 ReLU와 TanH 간 uncertainty의 양상이 매우 다르다는 것이다.
먼저, ReLU의 경우, 0보다 작을 경우는 0이지만, 0보다 클 경우는 기울기가 1인 직선이므로 gradient를 그대로 반영한다.
하지만, TanH의 경우, 일정 값 이내에서는 0으로 수렴하는 결과를 가져올 뿐 아니라 Gradient Vanishing 문제도 같이 발생한다.
이 말은 그만큼 데이터가 압축이 될 수 있다는 말이다.
논문에서는 그냥 bound 된다 하고 넘어가지만, 이를 풀어보면 이런 결과가 있다는 것을 알 수 있다.
Hyper-parameter 조정
- Uncertainty with dropout ratio 0.1 < Uncertainty with dropout ratio 0.2
- dropout ratio를 0.1로 주었을 때보다 0.2로 주었을 때가 더 uncertainty가 높다고 얘기하고 있다.
- 사실 그도 그럴것이, ratio를 0으로 주었을 때, 즉, 아무 dropout을 시키지 않은 상태일때는 당연히 uncertainty를 catch할 수 없다.
- dropout ratio를 높이면 높일수록 그만큼 더 uncertainty가 높아지기 마련이고, 적절한 dropout ratio를 구해야할 필요가 있다.
- Better T(10) than T(1000)
- Samplig을 10번 할 때가 1000번 할 때보다 더 predictive mean과 variance(=uncertainty)가 우수하다고 말하고 있다.
Classification Task
위 그림은 MNIST 데이터 셋을 가지고 classification task를 진행한 모습이고,
plot 설명
- 숫자 1의 MNIST 데이터를 조금씩 돌려가면서 이 사진에 분류 인식을 어떻게 하는지 살펴본 그림이다.
- 왼쪽 plot은 softmax를 통과하기 전의 상태인 softmax input
- 오른쪽 plot은 softmax를 통과한 후의 상태인 softmax ouput
- 초록색은 1, 파란색은 5, 주황색은 7을 의미한다.
- 100번의 MC-dropout을 진행했을 때의 각 class라고 대답할 것에 대한 variance(=uncertainty)
모델 설명
- LeNet CNN 모델
- dropout ratio = 0.5
실험 결과 설명
- softmax input에 비해 output의 uncertainty가 더 높음을 볼 수 있다.
- 특히, class 5의 경우 다른 class들보다 uncertainty가 더 높음을 볼 수 있다.
- 실무적으로 uncertainty를 쓸 수 있다면, 아마 다음과 같을 것이다.
- softmax output을 비교해보았을 때, 특정 class로 분류할 확률이 가장 높다.
- 더불어 각 class로 분류할 확률에 대한 uncertainty도 동시에 보았을 때, uncertainty가 높다고 판단되는 class는 softmax output이 높다고 하더라도 해당 class를 제외할 수 있다.
Performance
위 그림은 많은 데이터셋을 가지고 performance를 비교한 table이다.
table 설명
- N은 데이터의 관측 갯수이다.(=row)
- Q는 데이터의 변수 갯수이다.(=column)
- VI는 Variational Inference, PBP는 Probabilistic Back-Propagation을 의미하고 이들은 BNN의 randomness를 어떻게 줄것인가에 대한 여러 방법론이다.
- 세 방법론을 적용했을 때, RMSE와 Log-Likelihood 기준으로 가장 우수한 방법론을 비교하기 위한 table이다.
실험 결과 설명
- 그림에서 알 수 있듯이 dropout을 적용했을 때 성능이 가장 우수한 것을 알 수 있다.
- 그만큼 RMSE 부분이나 Log-Likelihood 부분에서 성능 개선이 발생한 것을 알 수 있다.
Reinforcement Learning
위 그림은 Atari game이라는 시뮬레이션을 실험한 결과이다.
상황 설명 + 강화학습 간단 설명
강화학습 설명
- 강화학습은 agent라고 하는 학습 주체를 reward(보상)를 통해서 학습시키는 학습방법이다.
- negative reward는 기피하고, positive reward를 얻으려는 방향으로 학습하면서 더 나은 state를 만들고자 행동한다.
- 이 과정에서 exploitation 과 exploration 간의 trade-off가 발생한다.
- exploitation은 자신에게 득이되는 학습방법을 강화하는 것이고, exploration은 기존의 학습 방법보다 새로운 학습방법을 찾고자 하는 것이다.
- 한가지 실생활 예로, 맛집을 찾으려는 문제에서 집근처 별점 3점만큼의 맛집을 찾았다고 가정하면,
- 별점 3점짜리 맛집을 더 빠르고 간단하게 가는 방법이 exploitation이고,
- 새로운 맛집인 별점 5점짜리를 찾아 떠나는 것이 exploration이다.
- 강화학습에서 Q-value를 얻기 위한 함수로써 NN을 사용한다.
- Q-value란 reward의 총량으로 생각할 수 있다.
- Q-value function으로써 보통 Epsilon greedy search(Appendix 참고)를 사용하지만, 이 방법론은 uncertainty를 반영하지 못한다.
상황 설명
- 왼쪽 그림은 Atari game의 한 장면을 나타내고 있다.
- 빨간색 원은 positive reward, 초록색 원은 negative reward이며, 중간에 뒤집힌 'ㄷ'자 처럼 생긴 구조물은 장애물(벽)이다.
- agent는 9개의 각기 다른 방향에 달린 눈을 가지고 있고, 각 눈은 3개의 색깔을 인식할 수 있다.
- agent는 벽을 보지 않고, 직선으로 움직이는 것에 대해 positive reward를 받는다.
- 같은 NN 구조를 사용하였고 Dropout ratio를 0.1로 주었다.
- 차이점은 기존의 비교군은 Epsilon greedy search방법론이고었고, 실험군은 Thompson sampling 방법론을 사용했다.
실험 결과 설명
- 같은 NN구조를 사용했기 때문에 agent의 행동 양상에 대한 설명은 따로 없다.
- 다만 오른쪽 그림과 같이 Thompson Sampling을 사용한 쪽이 average reward에 좀 더 빠르게 수렴한다는 사실을 알 수 있었다.
- 또한, 1000번 이상의 batch결과를 보면, Thompson Sampling은 수렴하지만, Epsilon Greedy Search는 수렴하지 않고 추세가 계속 높아지는 것을 확인할 수 있다.
- Thompson Sampling은 uncertainty를 고려하기 때문에, exploitation-exploration issue를 해결할 수 있다고 설명하고 있다.