본문 바로가기
Machine Learning

Linear Regression (선형 회귀) (Feat. Cost Function)

by ahfmrjttb 2020. 6. 11.

이번 포스팅에서는 선형 회귀에 대해서 알아보고자 한다. 여러 글들과 김성훈 교수님의 강의를 참고하여 포스팅한다.
먼저 회귀 분석은 새로운 표본을 뽑았을 때 평균으로 돌아가려는 특징이 있다는 뜻으로 점들이 퍼져있는 형태에서 패턴을 찾아내고 이 패턴을 활용해서 무언가를 예측하는 분석한다는 의미이다.
여기에 선형이 붙어 있는데 말 그대로 선형 방식을 통해 패턴을 찾아내겠다는 뜻이다. 좀 더 자세하게 말하면 Linear Regression (선형 회귀)은 2차원 좌표에 분포된 데이터를 직선 방정식을 통해 표현되지 않은 데이터를 예측하기 위한 분석 모델이다. 물론 실제 세계에서는 워낙 다양하게 데이터들이 있기 때문에 직선 방정식으로만 설명하기엔 당연히 한계가 있지만 지금은 입문 단계니까 자세하게 기술하진 않겠다.

머신 러닝의 가장 큰 목적은 실제 데이터들을 바탕으로 모델을 생성한 후 어떤 입력 값을 넣었을 때 발생할 결과값을 예측하는 데에 있다. 이 때 우리가 찾아낼 수 있는 가장 직관적이고 간단한 모델이 선(line)이기 때문에 데이터들을 놓고 이들을 가장 잘 설명할 수 있는 선을 찾아 그 선을 바탕으로 데이터를 분석하고 예측하는 것이 선형 회귀(Linear Regression)를 사용하는 목적이다. 한 예로 배달 거리와 배달 거리에 따른 배달 시간 데이터를 놓고 그것들을 가장 잘 설명할 수 있는 선을 하나 그어놓게 되면, 어떤 배달 거리를 바탕으로 그에 따른 배달 시간을 예측할 수 있다.

[ 출처 : http://woowabros.github.io/study/2018/08/01/linear_regression_qr.html ]


하지만 예측은 당연히 근사치이기 때문에 딱 들어맞을수도 그러지 않을수도 있다. 하다 못해 실제 데이터들도 저렇게 모두 선에 들어맞지 않는 경우가 허다하다. 최대한 가깝게 추정할 수 있다는 데에 의의를 두면 된다. 들어맞으면 좋고 안되면 비슷하게라도의 느낌정도...?

그 다음 Hypothesis라는 개념이 있다. 해석하면 가설이라는 뜻인데, 이를 1차 방정식인 H(x) = Wx + b로 가정하고 W, b값을 찾는다는 의미이다. 그래서, Hypothesis는 방정식 H(x) = Wx + b라고 생각하면 된다. 수식으로는

H(x) = Wx + b

로 표현한다. 이 식에서 기울기에 해당하는 W (Weight)와 절편에 해당하는 b (bias)가 학습을 통해 계속 바뀌고, 마지막 루프에서 바뀐 최종 값 (W, b)을 데이터 예측(prediction)에 사용하게 된다. 즉, 데이터를 잘 예측한다는 의미는 최적의 W, b를 찾는다는 것이고 이것이 Linear Regression 분석의 목적이다. 또한 최종 결과로 나온 가설을 모델(model)이라고 부르고, "학습되었다"라고 표현한다. 학습된 모델은 배포되어 새로운 학습을 통해 수정되기 전까지 계속 활용된다.

회귀분석의 목표는 Cost Function을 최소화하는 것인데 선형 회귀식에서 학습데이터가 주어지면 W와 b의 값을 조정하여 Cost Function의 값을 최소화한다. 그럼 이 Cost Function은 무엇일까? 지금부터 알아보자.


  • Cost Function

: Cost Function은 Loss Function이라고도 하는데 쉽게 말해, 가설 H(x)에서 실제 값 y의 차이를 통해 우리가 세운 가설 H(x)가 실제 값과 얼마나 다른지를 나타내주는 함수이다.

파란선이 H(x)이고 그래프에 x로 표시되어 있는 것들이 실제 데이터값이다. 하지만, 선 위냐 아래냐에 따라 차이값이 음수가 될 수도 있고, 양수가 될 수도 있기 때문에 Cost Function을 H(x) - y로 표현하지 않고 (H(x) - y)^2으로 표현한다. 물론 |H(x) - y|로 표현한다면 차이값은 똑같이 무조건 양수지만 제곱을 해줌으로써 실제 데이터와 다르면, 즉, 차이값이 크면 더 극명하게 드러나는 효과가 있다. 그래프를 기준으로 좀 더 정확히 나타내보면

이를 일반화하면

이렇게 되는 것이다. 즉, Cost Function은 각 차이값의 제곱들의 평균이다. (m : 실제 데이터의 개수)

 

이 식이 우리가 흔히 알고 있는 MSE (Mean Squared Error)이다. Mean은 평균을 의미(1/m)하고 Squared는 제곱, Error는 쉽게 말해 (예측값 - 실제값), 즉, 예측값과 실제값의 차이를 말한다.

우리는 이 Cost Function을 최소화해야 하므로

이렇게 나타낸다. 좀 더 정확히 말하면 Cost Function을 최소화하는 W, b를 구하겠다는 뜻이다. 왜 최소화하는지는 조금만 생각하면 바로 알 수 있는데, Cost Function이 각 차이값의 제곱들의 평균이므로 차이값들이 작을수록 Cost Function도 작아진다. 차이값들이 작다는 얘기는 가설 H(x)가 실제 데이터와 비슷하다는 뜻이다.
따라서, "Cost Function을 최소화 = 실제 데이터와 비슷하게 예측"을 의미한다.

다음 포스팅에서 Cost Function에 대해 더 자세하게 알아보겠다.


참고 사이트 :

댓글