기술(Tech, IT)/머신 러닝(Machine Learning)

[ML] Optimization method (최적화 알고리즘)

Daniel803 2023. 10. 11. 06:12

최적화 알고리즘의 목적은 cost function (비용 함수) 을 최소화 (또는 최대화) 해 모델에 가장 적합한 파라미터를 찾는 것으로, Gradient Descent (경사 하강법), Stochastic Gradient Descent (확률적 경사 하강법), Newton's Method, Adam, RMSProp 등이 있다. 최적화 알고리즘이 모델에서 맞는 역할은 cost function 의 정보를 기반으로 모델 파라미터를 조정하거나 업데이트 하는 방법을 결정하는 것이다. 대표적인 최적화 알고리즘을 알아보자.

 

1. Batch Gradient Descent (배치 경사 하강법, 일괄 경사 하강법)

: * 전체 데이터 세트를 사용해 gradient (기울기) 를 계산한다.
* convex loss surfaces (볼록 손실 표면) 에선 전역 최소값 (global minium) 으로, non-convex surfaces (비볼록 표면) 에서는 국소 최소값 (local minimum) 으로 수렴하는 것을 보장한다.
* 매우 큰 데이터 세트에서는 계산 비용이 많이 들고 속도가 느릴 수 있다.

 

2. Stochastic Gradient Descent (확률 적 경사 하강법)

: * stochastic (확률적) 이라는 단어는 무작위 샘플을 사용해 gradient를 추정하는 방법의 특성을 나타낸다.

* 한 번에 하나의 예제(batch size가 1)만 사용해 gradient를 계산한다.

* 노이즈가 많은 업데이트라, 안정화 되지 않고 최적값을 중심으로 bounce (와리가리) 되므로 얕은 국소 최소값 (shallow local minima) 를 피하는 데 유용할 수 있다.

* 특히 대규모 데이터 세트의 경우 일반적으로 Batch Gradient Descent 보다 빠르다. (batch size가 1이므로)

* learning rate (학습 속도) 조정이 필요하며 feature scaling (특징 규모 정도) 에 따라 민감할 수 있다.

 

3. Mini-Batch Gradient Descent (미니 배치 경사 하강법)

: * Batch Gradient Descent와 Stochastic Gradient Descent 사이의 절충안이다.

* 데이터 세트에서 무작위로 선택된 작은 하위 집합인 샘플인 mini-batch를 사용해 graident를 계산한다.

* Batch Graident Descent의 빠른 수렴과 SGD의 국부 최소값을 피하는 확률적 특성이라는 두 가지 장점을 결합하는 것이 목표다.

* Deep Learning에서 가장 인기 있고 널리 사용되는 방법이다.

 

비록 Mini-Batch Gradient Descent가 두 가지의 장점을 결합한 접근법이지만, 더 나은 최적화 알고리즘이라고 단정하기는 어려우므로, 최적화 알고리즘을 선택할 때는 데이터 세트와 계산 조건 등의 상황을 고려해 선택해야 한다.