brunch

You can make anything
by writing

C.S.Lewis

by Jenny Jang Jul 05. 2023

머신러닝을 위한 선형대수학: 행렬과 행렬 연산


행렬과 행렬 연산 (Matrices and matrix operations)

l   행렬 (Matrices)

l   행렬 덧셈 (Matrix addition)

l   행렬 스칼라 곱 (Scalar multiplication of matrices)

l   행렬 곱셈 (Matrix multiplication)

l   역행렬 (Inverse matrix)




행렬과 행렬 연산 (Matrices and matrix operations)


1) 행렬 덧셈 (Matrix addition)

행렬 덧셈은 두 개의 같은 크기를 가진 행렬을 더하는 연산입니다. 덧셈 연산자 "+"를 사용하여 표기합니다. 예를 들어, A와 B라는 두 개의 3x3 행렬이 있다면, A와 B를 더하여 C라는 3x3 행렬을 만들 수 있습니다.

행렬 덧셈은 벡터 덧셈과 비슷한 방식으로 작동합니다. 각 행렬의 같은 위치의 원소를 더하면 됩니다. 즉, C의 i번째 행과 j번째 열의 원소는 A의 i번째 행과 j번째 열의 원소와 B의 i번째 행과 j번째 열의 원소를 더한 값입니다. 수식으로는 다음과 같이 나타낼 수 있습니다.

C[i][j] = A[i][j] + B[i][j]

두 행렬의 크기가 다르면 덧셈을 수행할 수 없습니다. 또한, 행렬 덧셈은 교환법칙과 결합법칙이 성립합니다. 즉, A+B = B+A, (A+B)+C = A+(B+C)입니다.



2) 행렬 스칼라 곱 (Scalar multiplication of matrices)

행렬 스칼라 곱은 행렬에 스칼라 값을 곱하는 연산입니다. 스칼라 값은 실수 또는 복소수일 수 있습니다. 스칼라 값과 각 행렬의 원소를 곱하여 새로운 행렬을 만듭니다. 스칼라 값과 행렬을 곱할 때는 "×" 기호나 점 "."을 사용합니다.

예를 들어, 2라는 스칼라 값과 3x3 크기의 A 행렬이 있다면, 2A라는 새로운 행렬을 만들 수 있습니다. 이때, 2와 A의 각 원소를 곱하여 새로운 행렬의 각 원소를 구합니다. 수식으로는 다음과 같이 나타낼 수 있습니다.

(2A)[i][j] = 2 * A[i][j]

즉, 2A의 i번째 행과 j번째 열의 원소는 2와 A의 i번째 행과 j번째 열의 원소를 곱한 값입니다.

행렬 스칼라 곱의 성질로는 분배법칙, 결합법칙, 항등원의 곱 등이 있습니다. 즉, a(bA) = (ab)A, 1A = A 등의 성질이 성립합니다.


3) 행렬 곱셈 (Matrix multiplication)

행렬 곱셈은 두 개 이상의 행렬을 곱하는 연산으로, 앞의 행렬의 열과 뒤의 행렬의 행의 크기가 같아야 합니다. 예를 들어, m x n 크기의 A 행렬과 n x p 크기의 B 행렬을 곱하면 m x p 크기의 C 행렬이 만들어집니다.

행렬 곱셈은 일반적으로 AB = C 또는 A x B = C와 같이 표기됩니다. C 행렬의 각 원소 c_ij는 아래와 같은 공식으로 계산됩니다.

c_ij = (a_i1 x b_1j) + (a_i2 x b_2j) + ... + (a_in x b_nj)

즉, A 행렬의 i번째 행과 B 행렬의 j번째 열의 각 원소를 곱한 값의 합이 C 행렬의 i번째 행과 j번째 열의 원소가 됩니다.

행렬 곱셈의 연산 순서는 교환법칙이 성립하지 않으며, AB와 BA는 서로 다른 행렬일 수 있습니다. 또한, 행렬 곱셈은 분배법칙이 성립하며, 행렬 곱셈의 결과로 생성되는 행렬은 일반적으로 원본 행렬보다 크기가 작을 수 있습니다.



4) 역행렬 (Inverse matrix)

역행렬(inverse matrix)은 정방행렬(square matrix)에 대해서만 정의되며, 해당 정방행렬 A와 곱했을 때 항등행렬(identity matrix) I가 나오는 행렬을 의미합니다. 

즉, A의 역행렬을 A^-1로 표기하며, A × A^-1 = I를 만족합니다.

역행렬은 선형 연립 방정식을 풀거나, 행렬 연산의 역연산을 수행하는 등 다양한 분야에서 활용됩니다. 역행렬이 존재하려면 행렬 A는 행렬식(determinant)이 0이 아니어야 합니다. 행렬식이 0인 경우 해당 행렬의 역행렬은 존재하지 않습니다.

역행렬은 일반적으로 가우스-조르단 소거법(Gaussian-Jordan elimination)이나 LU 분해(LU decomposition)를 통해 구할 수 있습니다. 또한, numpy나 MATLAB 같은 수치해석 라이브러리에서는 역행렬을 계산하는 함수를 제공합니다.






자, 이제 벡터와 행렬에 대해 알게되었습니다. 이를 활용하여 전치행렬,대각행렬,행렬식과 역행렬, 특이값 분해에 대해서 조금 더 깊이 들어가보겠습니다.





작가의 이전글 머신러닝을 위한 선형대수학: 벡터와 벡터 연산

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari