Gradient Descent 는 경사하강법으로 머신러닝 및 최적화에 사용되는 알고리즘입니다.
손실함수의 최소값을 찾는데 사용되며 함수의 기울기를 gradient 라고 하는데 현재의 위치에서 기울기가 낮은 방향으로 반복적으로 이동하여 최소값 또는 최대값이라는 최적값을 찾아갑니다.
Gradient Descendent 는 다양한 종류가 있습니다.
위 공식은 단순선형회귀로 다양한 GD 종류를 사용해서 파라미터 값을 구하는 방법을 설명하겠습니다.
Batch GD를 사용하게 된다면 모든 Xi , Yi 값들을 가지고 미분값을 구하고 업데이트에 사용합니다. 모든 데이터를 활용해 파라미터값을 구하기 때문에 연산비용이 크다라는 단점이 있습니다.
또한, 노이즈의 민감도가 낮다라는 장점이 있습니다. 데이터의 샘플마다 발생하는 작은 차이나 오류가 있어도 크게 영향을 받지 않습니다.
SGD는 데이터셋에서 무작위로 샘플링한 단 1개의 데이터셋을 활용해 기울기를 계산하고 파라미터를 업데이트합니다. 하나의 데이터를 업데이트하기 때문에 연산비용이 작고 1개의 데이터만 보고 값을 업데이트하기 때문에 노이즈에 쉽게 영향을 받을 수 있습니다. 노이즈에 영향을 많이 받는다라는 단점이 있을 수 있지만 계산량이 적다라는 장점도 있습니다.
Mini Batch GD는 N개의 랜덤샘플을 활용합니다. N개의 샘플링한 데이터의 평균 기울기를 구하고 파라미터를 업데이트합니다. Mini Batch 의 크기는 HyperParameter로 모델 생성자가 직접 정할 수 있습니다. 연산 비용뿐 아니라 노이즈에 대한 민감도, 학습 안정성이 Batch GD와 Stochastic GD의 절충안이라고 생각하실 수 있습니다. 그래서 3개의 알고리즘 중 가장 많이 쓰는 알고리즘은 Mini-Batch GD입니다.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!