1. 하이퍼파라미터
- 모델의 가중치 파라미터(Weight Parameter)는 보통 경사하강법을 통해 데이터를 기반으로 자동으로 최적화
- 하이퍼파라미터는 모델의 성능에 영향을 끼치지만 자동으로 최적화되지 않는 파라미터
- 대표적인 하이퍼파라미터는 신경망의 깊이와 너비, 학습률, 활성함수의 종류 등이 있음
- 성능에 큰 영향을 주는 하이퍼파라미터들을 위주로 먼저 튜닝하여 최소한의 실험을 통해 최고의 성능을 이끌어 내야 함
1.1. 학습률
- 대표적인 하이퍼파라미터
- 학습률의 설정에 따라 모델의 학습 경향이 매우 달라질 수 있음
- 학습 초반에는 큰 학습률이 선호되고 학습 후반에는 작은 학습률이 선호됨
- 이를 응용하여 각 가중치 파라미터별 학습 진행 정도에 따라 학습률을 다르게 자동 적용할 수 있음
2. 최적화
- ML 모델의 궁극적인 목표는 손실 함수의 최소값에 도달하는 것
- 최적화는 모델에 대한 최적의 매개변수를 찾는 프로세스
- Optimizer는 모델의 매개변수를 조정하여 손실 함수를 최소화하는 데 기여하고 모델을 최적화
2.2. 주요 Optimzer
2.2.1. 경사 하강법 (Gradient Descent)
- 손실 함수의 기울기 방향으로 파라미터를 업데이트하여 최솟값을 찾는 가장 기본적인 방법
- 간단하고 구현이 쉽지만, 학습률에 민감하며 지역 최솟값에 빠질 위험이 있음
- Batch Gradient Descent: 전체 데이터를 이용하여 기울기를 계산하고 한 번에 파라미터를 업데이트. 메모리 소모가 크고, 큰 데이터셋에서는 계산 시간이 오래 걸림
- Stochastic Gradient Descent (SGD): 한 개의 데이터를 이용하여 기울기를 계산하고 파라미터를 업데이트. 빠르지만, 학습 과정이 불안정할 수 있음
- Mini-batch Gradient Descent: 배치 사이즈만큼의 데이터를 이용하여 기울기를 계산하고 파라미터를 업데이트. Batch GD와 SGD의 장점을 모두 가지고 있음
2.2.2. 모멘텀 (Momentum)
- 시작부터 매번 계산된 그래디언트를 누적하는 형태
- 지역 최소값에 빠질 가능성을 줄임
- 최솟값으로 향하는 속도를 가속화할 수 있음
- 여전히 학습률의 튜닝이 필요함
2.2.3. AdaGrad
- 최초로 제안된 적응형 학습률 알고리즘
- 가중치 파라미터마다 별도의 학습률을 가짐
- 각 가중치 파라미터의 학습률은 가중치 파라미터가 없데이터될수록 반비례하여 작아짐
- 업데이트가 많이 된 파라미터의 경우 작은 학습률을 갖게되고, 업데이터가 적게된 파라미터의 경우 큰 학습률을 갖게 됨
- 단점으로는 학습이 진행됨에 따라 파라미터 없데이터가 많이 될 경우 학습률이 매우 작아져서 그래디언트가 크더라도 업데이트가 잘 되지 않을 수 있음
2.2.4. Adam
- 기존 적응형 학습률 방식에 모멘텀이 추가된 알고리즘으로 가장 보편적으로 쓰이는 알고리즘
- 기존 하이퍼파라미터인 학습률 이외에도 하이퍼파라미터가 2개 추가됨