brunch

매거진 Math for AI

You can make anything
by writing

C.S.Lewis

by 코딩하는 수학쌤 Oct 24. 2022

[MML] 2.2 Matrices  : 행렬의 기초

Mathematics for Machine Learning(머신러닝수학)

먼저 이번 글에 대한 강의 영상을 공유해드립니다.

https://youtu.be/X5Yjv5qsYc8  (유튜브 : 코딩하는 수학쌤)

유튜브에서 '코딩하는 수학쌤' 검색해주시고, 구독, 좋아요 부탁드려요~



- 이 글은 Mathematics for Machine Learning(Cambridge Univ. Marc Peter Deisenroth 외 2)- 머신러닝을 위한 수학-의 내용을 번역 및 재해석해서 작성한 글입니다. 위 책의 내용에 이해를 돕는 글을 추가로 첨부하였으며 완전한 번역본이 아님을 알려드립니다. -



이전 글에서 연립방정식에서 행렬이라는 대상이 도입되는데까지 살펴보았습니다. 행렬은 선형대수학에서 다루는 벡터의 가장 대표적인 예로, 선형대수학 전체에 걸쳐 가장 중요한 역할을 합니다. 이 행렬은 앞에서 봤던 것처럼 연립일차방정식을 표현하는데 사용하기도 하고, 또한 linear mapping을 나타내기도 합니다. (이 내용은 2.7에서 다시 살펴볼 예정입니다) 행렬의 이런 다양한 주제와 역할을 이야기하기 앞서 행렬을 정의하고, 행렬과 관련된 연산과 특징, 이와 관련한 개념 등에 대해서 살펴볼 예정입니다.


참고로 오늘은 정의가 많아서.. 좀 지루합니다..원래 수학이란게 좀 그렇습니다. 지루하거나.. 어렵거나..ㅠ 이 지루함을 잘 이겨내야 수학의 아름다움을 맛볼 수 있으니까요. :)




행렬이란? (Matrix)

(m×n) 행렬이란 m개의 행과 n개의 열로 이루어진 직사각형 형태의 수의 나열입니다.


여기서 가로로 놓여있는 것을 행(row), 세로의 수의 나열을 열(column)이라고 합니다. 연립방정식을 생각해보면 행은 수많은 속성들의 비율을 곱한 조합을 나타내고, 열의 경우는 하나의 성분이나 특성이 어떻게 분배되는지를 알려줍니다.


행렬의 덧셈

행렬은 사이즈가 같은 것끼리만 더할 수 있습니다. 간단히 넘어갈께요.


행렬의 곱셈

그리고 행렬의 곱은 좀 복잡한데요,

으로 나타낼 수 있습니다. 이렇게 나타내는 이유는 무엇때문인지 생각해보면 우리가 연립방정식을 생각할 때


위와 같이 나타낸 적이 있었죠? 위 식에서 x_1, ..., x_n은 제품 N_1, ... , N_n의 생산 개수라고 생각했습니다. 그러면 아래와 같이 2가지의 경우를 살펴볼께요..

라고 짝을 지워서 행렬로 표현을 해보죠.

으로 표현할 수 있고, 앞의 m×n 행렬이 같은 모양이므로 위 행렬을

행렬 A의 열의 개수와  B의 행의 개수, C의 행의 개수는 동일합니다. 연립방정식에서 왔던 모습을 생각해보면 그 이유를 쉽게 생각해볼 수 있습니다. 그래서 행렬의 곱은 반드시 앞의 열의 개수와 뒤의 행의 개수가 같아야 합니다.

와 같은 형태로만 나오게 되죠. 그 사이즈가 맞지 않으면 행렬의 곱은 정의되지 않습니다.


 자, 그럼 행렬의 곱 연습해볼까요?

과 같이 구할 수 있으며, 일반적으로 AB와 BA는 같지 않습니다. 교환법칙이 성립하지 않죠.




Identity Matrix (단위 행렬)

단위 행렬은 n×n 행렬에서 다음과 같이 정의를 합니다.

보면 일단

 1) 행렬의 행과 열의 크기가 동일합니다.

 2) 대각선에 해당하는 값들은 모두 1, 나머지는 모두 0입니다.

이런 단위 행렬은 왜 사용할까요? 행렬의 곱에서 마치 1처럼 AI=IA=A을 성립합니다. 이를 예전 교육과정에서는 행렬의 곱에 대한 '항등원'에 해당한다고 교육과정에서 배웠죠. (현재 교육과정에서는 빠진지 오래입니다. ㅠ 이런 대수학적 개념을 왜 빼는지..중요한데 말이죠! 하긴.. 행렬도 뺐는데요 뭘..)




Inverse Matrix (역행렬)

역행렬은 정사각행렬인 n×n 행렬 A에 대해서 다음과 같은 행렬 B가

 AB=BA=I (단위행렬)

이 존재할 때 B를 A의 역행렬이라고 합니다. 마치 숫자의 역수같은 역할을 하게 되죠. 그래서 B를 A의 역행렬이라고 해서 A^-1로 표현합니다. 다음 책의 내용으로 수식을 확인해봅시다.

 이러한 역행렬은 항상 존재하지는 않습니다. 2차 정사각행렬은 고등학교 예전 교육 과정에서 배웠는데요, 교과서의 내용을 살펴보면 다음과 같습니다.

 위의 내용을 보면 역행렬의 앞에 곱해지는 1/(ad-bc)에서 분모인 ad-bc가 0이 되면 역행렬은 존재하지 않습니다.




Transpose (전치 행렬)

 행렬 A와 B에 대하여 B가 대각선의 성분을 기준으로 A와 대칭을 이루면 두 행렬을 서로 transpose라고 합니다.

예를 들면

이런 각 행렬이 서로의 transpose입니다. 역행렬과 전치행렬에 대해서 다음과 같은 성질이 성립합니다.

각각 증명을 해볼 수도 있는데요, 그건 너무 수학적...이고, 그냥 성립한다고만 하고 넘어갈께요. transpose는 뒤에 4장에서 많이 등장할 예정입니다.




Symmetric Matrix (대칭행렬)

마지막으로 symmetric Matrix라고 하는 것은 대각선 성분을 기준으로 대칭이 되는 행렬입니다.

예를 들면 아래와 같습니다. 아래의 행렬 A는 symmetric입니다.

 일반적으로 대칭행렬의 합은 항상 대칭이지만, 곱은 대칭이 되지 않습니다. 다음의 예시를 통해 알 수 있죠.




Multiplication by a Scalar (스칼라곱)

 행렬 A에 대하여 각 성분의 값을 같은 값을 곱해주는 것을 스칼라곱이라고 하며, 주로 실수를 다루기 때문에 실수배라고 예전 고등학교 과정에서 배웠습니다.

실수배는 행렬의 합과 곱, transpose 등에 대해 다음과 같은 성질이 성립해요.

위의 내용들을 다 암기할 것은 아닙니다. 그냥 저런 성질들이 성립하는구나.. 정도로 이해하고 넘어가도 될 것 같아요.


에고.. 정의가 우르르 쏟아지다보니 깊이는 없고 낯설기만 한 단원입니다..ㅠ 다음 시간에는 이러한 성질들을 기반으로 해서 연립일차 방정식과 연관된 내용을 살펴보겠습니다. 방정식에서 '특수해(Particular Solution)'와 '일반해(General Solution)'의 개념을 도입할 예정입니다.

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