본문 바로가기
Main/Machine Learning

[ML - lec 04] Multi-variable linear regression

by 임형욱의 블로그 2022. 3. 6.
본 내용은 김성훈 교수님의 '모두를 위한 딥러닝' 강의와
https://pythonkim.tistory.com/notice/25 를 참고하여 제작하였습니다.

 

여기까지가 Machine Learning에서 가장 기본이 되는 Linear Regression입니다.

이전에는 문제를 쉽게 하기 위해 입력 변수가 하나밖에 없는 단순 모델을 보여줬지만, 여기서는 여러 개의 입력 변수들을 처리하는 방법들을 보여주겠습니다.

 

목차
  1. Multi-variable linear regression
    1. Hypothesis & Cost function
    2. Matrix

 

Multi-variable linear regression

위의 그림처럼 하나가 아니라 여러 개의 input이 있습니다. 
즉, 어떤 시험을 보는 데에 있어서 처음에 퀴즈 1 그리고 퀴즈 2, 3의 점수를 가지고 파이널 점수를 예측할 수 있을까? 를 가정할 수 있습니다.
이런 경우에는 변수가 3개가 있습니다. 이전과 똑같은 방법으로는 안되겠죠?

 

1. Hypothesis & Cost function

Hypothesis에서는 공식이 조금 달라졌습니다. 
feature가 1개일 때는 Wx+b로 처리할 수 있었는데, 이제는 복잡해져서 w₁x₁ + w₂x₂ + b라고 해야 합니다.
다시 말해서, w와 x를 feature 개수만큼 곱하고 b를 더하면 됩니다.

하지만, Cost 함수의 정의는 달라지지 않았습니다. 이 뜻은 나중에 나오는데, 기존 코드를 사용하면 
multi-variable도 처리할 수 있음을 의미합니다.

feature가 n개일 때에도 위의 그림과 같이 나열하면 됩니다.

 

2. Matrix

그런데, feature가 많아질수록 그때마다 수식을 옆으로 길게 작성하면 엄청나게 길어지는데

이것을 잘 처리할 수 있는 방법이 Matrix(행렬)을 이용하는 겁니다.

Matrix(행렬)을 이용해서 우리의 간단하게 hypothesis를 표현할 수 있습니다.
W, X의 순서가 바뀌어도 같은 식이기 때문에 상관없습니다.
보통 matrix를 표현할 때에는 X를 앞에 두고 표현합니다.

 

이 자료를 자세히 보시면 실제로 데이터는 1개가 아니라 5개입니다. 더 많을 수도 있습니다.
행 하나를 instance라고 합니다. 위 자료와 같은 경우에서 많은 instance가 있다라고 할 수 있습니다.
각각 여러 번 반복하여 연산을 하는 방법을 사용할 수는 있겠지만, 효율성이 떨어지겠죠?
예를 들어 10000개라면 10000번을 해야 하니 복잡할 겁니다.

 

Matrix의 굉장히 놀라운 장점은 instance의 수대로 Matrix를 설정할 수 있습니다.
마치, 각각 instance를 한 번씩 계산한 것과 같은 결괏값이 나오게 됩니다.

따라서, Matrix를 사용하면 Multi-variable linear regression경우에도 쉽게 처리할 수 있고 instance가 많아도 쉽게 처리할 수 있습니다.


이제부터는 저희가 Matrix를 많이 사용하게 될 겁니다.
주의하실 점은 이론에서 다룰 때는 H(x)= wx+b형태로 많이 사용하는데
실제로 구현할 때는 H(x)= XW 이런 형태로 많이 사용한다는 것을 알고 있으시면 좋을 것 같습니다.
수학적인 의미는 같습니다.

 

댓글