딥러닝과 머신러닝의 관계

[Figure source: Trask, A. (2019). Grokking Deep Learning. Manning Publications.]

딥러닝은 머신러닝의 성능을 향상시키거나 궁극적으로는 일반인공지능(AGI)에 도달하는것을 목표로 하는 방법중 일부분. 수많은 변수를 포함하는 문제를 해결하기위해 사용되고는 함.

하이퍼파라미터

하이퍼 파라메터는 파라메터(모델 파라메터 / 가중치와 bias를 일컫는)와 달리 데이터로부터 직접적으로 학습되지는 않지만 사용자에 의해 조정되어 모델의 품질, 추론 능력, 학습 알고리즘을 실행하는데 필요한 시간과 메모리에 영향을 미침

수동 조정 (mannual tunning)

제한된 실행 시간과 메모리 예산 하에서 가장 낮은 일반화 오류를 찾는 것 -> 제약조건 하에서 가장 좋은 성능을 찾는 것
가장 중요한 것은 최종 목적을 잃지 않는 것: 테스트 세트에서 좋은 성능을 보이는 것

크기가 모델에 미치는 영향

  • 히든 레이어에서 유닛의 수가 과도하게 많으면 과적합이 발생할 수 있듯이 몇몇 하이퍼파라메터는 과적합을 발생시킴.
  • 반대로 가중치 감쇠 계수 (weight decay coefficient) 같은 하이퍼파라메터는 너무 작으면 과소적합이 발생함
  • 가장 중요한 학습률의 경우 너무 크면 발산, 너무 작으면 기울기가 0인 어느 지점에 갇혀 Loss 를 줄이지 못함

기타 특징

  • 히든 레이어의 유닛 수는 이산적 (discrete, 자연수이니까)

  • BatchNorm을 사용할지의 여부 같은 경우는 이진(binary, 사용할지 말지)

  • 가중치 감쇠 계수 (weight decay coefficient)의 경우 최소값이 0이기때문에 과소적합일때 가중치 감쇠계수를 0에서 더 낮추는 것으로 모델의 성능을 올릴 수 없음

  • 학습률을 제외한 다른 파라미터 조정을 위해서는 학습 오류와 테스트 오류를 모두 모니터링해야함

  • 학습 오류가 목표하는 오류보다 높다면 과소적합일 수 있으니 모델 용량을 키워야함

  • 테스트 오류가 목표하는 오류보다 높다면 과대적합일 수 있으니 가중치 감쇠 (규제)나 dropout 을 활용

  • 이미지와 같은 데이터는 이미지를 확대,축소,반전,밝기 및 대조 변경, 회전시켜 만든 추가적인 데이터를 통해 과적합을 방지하고 일반화 성능을 증가시킬 수 있음 (Data Augmentation)

자동 조정 (automatic tunning)

많은 경험치가 누적된 도메인에서는 하이퍼파라미터의 수동 튜닝을 위한 추천되는 출발점이 있으나 그렇지 못한 경우가 대부분임. 그런 경우에는 자동 조정이 좋은 방법이 될 수 있음.

  • 설정해야하는 하이퍼파라미터가 몇개 안될때 (보통 10개 미만) 설정해보고자 하는 유한한 하이퍼 파라미터 value set 을 만들어서 set ×\times set 으로 모든 가능한 조합에서 측정하는 것.
  • 일반적으로 로그 스케일에 따라 value set 을 만든다. 학습률을 예시로 들면
    0.1,0.01,103,104,105{0.1,0.01,10^−3,10^−4,10^−5}
  • 하지만 유한한 세트 안에서 글로벌 최적값을 찾을수 없으므로 결과에 따라 value set 을 조절해서 반복적으로 수행할 때 더 좋은 값을 찾을 수 있음.
  • 랜덤으로 하이퍼파라미터 적용해서 결과를 도출함
  • 수많은 하이퍼파라미터중에 중요한 하이퍼파라미터가 몇가지 안될때 Grid Search 보다 훨씬 성능이 좋음
  • Grid Search 의 경우 각자의 하이퍼파라미터 간 조합을 꾸리기때문에 하이퍼파라미터의 중요도에 상관없이 동일하게 같은 가중치를 가짐 -> search 성능 저하

종류

분류하이퍼파라미터설명값의 성격예시 값
학습률Learning Rate (η)한 번의 업데이트에서 파라미터를 얼마나 이동시킬지 결정연속0.1, 0.01, 0.001
정규화Weight Decay (L2)가중치 크기를 억제하여 과적합 방지연속1e-4, 1e-5
정규화L1 Regularization일부 가중치를 0으로 만들어 feature selection 효과연속0.001
정규화Data Augmentation학습 데이터 변형 방식이산flip, rotate
정규화Dropout Rate뉴런을 랜덤으로 제거해 과적합 방지연속0.1, 0.5
모델 구조Hidden Layer 수신경망 깊이 결정이산2, 4, 8
모델 구조Hidden Unit 수각 레이어의 뉴런 개수이산64, 128, 512
모델 구조Activation Function비선형성 추가이산ReLU, GELU, tanh
학습 전략Batch Size한 번에 사용하는 데이터 수이산32, 64, 128
학습 전략Epoch전체 데이터 반복 횟수이산10, 50, 100
학습 전략Optimizer파라미터 업데이트 알고리즘이산SGD, Adam, RMSProp
학습 전략MomentumSGD에서 이전 gradient를 반영연속0.9
탐색Early Stopping검증 성능이 멈추면 학습 종료이산patience=10
탐색Scheduler학습률 조정 정책이산cosine, step

reference

  • Trask, A. (2019). Grokking Deep Learning. Manning Publications.
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
  • Géron, A. (2019). Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow (2nd ed.). O’Reilly Media.

0개의 댓글