4. 선형 대수의 기초
기계 학습의 이론에는 선형 대수학에서 사용되는 개념이 많이 등장합니다. 이러한 개념을 이용함으로써 복수의 값이나 변수를 한꺼번에 처리할 수 있도록 수식을 간결하게 표현할 수 있습니다. 이 장에서는 특히, 다음의 개념을 차례로 소개하겠습니다.
-
스칼라, 벡터, 행렬, 텐서
-
벡터, 행렬의 연산(덧셈과 뺄셈, 스칼라 곱 · 내적 · 행렬곱)
-
특별한 행렬(단위행렬, 역 행렬)
-
다변수 함수(선형 결합, 이차 형식)와 그 미분
4.1 스칼라, 벡터, 행렬, 텐서
먼저 스칼라, 벡터, 행렬, 텐서라는 4개의 단어를 설명합니다.
스칼라(scalar)는 2.5, -1, π같은 하나의 값 또는 변수를 말합니다. 스칼라는 온도, 체중, 신장 같은 단일 수량을 의미합니다. 스칼라 변수를 나타내려면
처럼 Bold 또는 기울임체로 되어 있지 않은 문자를 이용하는 것이 일반적입니다. 2.4 + 3.2i 같은 복소수에서도 값이 하나만 있다면 스칼라(복소수 스칼라)라고 하지만, 본 문서에서는 특별히 명시하지 않으면 실수 스칼라로 처리합니다. 후술 하는 벡터, 행렬, 텐서에 있어서도 마찬가지입니다.
x가 실수의 스칼라인 것을 종종, 「x∈R」라고 씁니다. R은 실수의 스칼라로 이루어진 집합을 나타내며 「A∈B」는 「A는 B에 속한다」는 뜻입니다. 따라서, x∈R는 「x는 실수 스칼라로 이루어진 집합에 속한다」, 즉 「x는 실수 스칼라이다」라고 해석할 수 있습니다.
벡터(vector)는 스칼라를 한 방향으로 정렬한 것입니다. 예를 들어,
같이 표현합니다. 벡터를 구성하는 스칼라들(x1이나 y2등)의 수를 요소나 성분이라고 합니다. 벡터를 나타내는 데 사용되는 문자는 스칼라와 구별하기 쉽도록 굵게 하는 것이 일반적입니다. 위의 두 예와 같이, 해당 요소를 수직 방향으로 늘어놓은 것을 열 벡터라고 합니다. 한편,
같이 요소를 가로로 늘어놓은 것은 행 벡터라고 합니다. 본 문서에서는 특별히 명시하지 않는 한, 단순히 벡터라고 표현한 경우에는 열 벡터를 지칭합니다. 벡터에 포함된 스칼라 숫자의 수를 그 벡터의 차원이라고 합니다. 예를 들어, x는 3차원 열 벡터, z는 3차원 행 벡터입니다. 스칼라의 경우와 마찬가지로, 벡터 x가 N차원의 벡터로, 벡터를 구성하는 스칼라가 실수라는 것을, 수식을 사용하여
라고도 쓰고 있습니다.
행렬(matrix)은 같은 크기의 벡터를 복수로 늘어놓은 것입니다. 예를 들어,
는 행렬의 예입니다. 행렬은 대문자, 혹은 대문자 Bold체로 표기하여 스칼라 및 벡터와 구별합니다. 행렬의 형태(사이즈)는 행과 열의 개수로 표현합니다.
예를 들어, 위에 언급한 X는 행 벡터가 3개 늘어선 것으로 볼 수 있습니다. 따라서 X의 행 수는 3입니다. 한편, 관점을 바꾸면 X는 열 벡터가 2개 줄 선 것으로 볼 수 있으므로, X의 열 수는 2입니다. 그래서 X를 '3행 2열의 행렬'이라고 합니다. '크기가 (3,2)인 행렬'이나 '크기가 3 × 2인 행렬'이라고 불러도 상관없습니다. N차원의 열 벡터는 사이즈가 (N,1)인 행렬, N차원의 행 벡터는 크기가 (1,N)인 행렬로 볼 수 있습니다.
스칼라, 벡터의 경우와 병행하여, 행렬 X의 사이즈가 (N,M)이며, 각 요소가 실수인 것을
라고도 쓸 수 있습니다. 예를 들면, 조금 전의 X는
가 됩니다.
텐서(tensor)는 벡터나 행렬을 일반화한 개념입니다. 예를 들어, 벡터 1방향으로, 행렬은 두 방향으로 스칼라가 줄지어 있습니다. 이는 "벡터는 1층 텐서이고 행렬은 2층 텐서"임을 의미합니다. 이 개념을 더욱 발전시켜 아래 그림과 같이 행렬을 안쪽 방향으로 더욱 늘어놓은 것을 3층 텐서라고 합니다.
예를 들어, 컬러 이미지를 디지털로 표현하는 경우, 하나의 이미지는 RGB(Red Green Blue)의 3개의 레이어(채널이라고 함)를 가지는 것이 일반적입니다. 각 채널은 행렬로 표현되고, 그 행렬이 채널 방향으로 복수로 쌓여 있기 때문에 이미지는 3층 텐서로 간주될 수 있습니다. 3층 텐서는 특정 요소를 지정하는데, 「위에서 3번째, 왼쪽에서 두 번째, 앞에서 5번째」처럼 정수(인덱스)를 3개 필요로 합니다.
마찬가지로, 4차원 이상인 경우도 N차원 스칼라를 늘어놓은 것(즉, 요소를 지정하는데 N개의 인덱스가 필요한 것)을 N층 텐서라고 합니다. 예를 들어, 많은 딥러닝 프레임워크는 여러 장의 이미지 모임을 「이미지의 인덱스 하나」 + 「각 이미지의 인덱스 3개(폭, 높이, 채널)」의 4층 텐서로 표현합니다. 앞에서 서술한 바와 같이, 벡터 및 행렬은 텐서의 일종으로 간주될 수 있지만 본 문서에서는 단순히 「텐서」 라고 한 경우 3층 이상의 텐서를 의미합니다.
'AI · 인공지능 > 딥러닝 Tutorial' 카테고리의 다른 글
[딥러닝 입문 - 4] 선형 대수의 기초(5/9) (0) | 2020.07.19 |
---|---|
[딥러닝 입문 - 4] 선형 대수의 기초(4/9) (0) | 2020.07.18 |
[딥러닝 입문 - 4] 선형 대수의 기초(3/9) (0) | 2020.07.17 |
[딥러닝 입문 - 4] 선형 대수의 기초(2/9) (0) | 2020.07.16 |
[딥러닝 입문 - 3] 미분의 기초 (3/3) (0) | 2020.07.12 |
[딥러닝 입문 - 3] 미분의 기초 (2/3) (0) | 2020.07.11 |
[딥러닝 입문 - 3] 미분의 기초 (1/3) (1) | 2020.07.10 |
[딥러닝 입문 - 2] 머신 러닝에 사용되는 수학 (5) | 2020.07.07 |