다변수 선형 회귀(Multi-variable Linear Regression)
변수가 하나일 때 선형 회귀에 사용했던 방법
Hypothesis :
cost(loss) 함수 : 가설 식 (1)과 실제 값과의 차이
Gradient Descent Algorithm : cost(loss) 함수가 극소가 되는 값을 구하는 방법
변수가 3개일 때의 선형 회귀식
- 다음과 같이 3개의 입력값에 대한 결과값이 있을 때 선형 회귀식을 구하는 방법을 생각해본다.
- 인스턴스(instance) : 실제 각각의 데이터
- 아래 표에서는 5개의 인스턴스를 사용해 가설을 만들게 된다.
- 가설(hypothesis) : 인스턴스가 1개일 때, 변수는 3개이기 때문에 단변수일 때의 가설 식 (1)을 다음 식 (4)처럼 쓸 수 있다.
cost(loss) 함수 : 위 식 (2)는 다음 식 (5)처럼 쓸 수 있다.
변수가 n개일 때로 일반화한 선형 회귀식
- 가설(hypothesis) : 인스턴스가 1개에 대하여 변수가
개일 때의 가설은 식 (6)처럼 쓸 수 있다
다변수일 때의 식은 항이 여러 개로 나와 길게 쓰는 것이 불편하기 때문에 식 (6)은 행렬식을 이용하여 식 (7)처럼 쓸 수 있다.
- 데이터
의 값들이 주어지기 때문에 계수로 쓰고, 는 우리가 예측해야 하는 값이기 때문에 변수로 표기해 식을 정리한다.
위의 변수들을 행렬로 해서 정리하면 다음과 같이 간단히 정리할 수 있다.
행렬식을 사용하는 가설식
- 아래 시험성적표에 대한 가설식을 만들어 보자.
변수가 3개이기 때문에 가설은 식 (9)처럼 쓸 수 있다.
우리의 예에서는 인스턴스가 5개이기 때문에 가설은 식(10)처럼 쓸 수 있다.
식 (10)을 차원(dimension)(텐서플로우의 데이터 모양(shape))으로 표현하면 다음과 같다.
- instance
행렬의 차원은 [5,3] - weight
행렬의 차원은 [3,1] - bias
행렬의 차원은 [5,1]
결과값이 2개인 경우의 가설식
결과값이 여러 개인 경우도 고려해볼 수가 있는데 2개의 경우에 몇 차원의 weight 행렬식을 사용해야할까?
- 식 (11)과 같이
차원의 행렬식 weight를 사용하면 된다.
결론 : 행렬식을 사용하면 많은 인스턴스 및 다변수의 경우에도 쉽게 수식으로 정리, 표현할 수 있다.
- 이론으로 가설식을 다룰 때에는 weight
를 계수로 하고 변수 의 순서로 쓰지만, 실제에서는 weight와 변수의 순서를 바꾸면 행렬식을 그대로 쓸 수 있게 코딩으로 바로 구현하는 것이 쉽다. 이론 가설식(theory hypothesis) :
- 구현 가설식(implementation hypothesis) :
'모두를 위한 머신러닝' 카테고리의 다른 글
Lesson 4 : Logistic (regression) classification (0) | 2017.04.19 |
---|---|
Lesson 3 연습 : Multi-variable Linear Regression (1) | 2017.04.16 |
Lesson 2 연습 : Linear Regression의 Hypothesis와 cost의 개념 (0) | 2017.04.11 |
Lesson 2 : Linear Regression의 Hypothesis와 cost의 개념 (0) | 2017.04.10 |
Lesson 1 연습 : TensorFlow의 개념 (0) | 2017.04.03 |