brunch

매거진 Math for AI

You can make anything
by writing

C.S.Lewis

by 코딩하는 수학쌤 Dec 20. 2022

[MML] 2.4.1 Groups (벡터 공간 도입)

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

https://youtu.be/L_yKD_LOPLI

이번 글 Vector Space에 대한 강의 영상입니다. 내용 글은 아래에 이어집니다. 유튜브 '코딩하는 수학쌤' 검색해주시고 구독, 좋아요, 부탁드립니다!

 

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



이번 글의 도입 - Vector Space


지난 시간에 Reduced Row-Echelon Form을 활용하고, the minus 1 Trick까지 활용해서 연립방정식의 일반해를 어떻게 찾아줄 수 있는지를 살펴봤습니다.


 이번 시간에는 첫번째로 n×n 행렬에서 역행렬이 존재할 경우 어떻게 역행렬을 찾을 수 있는지를 살펴볼 예정입니다. 그러면

로 연립방정식의 해를 금방 찾을 수 있기 때문입니다. 2차 정사각행렬의 경우 이전 고등학교에서 행렬을 배우셨다면 쉽게 역행렬을 찾을 수 있을 것입니다. 그런데 3차 이상의 경우에는 어떻게 구할 수 있을까요? 이를 구하기 위한 한 가지 방법이 바로 Gaussian Elimination입니다. 방법은 Reduced Row Echelon Form을 구하는 과정과 동일합니다.


 이렇게 우리가 살펴본 대상인 행렬은 수학에서는 Vector의 한 예시입니다. 계산을 편하게 보게 해주고, 식을 편하게 계산하게 해주는 도구처럼 보이지만, 이 vector들은 수학적 구조가 잘 정의된 하나의 대수적 공간이거든요. 이러한 Vector Space를 더 잘 설명하기 위해 Group이라는 대수학적인 내용도 도입을 해줍니다. 대수학은 처음에는 한 두가지 연산과 정의가 반복되어서 딱딱해 보이지만 이를 잘 이해하고 나면 그 체계의 규칙과 구조를 이루는 기본 원리를 파악할 수 있습니다. 그러면 복잡해보이는 구조가 기둥을 기반으로 매우 쉽게 이해할 수 있게 됩니다. 마치 (1,0)과 (0,1)을 이해하면 좌표평면의 수많은 벡터를 이 2개의 조합으로 볼 수 있는 것처럼 말이죠. 이러한 Vector space를 이번 시간에 정의하고, 이 후 basis라는 것을 통해 공간을 simple하게 바라보는 시각을 가질 수 있게 될 것입니다.




Calculating the Inverse


역행렬을 쉽게 구하는 방법으로 Gaussian Elimination 방법(가우스 소거법)을 소개합니다. 예전에 Reduced row Echelon form을 만들 때 도입했던 augmented matrix(첨가 행렬)의 방식으로 계산을 하는데, 행렬의 우측에는 단위행렬을 써놓습니다. 그리고 Reduced row Echelon form을 만드는 방법대로 실시하면 됩니다.

이러한 가우스 소거법은 다음과 같은 단계에서 중요한 역할을 합니다.

- determinant를 계산할 때 (4.1장에서 다룹니다.)

- 벡터들이 일차 독립(linearly independent)인지를 판단할 때 (곧 2.5에서 다룹니다)

- 행렬의 rank를 계산할 때 (2.6에서 다룹니다)

- 벡터 공간의 basis를 판단할 때 (역시 2.6에서 다룹니다)


이러한 가우스 소거법은 역행렬을 계산할 수 있는 직관적인 방법을 제공하긴 하지만 행이 무수히 많아질 때는 엄청난 계산 과정이 필요합니다. 실제로 연립방정식은 Richardson method, Jacobi method 등의 방법에서 다루며 Stationary Iterative Method를 활용해서 풀이를 합니다. (이러한 수학을 수치해석 - Numerical Analysis라고 합니다. 여기에도 선형대수학을 활용합니다.) 이 부분에 대한 내용은 추가적으로 다루진 않겠습니다. 





2.4 Vector Spaces : 벡터 공간

(행렬은 Vector Space의 한 예시. 더 일반적인 체계의 특성을 이해하면 행렬도 이해할 수 있습니다.)


자.. 우리 예전에 봤던 아래 그림에서 파란색 도형으로 둘러싼 부분을 지금까지 살펴보았습니다.

Mathematics for Machine Learning (Marc Peter Deisenroth) - 19p


이번 글에서는 선형대수학에서 다루는 vector의 정의vector space에 대해서 살펴보려고 합니다. 이 때 좀 더 큰 틀에서 대수학(algebra)에서 등장하는 개념을 조금 첨가해서 살펴볼 예정입니다. 


 먼저 벡터(vector)의 개념에 대해서 정리하고 넘어가겠습니다. 벡터는 

 - 연산(덧셈)에 대해서 닫혀있고

 - 스칼라곱에 대해서도 닫혀있는

대상을 의미합니다. 이를 좀 더 formal하게 정의하기 위해서 대수학에서 다루는 group(군)의 개념을 도입할 예정입니다. group 또한 컴퓨터 과학에서 중요한 역할을 합니다. 집합에 대한 기본적인 연산과 체계를 보기도 하지만 암호론, 그래프 정리 등에서도 활용이 됩니다.




2.4.1 Groups


[정의] Group

 집합 G와 이 집합에 정의되어있는 연산 ⊗ : G×G → G 에 대해서 살펴보려고 합니다. ('⊗ : G×G → G'는 이항연산으로서 2개의 G의 원소에 작용하여 그 결과를 G에서 찾을 수 있는 연산을 의미합니다.)


위의 4가지 성질(닫혀있음, 분배법칙, 항등원, 모든 원소에 대하여 역원이 존재)을 만족할 때 그 집합을 연산 ⊗에 대하여 group이라고 합니다. 


예를 들면 정수의 덧셈은

 - 임의의 두 정수의 덧셈 결과는 정수 (닫혀있음)

 - 결합 법칙 : (a+b)+c=a+(b+c) 성립

 - 항등원 : 0은 모든 정수 x에 대하여 x+0=0+x=x 성립

 - 역원 : 임의의 정수 x에 대하여 (-x)는 정수이고 x+(-x)=0이 됨. 

따라서 정수는 덧셈에 대하여는 group이 됩니다. 하지만 곱셈에 대하여서는 group이 되지 못하는데, 그 이유는 곱셈에 대하여서는 역원이 존재하지 않기 때문입니다. 


 특히 group G의 임의의 x, y에 대하여 x⊗y=y⊗x가 보장될 경우 (즉 연산에 대하여 교환법칙이 성립할 경우) 이를 abelian group 이라고 합니다. (아벨군, commutative group이라고도 해서 가환군이라고 한글로 번역하더군요..) 아래의 예시를 한 번 살펴보세요. (참고로 N0는 자연수에 0을 추가한 집합입니다.)


Mathematics for Machine Learning (Marc Peter Deisenroth) - 36p


위의 예시들의 내용은 영상을 참고하셔서 살펴보시면 좋겠습니다. 벡터 공간부터는 다음 시간에 정의를 훑어보도록 하겠습니다.




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