지난번 포스팅에서 선형독립(linearly independent)과 선형종속(linearly dependent), 기저(base, basis)에 대해서 알아보았습니다

 

이번 포스팅에서는 벡터공간(vector space), 벡터 부분공간(vector subspace), 생성공간(span, space spanned by), 차원(dimension)에 대해서 소개하겠습니다. 이들은 선형대수를 공부하는데 있어서 기본개념이 되며, 기저와 차원을 이해하기 위해서는 부분공간을 알고 있어야 합니다.

 

기계학습에서도 벡터공간에 대한 개념이 나오므로 공부해놓으면 좋겠지요. 가령, 기계학습 공부하다보면 SVM(Support Vector Machine)에서 최대 마진 초평면(MMH, Maximum Margin Hyperplane) 이라고 해서 두 범주를 최대로 나누어주는 평면(Hyperplane)을 찾게 되는데요, 선형대수와 최적화에 대해서 잘 알지 못하면 알고리즘에 대해 깊이 있게 이해하기가 힘듭니다.

 

그럼 순서대로 설명을 해보겠습니다.

  • 벡터공간(vector space)

같은 수의 성분을 가지는 벡터들로 이루어진 공집합이 아닌 집합 V가 있을 때,

- V에 속하는 임의의 두 벡터 ab의 일차결합이 αa + βb (α, β 는 임의의 실수)가 또한 V에 속하고

- 벡터에 대한 덧셈과 스칼라곱이 아래의 8가지 벡터의 합과 스칼라곱에 대한 연산법칙을 만족하면 집합 V를 벡터공간(vector space) 또는 선형공간(linear space)이라고 하며, 그 원소를 벡터(vector)라고 합니다.

 

 벡터의 합에 대해

   (1) abba   : 교환(commutative)법칙

   (2) (a + b) + ca + (b + c)   : 결합(associative) 법칙

   (3) a + 0 = a : 항등원

   (4) a + (-a) = 0 : 역원

 

  스칼라곱에 대해

   (5) c(a + b) = ca + cb : 분배법칙

   (6) (c + k)a = ca + ka : 분배법칙

   (7) c(ka) = (ck)a

   (8) 1a = a 

 

 

"벡터는 좌표축과 무관한 개념입니다. 벡터의 "방향"을 놓고 보면, 이 우주에서 유일한 절대 좌표가 존재하지 않는 한 방향이 무엇인지 정의하기가 쉽지 않습니다. 반면에, 두 벡터의 방향이 같다는 것은 한 벡터의 길이를 적당히 늘여 다른 벡터와 일치하게 만들 수 있는 것으로 간단히 정의할 수 있습니다. 이런 점에서 벡터를 실수배하는 것은 벡터의 크기와 방향을 추상화하는데 있어 중요한 개념입니다. 벡터를 추상화하는데 있어 (1) 두 벡터의 합, (2) 벡터의 실수배, 이 두가지 연산이 가장 중요합니다."

(출처 : "8일간의 선형대수학", 박부성 지음, 경문사)

 

이게 왜 중요한지, 무슨 의미가 있는지 의아하실 수도 있는데요, 아래 벡터와 벡터공간에 대한 역사에 대한 인용글을 한번 보시지요.

 

수학에서 방향과 크기를 가진 양으로서 벡터를 다루게 된 것은 복소수에 대한 연구에서 비롯되었다. 복소수를 2차원 공간의 한 점으로 생각할 수 있다는 아이디어는 노르웨이의 베셀(Wessel)에서 비롯되어, 가우스를 비롯한 수많은 수학자들에 의해 크게 발전하였다. 이후 복소수를 확장하여, 3차원 공간의 한 점을 나타내는 새로운 수체계인 사원수(quaternion)를 구성하는 데 성공한 수학자는 아일랜드이 해밀턴(Hamilton) 이었다. 이후 그라스만(Grassmann), 페아노(Peano) 등에 의해 추상적인 벡터공간(vector space)의 개념이 도입되었다.

... 중략 ...

이것은 벡터를 구체적으로 정의한 다음 그 모임으로 벡터공간을 정의하는 보통의 관점을 뒤집은 것이다. 어떤 대상을 직접 정의하는 대신, 그 대상에 대해 성립해야 하는 연산을 통하여 거꾸로 대상을 정의하는 것은 혁명적인 관점 전환이라 할 수 있다. 한편 이 정의는 벡터의 크기를 정의하지 않는다는 점에서 "크기와 방향을 가진 양"이라는 고전적 의미의 벡터를 더 추상화한 것으로 생각할 수 있다

 

    - 출처 : "8일간의 선형대수학", 박부성 지음, 경문사

 

선형대수학이 이해하기 어려운 이유 중의 하나가 '추상화'된 정도가 심한 학문이기 때문일텐데요, 그게 수학의 역사에서는 혁명적인 관점의 전환이라고도 하는군요. 

 

 

  • 벡터 부분공간(vector subspace)

 벡터공간 V의 공집합이 아닌 부분집합 W가 벡터공간 구조를 가질 때, 즉 부분집합 W가 벡터공간 V에서 정의된 (1) 덧셈 연산과 (2) 스칼라곱 연산을 만족할 때, 그 부분집합 W를 벡터 부분공간(vector subspace)이라고 합니다.

 

좀 어렵지요? ^^' 한번더 풀어서 설명하자면 이렇습니다.

 

 

 

위에서 벡터공간(vector space) V의 부분집합 W가 위에서 설명한 (1) 덧셈 조건, (2) 스칼라배 조건을 모두 만족할 때 W를 부분공간(subspace)라고 했는데요, 이를 벤 다이어그램(venn diagram)으로 나타내보면 아래와 같습니다.

 

 

 

 

부분공간은 '원점을 지나는 직선'이나 '원점을 지나는 평면'(zero vector를 포함)인데요, 좀더 쉽게 설명하기 위해서 부분공간인 경우의 예를 들어보겠습니다. 아래 예는 '원점을 지나는 평면'인 부분공간 예가 되겠습니다.

 

 

 

 

좀더 확실한 이해를 돕기 위해 부분공간이 아닌 경우를 아래에 예로 들어보겠습니다.  부분공간의 2가지 조건이었던 (1) 덧셈 조건, (2) 스칼라곱 조건을 만족하지 않으면 부분공간이라고 할 수 없겠지요?  아래 예를 참고하시기 바랍니다.

 

 

 

 

  • 생성공간(span), 생성된 부분공간(space spanned by)

 성분의 수가 같은 벡터들 a(1), ..., a(n)이 주어졌다고 하고, 이들의 1차결합으로 표현되는 모든 벡터들의 집합을 이들 벡터들의 생성된 부분공간(space spanned by)이라고 합니다. 생성공간(span)은 그 자체로 벡터공간이 되며, 만일 주어진 벡터들 a(1), ..., a(n)이 1차독립이라면, 이 벡터들은 해당 생성공간의 기저가 됩니다.

 

무슨 말이가 어렵죠? ^^'

 

위의 a(1), ..., a(n) 벡터를 풀어서 설명해보면 아래와 같습니다.

 

 

 

 

이걸 예를 들어서 한번 더 풀어보겠습니다.  아래의 x1x2 평면(plane)은 vector(3, 0, 0)과 vector(0, 2, 0) 에 의해 생성된 R^3의 부분공간 (space spanned by (3,0,0), (0,2,0)) 이 되겠습니다. 당연히 아래 생성공간은 벡터공간이며, vector(3,0,0)과 vector(0,2,0)은 선형독립(1차 독립)이므로 이 두 벡터의 집합은 벡터공간의 기저(base)가 되겠습니다.

 

 

위의 예의 생성된 공간(span)은 기저의 원소(벡터)의 개수가 2개이므로 2차원(2 dimension)의 부분공간(subspace)이 된답니다.  차원의 개념은 아래 설명을 참고하세요.

 

 

 

  • 차원(dimension)

벡터공간 V에 속한 1차독립 벡터들의 최대수를 V의 차원(dimension)이라 부르고, dim V로 표기합니다. 여기서 벡터공간의 차원은 유한(finite)하다고 가정합니다.

 

W가 R^m의 부분공간이고, 벡터 a(1), a(2), ..., a(n) 이 W의 선형독립 원소라고 할 때, 기저의 원소이 개수를 부분공간 W의 차원이라고 합니다.  이를 좀더 쉽게 풀어서 쓰면 아래와 같습니다.

 

 

 

앞으로 선형사상을 공부하게 되면 n 차원의 상에 m*n 행렬을 곱해서 m차원의 상으로 바꾸는게 나옵니다. 예를 들면, 2차원 영화를 3차원 3D영화로 바꾼다거나, 3차원 3D영화를 2차원 2D영화로 영상을 바꿀 때 선형대수가 쓰인답니다. 물리학자들이 말하는 초끈이론에서는 11차원속에서 진동하는 미세한 에너지끈을 연구를 한다는것을 들어보신분도 있을텐데요, 3차원까지는 우리가 상상을 해도 4차원 이상이 되면 '도대체 4차원, 5차원, 6차원....11차원이 뭐지?'라고 갸우뚱할 분이 많을 것 같습니다. 

 

이세돌과 대국을 펼쳤던 알파고는 "19 x 19 바둑판의 각 칸마다 48차원의 특징점들을 적용하여 총 19x19x48=17328차원의 거대한 벡터를 입력값으로 사용하였는데, 이는 마치 이미지와 같은 고차원의 상태공간으로 볼 수 있다"(핸드폰 메모장에 적어놨던건데요, 출처 기억 못함... -_-;)고 하는군요. 

 

암튼 수학자들이 정의하는 차원은 위와 같습니다. m차원의 R^m 벡터공간의 부분집합 W의 원소가 n개 이면 W의 차원은 n차원이 된다. 헷갈리고 이해가 안된다면 위의 설명 한번 더 보시구요. ^^'

 

 

R 의 matrix() 함수를 사용해서 m*n 행렬(matrix)를 만드는 방법과, dim() 함수를 사용해서 차원(dimension)을 알아보는 방법은 아래와 같습니다.

 

 
> A <- matrix( 
+      c(1:12), # the data elements 
+      nrow=3,              # number of rows 
+      ncol=4,              # number of columns 
+      byrow = TRUE)        # fill matrix by rows
> A
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
> 
> dim(A)
[1] 3 4

 

 

 

다음 포스팅에서는 선형사상에 대해 알아보고, 그 다음으로 핵(kernel, Ker f), 상공간(Image, Im f), 차원정리(dimension theorem), 계수(rank)에 대해서 차례로 알아보겠습니다.

 

이번 포스팅이 도움이 되었다면 아래의 공감 ♡ 꾸욱~ 눌러주세요. ^^

 

 

Posted by R Friend R_Friend

댓글을 달아 주세요

  1. 고맙습니다 2016.03.26 21:04  댓글주소  수정/삭제  댓글쓰기

    너무 잘 보고있어요 감사합니다 ..

  2. Good!! 2016.05.08 16:40  댓글주소  수정/삭제  댓글쓰기

    잘 봤습니다~
    저도 머신러닝에 관심이 있어 다시 수학책을 집어들었습니다.
    궁금한건 선형대수학의 활용 범위인데요,
    머신러닝 알고리즘을 배울 때도 많이 쓰이나봐요?
    지금은 한빛 기초선형대수학 책을 공부중인데... 추천해주실 만한 책이 있으신가요?
    그리고 선형대수학은 '한빛 기초선형대수학' 본 후에 어떤 책을 더 봐야할 지와 그 깊이는 어디까지인지 알고싶습니다. 텐서도 선형대수학 범주에 있는건지...
    답주시면 감사하겠습니다~

    • R Friend R_Friend 2016.05.10 22:18 신고  댓글주소  수정/삭제

      안녕하세요 Good!! 님,

      (1) 선형대수학은 다변량통계분석, 머신러닝, 최적화 등에 두루 사용됩니다. 예를 들면, 다중회귀분석에도 보면 계수를 구하는 알고리즘으로 깊이 들어가면 선형대수, 미적분(편미분) 사용합니다. 주성분분석도 알고리즘 깊이 들어가보면 특이값분해(SVD, Singular Value Decomposition), 편광분해(Spectral Decomposition), 고유값(Eigenvalue), 고유벡터(Eigenvector) 등을 사용합니다. Neural Network/Deep learning 도 선형대수(행렬)이랑 Gradient descent (최적화) 등이 사용되고요. 기본적으로 다변량이면 선형대수가 쓰인다고 보면 될거 같습니다. 저도 머신러닝 알고리즘 좀 깊이 이해하고 싶어서 선형대수 공부하고 있는 중입니다.

      머신러닝 알고리즘을 깊이 있게 이해하려면 선형대수, 확률/통계, 미적분, 최적화/알고리즘, 프로그래밍(R이나 Python 추천)을 기본 base로 알고 있으면 아주 좋을것 같습니다.

      (2) 선형대수는 학교에서 제대로 배운적은 없구요, 그냥 책이랑 Wikipedia, 인터넷으로 공부하고 있습니다. 그런지라 제가 좋은 책을 추천할만큼 많이 알지 못합니다. 죄송합니다. ㅜ_ㅜ 책 추천해주시면 제가 고맙겠습니다. ^^;

      제가 가지고 있는 책은 '선형대수와 벡터 미적분학'(Erwin Kreyszig), '8일간의 선형대수학'(박부성), '만화로 쉽게 배우는 선형대수'(Shin Takahashi) 3권인데요, 젤 처음에 '8일간의 선형대수학'으로 시작했다가 하나도 못 알아 듣고 좌절하고 선형대수 포기할 뻔 했다가 '만화로 쉽게 배우는 선형대수'로 컨셉 이해하고 다시 공부 중입니다. 책은 잘 알아서 고른건 아니구요, 그냥 인터넷서점 가서 검색해보니 선형대수 책이 정말 많아서 뭘 사야할지 몰라서 그냥 목차 보고 대충 산거예요. 좋은 책 있으면 저한테도 추천해주시면 고맙겠습니다.

      (3) '텐서(tensor)'는 '외적(cross product)'이랑 같은 의미이고, 그러므로 선형대수학 범주에 속한다고 볼 수 있겠네요.

  3. Ashtray 2016.12.02 17:51  댓글주소  수정/삭제  댓글쓰기

    안녕하세요! 오랜만에 질문드립니다.
    부분공간이 아닌 예시로 들어주신 것이 맞는지 아닌지 좀 헷갈려서요.
    특히 ≠ 표시해주신 부분이 잘 이해가 안되는데요.

    예를 들면, a1^2 + a2^2=k^2를 만족하는 실수 k가 항상 존재하니까 그냥
    두 벡터의 합이 부분공간에 속하게 되는 것 같은데요..
    제가 뭔가 착각한 것인가요?

  4. Ashtray 2016.12.03 17:18  댓글주소  수정/삭제  댓글쓰기

    저도 만화로 배우는 선형대수 책을 가지고 있어서(미뤄두고 안하고 있던...) 한번 살펴봤는데요.
    책의 167페이지 예시를 옮기시면서 약간 오류가 발생한 것 같습니다.
    책에서는 x성분이 α이고 y성분이 α^2이여서, 그 두 성분간에 y=x^2이라는 관계가 있는 집합이 부분공간인지에 대해 다루고 있습니다.
    즉, (α1, α1^2, 0)과 (α2, α2^2, 0) 두 벡터를 합한 성분이 (α1+α2, α1^2+α2^2, 0)이 되는데 이 벡터는
    애초에 집합에서 정의했던 x^2=y 이라는 관계( (α1+α2)^2 ≠ α1^2+α2^2 )가 성립되지 않기 때문에 부분공간이 아니게 되는 것입니다.
    (물론 α1=α2=0을 제외하구요)

    그런데, 블로그에 옮기신 예시의 집합은 x성분이 a^2이고 y성분은 b이므로 두 성분사이에는 아무 관계도 없습니다.
    그러므로, 두 벡터의 합은 여전히 부분공간 W에 속할 수 있습니다.
    예를 들자면 a1=2, b1=3, a2=6, b2=11이라고 했을 때의 두 벡터는 (4,3,0), (36, 11, 0)이 나오고 두 벡터의 합은
    (40, 14, 0)이라는 벡터가 나옵니다.
    이 벡터는 (루트40^2, 14, 0)와 같이 표기할 수 있고, 당연히 정의했던 집합의 어떠한 조건에도 위배되지 않아
    (a^2, b, 0)이라는 부분공간에 속한다고 말할 수 있습니다.

    • R Friend R_Friend 2016.12.04 20:44 신고  댓글주소  수정/삭제

      댓글에 남겨주신 내용을 제가 잘 이해를 못하겠습니다.

      예를 들어주신걸 가지고 덧셈 조건, 스칼라곱 조건에 적용해보면 부분공간 조건을 둘다 만족 못합니다.

      (1) 덧셈 조건
      a: (2^2, 3, 0)T + (6^2, 11, 0) = (40, 14, 0)T 입니다.

      b: ((2+6)^2, (3+11), (0+0))T = (64, 14, 0)T

      위의 a와 b가 서로 다르므로 덧셈 조건을 충족시키지 않습니다.


      (2) 스칼라곱 조건
      임의의 상수 c를 계산하기 편하게 3이라고 했을 때,
      a : 3(2^2, 3, 0)T = (12, 9, 0)T 입니다.
      b : ((3*2)^2, 3, 0)T = (36, 3, 0)T 입니다.

      a와 b가 서로 같지 않으므로 스칼라곱도 성립하지 않습니다. 임의의 실수 c에서 '0' 빼고는 아무 값도 스칼라곱 조건을 만족하지 않습니다.

      "x성분과 y성분 사이에 아무 관계도 없습니다"라고 멘트하신 부분이 무슨 뜻인지 모르겠습니다.

  5. Ashtray 2016.12.05 10:01  댓글주소  수정/삭제  댓글쓰기

    상세 수치를 약간 생략하고, 부분공간 정의 위주로 좀 접근해볼게요.

    간단하게, 예를 드신 벡터공간은 (a^2, b, 0)T입니다.
    즉, "x성분은 0이상인 양수, b벡터는 모든 실수, z성분이 0인 벡터"라면 모두 위 벡터공간에 속한다고 말할 수 있습니다.
    부분공간 정의에 따라서, 이 부분공간에 속하는 벡터간의 합이든 간에 그 결과값이
    "x성분은 0이상인 양수, b벡터는 모든 실수, z성분이 0인 벡터"면 모두 이 부분공간에 속하는 것입니다.
    위 예시에서 두 벡터의 합 결과물이 (40, 14, 0)T 이 나왔는데요, 당연히 x성분(40)이 양수, y성분이 14로 실수, z성분이 0이므로 위 부분공간에 속합니다.

    그런데, 책에 나온 예시의 집합은 (a^2, a, 0)입니다. "y성분(a)의 제곱=x성분값(a^2)" 이라는 제약조건이 걸려있는 것이죠.
    이 경우, 이 집합에 속하는 어떤 두 벡터의 합이든, 그 결과물에서 "y성분의 제곱=x성분값" 이라는 결과를 만족해야 부분공간이라고 할 수 있습니다.
    예를 들면 간단히 (4,2,0)T + (9,3,0)T = (13, 5, 0)T이라는 것을 볼게요.
    이 결과물에서 y성분의 제곱(25)은 x성분(13)과 같지 않습니다.
    즉, 이 집합에 속하는 두 벡터를 더했는데, 이 집합에 속하지 않는 벡터가 나왔습니다. 덧셈조건을 만족하지 않는 것이죠.
    따라서 이 집합은 부분공간이 아닙니다.

  6. Lalipuna 2017.09.18 13:52  댓글주소  수정/삭제  댓글쓰기

    저도 Ashtray님과 동일한 의문을 갖고 웹에서 검색해 본 결과, 저도 알프렌드님 설명이 좀 잘못된게 아닌가 싶네요.
    일단 이글에서 벡터의 부분공간에 대한 정의부의 (1)덧셈공식을 보면 어떤 집합 M이 있을때 이 집합의 임의의 원소가 집합 W에 속해 있고, 그 임의의 원소들의 합들도 W에 속해 있으면 조건이 참인 것으로 설명이 되어 있습니다. 그런데, 부분공간이 아닌 예시에서는 a1^2 + a2^2 ≠ (a1 + a2)^2이므로 덧셈공식이 성립되지 않는다라고 설명이 되어 있습니다. 왜 좌항과 우항이 같아야 덧셈공식이 성립이 된다는 것인지 잘 모르겠네요. (a1 + a2)^2 역시 임의의 양의 실수값이기때문에 덧셈공식의 경우는 조건이 참일 것 같은데요. Ashtray님께서 말씀하신 'a1^2 + a2^2=k^2를 만족하는 실수 k가 항상 존재'하기에 참이라고 생각이 듭니다.(다만 a^2이라는 조건 자체가 양수이므로 실수 집합을 W집합이라고 둔다면 그 자체만으로 부분집합이 아닌게 되겠네요. 하지만 덧셈조건식을 따지는 여기서는 논외)
    또한 부분공간이 아닌 예시에서 (2)곱셈공식의 경우도 마찬가지로 상수 c가 왜 제곱식 안쪽으로 들어 가는지도 의문이 생깁니다. 왜 좌항과 우항이 등식을 이루어야하나요? 곱셈공식의 경우는 c가 음수인 경우에는 첫항이 음수가 되어 a^2(양수)으로 구성된 첫항 조건이 만족하지 않아서 해당 집합은 부분공간이 되지 않는다라고 설명하는게 맞는 것이 아닌가요?
    요점은 왜 덧셈,곱셈 조건식에서 좌항과 우항이 등식을 이루어야 하는것인가이며, 등식조건은 정의부에서는 언급이 되어 있지 않고 포함관계만이 조건여부를 결정 짓는 것으로 설명이 되어 있다는 것입니다.
    부분공간이 아닌 예시부분 설명이 잘못 된 것인지, 아니면 부분공간에 대한 정의에서 빠뜨리신게 있는지.. 이 글 내용으로만 봐서는 부분공간의 정의부와 예시부가 조금 맞지 않는 부분이 있는듯합니다.

    제가 잘못 이해하고 있는 부분이 있다면 알려주셨으면 합니다.

    항상 잘 보고 있습니다.

    • R Friend R_Friend 2017.09.18 14:43 신고  댓글주소  수정/삭제

      안녕하세요 Lalipuna님, 댓글 감사합니다.

      퇴근 후에 집에 가서 차분히 다시 읽어보고, 책도 찾아보고 제가 잘못 쓴 부분이 있는지 확인해보겠습니다. 이번주 제가 좀 정신이 없이 바빠서요, 금주 중에는 답글 올리도록 하겠습니다.

      다른 포스팅도 혹시 이상한 부분있으면 언제든지 댓글 감사합니다. 제가 선형대수를 책으로 독학을 해서요, 잘못된 부분이 있을 수 있답니다. ^^;