본문 바로가기

Machine Learning/ML

02. 선형 회귀(2) - 다중 선형 회귀

선형 회귀-Linear Regression


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

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

다중 선형 회귀

둘 이상의 독립변수와 하나의 종속변수 간의 상관관계를 모델링하는 통계학적 방법을 다중 선형 회귀라 한다. 다중 선형 회귀에서 회귀식 그래프는 독립변수의 개수에 따라 결정되는데, 독립변수가 2개이면 평면, 3개이면 3차원 평면으로 나타내어지게 된다.

예를 들어 독립변수가 두개인 회귀식은 다음과 같다.

 

: 여기서 a, b, c(오프셋)을 구해야 한다.

선형 회귀에 대한 설명은 저번 포스팅에서 했으니, 이번 포스팅에선 좀 더 포괄적이고 일반적으로 오차함수를 최소화하는 방법을 알아보겠다.


오차함수

독립변수의 개수에 따라 달라지겠지만, 독립변수가 두개일 때를 예시로 들어 오차함수를 구해 보겠다

여기서 우리가 알아야 하는 것은, 독립변수의 개수가 변하여도 바뀌지 않는 부분이 있다는 것이다. 이를 간단히 나타내면 이렇다.

여기서 E는 실제 데이터세트의 값(레이블)과 회귀식을 통해 계산한 값의 차를 뜻한다. 우리는 다시 이 C를 최소화하는 기울기와 오프셋을 구해야 한다.


경사감소법(2) - 좀 더 일반적으로

 독립변수가 2개 이상이면 C(a, b...)의 그래프가 4차원 이상에서 나타내어지기에, 이제부턴 추상적인 개념이 필요하다. 물론 그보다 먼저, 앞서 알아보았던 경사감소법을 좀 더 일반적인 식으로 나타내어보겠다.
 보다 쉬운 이해를 위해 단순 선형 회귀의 예로 먼저 설명하겠다.

 

를 c, a, b축의 3차원 공간에 나타내면 다음과 같다. 그 위에 꽃순이가 있다


꽃순이는 계속 아래로 내려가고자 한다. 그러면 C의 변화량을 다음과 같이 나타낼 수 있다.

또한 이 식은 이와 같이 해석할 수 있다. -> 

이 식을 행렬곱을 통해 분리해보면 다음과 같다.

우리가 찾아야 할 것은 C의 변화량을 언제나 음수로 만드는 (a 변화량, b 변화량) 값이다. 즉, 언제나 꽃순이가 아래를 향하게 a, b축 방향으로 이동해야 하는 거리이다. 계산을 위해 다음과 같이 설정한다.

 : ∇기호는 '나블라'라고 읽으며, 곡면에서의 기울기를 의미한다.

: 한번에 a, b축 방향으로 이동하는 각각의 거리이다.

그러면 위의 식을 다음과 같이 다시 쓸 수 있다. , 이제 c 변화량이 언제나 음수가 되게 하는 v 변화량을 구하면 된다.

라 하고 이를 위의 식에 대입하면, 가 된다. 이 때, 학습률[각주:1]를 양수로 설정하면, 실수의 제곱은 언제나 양수이므로, C의 변화량이 언제나 음수가 되는, 즉 골짜기의 가장 깊은 곳을 향하는 (a, b) 변화량을 구할 수 있다. 


경사감소법(3)-다중 선형 회귀에 적용

 이제 다중 선형 회귀에 이를 적용하는 과정은 간단하다. 로 수정하기만 하면 된다.[각주:2]

 두 포스팅을 통해 경사감소법과 선형 회귀에 관한 내용을 알아보았다. 경사감소법은 선형 회귀뿐이 아닌 신경망에서의 역전파나 비선형 회귀 등에도 사용되므로, 필히 익혀야 할 기법 중 하나이다. 선형 회귀 또한 여러 분야에서 사용되며, 유용하게 사용할 수 있을것이다.[각주:3]


  1. 학습률은 이전 포스팅 참조 [본문으로]
  2. (cost->오차함수 c(a, b..) 문자에 c가 사용되어 혼동을 피하기 위해 수정함) [본문으로]
  3. 필자 또한 여러 수행평가 등에 사용중이다. 훗날 기회가 되면 여러 사용 사례에 대해 포스팅할 예정이다 [본문으로]