본 글은 [장철원 저 - 선형대수와 통계학으로 배우는 머신러닝 with 파이썬]을 읽고, 개인적으로 찾아본 내용을 더해 정리한 글입니다.
본 글에 나오는 소스코드들의 원본은 출판사의 github 레포지토리(https://github.com/bjpublic/LinearAlgebra) 에서 찾아볼 수 있습니다.
까먹었을 때 바로바로 확인하기 위한 용도로 정리하는 것이기에, 제 필요에 따라 생략, 변형 및 추가된 내용이 많습니다.
책의 내용을 그대로 담지 않도록 노력하였으나, 혹여 문제가 있다면 cuffyluv.1@gmail.com으로 연락주시기 바랍니다.
벡터 공간
벡터 공간의 개념
- 벡터 공간(vector space) : 벡터의 덧셈과 스칼라 곱을 정의할 수 있으며, 특정한 공리 8가지를 만족하는 집합.
= 선형 공간(linear space)이라고도 부름. 일종의 벡터 집합.
** 벡터 공간은 “선형결합(Linear Combination)연산이 같은 공간 상에 존재하는 벡터들 사이에 가능한 공간’ 이며, “공간상에 존재하는 벡터들은 서로가 서로에게 더해질 수 있고, 임의의 숫자가 각각에 곱해져서 각 벡터의 길이가 늘어날 수도 있다.” (https://twlab.tistory.com/15)
** 즉, 공간 V에 속하는 임의의 두 벡터에 대해 이 두 벡터를 선형 결합한 결과 또한 공간 V에 속해야 하며, 공리 8가지를 만족해야 함.
- 내적 공간(inner product space) : ‘길이’, ‘각도’ 같은 것들이 정의되어 있는 공간.
(벡터 공간의 확장된 개념으로, 다음 단원에서 자세히 배운다 함.)
- 벡터 공간의 공리(axiom)
- 공간 V에 속하는 벡터 u, v와 임의의 스칼라 a에 대해, u+v와 au도 공간 V에 속한다.
- u + v = v + u # 교환
- u + (v+w) = (u+v) + w # 결합
- u + 0 = 0 + u # 교환(영벡터)
- u + (-u) = (-u) + u # 교환
- a(u+v) = au + av # 스칼라 분배
- (a+b)u = au + bu # 벡터 분배
- a(bu) = (ab)u # 결합(스칼라)
- 1u = u
- 유닛 벡터, 단위 벡터(unit vector) : 크기(magnitude)가 1인 벡터.
좌표 축의 기본 벡터는 유닛 벡터일 수 있지만, 유닛 벡터는 특정 축에 제한되지 않음. 즉, u = (3/5, 4/5)도 단위 벡터임.
- 대표적인 단위 벡터들
i = (1, 0, 0) : i-hat or x-unit vector
j = (0, 1, 0) : j-hat or y-unit vector
k = (0, 0, 1) : k-hat or z-unit vector
부분 공간
- 부분 공간(subspace) : 벡터 공간의 일부분.
정의1) 임의의 n차원 공간에 대해, n차원 공간에 포함되면서 (n차원 벡터들에 대해) 선형 결합 연산이 성립하는 작은 공간을 우리는 부분 공간(Subspace)라 부른다. 즉 부분 공간 안의 벡터들끼리는 안전하게 선형 결합 연산을 할 수 있어야 한다. ****(https://twlab.tistory.com/15)
정의2) 공집합이 아닌 R^n 에 포함되는 벡터들의 집합이 덧셈과 스칼라곱에 관하여 닫혀있다면 이를 R^n 의 부분 공간(subspace) 이라고 한다. (https://blog.naver.com/ldj1725/220234150641)
정의3) 벡터 공간 V의 부분 집합 W에 대해, W가 V의 벡터 덧셈과 스칼라 곱에 대해 닫혀 있고, W가 벡터 공간의 공들을 만족하면, W를 V의 부분 공간(subspace)이라 한다. (Chat GPT)
대표적인 부분 공간으로 영 벡터, R^n 그 자체, 원점을 지나는 직선 및 평면이 있다.
** 어떤 부분 공간들의 합집합은 부분 공간(subspace)이 아니다.
** 어떤 부분 공간들의 교집합은 부분 공간(subspace)이다. (https://twlab.tistory.com/17)
** 모든 부분 공간은 벡터 공간임.
: 영문 자료 참고 : A subspace is a vector space that is contained within another vector space. So every subspace is a vector space in its own right, but it is also defined relative to some other (larger) vector space. (http://linear.ups.edu/html/section-S.html)
- 스팬, 생성(span) : 주어진 벡터 집합의 선형결합으로 다다를 수 있는(생성되는) 모든 결과 벡터의 집합
ex. 벡터 공간 V가 3차원이고 2개의 기저 벡터 집합을 S라 할 때, 집합 S에 속하는 기저 벡터들로 구성되는 2차원 부분 공간을 W라고 했을 때, S는 부분 공간 W를 span 한다고 말하고, W=span(S) 라고 표현함.
** span을 만드는 벡터 집합은 꼭 기저일 필요는 없음.
(잘 이해 안되면, https://twlab.tistory.com/15 이 블로그의 열 공간 부분에 평면이 생겨나는 예시를 보면 될듯)
https://www.youtube.com/watch?v=2CcCOgDilO8&list=PLkoaXOTFHiqhVDo0nWybNmihCP_4BjOFR&index=3 3b1b 영상도 참고 가능.
** span 자체가 부분 공간이자 벡터 공간임. 만약 n차원 벡터 공간에 대해 그 차원의 기저로 span을 구하면, 그 결과는 n차원 벡터 공간이 됨. n보다 적은 개수의 선형 독립 벡터들로 span을 구하면 그건 부분 공간이 됨.
선형 변환
- 선형 변환(linear transformation) : 두 벡터 공간 사이의 함수.
‘변환(transformation)’이라는 말은 함수의 멋드러진 표현.
Ax = x는 벡터 x에 선형 변환 A를 취한 것을 의미함.
선형 독립
- 선형 결합, 선형 조합(linear combination) : 각 벡터에 스칼라를 곱하고 그 결과를 더하여 새 벡터를 만들어내는 연산.
- 선형 독립(linear independent)
: A = {a1, a2, …, an}이 벡터 공간 S 내 벡터들의 집합일 때, 집합 A의 벡터들 중 어느 것도 다른 벡터들의 선형 결합으로 표현될 수 없다면 이 때 집합 A를 **선형 독립(linear independent)**이라고 함.
- 선형 종속(linear dependent)
: A = {a1, a2, …, an}이 벡터 공간 S 내 벡터들 집합일 때, 집합 A의 벡터들 중 적어도 하나가 다른 벡터들의 선형 결합으로 표현될 수 있다면 이 때 집합 A를 **선형 종속(linear dependent)**이라고 함.
** https://www.youtube.com/watch?v=2CcCOgDilO8&list=PLkoaXOTFHiqhVDo0nWybNmihCP_4BjOFR&index=3
3b1b에 따르면,
**‘벡터 모두가 각자 생성에 다른 차원을 구성할 때’**를 선형 독립이라고 하며,
‘벡터들 중 생성의 축소 없이 하나를 제거해도 될 때’를 선형 종속이라고 함.
** 벡터 공간, 부분 공간, 생성, 기저, 선형 독립, 선형 종속 등은 ‘벡터들로 이루어진 집합’에 대하여 사용하는 용어임. 벡터 집합(set of vectors) = 벡터들로 이루어진 집합 = 벡터들 정도로 생각하기.
** 책에 선형 독립과 종속 예시들 보기
기저
- 기저(basis) : 벡터 공간 전체를 생성(span)하는 선형 독립인 벡터들의 집합.
** 벡터 공간의 정의에 따라, 기저로 이루어진 생성은 벡터 공간 자체와 같음.
** n차원 공간 R^n을 구성하는 임의의 기저는 n개의 벡터로 이루어져 있음.
차원
- 차원(dimension) : 어떤 벡터 공간에 대해, 그 공간을 구성하는 기저 벡터의 개수.
** 유클리드 공간을 실수 집합으로 한정할 때, 차원이 같은 벡터 공간은 유일하다고 할 수 있음.
나머진 나중에
'Mathematics > Linear Algebra' 카테고리의 다른 글
[선형대수학] 7장 - 역행렬 <알고리즘 구현으로 배우는 선형대수 with 파이썬> (0) | 2024.08.19 |
---|---|
[선형대수학] 6장 - 행렬 <알고리즘 구현으로 배우는 선형대수 with 파이썬> (0) | 2024.08.19 |
[선형대수학] 가우스 소거법에서 pivot은 1이어야 하는가? NO! (0) | 2024.08.19 |
[선형대수학] 5장 - 선형 시스템 <알고리즘 구현으로 배우는 선형대수 with 파이썬> (0) | 2024.08.19 |
[선형대수학] 4장 - 다양한 행렬 <알고리즘 구현으로 배우는 선형대수 with 파이썬> (0) | 2024.08.16 |