ML lec 02 - Linear Regression의 Hypothesis 와 cost 설명

2021. 5. 23. 17:04

출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io

 


 

 

위와 같이 먼저 주어진 다른 학생들의 데이터를 가지고 학습을 시킴. 이 데이터는 training data라고 불림. 이 학습이 끝난 이후에 모델을 만들게 됨.

만일 학생이 시험을 보기 전 7시간동안 공부를 했는데 이 모델을 통해 대략 몇점 정도 받을 수 있을지를 예측해볼 수 있음. 이 모델을 linear regression이라고 하는데 아래에서 더 알아보자.

 


위와 같이 데이터셋을 간단하게 만들어서 살펴보자. 오른쪽의 그래프에서 x축은 x데이터들을, y축은 y데이터들을 나타낸다.

linear한 모델이 존재할 것이다 라고 가정을 하고 세운 모델이 바로 linear regression인데, 이 모델이 효과적인 이유는 세상에 있는 많은 현상들이 이렇게 linear한 경우로 설명할 수 있는 경우가 많음. 그래서 가지고 있는 데이터에 잘 적용되는 linear한 선을 찾는 것이 바로 학습을 하는 것임.

 


 

어떤 선이 가장 잘 맞는지 확인하기 위해 실제 데이터와 가설이 나타내는 점의 거리를 계산해볼 것. 만일 이 거리가 멀면 좋지 못한 모델일 것이고, 거리가 가까우면 좋은 모델일 것.

 


 

이렇게 거리를 측정하는 것을 linear regression에서는 cost function이라고 부름. 또는 loss function이라고 함. 이는 우리의 데이터가 실제 데이터와 얼마나 다른가를 나타내는 function임.

가장 기본적으로 계산하는 방법은 H(x)-y 와 같이 두 값의 차를 계산함. 하지만 +-의 값을 낼 수 있기 때문에 좋은 형태가 아님. 따라서 H(x)-y의 제곱의 형태로 표시하기도 함. 이 때는 항상 양수의 값을 나타내며 거리가 멀수록 값이 커져 패널티를 줄 수 있기 때문에 좋음. 따라서 H(x)-y의 제곱을 cost function(loss function)이라고 부름.

 

 


조금 더 정리해서 표현하자면, x와 y의 각각의 1, 2, 3번째 값들의 차이를 구한 다음 제곱을 함. 그 값들의 평균을 내기 위해 3으로 나눠줌.

 


 

 

위 식에서 m을 일반적인 학습 데이터의 개수임.

각각의 hypothesis에서 가져온 예측값과 실제값의 차이의 제곱을 합한 후, m개로 나누어주는 것을 의미함.

 


 

H(x)를 위에서 Wx+b로 표현할 수 있다고 했는데, cost 식에 H(x) 자리에 Wx+b를 대입해보자. 그러면 cost function은 실질적으로 W와 b에 대한 식으로 볼 수 있음.

 


 

 

여기서 linear regression의 학습이란, cost(W, b)의 값을 가장 작게 가져오는 W와 b를 구하는 것을 의미하게 됨.

BELATED ARTICLES

more