AI/AI Math

[Math] 경사 하강법

sangwonYoon 2023. 3. 11. 15:42

머신러닝 및 딥러닝 분야에서 핵심적인 개념 중 하나인 경사 하강법에 대해 알아보자.


경사 하강법

AI 모델의 가중치를 최적화 하는 방법 중 하나이다.

 

현재 위치에서 미분한 값을 빼서 함수 값을 감소시킨다.

 

벡터로 입력받는 다변수 함수의 경우, 편미분을 통해 그레디언트 벡터를 얻어 경사 하강법에 사용한다.

 

경사 하강법의 한계

 

경사 하강법은 미분 가능하고 볼록(convex)한 함수에 대해서만 이론적으로 수렴할 수 있다.

그러나, 그 외의 함수에서는 최소점으로의 수렴을 보장하지 않는다.

 

global minimum이 아닌, local minimum으로 수렴한다.

 

 

확률적 경사 하강법 (SGD)

  • 볼록하지 않은 (non-convex) Cost Function을 최적화하기 위해 사용한다.
  • 모든 데이터를 사용해서 업데이트하는 것이 아닌, 데이터 한 개 또는 데이터 일부를 활용해 업데이트한다.
  • 데이터 일부를 활용하는 것을 미니배치(mini batch)라고 부른다.
  • SGD는 일반적으로 mini batch 방식을 사용한다.

경사 하강법 vs 확률적 경사 하강법

 

경사 하강법은 전체 데이터를 가지고 Cost Function의 그레디언트 벡터를 계산한다.

전체 데이터 D를 활용해 파라미터 θ를 업데이트한다.

 

SGD는 미니 배치를 갖고 Cost Function의 그레디언트 벡터를 근사하여 계산한다.

 

  • 미니 배치는 데이터의 일부를 확률적으로 선택하기 때문에, 매 학습마다 사용되는 데이터가 달라진다.
  • 데이터의 일부를 사용해서 학습하기 때문에, 모든 데이터를 학습에 사용하는 경사 하강법보다 하드웨어 자원을 효율적으로 사용할 수 있다.

 

SGD는 어떻게 non-convex Cost Function을 최적화할 수 있을까?

  • SGD는 확률적으로 미니 배치를 선택하기 때문에, 매번 다른 미니 배치를 사용하게 되고, 따라서 cost function의 모양이 매번 바뀌게 된다.
  • 따라서 경사하강법에서 cost function이 local minimum point에 도달하여 업데이트가 이루어지지 않는 경우에도, SGD는 cost function이 매번 바뀌게 되어, 파라미터의 업데이트가 발생한다.

'AI > AI Math' 카테고리의 다른 글

Latex 명령어 정리  (2) 2023.04.24
[Math] CNN과 RNN 기본 개념  (0) 2023.03.13
[Math] 조건부 확률과 인과 관계  (0) 2023.03.12
[Math] 다층 퍼셉트론  (0) 2023.03.12
[Math] 벡터와 행렬  (2) 2023.03.11