[딥러닝] 딥러닝에 사용되는 Hyperparameter 알아보기

지현·2022년 4월 27일
1
post-custom-banner

코드를 공부하면서 여러 Hyperparameter의 의미가 헷갈리는 부분이 있어서 정확하게 찾아본 후 정리해보았다.


Parameter VS. Hyperparameter

Parameter (파라미터, 매개변수)

  • Parameter는 모델 내부에서 결정되는 변수, 데이터를 통해서 산출이 가능한 값
  • 모델 내부에서 데이터를 통해 구해진다.
  • 예측을 수행할 때, 모델에 의해 요구되어지는 값
  • 측정되거나 데이터로부터 학습되어진다.
  • 학습된 모델의 일부로 저장되어진다.
  • ex. 인공신경망에서의 가중치 계수(weight coefficient), SVM(서포트 벡터 머신)에서의 서포트 벡터, 선형회귀나 로지스틱회귀분석에서의 결정계수, 편향(bias)

Hyperparameter (하이퍼파라미터, 초매개변수)

  • Hyperparameter는 주로 알고리즘 사용자가 경험에 의해 직접 세팅하는 값. (여러 번 수행하면서 최적의 값을 찾는다.)
  • 정해진 최적의 값이 없다.
  • Hyperparameter는 모델에서 외적인 요소, 데이터 분석을 통해 얻어지는 값이 아님
  • 모델의 parameter값을 측정하기 위해 알고리즘 구현 과정에서 사용
  • 예측 알고리즘 모델링의 문제점을 위해 조절된다.
  • ex. 신경망 학습에서 learing rate(학습률), SVM에서의 코스트 값, KNN에서의 K의 개수, epoch

Hyperparameter

하이퍼 파라미터 튜닝 : 상단에 하이퍼 파라미터의 특징을 적어두었듯, 이는 사용자의 입력값이고 정해진 최적의 값이 없다. 모델이나 데이터에 따라 달라지곤 하는데 이를 여러 번 시도해보면서 데이터와 모델에 맞는 하이퍼 파라미터를 찾아 나가는 과정을 하이퍼 파라미터 튜닝이라고 한다.
  • 튜닝 방법은 여러가지가 있다.
    • ex. Manual Search, Grid Search, Random Search, Bayesian Optimization, Non-Probabilistic, Evolutionary Optimization, Gradient-based Optimization, Early Stopping

다음은 네트워크 구조와 관련된 하이퍼 파라미터들이다.

  • 은닉층의 뉴런 개수 (Hidden Unit)

    • 훈련 데이터에 대한 학습 최적화 결정 변수
    • 첫 Hidden Layer의 뉴런 수가 Input Layer 보다 큰 것이 효과적
  • Dropout

    • 과적합을 피하기 위한 정규화 기법
    • 학습데이터에 과적합하게 학습된 model을 실제로 사용하기 위해 범용성을 위한 기법으로 Hidden Layer의 Neuron들을 일정 비율로 배제하고 학습을 한다.
  • 가중치 초기화 (Weight Initialization)

    • 학습 성능에 대한 결정 변수

다음은 학습에 사용되는 하이퍼 파라미터들이다.

  • 학습률 (learning rate)

    • gradient의 방향으로 얼마나 빠르게 이동할 것인지 결정하는 변수
    • 너무 작으면 학습의 속도가 늦고, 너무 크면 학습이 불가하다.
  • 모멘텀 (momentum)

    • 학습 방향을 유지하려는 성질
    • 모멘텀을 사용하면 학습 방향이 바로 바뀌지 않고, 일정한 방향을 유지하며 움직인다. (운동량)
    • 같은 방향의 학습이 진행된다면 가속을 가지며 더 빠른 학습을 기대할 수 있다.
    • 자세한 설명
  • 에포크 (epoch, training epochs)

    • 전체 트레이닝 셋이 신경망을 통과한 횟수를 의미한다.
    • ex. 1-epoch는 전체 트레이닝 셋이 하나의 신경망에 적용되어 순전파와 역전파를 통해 신경망을 한 번 통과했다는 것을 의미
  • 배치 사이즈 (batch size)

    • 미니 배치 크기(Mini-batch Size)
    • 배치셋 수행을 위해 전체 학습 데이터를 등분하는 크기 (전체 트레이닝 셋을 작게 나누는 이유는 트레이닝 데이터를 통째로 신경망에 넣으면 비효율적인 리소스 사용으로 학습 시간이 오래 걸리기 때문이다.)
    • 가용 메모리 크기와 epoch 수행 성능을 고려
    • 최소 사이즈는 32이고 GPU의 물리적인 구조로 인해 항상 2의 제곱으로 설정한다.
  • 반복 (iteration)

    • 1-epoch를 마치는데 필요한 미니배치 갯수를 의미한다. 즉, 1-epoch를 마치는데 필요한 파라미터 업데이터 횟수이다. 각 미니 배치 마다 파라미터 업데이터가 한번씩 진행되므로 iteration은 파라미터 업데이트 횟수이자 미니배치 개수이다.
    • ex. 700개의 데이터를 100개씩 7개의 미니배치로 나누었을때, 1-epoch를 위해서는 7-iteration이 필요하며 7번의 파라미터 업데이트가 진행된다.
  • 손실함수 (Cost Function)

    • 입력에 따른 기대 값과 실제 값의 차이를 계산하는 함수
    • 평균 제곱 오차
    • 교차 엔트로피 오차
  • 정규화 파라미터 (Regularization parameter)

참고
Parameter vs Hyperparameter 둘의 차이점은 무엇일까?
[DL] 파라미터와 하이퍼파라미터의 차이
딥러닝 - 하이퍼파라미터(모멘텀, AdaGrad, Adam, 가중치 초기화) 하이퍼파라미터 튜닝
[Deep Learning] 5. 딥러닝 하이퍼파라미터 튜닝
[딥러닝] 배치 사이즈(batch size) vs 에포크(epoch) vs 반복(iteration)의 차이
Hyper Parameter 하이퍼파라미터
[딥러닝 기초]Momentum 설명

profile
화이팅!
post-custom-banner

0개의 댓글