케이스윔의 개발 블로그

[Lec04] Multi-variable Linear regression 이란? 본문

모두를 위한 딥러닝

[Lec04] Multi-variable Linear regression 이란?

kswim 2018. 4. 29. 15:57

오늘은 하나의 변수가 아닌 여러 개의 multi-variable을 사용하는 Multi-variable Linear regression을 공부한다.


Linear regression 위해 필요한 3가지를 다시 기억해보자.

1. Hypothesis: 가설이 무엇인가 = 내가 어떻게 예측할 것인지를 나타내는 것이다. -> H(x) = Wx +b (weight와 bias)

2. cost function: 가설이 정해졌다면 그것을 통해 내가 W, b를 잘 계산했는지 아닌지를 판단하는 함수이다.  

   cost(W, b) = 1/m((예측값-실제값)합들의 제곱)

3. Gradient descent Algorithm: cost를 최적화하는 알고리즘이다. -> 경사를 따라가는 알고리즘


예를 들어서 퀴즈1, 퀴즈2, 중간고사 점수를 통해서 기말고사 점수를 예측해보자! 이것은 여러개의 input을 통해서 값을 예측하는 것이다. 

Hypothesis(가설) -> H(x1, x2, x3) = w1x1 + w2x2 + w3x3 +b

cost(W,b) = 1/m(예측한 H(x1[i],x2[i], x3[i])-y[i] 합들의 제곱)

위의 경우는 x1, x2, x3는 3가지의 변수이지만 만약 변수가 많아져서 너무나 길어진다면 어떡하지?

H(x1, x2, x3, ... , xn) = W1x1 + W2x2+W3x3+ ... + Wnxn +b 와 같이 수식이 너무 길어진다면 Matrix를 이용하자! Matrix의 곱셈을 통해서 간단하게 표현할 수 있다. 


H(X) = XW -> X와 X의 순서가 바뀌어 있지만 똑같다. 대문자는 matrix라는 뜻이다. input 한 쌍을 instance라고 하는데 Matrix를 통해서 instance의 계산을 쉽게 할 수 있다. ->많은 instance가 있더라도 Matrix에 전체 instance 수 만큼 넣고 계산할 수 있다는 장점이 있다.


[5, 3]·[3, 1]  = [5, 1]에서 W의 Matrix에 3개가 온 이유는? 

: 3개의 feature가 있기 때문에!

X의 Matrix에서 각 행과 열이 뜻하는 것은 instance의 수와 variable수이다. 

이 계산을 통해서 H(X)의 결과로 나온 Matrix는 instance가 몇 개가 나와야 하는지, Y의 값을 몇 개를 낼 것인가를 뜻하는데 

이 부분에서 우리가 설계해야 하는 부분은 W의 weight가 어떻게 되는 지이다. 설계하는 방법은 앞 Matrix의 variable 수에서 가져오고 Y를 몇 개를 낼 것인가에서 가지고 온다!

몇 개의 Variable의 수를 통해 몇 개의 Y를 만들어낼 것인지를 통해 W의 크기를 결정할 수 있다.

다시 간단하게 정리하자면 아래와 같다.

[5, 3]·[3, 1]  = [5, 1]

instance수, var수, ? , ? = instance가 몇 개 나와야 하는가, Y의 값

-> 우리가 설계해야 하는 물음표는 몇 개의 Variable인지, 몇 개의 Y를 만들어 낼 것 인지이다.


n개의 아웃풋이 주어졌다면?

[n,3] [?, ?] = [n,2]라면

입력의 값이 3개고 만들어내야 하는 출력이 2니까 설계해야 하는 W는 [3, 2]이다!!!


Matrix를 사용하면 입출력 둘 다 여러 개여도(Multi-variable) 사용하기 쉽다. 


WX vs XW

lecture(theory) : H(x) = Wx+b

implementation(tensorflow) : H(X) = XW

수학적 의미는 두개가 같다.



Comments