[DL] 옵티마이저

fragrance_0·2023년 11월 20일
0

DL

목록 보기
5/6

📂 옵티마이저

  • 손실함수에서 구한, 손실값이 적도록 값을 조정하는 과정을 최적화(Optimization)
  • 바로 그 조정 방법을 정의한 것이 옵티마이저(Optimizer) 이다.
  • 최적화 원리와 옵티마이저로 활용되는 대표적인 알고리즘 -> 경사하강법 SGD Adam

+ 옵티마이저의 발달 계보

🔗 경사하강법(Gradient Descent)의 원리

🔗 확률적 경사 하강법(SGD; Stochastic Gradient Descent)의 원리

  • GD의 단점 -> 데이터의 양이 많아질수록 계산량이 많아짐
  • SGD는 미니배치(Mini-Batch)를 통해 손실값을 계산하고 가중치를 업데이트
  • 하나의 미니배치 집합에 포함된 데이터 샘플 수는 보통 16, 32, 64 등 2의 제곱수를 따르게 됨

🅀 일부 데이터만을 가지고 가중치를 업데이트하면, 부정확한 결과가 나오지 않을까?
💡 경사하강법의 국소 최솟값(Local Minima)에 빠질 수 있다는 단점을 보완 -> 전역 최솟값(Global Minima)으로 이동 가능

optimizer = optim.SGD(model.parameters(), lr=0.01)
  • 활성화 함수, 손실 함수 에서 옵티마이저 코드 부분과 결합

🔗 Adam

  • Adam만큼 일반적인 환경에서 좋은 성능을 보이는 옵티마이저가 없어 보통 SGD나 Adam를 가장 많이 활용함
optimizer = optim.Adam(model.parameters(), lr=0.01)

[출처 | 딥다이브 Code.zip 매거진]

profile
@fragrance_0의 개발로그

0개의 댓글