본문 바로가기

데이터 다루기/신경망

[신경망] 10. Parameter Search Method

728x90
반응형

안녕하세요, 이번 포스팅에서는 딥러닝에서 뿐만아니라 전반적으로 사용되는 Parameter 선택 방법을 알아보도록 하겠습니다.

우선 Hyperparameter 라는 개념에 대해서 설명해드리겠습니다.

Hyperparameter는 기본적인 Model Parameter와는 다른 개념입니다. Model Parameter는 모델을 학습하면서 데이터에서 얻을 수 있는 Parameter를 말합니다. 예를 들어서, 표본평균이나 표본분산은 모델 학습전에는 정해지지 않은 Parameter이지만, 데이터가 들어옴으로써 그 데이터로부터 얻을 수 있는 Paramerter입니다. 하지만 Hyperparameter는 학습을 통해서 얻을 수 있는 것이아니라, 학습하기 전에 정해주어야 하는 Parameter 입니다. 예를 들어서, 신경망에서 Layer의 수, node의 수, learning rate, batch size 와 같은 것이 Hyperparameter 입니다. Hyperparameter는 따로 정하는 기준이 없고 분석자의 주관이 개입되면서 정해지게 됩니다. 모델의 성능 (Acuuracy, 속도 등)을 최적으로 만들어주는 Hyperparameter를 찾는 것을 Parameter Search Method라고 합니다.

이제 현재까지 어떠한 방법이 많이 쓰이고 있는지를 알아보도록 하겠습니다.

1. Babysitting

Babysitting 방법은 가장 친근하시게 느끼실 것입니다. 가장 기본적인 Parameter Search Method로 데이서 수집, 데이터 시각화, 모델 적합, validation set으로 성능 검정 등의 모든 과정을 걸쳐서 최적의 Parameter를 찾는 방법입니다. 저희가 보통 머신러닝을 배우면서 Tree의 수를 찾거나, 회귀분석에서 변수 선택을 하는 등의 과정이 전부 Babysitting 방법에 속합니다.

하지만 딥러닝에서는 이러한 과정을 다 거치기에는 데이터가 너무 많고 학습 시간도 오래 걸려서 이 방법을 사용하는데는 무리가 있습니다.

2. Grid Search

[Bergstra and Bengio(2012)]

 

Grid Search 방법은 예를 들어서, Learning rate 후보를 동일한 간격을 가지도록 0.2, 0.4, 0.6, 0.8로 정하고, Dropout rate 후보를 0.3, 0.5, 0.7 로 정했다면, 나올 수 있는 순서쌍 4X3 을 이용해 모델을 전부 적합한 후, 최적의 Parameter를 찾는 방법입니다. 하지만 Parameter들의 후보군의 개수가 증가할수록 전체 탐색 시간이 기하급수적으로 증가한다는 단점이 있습니다.

 

3. Random Search

Random Search 방법은 Grid Search 방법과 비슷한데, 차이점으로 후보군을 동일한 간격을 가지도록 따로 정하지 않고 랜덤 추출하여 사용합니다. Random Search 방법은 Grid Search 방법에 비해서 불필요한 탐색을 줄일 수 있는 장점이 있어서, 최적의 Parameter를 더 빨리 찾아낼 수 있다고 알려져 있습니다. 하지만 Random Search 방법도 Grid Search 와 마찬가지고 사전에 선택된 Parameter를 반영하지 않으므로 탐색속도가 불안정하다고 할 수 있습니다.

4. Baysian Optimization

Baysian Optimization 방법은 위의 두 방법과 다르게 사전에 선택된 Parameter를 반영하여 탐색합니다.

현재까지 선택된 Parameter와 성능지표를 바탕으로, 미지의 목적 함수의 대략적인 형태를 추정하여 최적의 Parameter를 찾습니다.

이 때 확률적인 추정을 수행하는 모델을 Surrogate Model이라고 불립니다. Surrogate Model로써 가장 자주쓰이는 확률 모델은 Gaussian Process 입니다.

4가지 방법을 살펴보았는데, 어떠한 방법이 딥러닝에 가장 적합할까요??

물론 4가지 방법중 어떠한 방법을 사용하여도 상관은 없지만, 딥러닝 같이 데이터가 많고 연산 과정도 복잡한 모델에서는 가장 효율적으로 변수를 찾을 수 있는 Baysian Optimization이 가장 많이 쓰인다고 합니다.

반응형