본문 바로가기

최적화3

[비전공자용] [Python] 하이퍼파라미터 최적화 Hyperparameter Optimization 신경망에는 다수의 하이퍼파라미터가 등장합니다. 각 층의 뉴런 수, 배치 크기, 매개변수 갱신 시의 학습률, 가중치 감소 등이 하이퍼파라미터입니다. 하이퍼파라미터의 값을 어떻게 결정하느냐에 따라 학습 모델의 성능이 크게 영향을 받습니다. 그럼 하이퍼파라미터의 값을 최대한 효율적으로 탐색하는 방법을 알아보겠습니다. # 검증 데이터 하이퍼파라미터를 다양한 값으로 설정하고 검증하기 전에 검증하는 과정, 성능을 평가하는 과정에 대해 먼저 소개하겠습니다. 하이퍼파라미터의 성능을 평가할 때는 시험 test 데이터를 사용하면 안됩니다. 시험 데이터를 사용하면 하이퍼파라미터가 시험 데이터에 오버피팅됩니다. 시험 데이터에만 적합하게 조정되어 다른 데이터에는 적용하지 못하는 범용 성능이 떨어지는 모델이 될 수 있기 때문입니.. 2020. 7. 10.
[비전공자용] [Python] 모멘텀, AdaGrad, Adam 최적화기법 이번 포스트에서는 모멘텀, AdaGrd, Adam 최적화 기법에 대해 상세히 알아볼 겁니다. 1. 모멘텀 Momentum 모멘텀은 운동량을 뜻하는 단어로, 신경망에서의 모멘텀 기법은 아래 수식과 같이 표현할 수 있습니다. SGD에서와 마찬가지로 W 는 갱신할 가중치 매개변수, L은 손실함수를 나타내고 η 는 학습률 learning rate, ∂L/∂W은 W 에 대한 손실함수의 기울기를 나타냅니다. SGD와 달리 변수 v가 등장하는데 물리에서 운동량을 나타내는 식은 p = mv, 질량 m, 속도 v이므로 위 수식에서도 v는 속도를 의미합니다. 매개변수 α를 v에 곱해서 αv 항은 물체가 아무 힘도 받지 않을 때도 서서히 하강시키는 역할을 하게 됩니다. 물리에서의 마찰력이라고 생각하면 편할 것 같습니다. 하.. 2020. 7. 9.
[비전공자용] 확률적 경사 하강법 SGD 의 단점 SGD란? 이전 포스트에서는 최적의 매개변수 값을 찾는 단서로 매개변수의 기울기(미분)을 이용했습니다. 이 방법을 확률적 경사 하강법, 즉 Stochastic Gradient Decent (SGD) 라고 합니다. SGD의 수식은 아래 식과 같이 쓸 수 있습니다. 여기에서 W 는 갱신할 가중치 매개변수, L은 손실함수를 나타내고 η 는 학습률 learning rate, ∂L/∂W은 W 에 대한 손실함수의 기울기를 나타냅니다. 즉, SGD는 기울어진 방향으로 일정 거리만 가겠다는 단순한 방법입니다. SGD를 파이썬 코드로 간단히 구현하면 다음과 같습니다. import numpy as np class SGD: """확률적 경사 하강법(Stochastic Gradient Descent)""" def __init.. 2020. 7. 8.
반응형