행렬의 연산 및 조작


대부분의 딥러닝 계산 작업은 곱셈, 덧셈, 뺄셈, 전치 등과 같은 기본 행렬 연산을 통해 수행됩니다. 따라서 기본 행렬 연산을 숙지하고 있어야 합니다. m행 및 n열을 가진 행렬 A는 n개의 열 벡터가 m차원으로 나란히 쌓여 있는 행렬로 간주될 수 있습니다. 행렬을 다음 수식 (1)과 같이 나타낼 수 있습니다.

행렬 덧셈

두 행렬 A와 B는 덧셈 연산이 가능합니다. 두 행렬의 합 C는 아래 수식 (2)와 같이 표현할 수 있습니다.

행렬 뺄셈

덧셈과 마찬가지로, 뺄셈 연산도 가능합니다. 두 행렬의 차 C는 아래 수식 (3)과 같이 표현할 수 있습니다.

행렬의 곱셈

두 개의 행렬 A와 B의 곱셈을 진행하기 위해서는 A의 열과 B의 행이 같아야 합니다.
결과 행렬의 형태는 A의 열 * B의 행으로 나타납니다. 행렬의 곱셈은 수식 (4)와 같이 표현될 수 있습니다.

행렬의 전치

행렬의 전치는 행렬의 행과 열을 뒤바꾸는 것으로, 아래 수식 (5)와 같이 표현될 수 있습니다.

 

선형대수학(Linear Algebra)


선형대수학은 벡터와 한 벡터 공간에서 다른 벡터 공간으로의 변환을 다루는 수학의 한 부분입니다. 선형 학습은 머신러닝 및 딥러닝에서 다차원의 데이터와 그 연산 방법을 다루기 때문에 거의 모든 머신러닝 및 딥러닝 알고리즘에서 중요한 역할을 수행합니다. 아래 그림 Fig 1은 3차원 벡터 공간을 표현한 것이며, 여기서 v1, v2, v3는 벡터고 P는 3차원 공간 내의 2차원 평면을 의미합니다.

 

벡터(Vector)

연속 또는 이산 숫자의 배열을 벡터라 하고, 벡터로 구성된 공간을 벡터 공간이라고 합니다. 벡터 공간 차원은 유한하거나 무한하지만, 대부분의 머신 러닝 또는 데이터 과학에서는 고정 길이 벡터를 처리합니다. 머신러닝에서는 다찬원 데이터를 처리하기 때문에 벡터가 아주 중요합니다. 예를 들어, 집의 면적, 침식의 수, 욕실의 수, 지역의 인구 밀도에 기초해 주택 가격을 예측하려 한다고 가정하면, 이러한 모든 특정을 이용해 주택 가격 예측 문제에 대한 입력 특성 벡터를 만들 수 있습니다.

 

스칼라(Scalar)

1차원 벡터를 스칼라라고 합니다. 스칼라는 크기만 있고 방향성이 존재하지 않습니다. 스칼라는 움직일 수 있는 방향이 하나뿐이므로 그 방향은 중요하지 않으며, 크기만 고려하면 됩니다. 그 예로 키 혹은 무게 등이 있습니다.

 

행렬(Matrix)

행과 열로 배열된 숫자의 2차원 배열입니다. 행렬의 크기는 행 길이와 열 길이에 의해 결정됩니다. 행렬 A가 m행과 n행을 가진다면, 이것은 m * n 원소를 가지는 직사각형 객체로 표현될 수 있습니다. 일반적으로 An*m으로 표현합니다. 동일한 벡터 공간에 속하는 몇 개의 벡터는 하나의 행렬을 형성합니다. 예를 들어, 이미지는 행렬 형태로 저장됩니다. 이미지의 크기는 이미지 행렬 크기에 따라 결정되고 각 행렬의 셀은 픽셀 강도를 나타내는 0 ~ 255 사이의 값을 가집니다.

 

텐서(Tensor)

텐서는 숫자의 다차원 배열입니다. 사실, 벡터와 행렬은 1D 및 2D 텐서로 취급될 수 있습니다. 딥러닝에서 텐서는 주로 데이터 저장 및 처리에 사용됩니다. 예를 들어 RGB의 이미지는 3차원 텐서에 저장되며, 여기서 한 차원은 가로축, 다른 차원은 세로축, 그리고 마지막 차원은 세 가지 색 채널, 즉 Red, Green, Blue를 저장합니다.

또 다른 예로,
컨볼루션 신경망에서 미니 배치를 통해 이미지를 공급하는데 사용되는 4차원 텐서입니다. 첫 번째 차원에는 일괄 처리의 이미지 번호가 있고, 두 번째 차원에는 색상 채널이 있으며, 세 번째 및 네 번째 차원에는 가로 및 세로 방향의 픽셀 위치가 있습니다.

+ Recent posts