기록을 남기자
작성일
2024. 7. 5. 14:29
작성자
ssun_bear
반응형

접선의 기울기를 이용해 함수의 최솟값으로 점을 이동시키는 원리를 바탕으로 경사하강법의 알고리즘과 수식을 이해해보자.

변수가 벡터인 경우, 편미분을 통해 구한 그래디언트 벡터를 d-차원으로 경사하강법을 확장할 수 있다는 개념을 알아보자.

 

 

접선의 기울기를 이용해 함수의 최솟값으로 점을 이동시키는 원리를 바탕으로 경사하강법의 알고리즘과 수식을 이해해보자.

변수가 벡터인 경우, 편미분을 통해 구한 그래디언트 벡터를 d-차원으로 경사하강법을 확장할 수 있다는 개념을 알아보자.

 

미분값을 더하면 경사상승법이라 하며 함수의 극대값의 위치를 구할때 사용한다. -> 목적함수를 최대화 할때

미분값을 빼면 경사하강법이라 하며 함수의 극소값의 위치를 구할때 사용한다. -> 목적함수를 최소화 할때

경사상승/경사하강 방법은 극값에 도달하면 움직임을 멈춘다. -> 목적함수 최적화 완료

 

종료조건: 컴퓨터에서 미분이 정확하게 0이되는 것은 불가능하므로 eps보다 작을때 종료하는 조건이 필요

 

변수가 벡터이면 편미분을 사용하여 계산한다.

 

다변수 함수에서는 절댓값대신 그래디언트벡터를 사용한다.

 

 

경사하강법은 미분가능하고 볼록(convex)한 함수에 대해 적절한 학습률(lr)과 학습횟수를 선택했을때 수렴이 보장되어있다.

특히 선형회귀의 경우 목적식 ||y-Xb||^2은 회귀계수 b에 대해 볼록함수이기에 알고리즘을 충분히 돌리면 수렴이 보장된다.

 

확률적 경사하강법

확률적 경사하강법은 모든 데이터를 사용해서 업데이트 대신 데이터 한개 또는 일부 활용하여 업데이트를 한다.

볼록이 아닌(non-convex)목적식은 SGD를 통해 최적화 할 수 있습니다.

 

SGD는 데이터의 일부를 가지고 패러미터를 업데이트하기에 연산자원을 좀 더 효율적으로 활용하는데 도움이 된다

SGD는 볼록이 아닌 목적식에서도 활용가능하므로 경사하강법보다 머신러닝학습에 더 효율적이다.

 

딥러닝에서 사용되는 데이터는 크기와 양이 방대하기에 경사하강법처럼 모든 데이터를 업로드하면 메모리가 부족하여 out-of-memory가 발생 -> GPU메모리 통제 불가능 -> 따라서 확률적 경사하강법을 활용하여 미니배치로 쪼갠 데이터를 업로드!

반응형