본문 바로가기
데이터 분석

[머신러닝] 선형 회귀 - 옵티마이저와 학습률(Learning Rate)

by 데이널 2023. 9. 10.

 

이번 포스팅에서는 옵티마이저와 학습률에 대해 다루려고 합니다. 사실 옵티마이저와 학습률은 선형 회귀 알고르즘에만 해당 되는 것은 아닙니다. 모든 알고리즘에 해당 되는 개념입니다. 가장 기본이 되는 이론이라 처음부터 알고 가는 것이 좋습니다. 

 

 

최적화 알고리즘(Optimizer) 

선형 회귀를 포함한 수많은 머신 러닝, 딥 러닝의 학습은 결국 비용 함수를 최소화하는 매개 변수인 w와 b를 찾기 위한 작업을 수행해야 합니다. 이때 사용되는 알고리즘을 옵티마이저(Optimizer) 또는 최적화 알고리즘이라 합니다. 이 옵티마이저를 통해 가장 적합한 w와 b를 찾아내는 과정을 머신 러닝에서 훈련(training) 또는 학습(learning)이라 합니다. 가장 기본적인 옵티마이저 알고리즘인 ‘경사하강법(Gradient Descent)’이 있습니다.  경사하강법만 알고 있어도 최적화 알고리즘을 충분히 이해했다고 볼 수 있습니다.   


경사하강법(Gradient Descent)

경사 하강법은 아래로 볼록한 모양의 그래프에서 경사를 따라 미분에 나가는 기법입니다. 기본 개념은 함수의 기울기를 구하고 경사의 반대 방향으로 계속 이동시켜 최적 값에 이를 때까지 반복시키는 방법입니다. 해당 함수의 최소값 위치를 찾기 위해 비용 함수(Cost Function)의 경사 반대 방향으로 조금씩 움직여 가게 됩니다.

 

여기서 포인트는 "어느 정도 간격으로 움직일 것인가" 입니다. 미리 정의한 step size 만큼씩 가면서 최적의 파라미터를 찾게 됩니다. 여기에서 경사는 파라미터에 대해 편미분한 벡터를 의미하며 step size 파라미터(학습률)를 반복적으로 조금씩 움직이는 것이 관건 입니다. 프로그램에서는 step size를 learning rate 값을 설정해서 적용합니다. 


경사하강법의 문제점

경사하강법은 최적화에 적합한 알고리즘이지만 한가지 문제가 있습니다. 그래프와 같이 local minima에 빠지는 경우가 생길 수도 있습니다. 그래프를 보면 최소값은 global minimum 이지만 x의 시작점이 10이라면 local minima에 빠져 모델 성능이 나빠질 수 있습니다. 기계는 learning rate 만큼 움직여서 내려가다가 오목한 부분이 있으면 종료합니다. 실제 최저점인지를 알 수 없다는 문제가 있습니다. 하지만 다행인 것은 MSE의 경우 볼록 함수(convex function)로 local minima에 빠질 가능성이 낮습니다. 옥티마이져에 따라 local minima를 극복하는 로직도 있습니다. 특히나 고차원의 공간에서는 local minima에 빠질 가능성이 현저히 낮으므로 큰 문제가 되지 않습니다. 

 

Local minima vs Global minimum
Local minima vs Global minimum

 

학습률(Learning Rate) 

학습률은 경사하강법에서 시작점에서 다음점으로 이동할 때 보폭(step size)을 말합니다. 현재점에서 다음점으로 얼만큼 이동할지, 다르게 말하면 모델이 얼마나 세세하게 학습을 할지에 대한 파라미터 입니다. 학습률이 작다면 손실이 최적인 가중치를 찾는데 오랜 시간이 걸립니다. 반대로 학습률이 너무 크다면 최적점을 무질서하게 이탈할 수도 있습니다. 이것을 발산한다고 말합니다. 오해하지 말아야 할 것은 학습률은 학습을 얼마나 반복해서 시키느냐가 아닙니다. epoch(훈련 횟수, 학습 횟수)와는 다른 개념입니다. 

 

학습률 크기에 따른 손실 최적화

아래 그래프는 학습률에 따라 최적점에 도절하는 과정을 표현했습니다. 학습률을 어느 정도로 설정했는지에 따라 네가지 case가 발생할 수 있습니다. 너무 높은 학습률(very high)은 손실은 최소화하지 못하고 발산해 버립니다. 녹색 그래프와 같이 전혀 최소화하지 못합니다. 높은 학습률(High)은 빠르게 손실을 낮출 수 있지만, 결국 최소화하지 못하고 최적점 지나가 버릴 수 있습니다. 낮은 학습률(Low)은 학습 횟수가 반복되면 최종적으로는 좋은 학습률으로 수렴하지만 시간이 많이 소요되는 단점이 있습니다. 적정 학습률(Good)을 찾은 것이 오랜 시간 소요되지 않으며 최적값에 수렴하는 방법입니다.   결론적으로 학습률은 분석가의 경험에 따라 여러번 실험해 보는 방법 밖에는 없습니다. 

 

학습률에 따른 손실 최적화
학습률에 따른 손실 최적화