처음부터 시작하는 자연어처리(2.3)

June
None
Published in
3 min readFeb 6, 2023

안녕하세요. 휴먼스케이프 june입니다.

3편에서 연재할 word2vec을 이해하는데에 행렬 연산에 대한 지식이 필요해 2.3편을 따로 제작하게 되었습니다.

(2.5편이 아닌 2.3편인 이유는 2.6편도 있기 때문입니다.)

행렬

행렬은, 숫자를 사각형 형태로 배치시켜 놓은 것을 의미합니다.

우리 주변에서 액셀이라는 프로그램을 통해 쉽게 접할 수 있습니다.

출처: https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC

위와 같은 친구를 행렬이라 부르며, 행렬의 요소값은Aᵢⱼ로 표현합니다.

이 때 i는 행(Row), j는 열(Column)을 뜻합니다.

예를들어 위 행렬 A의 1번째 행, 2번째 열의 값(2)을 가져오고 싶으면 A₁₂로 표현합니다.

행렬 덧셈

행렬의 덧셈은 두 행렬의 크기가 같을 때 가능합니다.

예를들어 행렬 A가 [2, 3]의 크기를 가졌다면 행렬 B도 [2, 3]의 크기를 가져야 덧셈이 가능합니다.

+---+---+---+      +---+---+---+    +---+---+---+
| 1 | 2 | 3 | | 0 | 7 | 4 | | 1 | 9 | 7 |
+---+---+---+ + +---+---+---+ = +---+---+---+
| 4 | 5 | 6 | | 1 | 8 | 2 | | 5 | 13 | 8|
+---+---+---+ +---+---+---+ +---+---+---+

행렬 곱셈

행렬의 곱셈은 행렬의 크기가 같지 않아도 가능합니다.

선형방정식을 생각하면 매우 쉬운데, 다음과 같이 나타낼 수 있습니다.

+---+---+    +---+    +---------+
| 1 | 2 | | x | | 1x + 2y |
+---+---+ * +---+ = +---------+
| 4 | 5 | | y | | 4x + 5y |
+---+---+ +---+ +---------+

위의 식을 잘 이해하고 있으면 어떤 행렬의 곱/나눗셈도 응용해서 풀어낼 수 있습니다.

+---+---+    +---+---+---+    +---------+---------+---------+
| 1 | 2 | | x | a | c | | 1x + 2y | 1a + 2b | 1c + 2d |
+---+---+ * +---+---+---+ = +---------+---------+---------+
| 4 | 5 | | y | b | d | | 4x + 5y | 4a + 5b | 4c + 5d |
+---+---+ +---+---+---+ +---------+---------+---------+

위의 풀이들을 통해 [2, 2]크기의 행렬과 [2, 3]크기의 행렬을 곱할 경우 [2, 3]크기의 행렬이 나온다는 것을 알 수 있습니다.

또, [3, 2]크기의 행렬과 [2, 4]크기의 행렬을 곱한다면 [3, 4]크기의 행렬이 나온다는 것을 쉽게 알 수 있습니다.

따라서 행렬의 곱은 반드시 [a, b] * [b, c]의 크기일때만 이루어지며(b가 동일해야함), 결과로는 [a. c]크기의 행렬이 나온다는 것을 알 수 있습니다.

--

--