지난 시간에 무어-펜로즈 역행렬을 이용한 선형회귀식을 구하는 방법에 대해 알아보았다.
이번 시간에는 위와 같은 방법이 아닌 경사하강법으로 선형회귀의 계수를 구하는 방법을 알아보자.
선형회귀의 목적식은 이고 이를 최소화하는 를 찾는 것이 목적이다.
따라서 아래와 같은 그래디언트 벡터를 구해야한다
위에서 구한 그래디언트 벡터와 경사하강법을 사용해 목적식을 최소화 하는 알고리즘은 아래와 같다
, ( learning rate)
이론적으로 미분가능하고 볼록(convex)함수이면 적절한 파라미터를 선택함으로 최적값에 수렴할 수 있다.
선형회귀의 목적식 는 에 대해 볼록함수이기 때문에 수렴 가능하다.
비선형문제에서는 수렴이 보장되지 않으며 특히 딥러닝의 경우 목적식의 대부분이 비선형이기 때문에 적용하기 힘들다.
확률적 경사하강법은 모든 데이터를 사용해 업데이트하는것이 아닌 일부분만 사용한다.
볼록이 아닌 경우에도 SGD를 통해 최적화가 가능하다.
일부 데이터만 사용하기 때문에 연산량이 감소하여 효율적으로 활용할 수 있다.
SGD는 학습률과 학습회수 뿐만 아니라 배치사이즈도 고려해한다.
배치사이즈가 너무 적으면 경사하강법 보다 더 느릴 수 있다.
원리
일부 데이터(mini-batch)를 사용하기 때문에 매 순간마다 목적함수가 바뀌게 된다. 실제 목적함수가 convex하지 않는다 하더라도 조금씩 변하는 목적함수 때문에 local minima와 같은 곳에서 탈출이 가능하며 극소점으로 다가갈 수 있다.