지금까지는 하나의 input에 대한 linear regression을 다루었다면, 이번에는 1. Linear regression에서 잠시 제시했던 여러 변수를 input으로 하는 Linear regression을 살펴보겠습니다. Hypothesis 식과 cost function 식은 하나의 변수로 이루어진 Linear regression 식 형태와 유사하게 다음과 같이 표현할 수 있습니다.
하지만 이와 같은 다변수 Linear regression 식의 경우, 변수가 많아질수록 줄줄이 써야하고, 코드로 표현하기에도 불편함이 있습니다. 그래서 일반적으로 이와 같은 식은 Matrix(행렬)로 표현합니다. 예시로, x_1, x_2, x_3 3개의 변수로 이루어진 4개의 데이터를 가정하고 Linear regression hypothesis 식과 데이터를 대입한 곱 형태의 Matrix로 표현해보겠습니다.
x_1 | x_2 | x_3 | Y |
x_11 | x_12 | x_13 | y_1 |
x_21 | x_22 | x_23 | y_2 |
x_31 | x_32 | x_33 | y_3 |
x_41 | x_42 | x_43 | y_4 |
위의 Matrix 곱에서 눈여겨볼 부분은, 앞에 곱해지는 Matrix(input)의 행 수(4), 뒤에 곱해지는 Matrix(weight)의 열 수(1)를 통해 최종 output의 모양(shape, 여기서는 [4, 1])이 결정된다는 것입니다. 위의 곱의 형태는 이후에 다룰 Fully connected layer (Dense layer)에서 사용합니다. Layer가 연속될 때, 이를 통과하는 data의 shape은 그 다음 layer의 weight이 곱해질 수 있는 형태여야 합니다 (output shape이 위처럼 [4, 1]이라면, 다음 layer도 fully connected layer인 경우, 그 layer의 weight shape은 [1, X] 형태가 되어야 matrix 곱 연산이 가능합니다). 일반적으로 matrix 열 수를 dimension이라고 표현하고, 여기에서는 간단하게 'weight shape을 통해서 output dimension을 조절할 수 있다' 정도만 생각해도 괜찮습니다.
그리고 위와 같은 Linear regression matrix 곱 표현을 아래와 같이 Matrix를 대문자로 표현한 간단한 곱 형태로 표현할 수 있습니다 (Matrix 곱에 대한 설명은 생략하겠습니다). 이 표현방식은 tensorflow, pytorch와 같은 deep learning framework 코드 상에서 주로 사용합니다.
참고한 자료1: https://hunkim.github.io/ml/
'딥러닝 기초' 카테고리의 다른 글
5-1. Softmax (Multinomial classification) (0) | 2023.08.15 |
---|---|
4-2. Logistic regression의 Cost function, Gradient descent (0) | 2023.08.15 |
4-1. Logistic regression (0) | 2023.08.13 |
2. Linear regression의 cost 함수를 최소화하는 방법 (0) | 2023.07.30 |
1. Linear regression (선형 회귀) (0) | 2023.07.25 |