- 선형대수(linear algebra) : 벡터나 행렬 같은 다차원 수학 객체들과 그런 객체들에 대한 연산
5.1 스칼라, 벡터, 행렬, 텐서
5.1.1 스칼라
- 스칼라(scalar) : 7이나 42, 같은 수치
- 수학 공식에서 스칼라 변수는 처럼 영문 소문자로 표기함
- 컴퓨터에서는 단순한 수치형 변수로 표현함
5.1.2 벡터
- 벡터(vector) : 여러 개의 수치(성분)로 이루어진 1차원 배열
- 행벡터(row vector) : 수평 방향의 벡터
- 열벡터(column vector) : 수직 방향의 벡터
- 벡터의 각 성분을 좌표공간의 좌표성분, 즉 한 좌표축을 따라 나아간 거리로 해석하기도 함
- 그러나 심층학습을 비롯한 기계학습 전반에서 벡터의 성분들은 특징(feature)을 나타내는 데 쓰임
5.1.3 행렬
- 행렬(matrix) : 수치들의 2차원 배열
- 위의 행렬 는 3 x 4 행렬이라고 표기함
- 이 때 3 x 4는 행렬의 차수(order)임
5.1.4 텐서
- 텐서(tensor) : 차원이 셋 이상인 수학적 객체
- 텐서의 차원 수는 텐서의 차수(order)를 결정함
- 텐서의 차수를 행렬의 차수와 혼동하면 안 됨
- 3차까지의 텐서들은 기하학의 객체들과 일대일로 대응됨
차수(차원 수) | 텐서 이름 | 기하학 이름 |
0 | 스칼라 | 점 |
1 | 벡터 | 직선 |
2 | 행렬 | 평면 |
3 | 텐서 | 입체(부피) |
5.2 텐서 산술 연산
5.2.1 배열 연산
- 배열에 대한 스칼라 연산은 배열의 각 성분에 개별적으로 적용됨
- 아다마르 곱(Hadamard product) : 두 행렬(a와 b)에 대한 성분별 곱셈
- 브로드캐스팅(broadcasting) : 한 배열을 몇 가지 규칙에 따라 다른 배열에 “브로드캐스팅(broadcasting)”해서 의미 있는 결과를 산출하는 기능
5.2.2 벡터 연산
5.2.2.1 크기
- 벡터의 크기(magnitude) : 기하학에서 벡터의 길이
5.2.2.2 단위 벡터
- 단위 벡터(unit vector) : 원래의 벡터와 방향이 같되 크기가 1인 벡터
5.2.2.3 벡터 전치
- 벡터의 전치(transpose) : 행벡터를 열벡터로 바꾸거나 열벡터를 행벡터로 바꾸는 것
5.2.2.4 내적
- 내적(inner product) :
- 내적을 점곱(dot product)이라고 부르기도 함
- 두 벡터의 내적을 표기하는 방법과 그 정의는 다음과 같음
- 벡터 자신과의 내적은 벡터 크기의 제곱임
- 내적 연산은 교환법칙과 분배법칙이 성립함
- 그러나 결합법칙은 성립하지 않음
- 각도가 90°인 두 벡터의 내적은 0임
5.2.2.5 사영
- 사영 또는 투영(projection) : 한 벡터가 다른 한 벡터의 방향으로 얼마나 나아가는지를 계산한 것
5.2.2.6 외적
- 외적(outer product) :
- 두 벡터의 외적(outer product)은 행렬임
- 내적과는 달리 외적은 벡터들의 길이가 달라도 계산할 수 있음
- 성분이 m개인 벡터 와 성분이 n개인 벡터 의 외적은 다음과 같음
- 이 표기는 와 가 열벡터라고 가정한 것임
- 두 벡터의 외적과 두 집합의 데카르트 곱(Cartesian product) 사이에는 직접적인 연관 관계가 있음
5.2.2.7 벡터곱
- 벡터곱(cross product) :
- 와 의 벡터곱은 와 가 있는 평면과 수직인 새 벡터임
- 벡터곱의 정의는 다음과 같음
- 여기서 은 단위 벡터이고 는 와 의 각도임
- 의 방향은 오른손 규칙(right-hand rule)으로 결정됨
5.2.3 행렬 곱셈
5.2.3.1 행렬 곱셈의 성질들
- 행렬 곱셈의 성질
- 행렬의 곱셈은 결합법칙과 분배법칙이 성립함
- 그러나 일반적으로 행렬의 곱셈에는 교환법칙이 성립하지 않음
5.2.3.2 두 행렬을 곱하는 방법
- 행렬 와 의 곱(행렬곱) 를 계산하기 위해서는, 의 열 수가 의 행 수와 일치해야 함
- 즉, 가 n x m 행렬이고 가 m x k 행렬인 경우에만 곱셈이 가능하며, 둘을 곱한 는 새로운 n x k 행렬임
- 행렬곱의 과정은 아래 사진과 같이 일반화 가능함
5.2.3.3 벡터 내적과 외적의 행렬 곱셈 표현
- 내적은 열벡터를 전치한 1 x n 행벡터와 열벡터 n x 1의 곱임
- 행렬 곱셈의 정의에 따라, 행벡터와 열벡터의 곱은 1 x 1 행렬, 즉 그냥 하나의 스칼라 수치임
- 외적은 n x 1 열벡터와 1 x m 행벡터의 곱임
- 따라서 출력 행렬은 n x m임
- m = n일 때는 출력 행렬이 n x n임
- 이처럼 행 수와 열 수가 같은 행렬을 정방행렬(square matrix; 또는 정사각행렬)이라고 부름
5.2.4 크로네커 곱
- 크로네커 곱(Kronecker product) or 행렬 직접곱(matrix direct product) :
- 크로네커 곱에서는 한 행렬의 성분들에 다른 행렬 전체를 곱해서, 입력 행렬들보다 큰 출력 행렬을 산출함
- 블록 행렬(bock matrix) : 더 작은 행렬들을 쌓아서 만든 행렬