728x90
하이퍼파라미터 튜닝이란?
HyperParameter란 모델을 학습시키기 이전에 모델의 동작을 제어함으로써, 모델의 성능에 큰 영향을 미칠 수 있는 매개변수를 말한다. HyperParameter의 예시로는 learning rate, hidden layer unit 개수, dropout 비율 등 모델 학습에 영향을 미치면서 직접 조정가능한 매개변수들을 HyperParameter라고 한다.
HyperParameter tunning이란 조정가능한 매개변수인 HyperPrameter들을 이용하여 학습 모델의 성능을 개선하고 최적화할 수 있는 최적의 매개변수를 찾는 과정을 말한다.
대표적인 하이퍼파라미터 튜닝 기법으로는 GridSearchCV, Random Search, Bayesian Optimization, Genetic Algorthms 등이 있다.
GridSearchCV
GridSearchCV는 각각의 파라미터에 대한 조합과 교차검증을 통해 모델의 성능을 평가합니다. 그리드 서치는 하이퍼파라미터들을 순차적으로 입력해 학습을 수행하기 때문에 모든 조합에서의 최적값을 뽑아낼 수 있지만, 시간이 엄청 오래걸린다는 단점이 있다.
파라미터 | 기능 |
param_grid | 하이퍼파라미터 튜닝을 위해 사용될 파라미터들을 dictionary 형태로 만들어 넣는다. |
scoring | 각 하이퍼파라미터 조합을 모델평가에 사용되는 성능 지표이다. |
cv | cross validation, 폴드라는 개념으로 교차검증을 위해 분할되는 수를 의미한다. |
verbose | iteration 수행 시 수행 결과 메세지를 출력 verbose = 0 (출력안함), verbose = 1(간단한 출력), verbose = 2(파라미터별 메세지 출력) |
n_jobs | GridSearch 중 실행할 병렬 작업의 수 |
refit | 데이터셋으로 찾은 최적화된 하이퍼파라미터를 사용해 최적 모델 재훈련할지 여부 결정 |
gridsearchCV 예시코드
#1. 필요한 라이브러리 & 모듈 가져오기
from sklearn.datasets import load_iris
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
# 2. 데이터세트 불러오기
# Load the iris dataset
iris = load_iris()
X = iris.data
y = iris.target
#3. 조정하려는 분류자의 인스턴스를 만들어준다.
# Create the SVM classifier
svm = SVC()
#4. gradsearchcv에서 사용할 하이퍼파라미터 변수들을 정의한다.
# Define the hyperparameters and their possible values
param_grid = {
'C': [0.1, 1, 10],
'kernel': ['linear', 'rbf'],
'gamma': [0.1, 1, 10]
}
#5. GreadSearchCV 개체를 만들고 분류자, 하이퍼파라미터, cv를 지정한다.
# Perform GridSearchCV
grid_search = GridSearchCV(estimator=svm, param_grid=param_grid, cv=5)
6. GridsearchCV를 이용하여 GradSearchCV를 수행한다.
grid_search.fit(X, y)
7. GridSearchCV 수행 후 최적의 하이퍼 파라미터를 PRINT로 확인한다.
# Print the best hyperparameters and best score
print("Best Hyperparameters: ", grid_search.best_params_)
print("Best Score: ", grid_search.best_score_)
반응형
'머신러닝딥러닝 > 딥러닝' 카테고리의 다른 글
Jetson Nano install mediapipe and ERROR: Failed building wheel for h5py 해결법 (1) | 2023.11.13 |
---|---|
Jetson Nano install pytorch, torchvision 설치 방법 (0) | 2023.11.13 |
Batch Normalization VS Layer Normalization (0) | 2023.05.18 |
h5파일 TFlite 변환하기, h5파일 keras 파일로 변환하기 (0) | 2023.05.16 |
mediapipe pose classification skeleton angle calculator(관절 각도 계산) (1) | 2023.05.02 |
댓글