본문 바로가기
머신러닝

머신러닝(Machine Learning) 2장 - Linear Regression의 Hypothesis와 cost -

by ChocoPeanut 2017. 5. 22.

머신러닝(Machine Learning) 2

- Linear RegressionHypothesiscost -

 

1장에서 예시로 사용한 투자한 시간에 대비하는 성적에 대한 예측을 하는 머신러닝을 통해 regression에 대해 다시 생각해보자. training data set는 투자한 시간과 이에 대한 결과 값인 점수가 연속적인 숫자로 나타나게 된다. Regression의 기법을 통해 학습이 되고 난 후에 특정 시간을 입력하게 되면 이에 따른 결과 값을 내보내 준다. 예를 들면 7시간을 넣을 경우 65점 정도의 값을 나타나게 해주는 것이다.


Regression을 적용시키기 위해 간단한 데이터를 적용시켜보자. 입력 값인 x1, 2, 3을 주어주고 이에 해당하는 결과 값인 y값으로 1, 2, 3을 각각 적용시킨다고 생각하자. 이러한 training data set을 그래프에 그리게 되면 다음과 같다.



이번 장에서 배우는 용어가 바로 Linear Regression인데 Linear하다고 하는 것이 선형으로 나타난다는 것이다. 현실적인 문제에서 Linear하게 처리를 하는 경우가 많은데 이와 같은 예시가 많이 있다. 위의 투자한 시간에 대비하는 성적을 처리할 때도 시간에 따라 성적이 올라가는 경우나 시간에 따라 처리하는 일의 양을 대비해 봐도 선형적으로 증가하는 것을 알 수 있다. 이런 경우를 Linear하다고 한다. 따라서 우리는 이러한 가정을 통해 Linear를 통해 Regression 과정을 접목시키는 것이다. 다른 말로 그래프에서 data set들에 가장 맞는 선을 찾는 것이다.



2차원에서 선을 긋는 경우를 생각하고 있으므로 예측하는 선의 형태는 H(x) = Wx + b로 나타나게 할 수 있다. 선의 모양은 Wb에 따라 다르게 된다. 그러면 어떤 선이 가장 맞는 선일까를 알아내는 방법이 중요하게 된다. 위의 1, 2, 3의 데이터를 가지게 되는 data set은 쉽게 H(x) = x 라는 예측을 진행할 수 있다. 하지만 항상 확실하게 딱 맞는 예측 선을 만들어낼 수는 없다. 제일 적절하게 대응할 수 있는 가설을 만들기 위해서는 실제 데이터의 결과 값과 비교를 하면 가장 좋다. 따라서 같은 x 값에 따라 각각의 y 값의 차이를 최소화 시켜줄 수 있는 가설을 찾는 방법이다. 이런 가설을 찾는 것을 Cost function이라고 한다.



Cost function(H(x) - y)^2로 나타낼 수 있다. 제곱을 하는 이유는 + 값을 구분하지 않기 위한 것과 차이를 크게 만들어서 더욱 적절한 범위를 찾기 쉽게 만드는 것에 있다. 이에 대해 모든 데이터 값에 대한 차이를 더해주게 되면 이 값을 cost라고 표현하게 된다. 데이터의 개수를 m으로 표현하게 된다. 실제로 cost functionWb로 나타나게 된다. 적절한 가설을 찾기 위해서는 이 cost function을 최소화시켜주는 Wb를 찾아야 한다.