Processing math: 100%

다변수 선형 회귀(Multi-variable Linear Regression)

변수가 하나일 때 선형 회귀에 사용했던 방법

  • Hypothesis :

(1)H(x)=W×x+b

  • cost(loss) 함수 : 가설 식 (1)과 실제 값과의 차이

cost(loss)(W,b)=1mi=1m(H(xi)yi)2(2)=1mi=1m((W×xi+b)yi)2

  • Gradient Descent Algorithm : cost(loss) 함수가 극소가 되는 값을 구하는 방법

(3)W=Wα×Wcost(loss)(W,b)


변수가 3개일 때의 선형 회귀식

  • 다음과 같이 3개의 입력값에 대한 결과값이 있을 때 선형 회귀식을 구하는 방법을 생각해본다.
    • 인스턴스(instance) : 실제 각각의 데이터
    • 아래 표에서는 5개의 인스턴스를 사용해 가설을 만들게 된다.


  • 가설(hypothesis) : 인스턴스가 1개일 때, 변수는 3개이기 때문에 단변수일 때의 가설 식 (1)을 다음 식 (4)처럼 쓸 수 있다.

(4)H(x1,x2,x3)=w1×x1+w2×x2+w3×x3+b

  • cost(loss) 함수 : 위 식 (2)는 다음 식 (5)처럼 쓸 수 있다.

(5)cost(loss)(W,b)=1mi=1m(H(x1i,x2i,x3i)yi)2


변수가 n개일 때로 일반화한 선형 회귀식

  • 가설(hypothesis) : 인스턴스가 1개에 대하여 변수가 n개일 때의 가설은 식 (6)처럼 쓸 수 있다

(6)H(x1,x2,,xn)=w1x1+w2x2++wnxn+b

  • 다변수일 때의 식은 항이 여러 개로 나와 길게 쓰는 것이 불편하기 때문에 식 (6)은 행렬식을 이용하여 식 (7)처럼 쓸 수 있다.

    • 데이터 xi의 값들이 주어지기 때문에 계수로 쓰고, wi는 우리가 예측해야 하는 값이기 때문에 변수로 표기해 식을 정리한다.

H(x1,x2,,xn)=w1x1+w2x2++wnxn+b=x1w1+x2w2++xnwn+b(7)=(x1,x2,,xn)(w1w2wn)+b

    • 위의 변수들을 행렬로 해서 정리하면 다음과 같이 간단히 정리할 수 있다.

      • X=[x1,x2,x3,,xn]
      • W=[w1,w2,w3,,wn]

(8)H(X)=X×WT+b


행렬식을 사용하는 가설식

  • 아래 시험성적표에 대한 가설식을 만들어 보자.

  • 변수가 3개이기 때문에 가설은 식 (9)처럼 쓸 수 있다.

H(x1,x2,x3)=x1×w1+x2×w2+xe×w3+b=(x1,x2,x3)(w1w2w3)+b(9)=XWT+b=H(X)

  • 우리의 예에서는 인스턴스가 5개이기 때문에 가설은 식(10)처럼 쓸 수 있다.

(10)(x11w1+x12w2+x13w3+b1x21w1+x22w2+x23w3+b2x31w1+x32w2+x33w3+b3x41w1+x42w2+x43w3+b4x51w1+x52w2+x53w3+b5)=(x11x12x13x21x22x23x31x32x33x41x42x43x51x52x53)(w1w2w3)+(b1b2b3b4b5)=XW+B=H(X)

  • 식 (10)을 차원(dimension)(텐서플로우의 데이터 모양(shape))으로 표현하면 다음과 같다.

    • instance X 행렬의 차원은 [5,3]
    • weight W 행렬의 차원은 [3,1]
    • bias B 행렬의 차원은 [5,1]

[5,1]=[5,3]×[3,1]+[5,1]


결과값이 2개인 경우의 가설식

  • 결과값이 여러 개인 경우도 고려해볼 수가 있는데 2개의 경우에 몇 차원의 weight 행렬식을 사용해야할까?

    • 식 (11)과 같이 [3,2] 차원의 행렬식 weight를 사용하면 된다.

(11)[5,3]×[?,?]=[?,2][5,3]×[3,2]=[5,2]

(x11w11+x12w21+x13w31+b1x11w12+x12w22+x13w32+b2x21w11+x22w21+x23w31+b1x21w12+x22w22+x23w32+b2x31w11+x22w21+x33w31+b1x31w12+x32w22+x33w32+b2x41w11+x42w21+x43w31+b1x41w12+x42w22+x43w32+b2x51w11+x52w21+x53w31+b1x51w12+x52w22+x53w32+b2)=(x11x12x13x21x22x23x31x32x33x41x42x43x51x52x53)(w11w12w21w22w31w32)+(b11b12b21b22b31b32b41b42b51b52)


결론 : 행렬식을 사용하면 많은 인스턴스 및 다변수의 경우에도 쉽게 수식으로 정리, 표현할 수 있다.

  • 이론으로 가설식을 다룰 때에는 weight w를 계수로 하고 변수 x의 순서로 쓰지만, 실제에서는 weight와 변수의 순서를 바꾸면 행렬식을 그대로 쓸 수 있게 코딩으로 바로 구현하는 것이 쉽다.
    • 이론 가설식(theory hypothesis) : H(X)=W×X+B

    • 구현 가설식(implementation hypothesis) : H(X)=X×WT+B


+ Recent posts