4 minute read

1. 벡터, 행렬의 덧셈

벡터, 행렬에서의 덧셈

  • 벡터, 행렬에서의 덧셈은 더 하려는 두 수의 shape(size)가 같아야 한다.
  • 같은 위치에 있는 원소끼리 덧셈을 하며 되며, 이를 요소별(element-wise) 연산이라고 한다.
  • 뺄셈도 유사하게 정의된다.
  • \( C = A + B \)
\[\begin{bmatrix} 1 \\ 9 \\ 3 \end{bmatrix} = \begin{bmatrix} 0 \\ 7 \\ 3 \end{bmatrix} + \begin{bmatrix} 1 \\ 2 \\ 0 \end{bmatrix}\]

브로드 캐스팅

  • 딥러닝에서 덜 전통적인 표기법을 사용하기도 한다. 행렬과 벡터의 덧셈을 허용하며, \( C = A + B \)으로 표기하며 \( C_{i,j} = A_{i,j} + b_{j} \)에서 각각 연산이 이루어진다.
  • 즉, vector \(\mathbf{b}\)는 행렬의 각 행에 더해진다.
  • 이 약칭은 덧셈을 수행하기 전에 각 행에 b를 복사한 행렬을 정의할 필요가 없다.
  • 이렇게 b를 여러 위치에 암시적으로 복사하는 것을 브로드캐스팅이라고 한다.



2. 벡터, 행렬의 스칼라 덧셈 및 곱

스칼라와 행렬을 더하거나 곱하는 것이 가능하다. 이 연산도 각 element마다 수행되는 element-wise 연산이다.

  • Deep learing 서적에서는 이를 밑의 예시처럼 행렬에 스칼라 덧셈과 곱셈이 가능하다는 것을 예시로 들었다.
  • \( D = a \cdot B + c \)
  • where \( D_{i,j} = a \cdot B_{i,j} + c \)


이것은 실제 값을 가진 예시이며 다음과 같이 수식으로 나타낼 수 있다.

\[2 \begin{bmatrix} 3 \\ 2 \\ 1 \end{bmatrix} = \begin{bmatrix} 6 \\ 4 \\ 2 \end{bmatrix} , \quad 2 \begin{bmatrix} 1 \quad 6 \\ 3 \quad 4 \\ 5 \quad 2 \end{bmatrix} = \begin{bmatrix} 2 \quad 12 \\ 6 \quad 8 \\ 10 \quad 4 \end{bmatrix}\]



3. 행렬과 벡터의 곱셈(multiplication)

행렬에서 가장 중요한 연산 중 하나는 두 행렬의 곱이다.

  • 행렬의 표준곱(standard product)은 내적(Inner product), 외적(Outer product)으로 나뉜다.
  • 행렬과 행렬의 곱셈은 다음처럼 나타낼 수 있다. (벡터도 행렬로 나타낼 수 있으므로 똑같이 취급한다.)

\[C = AB\]

product 연산은 다음처럼 정의한다.

  • 내적과 외적의 계산 방식은 똑같기에 다음과 같이 정의 가능한 것이다.
\[C_{i.j} = \sum_{k} A_{i,k}B_{k,j}\]

행렬곱의 조건과 결과

  • 우선 행렬의 곱은 첫 번째 행렬의 colum의 수와 두 번째 행렬의 row의 수가 똑같아야 곱셈이 성립한다.
  • 결과값은 첫 번째 행렬의 row와 두 번째 행렬의 colum을 곱한 형태가 나온다.


내적과 외적의 간단한 의미

내적과 외적의 의미는 다음 글에서 제대로 알아볼 것이지만, 간단하게 의미를 잡자면 이와 같다.

  • 내적: 벡터들로 스칼라를 만들어 내는 것이다.
  • 외적: 얇은 벡터로 덩치가 큰 형태의 값을 만드는 것이다.


행렬곱의 계산

image

행렬곱 예시

\[\begin{bmatrix} 1 \quad 6 \\ 3 \quad 4 \\ 5 \quad 2 \\ \end{bmatrix} \begin{bmatrix} 1 & -1 \\ 2 & 1 \\ \end{bmatrix} = \begin{bmatrix} 13 & 5 \\ 11 & 1 \\ 9 & -3 \\ \end{bmatrix}\]

내적 (Inner product, Dot product)

\[\begin{bmatrix} 3 & 2 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 3 \\ 5 \end{bmatrix} = \begin{bmatrix} 14 \end{bmatrix}\]

외적 (Outer Product)

\[\begin{bmatrix} 1 \\ 3 \\ 5 \end{bmatrix} \begin{bmatrix} 1 & 2 \end{bmatrix} = \begin{bmatrix} 1 & 2 \\ 3 & 6\\ 5 & 10 \end{bmatrix}\]


행렬의 곱셈은 교환법칙이 성립하지 않는다.(not commutative)

\( AB \not = {BA} \) : 행렬 곱은 교환법칙이 성립하지 않는다.

  • 예를 들어 \(A \in \Bbb{R}^{2 \times 3 }\) 와 \(B \in \Bbb{R}^{3 \times 5 }\)가 있으면, AB는 정의되어있지만 BA는 정의되어 있지도 않다.
    • 이 경우에는 행렬의 사이즈가 맞지 않기에 \(BA\)는 애초에 곱연산이 되지 않는다.
  • 만약 \(A\)와 \(B\)가 \(A \in \Bbb{R}^{2 \times 3 }\) 와 \(B \in \Bbb{R}^{3 \times 2 }\)해당 사이즈로 주어져서 \(BA\)가 정의되면 어떻게 될까?
    • 이 또한 행렬곱의 결과가 \(AB \in \Bbb{R}^{2 \times 2 }\)와 \(BA \in \Bbb{R}^{3 \times 3 }\)으로 나오기에, \( AB \not = {BA} \)이며, 교환법칙이 성립하지 않는다.
  • \( AB \)와 \( BA \)결과의 크기가 동일하면 어떻게 될까?
    • e.g., \(A \in \Bbb{R}^{2 \times 2 }\)와 \(B \in \Bbb{R}^{2 \times 2 }\)로 행렬이 주어져도 여전히 \( AB \not = {BA} \)이다. 계산해보면 다음과 같다.
\[\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} = \begin{bmatrix} 19 & 22 \\ 43 & 50 \\ \end{bmatrix} , \quad \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 23 & 34 \\ 31 & 46 \\ \end{bmatrix}\]

일반적으로 row vector와 column vector의 순서문제 때문에 교환법칙은 성립하지 않는다.

행렬의 property 정리

  • 분배법칙(Distributive) 만족: \( A(B+C) = AB + AC \)
  • 결합법칙(Associative) 만족: \( A(BC) = (AB)C \)
  • 전치법칙(Property of transpose) 만족: \( (AB)^T = B^{T}A^{T} \)
  • 교환법칙(Commutatibe) 불만족: \( AB \not={BA} \)
    • 그러나 벡터 곱에서 교환법칙은 만족한다. \( x^Ty = y^Tx\)



4. element-wise product

위에서 보았던 두 행렬의 stnadard product는 단순한 개별 요소의 곱이 아니었다. 표준 곱과는 다르게 개별 요소의 곱만을 수행하는 연산이 있는데 이를 element-wise product 또는 Hadmard product라고 하며, \(A \odot B \)와 같이 나타낸다.



5. 벡터의 곱에서 교환법칙

행렬 곱의 교환 법칙은 만족하지 않지만, 벡터 곱에서 교환 법칙은 만족한다.

\[x = \begin{bmatrix} 1\\ 2\\ 3\\ \end{bmatrix} , \quad y = \begin{bmatrix} 4\\ 5\\ 6\\ \end{bmatrix}\] \[x^T = \begin{bmatrix} 1 & 2 & 3 \end{bmatrix} , \quad y^T = \begin{bmatrix} 4 & 5 & 6 \end{bmatrix}\]

위 처럼 값이 주어져있고, 계산을 해보면 스칼라값이 동일하게 나오는 것을 확인할 수 있다.

\[x^{T}y , \quad \begin{bmatrix} 1 & 2 & 3 \end{bmatrix} \begin{bmatrix} 4\\ 5\\ 6\\ \end{bmatrix} = 32\] \[y^{T}x , \quad \begin{bmatrix} 4 & 5 & 6 \end{bmatrix} \begin{bmatrix} 1\\ 2\\ 3\\ \end{bmatrix} = 32\]





출처

데이터 사이언스 스쿨 수학자료
학교 강의 자료
Bengio, et.al. - Deep Learning
주재걸 - 인공지능을 위한 선형 대수