최적화 이론에서 확정적 최적화(Deterministic Optimization)와 확률적 최적화(Stochastic Optimization)는 주로 최적화 알고리즘의 유형을 구분하는 데 사용되는 개념이다. 각 유형의 알고리즘은 다른 문제와 상황에 적합하며, 그에 따라 다른 성능 및 수렴 특성을 보인다.
확정적 최적화
확정적 최적화 알고리즘은 정해진 규칙에 따라 움직이며, 무작위성이 없는 알고리즘이다. 주어진 초기 조건에서 동일한 결과를 항상 생성한다. 이러한 알고리즘은 수학적으로 분석하기가 상대적으로 쉽다.
확정적 최적화의 종류
경사 하강법 (Gradient Descent): 경사 하강법은 손실 함수의 그래디언트(기울기)를 따라 가장 낮은 손실 값을 찾아 나가는 방식으로 작동한다. 전체 데이터셋을 사용하여 각 반복에서 그래디언트를 계산한다.
뉴턴법 (Newton's Method): 뉴턴법은 함수의 두 번째 도함수(헤시안 행렬)를 사용하여 최솟값을 찾는다. 이 방법은 일반적으로 빠르게 수렴하지만, 헤시안 행렬을 계산하고 역행렬을 구하는 과정에서 계산 복잡도가 높을 수 있다.
확률적 최적화
확률적 최적화 알고리즘은 무작위성을 포함하며, 확률적인 방법을 사용하여 최적화 문제를 해결한다. 이러한 알고리즘은 더 복잡한 문제에 대해서도 유연하게 대처할 수 있으며, 종종 확정적 최적화 알고리즘보다 빠르게 수렴하는 경우가 있다. 그러나 수렴성을 분석하고 튜닝하는 것이 더 어려울 수 있다.
확률적 최적화의 종류
확률적 경사 하강법 (Stochastic Gradient Descent, SGD): SGD는 전체 데이터셋 대신 무작위로 선택한 일부 데이터(미니배치)를 사용하여 그래디언트를 추정하고, 이를 이용해 손실 함수를 최소화하는 방향으로 이동한다. 이 과정은 계산 효율성이 높아져 대규모 데이터셋에 적합하며, 무작위성 때문에 지역 최솟값(local minima)에 빠지는 것을 피할 가능성이 높아진다.
AdaGrad, RMSprop, Adam 등의 변형 알고리즘: 이들 알고리즘은 모두 확률적 방법을 사용하며, 각 매개변수에 대해 개별적으로 학습률을 조절함으로써 최적화를 개선한다. 이러한 알고리즘들은 딥러닝에서 일반적으로 사용되며, 다양한 상황에서 높은 성능을 보인다.
결론적으로, Deterministic 및 Stochastic 최적화 알고리즘은 머신러닝 및 딥러닝에서 주로 사용되는 최적화 기법으로, 서로 다른 특성을 가지고 있어 상황에 따라 적절한 알고리즘을 선택하여 사용할 수 있다.