본문 바로가기
WᵀX VS.WXᵀ (상식)

데이터의 표현 방법에서 보통 WXᵀ를 많이 애용한다고 했었는데, 가끔 보면 WᵀX 표현이 나올 때도 꽤 있습니다. 

일반적인 데이터를 다룰 떄에는 애당초 이야기 했던 것처럼 - 특히 기계학습등에서는- WXᵀ의 표현을 씁니다. 왜냐하면 벡터는 세로인 column으로 표시한다고 했잖아요? 보통 데이터를 row로 표현하는 경우가 많으니까 Transpose 해서 사용합니다. 

그러면 어? WᵀX 이런 표현은 뭐란 말인가?  이게 뭐냐 하면, 회귀를 다룰 때에는 이런 식으로 많이 씁니다. 왜 그러냐 하면, 회귀에서는 W를 계수, x를 독립변수로 구분을 하는데, 둘 다 벡터로 생각해서 column으로 표기할 때가 많거든요. 

그러면 종속변수는 column 벡터 두개를 곱해서 1 ×1 형태의 계수와 독립변수의 곱의 합의 형태가 나와야 하니까 그런 거거든요. 어떻게 하면 좋을까요. 계수를 행벡터로 만들면 되겠죠. 아니 이게 또 이게 먼 소리냐 하면

회귀는 
$$y = b_0 + b_1 x_1 + b_2 x_2 + \cdots + b_n x_n $$ 
형태잖아요? b가 계수이고, x가 독립변수인데, 어차피 계수라는게 가중치잖아요? 그러니까 Weight라는 의미로 W로 표현하는 경우가 많습니다. 
$$y = w_0 + w_1 x_1 + w_2 x_2 + \cdots + w_n x_n $$ 
이런 식으로 표현 가능합니다. 그리고, 계수와 독립변수를 벡터로 표현하면 column 벡터로 표현할 수 있겠습니다. 어떻게요?

$$ W =
\begin{bmatrix}
w_0 \\ w_1 \\ w_2 \\ \vdots \\ w_n
\end{bmatrix}, \,\,\,\,
X =
\begin{bmatrix}
1 \\ x_1 \\ x_2 \\ \vdots \\ x_n
\end{bmatrix}
$$

이런 식으로요. 자, 그러면 y를 행렬곱으로 표현하려면 어떻게 해야 하나요. 다음과 같이 할 수 있겠죠. 참고로 w₀는 y절편입니다. 


$$ y=\begin{split} 
\begin{bmatrix}
w_0 & w_1 & w_2 & \cdots & w_n
\end{bmatrix}
\begin{bmatrix}
1 \\ x_1 \\ x_2 \\ \vdots \\ x_n
\end{bmatrix}
= W^T X
\end{split} $$

이렇게 하면 결국 행렬곱이
$$y = w_0 + w_1 x_1 + w_2 x_2 + \cdots + w_n x_n $$ 이 되겠죠.

이래서 WᵀX 식으로 표현하는데, 그런데 굳이 WXᵀ로 표현하고 싶으면 계수와 독립변수를 행벡터로 처리하면 그렇게 할 수도 있습니다. 

그런 경우라면 

$$ W =
\begin{bmatrix}
w_0 & w_1 & w_2 & \cdots & w_n
\end{bmatrix}, \,\,\,\,
x =
\begin{bmatrix}
1 & x_1 & x_2 & \cdots & x_n
\end{bmatrix}
$$

가 되면, 

$$ y=\begin{split} 
\begin{bmatrix}
w_0 & w_1 & w_2 & \cdots & w_n
\end{bmatrix}
\begin{bmatrix}
1 \\ x_1 \\ x_2 \\ \vdots \\ x_n
\end{bmatrix}
= W X^T
\end{split} $$

이런 식이 되는데요, 잘 쓰지는 않습니다.만, 행 벡터와 행 벡터로 된 두 개 행렬의 유사도 (Inner Product)를 구할 때는 이런 식으로 표현하기도 합니다. 

이런 표현이 머릿속에서 자유자재로 바뀌어야 되는데 늘 컬럼을 기준으로 생각하면 금방 답이 나옵니다. 

친절한 데이터 사이언스 강좌 글 전체 목차 (링크) -



댓글





친절한 데이터 사이언스 강좌 글 전체 목차 (링크) -