이번에는 linear regression에 이어서 하나의 변수가 아니라 여러 개의 변수를 사용하는 multi-variable linear regression을 배워보았다.

위 같은 경우로 시험을 3번을 본 다음 마지막 시험에는 몇 점을 맞을까?처럼 여러 가지 변수가 사용되었을 때 어떻게 하면 될까? 변수가 하나일 때는 H(x) = Wx + b였다. 하지만 3개일 때는 아래 식과 같다.

굉장히 간단하게 표현할 수 있다. Cost도 아래 식과 같다.

근데 hypothesis가 계속 길어진다. 이때 사용하는 것이 바로 Matrix이다.

위에 처럼 1x7 + 2x9 + 3x11을 하여 58이라는 수가 나온다 이것을 행렬곱이라고 한다.
이런 것을 hyporthesis로 표현하면 아래 식처럼 된다.

위에서 봣듯이 matrix처럼 행렬곱을 하는 것이다. 그래서 x1 w1 + x 2 w2 + x 3w 3이 된다. 이것이 matrix를 사용하는 가장 큰 장점이다. 그리고 wx보다는 xw를 쓴다 보통 x를 먼저 쓰기 때문이다. 그리고 구현에서도 이것을 많이 사용한다. 여기서 b도 들어가지만 간단하게 하기 위해 생략했다. 이제 위의 데이터를 matirx 연산을 해보려고 하니 데이터가 만개일 때는 어떻게 할까? 이때 엄청 좋은 방법이 있다.

바로 이 방법이다. x 11 w1+x 12 w2+x 13w 3처럼 계속 간다. 이전에 각각 instace를 한 것과 같다. instace가 만을때 각각 할 필요 없이 전체를 긴 matrix에 넣고 그냥 w를 matrix 곱하면 된다. 이것은 굉장히 큰 장점이다.
다시 한번 보면 위 matrix는 [5, 3]이다. 이것을 입력으로 하고 w는 [3, 1] matrix이다. 이것을 연산하면 [5 , 1]로 나온다.
우리는 종종 이 계산을 많이 하게 된다. [5, 3]의 x데이터가 있다고 하면 5는 instace의 개수이고 3은 variable의 개수이다.
또 출력값도 보통주 어진다. H(x)가 [5, 1]ㅇ라 하면 5는 instace의 개수이고 1은 y일 것이다. 이제 w를 결정하는 과정이다.
이럴 때는 [5, 3]에서 3을 가져와 [3,?]로 하고 [5, 1]에서 1을 가져와 [3, 1]로 만들어준다. 3은 y의 variable의 개수이고 1은 y의 결과이다. 즉 1이 된다.

위를 활용하면 x의 개수를 5개로 넣었지만 위에 처럼 여러 가지를 넣을 때가 있다. 이것을 n으로 표시하고 numpy에서는 -1로 표시하고 tensor flow에서는 None으로 표현한다. '이것은 n 개다 원하는 만큼 들어올 수 있다' 이것을 의미한다.
공부한 사이트:https://www.youtube.com/watch?v=kPxpJY6fRkY&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=8
'머신러닝 > 모두를 위한 딥러닝' 카테고리의 다른 글
TensorFlow로 파일에서 data읽어오기 (0) | 2019.05.18 |
---|---|
multi-variable linear regression을 TensorFlow에서 구현하기 (0) | 2019.05.16 |
Linear Regression 의 cost 최소화의 TensorFlow 구현 (0) | 2019.05.14 |
Linear Regression의 cost 최소화 알고리즘의 원리 (0) | 2019.05.13 |
TensorFlow로 간단한 linear regression을 구현 (0) | 2019.05.12 |