[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/Data & AI

선형회귀와 경사하강법(Gradient Descent)

inu 2020. 7. 17. 13:02
반응형
  • 선형회귀와 경사하강법은 딥러닝의 핵심이라고 할 수 있을 정도로 중요한 개념이다.
  • 이를 제대로 이해하지 못한다면, 절대 딥러닝 전체를 이해할 수 없다.
  • 해당 게시글은 나의 이해를 돕기 위한 것이기 때문에 어떤 시각자료도 첨부되어 있지 않다.
  • 어떤 것인지 느낌은 알고 있지만, 역전파과정이 헷갈려서 나의 부족함을 새삼 깨닫고 처음부터 다시 정리중입니다ㅎㅎ...

  • 선형회귀란, 종속 변수 y와 한 개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 회귀분석 기법이다.
  • 선형회귀는 y = ax + b라는 선으로 대표되는데, 여기서 a와 b라는 매개변수가 독립변수와 종속변수간의 상관 관계를 더 잘 표현하도록 해야한다. 이는 경사하강법(Gradient Descent)로 최적화된다.
  • 쉽게 말하면 전체 데이터를 대표하기에 가장 적절한 직선 하나를 찾는 것이 선형회귀 모델링이고, 이를 잘 찾도록 도와주는 방법이 경사하강법인 것이다.

선형회귀 모델링과 경사하강법

  • 먼저 y = ax + b 에서 a, b를 아무 값으로 초기화한다.
  • 그리고 전체 데이터 각각에 대해 (1/2) * (오차)^2 값을 구하고, 해당 값들의 평균을 구한다. 이렇게 도출한 평균오차를 'cost'라고 부른다. (cf. 데이터 하나하나 x값에 해당하는 y값(종속변수)과 초기화된 선형 모델에 x를 대입해 도출한 y값의 차이를 '오차'라고 한다.)
  • a혹은 b 둘 중 한번에 하나만 경사하강법을 통해 최적화할 수 있다. 우선 a에 대한 최적화를 진행한다고 가정하겠다. 우리의 목적은 위에서 구한 'cost'를 최소화하는 것이다. 따라서 a값에 대한 cost값을 최소화하는 방법을 찾는다.
  • cost를 최소로 하는 매개변수 값들을 정규 방정식으로 계산하여 찾을 수도 있다. 하지만 이는 매개변수가 늘어나거나 차원의 개수가 많아지면 계산이 매우매우 복잡해진다. 따라서 경사하강법을 사용한다.
  • a에 대한 cost 그래프를 a로 편미분했을 때 그 값이 0이 되는 a의 위치가 cost값을 최소화하는 위치일 것이다. (최소값과 미분의 관계)
  • 따라서 해당 그래프를 편미분한 결과의 기울기에 주목한다. 여기서 a값에 대한 기울기가 양수(+)라면 a값을 그만큼 줄이고, 음수(-)라면 a값을 그만큼 늘려서, a의 변화에 따른 cost값이 최소값에 조금이나마 가까워지도록 한다.
  • 해당과정을 반복해 최소값에 거의 수렴하도록 하는 것이 경사하강법이다.
  • 총정리를 하자면, 각 매개변수에 대한 cost값 그래프의 미분값이 0이 되도록 경사를 조금식 줄이는 것이 경사하강법이다. 그리고 이렇게 만들어진 선형회귀 모델로 회귀분석을 진행할 수 있다.

학습률

  • 위에서 매개변수 a에서 cost함수에 대한 a 편미분값만큼을 줄이거나 늘려서 새롭게 매개변수 a를 정의했다.
  • 하지만, 단순히 이렇게 진행한다면 cost함수에 대한 a 편미분값이 매우 크다면 오히려 발산하여 제대로된 값을 찾지 못할 위험이 있다. 혹은 cost함수에 대한 a 편미분값이 너무 작다면 빠른 학습 진행이 어려워진다.
  • 따라서 학습율이라는 개념을 적용한다. 학습율은 cost함수에 대한 a 편미분값에 곱해져서 매개변수가 적절히 조정될 수 있도록 돕는다.
반응형