AI & BigData/모두를 위한 딥러닝(정리)

머신러닝(ML) #4_ Multi-variable linear regression

Tigercow.Door 2018. 2. 27. 20:31


안녕하세요.

지난 포스팅에서는 single-variable linear regression에 대해서 알아보았습니다.

이번 포스팅에서는 multi-variable linear regression에 대해서 알아보도록 하겠습니다.


* 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.

관련한 상세 내용은 아래 링크를 참고해주세요.

https://hunkim.github.io/ml/



1. Linear Regression(선형 회귀)


먼저 지난 포스팅에서 학습했던 내용을 잠깐 살펴보도록 하겠습니다.

지난 포스팅에서는 선형 회귀, Linear Regression을 위해서 Hypothesis와 Cost function, Gradient descent algorithm등에 대해서 알아보았습니다.



먼저 어떤 문제를 다루기 위해 가설, Hypothesis를 세웠고

해당 hypothesis를 검증하는 단계로써 cost function을 통해 cost를 계산하였습니다.

그리고 이때, cost를 최소화 하기 위해 Gradient descent algorithm에 대해서도 알아보았습니다.


이를 통해서 우리는 아래 사진과 같은 하나의 input, 즉 하나의 변수에 대한 문제를 다루었습니다.다.



하지만 실질적으로는 아래와 같이 변수가 다수인, multi-variable에 대한 문제가 존재합니다.



그럼 이러한 것은 어떻게 다루고 처리할까요?

먼저 single-variable에서 다루었던 것처럼 hypothesis와 cost function을 확인합니다.




2. Matrix(행렬)


하지만 위와 같은 식으로 variable을 나열하는데에도 한계가 있을 것입니다.



위의 사진보다도 더 많은 데이터가 있을때는 어떻게 할까요?



바로 Matrix, 행렬을 이용합니다.

행렬이 나와 당황하시는 분들도 있겠지만 여기서 사용되는건 Matrix product, 행렬 곱에 대한 개념입니다.

따라서 행렬 곱에 대한 개념만 아신다면 문제가 없을 것입니다.


그럼 이러한 행렬을 우리에게 필요한 hypothesis에 적용시켜 봅니다.




위의 식과 같이, 단순히 우리가 그전에 배웠던 hypothesis를 행렬로써 나타냅니다.

그럼 이제 실제 데이터와 함께 생각해보도록 합니다.



위의 사진을 보시면 3개의 x 변수가 있고 이에 따른 하나의 y변수가 있습니다.

사진 좌측의 테이블을 보시면 총 5쌍의 데이터를 보실 수 있는데, 이때 하나하나를 인스턴스라고 합니다.

즉, 첫번째 인스턴스는 (73, 80, 75, 152) 인 것입니다.


우리는 이러한 다수의 인스턴스를 행렬에서 매우 심플하게 정리할 수 있습니다.

각각의 인스턴스를 오른쪽의 식에 대입하는 것이 아니라, 아래의 사진과 같이 식을 변형합니다.




위의 사진에서는 모든 인스턴스를 추가하며, w는 그대로 고정하였습니다.

단순히 식으로써 나열하는 것보다 매우 깔끔하고 심플합니다.





즉, 우리는 행렬을 이용한 hypothesis를 위의 사진과 같이 진행하게 됩니다.




다시한번 정리하자면 우리는 이전 포스팅에서 하나의 변수에 대한 hypothesis를 식으로 정리하였습니다.

하지만 행렬을 이용함으로써 multi-variable에서도 매우 간단하게 hypothesis를 나타낼 수 있습니다.



이렇게 해서 multi-variable linear regression에 대해서 알아보았습니다.

실질적인 multi-linear regression의 구현은, 텐서플로우 탭에서 확인하실 수 있습니다.

728x90