Machine Learning

what is Grid search?

뚜둔뚜둔 2023. 7. 19. 13:37

GridSearch LSTM, DNN Code:

https://www.kaggle.com/code/sujinies2/gridsearch-lstm-dnn/notebook

 

 

1. What is Grid search?

컨셉 : 모델에게 가장 적합한 하이퍼 파라미터를 찾기

  • grid search (격자 탐색)은 모델 하이퍼 파라미터에 넣을 수 있는 값들을 순차적으로 입력 한 뒤에 가장 높은 성능을 보이는 하이퍼 파라미터를 찾는 방법이다.

1) 하이퍼파라미터의 개념 살펴보기

  • hyper parameter( 초 매개변수) : 모델을 생성할 때, 사용자가 직접 설정하는 변수
  • 랜덤 포레스트 모델을 우리가 만든다고 하면, 트리의 개수를 몇개 까지 할 것 인지, 트리의 깊이는 몇 까지 할 것인지
  • 딥러닝 모델은 layer의 개수, epoch(학습횟수)의 수등
  • -> 세부적인 규율은 모델을 학습 시키는 우리가 정할 수 있음

**Parameter vs hyper parameter

  • parameter(매개변수)는 학습과정에서 생성되는 변수들
  • 랜덤포레스트 모델, 딥러닝 모델 : 학습가중치들
1. 최적화 알고리즘 : Adam, Adadelta, Adagrad, SGD등
2. 알고리즘 하이퍼파라미터: Learning rate, momentum 등 알고리즘 별 하이퍼 파라미터
3. Network Initialization: 가중치를 초기화 하는 방법
4. 활성 함수: relu, swish, sigmoid등
5. Dropout_rate: 매 배치당 제거할 노드의 비율
6.뉴런(노드)의 수:  히든 레이어의 크기

 

 

딥러닝, 머신러닝등 결국 아주 복잡한 함수의 가중치를  찾아 나가는 과정이다.

여기서 핵심인 가중치가 바로 파라미터이다. 따라서 파라미터는 학습 과정에서 생성되는 것이며, 엄청나 차원의 함수인 딥러닝,머신러닝 모델의 경유에는 파라미터가 딱 이숫자다!, 표현할 수 없다

 

 

2. why use to Grid search?

" 가장 우수한 성능을 보이는 모델의 하이퍼 파라미터를 찾기 위해서 "

-> 모든 경우의 수를 넣어서 가장 성능이 좋게 만드는 하이퍼 파라미터를 찾는 것

-> 모든 경우의 수를 다 넣어서 모델을 만드는 것이기 떄문에 시간이 많이 걸린다는 단점이 있음

 

유사한 다른 방법들 

1. Random Search

  • 랜덤 서치는 하이퍼 파라미터 값을 랜덤하게 넣어보고 그 중 우수한 값을 보인 하이퍼파라미터를 활용해 모델을 생성함
  • 랜덤 서치가 그리디 서치보다 효율적이다?
    • -> okay, 불필요한 탐색 횟수를 줄이기 때문!
    • 그리드 서치는 우리가 딕셔너리에 지정한 모든 값을 다 탐색해야 한다. 이는 사람이 임의로 정한 값이기 때문에, 어떤 값이 효과적인지는 알 수 없고, 입력이 되었으니 한번씩 다 모델이 생성되어야한다
    • 그러나 랜덤 서치는, 랜덤한 숫자를 넣은뒤 정해진 간격(grid)사이에 위치한 값들에 대해서도 확률적으로 탐색이 가능하므로, 최적 hypyer parameter값을 더 빨리 찾을 수있다


2. bayesian optimization

 

 

 

 

참고 : https://huidea.tistory.com/32

반응형

'Machine Learning' 카테고리의 다른 글

[pytorch] GRU 입력 텐서와 출력 텐서의 shape 이해  (0) 2023.07.19
what is Ensemble Learning?  (0) 2023.07.19
[summary]what is BERT?  (0) 2023.07.05
Few shot Learning, Meta Learning  (3) 2022.11.29
[내용정리]Meta Learning  (1) 2022.11.25