Hyperparameter
📝 Hyperparameter 튜닝
모델 성능을 높이기 위해 모델을 구성하는 여러 요소 중에 최적의 요소 값을 찾아내는 과정이다.
1) Grid Search
모든 경우를 테이블로 만든 뒤 격자로 탐색하는 방식이다.
모든 하이퍼파라미터 후보들에 대한 일반화 성능을 확인하기 때문에 시간이 오래 걸리는 단점이 있다.
from sklearn.model_selection import GridSearchCV
# parameter
batch_size = [10, 20, 40, 60, 80, 100]
epochs = [30]
param_grid = dict(batch_size=batch_size)
# GridSearch
grid = GridSearchCV(estimator=model, param_grid=param_grid, n_jobs=1)
grid_result = grid.fit(X, Y)
print(f"Best: {grid_result.best_score_} using {grid_result.best_params_}")
2) Random Search
하이퍼 파라미터 값을 랜덤하게 넣어보고 그중 우수한 값을 보인 하이퍼 파라미터를 활용해 모델을 생성한다.
GridSearch에 비해 시간은 적게 걸리지만, 랜덤하게 확인하기 때문에 정확도가 떨어질 수 있다.
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
# parameter
param_distribs = { 'n_estimators': randint(low=1, high=200), 'max_features': randint(low=1, high=8), }
# RandomSearch
random = RandomizedSearchCV(estimator=model, param_distributions=param_distribs, n_iter=10, cv=5, scoring='neg_mean_squared_error', random_state=42)
random.fit(X, Y)
3) Bayesian Methods
미지의 함수가 반환하는 값의 최대 또는 최소값을 짧은 반복을 통해서 찾아내는 최적화 방식이다.
[튜닝가능한 파라미터 옵션]
batch_size
training epochs
optimization algorithms
learning rate
momentum
activation functions
dropout regularization
hidden layer의 neuron 갯수
Author And Source
이 문제에 관하여(Hyperparameter), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dauuuum/Hyperparameter저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)