Lec-04 1 Multi variable linear regression

박준영·2025년 11월 11일

딥러닝 공부

목록 보기
6/23

remind

  • Hypothesis => H(x)=Wx+bH(x)=Wx+b
  • Cost Function => cost(W)=1mi=1m(H(xi)yi)2\text{cost}(W)=\frac{1}{m}\sum_{i=1}^{m}\big(H(x_i)-y_i\big)^2
  • Gradient descent => WWa1mi=1m(H(xi)yi)xiW \leftarrow W - a \cdot \frac{1}{m}\sum_{i=1}^{m}\big(H(x_i)-y_i\big)\,x_i

One Variable (One-feature)

=> 하나의 변수에 대해서 하나의 예측치를 가진다.

x (hours)y (score)
1090
980
350
260
1140

=> 하나의 값만으로 예측하는 것 보다는, 여러 개의 값으로 예측하는 것이 더 예측을 잘 할 것이다.
=> prediction power (예측력)

Multi Vairable

x1 (quiz 1)x2 (quiz 2)x3 (quiz 3)y (final)
738075152
938893185
899190180
9698100196
736670142

=> 모의고사 점수로 최종 점수를 예측하는 모델

One Variable vs Multi Variable

구분입력(특징)출력가설 표기
One Variable (One-feature)xx (hours) 1개yy (score) 1개H(x)=Wx+bH(x)=Wx+b
Multi Variablex1,x2,x3x_1,x_2,x_3 (quiz1,2,3)yy (final) 1개H(x1,x2,x3)=w1x1+w2x2+w3x3+bH(x_1,x_2,x_3)=w_1x_1+w_2x_2+w_3x_3+b

비용 함수는 공통: cost(W,b)=1mi=1m(H(xi)yi)2\text{cost}(W,b)=\frac{1}{m}\sum_{i=1}^{m}\big(H(x_i)-y_i\big)^2

Hypothesis

  • H(x)=Wx+bH(x)=Wx+b
  • H(x1,x2,x3)=w1x1+w2x2+w3x3+bH(x_1,x_2,x_3)=w_1x_1+w_2x_2+w_3x_3+b
  • H(x1,x2,x3,)=jwjxj+bH(x_1,x_2,x_3,\dots)=\sum_j w_j x_j + b
  • cost(W,b)=1mi=1m(H(xi)yi)2\,\text{cost}(W,b)=\frac{1}{m}\sum_{i=1}^{m}\big(H(x_i)-y_i\big)^2

Matrix

  • H(x1,x2,x3,)=w1x1+w2x2+w3x3++wnxn+bH(x_1,x_2,x_3,\dots)=w_1x_1+w_2x_2+w_3x_3+\dots+w_nx_n+b
  • 변수 수가 늘면 Matrix로 간략화한다.

Matrix multipication

[123456][789101112]=[17+29+31118+210+31247+59+61148+510+612]=[5864139154]\begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \end{bmatrix} \cdot \begin{bmatrix} 7 & 8\\ 9 & 10\\ 11 & 12 \end{bmatrix} = \begin{bmatrix} 1\cdot7 + 2\cdot9 + 3\cdot11 & 1\cdot8 + 2\cdot10 + 3\cdot12\\ 4\cdot7 + 5\cdot9 + 6\cdot11 & 4\cdot8 + 5\cdot10 + 6\cdot12 \end{bmatrix} = \begin{bmatrix} 58 & 64\\ 139 & 154 \end{bmatrix}
  • 첫 번째 행렬의 행과 두 번째 행렬의 열을 곱해 더한다(점곱, dot product)
  • 각 행/열 을 곱한 값을 모두 더하여 결과값을 얻는다. => dot product

선형 가설의 행렬 표현

  • 따라서 H(x1,x2,x3,)=w1x1+w2x2+w3x3++wnxn+bH(x_1,x_2,x_3,\dots)=w_1x_1+w_2x_2+w_3x_3+\dots+w_nx_n+b 는 행렬로
    [x1 x2 x3][w1w2w3]=x1w1+x2w2+x3w3[\,x_1\ x_2\ x_3\,]\begin{bmatrix}w_1\\ w_2\\ w_3\end{bmatrix}=x_1w_1+x_2w_2+x_3w_3
    이렇게 matrix XX, matrix WW로 표현한다.
  • H(X)=XWH(X)=XW (매트릭스는 대문자로 표기, 입력 XX와 가중치 WW의 곱)

matrix 예제(차원)

  • 데이터

    x1 (quiz 1)x2 (quiz 2)x3 (quiz 3)y (final)
    738075152
    938893185
    899190180
    9698100196
    736670142
    • 변수 3개, 데이터 개수 5개
    • XX[5,3][5,3] 행렬
    • WW[3,1][3,1] 행렬
    • H(X)=XWH(X)=XW[5,1][5,1]

dot product의 차원 규칙

  • 앞 행렬의 열 수 = 뒤 행렬의 행 수여야 한다
    • 예: [n,3][3,1]=[n,1][n,3]\cdot[3,1]=[n,1] 이므로 H(X)=XWH(X)=XW
  • 데이터 개수와 무관: [n,3][3,1]=[n,1][n,3]\cdot[3,1]=[n,1]nn이 얼마든 동일
  • 출력이 2개인 경우
    • [n,3][3,2]=[n,2][n,3]\cdot[3,2]=[n,2]
    • WW[3,2][3,2]로 두면 H(X)H(X)[n,2][n,2]

WX vs XW

  • 이론: H(x)=Wx+bH(x)=Wx+b 표기를 자주 사용
  • TensorFlow: 구현상 H(X)=XWH(X)=XW 사용이 일반적
  • 이유: 행렬 곱의 차원 일치를 위해 입력 XX가 앞에 온다

출처: 모두를 위한 딥러닝 강좌 2
https://www.youtube.com/watch?v=7eldOrjQVi0&list=PLQ28Nx3M4Jrguyuwg4xe9d9t2XE639e5C

0개의 댓글