본문 바로가기
머신러닝과 딥러닝/기초 이론

Multi-variable Linear Regression 기초 이론

by Bentist 2020. 2. 7.

* 김성훈 교수님의 유튜브강의를 공부 목적으로 정리하여 작성하였습니다.

[ multi-variable linear regression ]

이제 하나의 input variable이 아닌, multi-variable로 Y를 예측해보자.

어떻게 해야 될까?

 

1) Hypothesis: 그냥 x1, x2, x3에 각각의 w1, w2, w3을 곱해주면 된다.

2) Cost function

 

● 근데 x1, x2, x3, x4, ... 값들이 많아질수록 수식이 더 길어지는데 간편하게 계산할 수 없을까?

-> Matrix(내적 dot product)를 이용하는 것이다.

근데 XW의 순서가 바껴져 있다. 매트릭스에서는 보통 X를 앞부분에 쓰고, 뒷부분에 W를 써서 나타낸다.

위의 그림처럼 x1, x2, x3는 많은 instances(행 요소)들을 갖고 있는데, 이것은 어떻게 표현하는 것일까?

물론 각각의 1행, 2행, ...을 차례대로 매트릭스 X에 5번 대입해도 되지만, 비효율적이다.

인스턴스의 수만큼 매트릭스에 싹다 넣어버리는 것이다. 가중치 W는 그대로이고, x의 인스턴스만 늘어난 것이다.

즉, 인스턴스가 많아도 전체를 매트릭스에 넣고 W를 곱하면 우리가 원하는 값이 한번에 나온다.

X는 인풋값으로 [ 5 X 3 ] 행렬인데, 여기서 5는 data sample을 말하고 3은 X variable로써 feature를 의미한다.

 

그럼 매트릭스 곱셈은 어떻게 이루어질까?

보통 X와 H(X)의 값은 주어진다. X의 [5 X 3] 행렬에서 5는 인스턴스(우리가 몇 개의 데이터를 넣을 것인가)의 개수이고, 3은 X의 변수(X의 variable) 개수이다. 출력값인 H(X)는 인스턴스의 갯수와 Y값이 나온다. 

이제 우리가 설계해야 될 것은 W이다.

X의 변수인 3을 가져오고, H(X)의 출력값인 Y의 1을 가져온다. 그래서 W matrix는 [ 3 X 1 ] 행렬이 된다. 

보통 X의 인스턴스 개수는 가변하기 때문에, 위의 식처럼 n개로 표시하게 된다.

그래서 tensorflow에서 [None, 3]은 '인스턴스 개수가 n개다. 원하는 만큼 들어올 수 있다.' 로 해석한다.

 

그리고 출력값을 꼭 1개로만 둘 필요는 없다. 아래 그림을 봐보자.

Q. W인 [ ?, ? ] 행렬은 어떻게 찾을까?
1) X를 보면 입력이 3개임을 알 수 있고, H(X)를 보면 출력값이 2개임을 알 수 있다.
결국, W는 [ 3, 2 ] 행렬이 된다.

 

# 참고할 점:  WX vs XW

  • 이론상, H(X) = Wx + b
  • Tensor에서 실제 구현할 때, H(X) = XW처럼 X를 W보다 앞에 두어서 매트릭스 곱을 용이하게 할 필요가 있다.

 

 

댓글