본문 바로가기

python·Data Science

[머신러닝 딥러닝 문제해결 전략] 하이파파라미터 최적화

728x90

하이퍼파라미터는 사용자가 직접 설정해야 하는 값.

데이터 분석에  사용하는 모델에 최적의 하이퍼파라미터를 전달해야 성능이 좋아짐.

모델이 좋은 성능을 내도록 최적의 하이퍼파라미터를 찾는 작업이 하이퍼파라미터 최적화임.

그리드서치, 랜덤서치, 베이지안 최적화가 대표적인 방법임.

 

그리드서치(Grid Search)

가장 기본적인 하이퍼파라미터 최적화 기법. 

주어진 하이퍼파라미터를 모두 순회하며 가장 좋은 성능을 내는 값을 찾는다. 

그래서 시간이 오래 걸린다는 단점이 있다. 

공식문서 : https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

 

랜덤서치(Random Search)

하이퍼파라미터를 무작위로 탐색해 가장 좋은 성능을 내는 값을 찾는 기법.

무작위라는 한계 때문에 그리드서치나 베이지안 최적화에 비해 사용 빈도가 낮다. 

사이킷런이 제공하는 RamdomizedSearchCV() 메서드로 수행할 수 있음.

공식문서 : https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RandomizedSearchCV.html

 

베이지안 최적화 (Bayesian Optimization)

사전 정보를 바탕으로 최적 하이퍼파라미터 값을 확률적으로 추정해 탐색하는 기법.

그리드서치나 랜덤서치보다 최적 하이퍼파라미터를 더 빠르고 효율적으로 찾아준다.

bayes_opt라는 패키지로 베이지안 최적화를 구현할 수 있다. 

공식문서 : https://scikit-optimize.github.io/stable/auto_examples/bayesian-optimization.html

<베이지안  최적화 수행 절차>

하이퍼파라미터 탐색 범위 설정 -> 평가지표 계산 함수 정의 -> 베이지안 최적화 객체 생성 -> 최적화 수행

반응형