본문 바로가기
머신러닝

머신러닝(Machine Learning) 4장 - Multi-variable Linear regression -

by ChocoPeanut 2017. 5. 23.

머신러닝(Machine Learning) 4

- Multi-variable Linear regression -

 

앞의 과정을 잠깐 정리를 해보자. Linear Regression은 선형적으로 값을 예측하는 방법으로 우선 가설로 H(x) = Wx + b라는 형태의 식을 사용하였다. 이를 통해 실제 결과 값과의 차이인 cost function을 정의할 수 있었고 cost function을 최소화시키는 Gradient descent algorithm에 의해 가장 최적화된 예측 형태를 만들어 낼 수 있었다. 그런데 우리는 여기서 입력 값으로 x라는 값을 하나만 사용하였다. 그런데 하나가 아니라 여러 개의 입력 값을 가지게 되면 어떻게 될까? 특정한 예시로 기말고사의 성적을 예측하는데 중간고사와 2번의 퀴즈를 본 점수를 통해서 예측을 하려고 한다. 이러면 입력 값으로 3개의 입력 값을 받게 되고 이를 통해 결과 값을 예측해야한다. 이런 경우에는 어떻게 식을 세워야할까?



원래 처음 가설은 H(x) = Wx + b 라는 식을 이용하였다. 이럴 때에는 x라는 입력 값이 하나만 사용되게 된다. 만약 위와 같은 경우에는 입력 값이 3개가 되므로 다음과 같이 식을 만들 수 있다. 세 개의 종류를 받아서 세 개의 곱을 나타내어 주면 된다.



그러면 cost function은 어떤 구조를 가질까? 입력 값이 하나인 경우와 같게 나타낼 수 있는데 이 때 H(x)H(x1, x2, x3)로만 바꾸어주면 단순하게 해결된다.



여기서는 3개의 입력 값을 받는 예시를 들었는데 실제로 더 많은 입력 값을 받을 수 있고 이에 따라 x의 값을 늘려주기만 하면 된다. 하지만 이렇게 되면 계산을 하는데 더욱 복잡해질 것이다. 수식을 계속 늘려서 사용하는 것은 매우 불편하므로 행렬을 이용하여 조금 더 편하게 사용할 수 있다행렬의 연산에 대해서는 다른 참고 자료를 이용하도록 하면 좋을 것이다. 행렬을 사용하게 되면 쭉 늘여서 적은 식을 간단하게 표시할 수 있게 된다. 입력 값이 3개였던 예시를 행렬로 표시해보면 다음과 같다. 왼쪽으로 표현한 형태가 더 간편하다고 할 수 있다.



이를 더욱 간단한 표현식으로 나타내면 대문자를 사용한 WX의 곱으로 표현할 수 있다. 하지만 앞의 경우와 다르게 X가 먼저 나오고 다음으로 W가 오는 것을 확인할 수 있다.



그런데 행렬로 표시를 할 때 각각의 instance를 대입하게 되면 매우 느리게 계산을 할 수 밖에 없다. instance라고 하는 것은 특정한 데이터를 의미한다. 다음의 예시에서 각 열이 하나의 instance인 것이다. 많은 데이터의 결과를 처리하기 위해서 행렬을 늘려 다음과 같이 데이터를 train하는 방법을 사용할 수 있다.