하이퍼파라미터
IT 위키
(초모수에서 넘어옴)
- Hyperparameter; Hyper-parameter; Hyper Parameter; 초모수
하이퍼파라미터(hyperparameter)는 머신 러닝 모델의 학습 과정에서 사람이 사전에 설정해야 하는 값으로, 모델의 성능에 큰 영향을 미치지만 학습 데이터로부터 직접적으로 학습되지 않는다. 하이퍼파라미터는 모델의 구조나 학습 방법을 제어하는 변수이며, 일반적으로 실험적 탐색을 통해 최적화된다.
- 기계학습에서 학습의 기준이 되는 주요 변수
- 주로 자동으로 선정되지 않고 인간이 수작업으로 설정해줘야 하는 값
1 개요[편집 | 원본 편집]
하이퍼파라미터는 모델 내부에서 자동으로 학습되는 파라미터(예: 가중치, 편향)와 달리, 외부에서 설정되어 모델의 학습 방식과 일반화 능력에 영향을 준다. 모델의 성능을 향상시키기 위해 하이퍼파라미터 튜닝(hyperparameter tuning)이 필수적인 과정으로 여겨진다.
2 주요 하이퍼파라미터 예시[편집 | 원본 편집]
- 선형 회귀
- 정규화 계수 (alpha, lambda)
- 결정 트리 / 랜덤 포레스트
- 트리의 최대 깊이 (max_depth)
- 분기 최소 샘플 수 (min_samples_split)
- 트리 개수 (n_estimators)
- SVM
- 커널 함수 종류 (kernel)
- 정규화 계수 C
- 감마 (gamma)
- 신경망 (Neural Network)
- 학습률 (learning rate)
- 은닉층 수 및 각 층의 노드 수
- 에포크 수 (epochs), 배치 크기 (batch size)
- 옵티마이저 종류 (Adam, SGD 등)
- 드롭아웃 비율 (dropout rate)
3 하이퍼파라미터 vs 파라미터[편집 | 원본 편집]
- 파라미터
- 학습을 통해 최적화되는 값 (예: 선형 회귀의 가중치, 신경망의 weight/bias)
- 하이퍼파라미터
- 학습 전에 사람이 지정하는 설정값 (예: 학습률, 트리 깊이)
4 튜닝 방법[편집 | 원본 편집]
- 그리드 서치 (Grid Search)
- 하이퍼파라미터 값의 조합을 모두 탐색하여 최적 조합을 찾음
- 계산 비용이 크지만 간단하고 직관적임
- 랜덤 서치 (Random Search)
- 하이퍼파라미터 공간에서 무작위로 조합을 선택하여 평가
- 시간 대비 효율성이 높은 경우가 많음
- 베이지안 최적화
- 이전 탐색 결과를 기반으로 다음 시도를 조절하는 확률적 접근
- `Optuna`, `Hyperopt` 등의 라이브러리에서 제공
- 교차 검증과 결합
- 각 하이퍼파라미터 조합에 대해 교차 검증을 적용하여 일반화 성능 평가
5 예시 (scikit-learn)[편집 | 원본 편집]
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
param_grid = {
'n_estimators': [50, 100],
'max_depth': [5, 10],
'min_samples_split': [2, 4]
}
grid = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)
grid.fit(X_train, y_train)
print(grid.best_params_)
6 같이 보기[편집 | 원본 편집]
7 참고 문헌[편집 | 원본 편집]
- Géron, A. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. O'Reilly Media.
- Bengio, Y. (2012). Practical recommendations for gradient-based training of deep architectures. Neural Networks: Tricks of the Trade.
8 기술사 기출[편집 | 원본 편집]
- 정보관리기술사 제120회 4교시