본문 바로가기

Machine Learning/ML

01. 선형 회귀(1) - 단순 선형 회귀

선형 회귀 - Linear Regression

 선형 회귀는 레이블된 데이터를 통해 종속변수와 독립변수 간의 관계를 모델링하는 통계학적 머신러닝 메소드이다. 선형 회귀는 레이블된 데이터들을 입력받고, 레이블과 데이터 간의 관계를 파악하는데, 이를 학습이라고 한다.

선형 회귀는 변수의 개수에 따라 단순 선형 회귀와 다중 선형 회귀로 나뉘어지는데, 독립변수가 하나이면 단순, 독립변수가 두 가지 이상이면 다중으로 부른다. 

단순 선형 회귀

 종속변수(y)와 독립변수 하나(x)의 관계를 선형으로 모델링하는 기법을 단순 선형 회귀라 한다. 단순 선형 회귀에서, x와 y의 관계식을 구하면 미지수가 두 개인 일차식 꼴로 나타나게 되는데, 이를 회귀식이라 한다. 선형 회귀의 목표는 바로 이 회귀식을 구하는 것이다.

 : 여기서 W, b를 구해보자





 그렇다면 가장 좋은 회귀식은 무엇일까? 회귀식의 x항에 주어진 데이터 x를 대입했을 때 그 데이터에 종속된 y값과 회귀식을 통해 구한 y값의 오차가 가장 적은 회귀식이 가장 좋은 회귀식일 것이다. 이 오차를 최소화하기 위해 여러 학자들은 방법을 연구해왔고, 그렇게 해서 등장한 방법이 경사 감소법이다.

오차함수

 우선 오차를 구하는 오차함수를 정의해야 한다. 오차함수 C는 아래와 같다. (m은 데이터세트의 크기, w와 b는 각각 회귀식의 기울기와 절편)

식을 보면 알겠지만, 오차함수는 각각 w, b, c축으로 이루어진 공간에 이차곡면으로 나타내어지게 된다, 이 이차곡면의 전역 최소값을 찾는 것이 우리의 목표, 즉 가장 작은 C값을 만드는 W와 b값을 찾는 것이 목표이다.


이제 드디어 경사감소법을 사용할 시간이다.

경사 감소법(1)



 꽃순이는(가명) 여름방학을 맞아 가족들과 빗살무늬 토기 공원(?)에 여행을 갔다. 빗살무늬 토기 공원은 빗살무늬 토기 모양의 공원으로, 해마다 수많은 관광객들이 찾는 한국 관광의 대표주자이다[각주:1]. 그런데 왠일, 꽃순이 혼자 길을 잃은 것이다. 다행히 꽃순이는 가족에게 전화를 걸어 위치를 확인했다. 서로 공원의 가장 낮은 지점에서 집결하기로 약속한 꽃순이와 가족, 그런데 꽃순이는 자신이 어디에 있는지 모른다. 그렇다면 꽃순이는 어떻게 해야 할까?

 정답은 간단하다. 계속 아래로 내려가면 된다. 이것이 경사감소법의 기본적인 원리이다. 계속 아래로 내려가기!


 위 그림은 등고선을 통해 나타낸 경사감소법의 기본적인 작동 원리이다. 좀 더 쉽게 알아보기 위해 간단한 이차함수에 적용해보자


위 함수의 최소값을 찾기 위해 한번에 움직여야 하는 거리는 그 위치에서의 기울기에 따라 결정된다. 즉 많이 기울었으면 한번에 많이 움직여도 문제가 없겠지만, 적게 기울었으면 그만큼 최소값과 가깝다는 의미이기에 그많큼 움직이는 거리를 줄여야 한다.


위의 식은 W가 한번에 움직여야 할 거리를 구한다. 즉, 현재 점에서의 순간 기울기가 크면 많이 이동하고, 작다면, 즉 최소값에 가깝다면 적게 이동한다. 는 학습률(Learning Rate)라고 불리는 상수로, 한번에 이동하는 정도를 조정한다. 가 너무 크면 영원히 최적값에 도달하지 못할 것이고, 너무 작다면 도달하는 데 걸리는 시간이 지나치게 많이 소모될 것이기에 값을 데이터세트에 맞게 적절하게 조정하는 것이 학습의 관건이다.

선형 회귀와 경사감소법

회귀식의 기울기와 절편에 대한 오차함수 C가 이차곡면으로 나타내어지므로 이에 경사감소법을 적용할 수 있다.  C는 미지수가 W와 b 두개이므로 각각의 문자에 대해 편미분을 적용해 계산해야 한다. 일반화해서 수식을 세워보자


먼저, 라 하면 변화량은  이 될 것이다. 

이를 통해 구한 새로운 v값은가 될 것이고, 이를 계속하면, 전역 최소값에 다다를 수 있다. 

즉, C를 최소화하는 (w, b)값을 구할 수 있고, 이 값들을 회귀식에 대입하면 주어진 데이터세트와 가장 비슷한, 가장 우수한 회귀식을 얻을 수 있다.


연습

단순 선형 회귀와 경사감소법의 이론에 대해 학습해 보았다. 여러 언어를 사용해 주어진 데이터세트에 대해 학습을 시켜 x=1일 때의 y값을 예측해보자. (파일)[각주:2]








  1. 그런거 없습니다 [본문으로]
  2. 추후 추가 [본문으로]