티스토리 뷰

[개요]

  • 최적화 알고리즘은 주어진 함수(예를 들어 손실함수 등)의 최소값을 찾기 위해 사용됨.

 

[주요 분류]

  • 경사 기반 최적화(Gradient-Based Optimization)
  • 기울기 없는 최적화(Gradient-Free Optimization)
  • 2차 최적화

 

[경사 기반 최적화]

  • 손실함수를 최소화하기 위해 함수의 기울기(gradient)를 계산하여 파라미터들을 점진적으로 업데이트하는 방식
  • 배치 경사 하강법(Batch Gradient Descent, BGD)
    • 전체 데이터셋을 사용하여 손실함수의 기울기 계산
    • 경사 방향이 정확하여 학습이 안정적이나,
    • 데이터셋이 클 경우 계산 비용이 매우 높아짐.
    • 데이터셋이 작고 메모리가 충분한 경우에 사용
  • 확률적 경사 하강법(Stocastic Gradient Descent, SGD)
    • 한 번의 업데이트에 단일 데이터 포인트를 샘플링하여 기울기를 계산
    • 계산 비용이 낮고, 국소 최소값을 탈출하는 데 유리하지만,
    • 진동 현상이 발생할 수 있으며, 이로 인해 수렴 속도가 느려질 수 있음.
    • 대규모 데이터셋에 적합
  • 미니 배치 경사 하강법(Mini-Batch Gradient Descent)
    • 데이터셋을 작은 배치로 나누어 각 배치에 대해 기울기를 게산
    • SGD의 효율성과 BGD의 안정성을 모두 취할 수 있지만,
    • 배치 크기 설정이 중요하며, 적절한 값 선정이 필요함.
    • 딥러닝 학습에서 널리 사용
  • 모멘텀(Momentum)
    • 이전 업데이트 방향을 고려해 진동을 줄이고 더 빠르게 수렴
    • SGD의 진동 문제를 완화시킴.
    • 주로 SGD 알고리즘에 추가하여 사용됨.
  • 적응형 학습률 기법(Adaptive Learning Rate Methods)
    • 학습률을 동적으로 조정하여 효율성을 높임.
    • 주요 기법 : Adam(모멘텀과 RMSProp의 장점을 결합한 방식), AdaGrad(자주 나타나는 기울기를 줄이고 드문 기울기를 확대), RMSProp(과거 기울기의 제곱을 지수적으로 가중 평균하여 학습률 조정)
    • 학습률 설정의 어려움을 완화하면서 더 빠른 수렴 가능
    • 딥러닝에서 일반적을 사용됨.

[기울기 없는 최적화]

기울기 계산이 어려운 경우 사용되는 방법이며, 함수 평가를 통해 최적값 탐색

  • 유전 알고리즘(Genetic Algorithm)
    • 생물학적 진화를 모방하여 최적화를 수행
    • 교배(crossover), 돌연변이(mutation) 등을 활용
  • 시뮬레이티드 어닐링(Simulated Anealing)
    • 금속 냉각 과정을 모방하여 최적화
    • 초기에는 탐색 범위가 크지만 점차 좁혀감.
  • 랜덤 탐색(Random Search)
    • 랜덤 샘플링을 통해 함수의 최소값을 찾음.
    • 단순하지만 계산량이 많아질 수 있음.

 

[2차 최적화]

  • 2차 미분 정보를 이용하여 함수의 곡률을 고려한 최적화 수행
  • 뉴턴 방법(Newton's Method)
    • 손실 함수의 2차 미분(헤시안)을 사용해 최소값 탐색
    • 매우 빠르게 수렴하지만 계산 비용이 높음.
  • 준-뉴턴 방법(Quasi-Newton Methods)
    • 헤시안을 근사 계산하여 뉴턴 방법의 계산 비용을 줄임.
    • BFGS(Broyden-Fletcher-GoldFarb-Shanno) 알고리즘 등이 대표적임.

 

출처 : https://www.extrica.com/article/22271

 

 

https://link.springer.com/article/10.1007/s00521-023-08568-z

반응형