본문 바로가기

PROJECT

[딥러닝 + TensorFlow] multi-variable linear regression

요즘 머신러닝 학습을 위해서 이것저것 들어보았는데 그나마 가장 이해가 잘 되는 동영상을 찾았다.

https://www.youtube.com/watch?v=kPxpJY6fRkY&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=8

 

 

 

 

 

 linear regression 에서 가장 중요한 3가지

 

 

  Hypothesis 가설

  Cost function (제곱) : U자형 그래프가 나옴

  Gradient descent algorithm (cost 최적화) : 경사면을 미적분을 구해 W와 B의 최적화 값을 찾는다.

 

좀더 자세한 설명은 위에 첨부한 유튜브 강의에 Lec02와 Lec03을 참고하길 바란다. 

 

 

 

 

input이 여러개가 된다면?

위에 보이는 그림과 같이 그전에는 하나의 input만 고려했다면 여기서는 x1, x2, x3 3개의 input을 즉, 여러개의 input을 고려한다. 그렇다면 linear regressiond의 중요한 점 3가지가 어떻게 되는지 살펴보자.

 

 

                                                                       Hypothesis

 

 

                                                                     Cost function

 

그런데 수식이 많아질수록 수식은 옆으로 한 없이 길어질 것이다. 이 때 우리는 Matrix 곱셈을 이용하면 문제를 해결할 수 있다. 그럼 어떻게 이용하는지 살펴보자.

 

 

 

 

▶Hypothesis using matirx

 

                                   x들을 앞단에 두고 w를 뒷단에 세로로 두고 matirx곱하기를 한다.

 

그렇다면 위에 그림을 보자. x는 표에  instance(행의 갯수)의 수대로 주어질 수 있다. (5 x 3) 과 (3 x 1)를 이전 매트릭스 식에서 각각 인스턴스를 한번씩 계산한 것과 똑같이 연산값이 한번에 구해진 수 있다.

여기서 주의 할 점은 . (5 x 3) 과 (3 x 1)에서 처음 행렬의 열(3)과 다음 행렬의 행(3)의 숫자가 같아야 한다는 점이다!!

그래야함 (5 x 1)의 행렬이 되기 때문이다.

 

 

 

 

 

그렇다면 우리는 최종적으로 위에 ? 값을 추론할 수 있다. ( n x 3 )을 주면   (n x 2)의 결과가 나온다.

 그러면 우리는 ( 3 x 2 )의 w 행렬을 곱해줘야된다.

 

 

 

 

 

 

 

▶결론

 

 

실제로 구현할 떄는 x를 주면 별도의 처리가 없이 matrix의 곱만 없이 처리가 가능해진다.

 

 

▶ 텐서플로우 코드

      연습해볼 수 있는 예제코드는 동영상 url에 첨부되어있으니 참조하길 바란다.