도움말닫기
편집할 때 기술적인 문제가 발생했다면 보고해 주세요.
알림 2개닫기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

이 편집기가 공식적으로 지원하지 않는 브라우저를 사용하고 있습니다.

하이퍼파라미터

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교시

Hyperparameter; Hyper-parameter; Hyper Parameter; 초모수

하이퍼파라미터(hyperparameter)는 머신 러닝 모델의 학습 과정에서 사람이 사전에 설정해야 하는 값으로, 모델의 성능에 큰 영향을 미치지만 학습 데이터로부터 직접적으로 학습되지 않는다. 하이퍼파라미터는 모델의 구조나 학습 방법을 제어하는 변수이며, 일반적으로 실험적 탐색을 통해 최적화된다.

  • 기계학습에서 학습의 기준이 되는 주요 변수

  • 주로 자동으로 선정되지 않고 인간이 수작업으로 설정해줘야 하는 값

개요

하이퍼파라미터는 모델 내부에서 자동으로 학습되는 파라미터(예: 가중치, 편향)와 달리, 외부에서 설정되어 모델의 학습 방식과 일반화 능력에 영향을 준다. 모델의 성능을 향상시키기 위해 하이퍼파라미터 튜닝(hyperparameter tuning)이 필수적인 과정으로 여겨진다.

주요 하이퍼파라미터 예시

  • 선형 회귀

    • 정규화 계수 (alpha, lambda)

  • 결정 트리 / 랜덤 포레스트

    • 트리의 최대 깊이 (max_depth)

    • 분기 최소 샘플 수 (min_samples_split)

    • 트리 개수 (n_estimators)

  • SVM

    • 커널 함수 종류 (kernel)

    • 정규화 계수 C

    • 감마 (gamma)

  • 신경망 (Neural Network)

    • 학습률 (learning rate)

    • 은닉층 수 및 각 층의 노드 수

    • 에포크 수 (epochs), 배치 크기 (batch size)

    • 옵티마이저 종류 (Adam, SGD 등)

    • 드롭아웃 비율 (dropout rate)

하이퍼파라미터 vs 파라미터

  • 파라미터

    • 학습을 통해 최적화되는 값 (예: 선형 회귀의 가중치, 신경망의 weight/bias)

  • 하이퍼파라미터

    • 학습 전에 사람이 지정하는 설정값 (예: 학습률, 트리 깊이)

튜닝 방법

  • 그리드 서치 (Grid Search)

    • 하이퍼파라미터 값의 조합을 모두 탐색하여 최적 조합을 찾음

    • 계산 비용이 크지만 간단하고 직관적임

  • 랜덤 서치 (Random Search)

    • 하이퍼파라미터 공간에서 무작위로 조합을 선택하여 평가

    • 시간 대비 효율성이 높은 경우가 많음

  • 베이지안 최적화

    • 이전 탐색 결과를 기반으로 다음 시도를 조절하는 확률적 접근

    • `Optuna`, `Hyperopt` 등의 라이브러리에서 제공

  • 교차 검증과 결합

    • 각 하이퍼파라미터 조합에 대해 교차 검증을 적용하여 일반화 성능 평가

예시 (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_)

같이 보기

참고 문헌

  • 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.

기술사 기출

  • 정보관리기술사 제120회 4교시