Deep Learning

[DL] Deep Learning 코드 공부(1): Training, Validation, Test data set, Activation Functions, Pooling Layer, DropOut, Convolution Layer, Fully Connected Layer

진정한남자준희 2022. 7. 28. 16:26
728x90

Author: Joonhee Lim
Date: 2022/07/28


본문은 Pytorch Deep Learning By Example 책을 공부하며 작성한 글

Yes24에서 가져옴

심층 강화학습(Deep Reinforcement Learning)에 대한 공부를 계속하다가 심층 학습(Deep Learning) 코드 정도는 따닥따닥 빠르게 구현하고 싶은 욕망이 생겨 연구실 Library에 있는 책 가지고 공부하는 그런 글이 될 것 같다. 이론보다는 테크닉적으로 딥러닝을 다룰 예정이고 이 책을 다 보는 날 이 공부글도 종료될 예정.


0. Training, Validation, Test data set

- Traing data set: 모델의 파라미터를 조정하기 위해(학습하기 위해) 사용하는 데이터셋

- Validation data set: 모델의 Overfitting 등 편향되지 않았는가를 확인하기 위해 사용하는 데이터셋(세밀한 파라미터 튜닝을 하게된다.)

- Test data set: 실제 성능을 확인하기 위한 데이터셋

 

일반적으로 해당 비율을 6:2:2로 가져간다.

 

많이들 검증을 위해 K-fold Validation을 이용한다.


1. Activation Functions

- sigmoid: 값을 0~1로 바꿔준다.

- tanh: 값을 -1 ~ +1로 바꿔준다.

- softmax: 가능한 결과들을 확률로 바꿔준다.

- ReLu: 0 이하는 0으로 바꾸고 이상은 그대로 출력한다.

- Leaky ReLu: 0 이하는 0.01x, 이상은 x

 

선택하는 방법:

Classifier은 일반적으로 Sigmoid가 빠른 학습 수렴 속도를 가진다.

Softmax는 마지막 Output Layer에 온다.

그 외의 것들은 ReLu와 그 변형들을 사용해보자.


2. Pooling Layer

일반적으로 Pooling Layer는 max, average로 나뉘는데

 

Max Pooling Layer가 Feature Space의 유니크한 정보를 강조하는데 더 뛰어나기 때문에 Max Pooling Layer 추천


3. Dropout Layer

Over-fitting을 막기 위해 거의 대부분 사용한다.


4. Convolution Layer와 Fully Connected Layer의 관점

CL은 이미지의 Local Patterns을 학습하려는 경향이 있고 FCL은 Global Patterns을 학습하려는 경향이 있다.

 

꼼꼼히 잘 봐야할 때는 CL를 많이, 넓게 봐야할 때는 FCL를 많이 사용하면 될까?

 

코드 공부라 썼지만 정작 코드는 없는 이상한 글

반응형