Mathematics for Machine Learning-Chapter1-2

Mathematics for machine learning Chapter1-2

Deisenroth, Marc Peter, A. Aldo Faisal, and Cheng Soon Ong. Mathematics for machine learning. Cambridge University Press, 2020.

Foreword

머신러닝은 인간의 지식과 추론을 기계 제작 및 자동화 시스템 엔지니어링에 적합한 형태로 추출하려는 오랜 시도 중 가장 최근의 결과물이다. 머신러닝이 더욱 보편화되고 관련 소프트웨어 패키지가 사용하기 쉬워짐에 따라, 낮은 수준의 기술적 세부 사항들이 추상화되어 실무자에게서 숨겨지는 것은 자연스럽고 바람직한 현상이다. 그러나 이는 실무자가 설계 결정과 그에 따른 머신러닝 알고리즘의 한계를 인지하지 못하게 될 위험을 수반한다.

성공적인 머신러닝 알고리즘 뒤에 숨겨진 "마법"에 대해 더 배우고자 하는 열정적인 실무자는 현재 다음과 같은 방대한 선행 지식에 직면해 있다:

  • 프로그래밍 언어 및 데이터 분석 도구
  • 대규모 연산 및 관련 프레임워크
  • 수학 및 통계, 그리고 머신러닝이 이를 어떻게 기반으로 하는지

대학에서 머신러닝 입문 과정은 종종 과정의 초반부를 이러한 선행 지식 중 일부를 다루는 데 할애한다. 역사적인 이유로, 머신러닝 과정은 컴퓨터 과학 학과에서 가르쳐지는 경향이 있는데, 이 학과의 학생들은 종종 처음 두 가지 지식 영역에서는 훈련을 받지만, 수학과 통계에서는 그렇지 않은 경우가 많다.

현재 머신러닝 교과서들은 주로 머신러닝 알고리즘과 방법론에 초점을 맞추고 있으며, 독자가 수학과 통계에 능숙하다고 가정한다. 따라서 이러한 책들은 배경 수학에 대해 책의 시작 부분이나 부록으로 한두 장만 할애한다. 우리는 기본적인 머신러닝 방법의 기초를 깊이 파고들고 싶어 하지만, 머신러닝 교과서를 읽는 데 필요한 수학적 지식 때문에 어려움을 겪는 많은 사람들을 발견했다. 대학에서 학부 및 대학원 과정을 가르치면서, 우리는 고등학교 수학과 표준 머신러닝 교과서를 읽는 데 필요한 수학 수준 사이의 격차가 많은 사람들에게 너무 크다는 것을 알게 되었다.

이 책은 기본적인 머신러닝 개념의 수학적 기초를 전면에 내세우고 정보를 한곳에 모아 이러한 기술 격차를 좁히거나 심지어 없애는 것을 목표로 한다. "수학은 대중의 마음속에 공포와 불안과 연결되어 있다. 마치 우리가 거미에 대해 논의하는 것처럼 생각할 것이다." (Strogatz, 2014, page 281)

Why Another Book on Machine Learning?

머신러닝은 직관적으로 명확해 보이지만 형식화하기에는 놀랍도록 어려운 개념들을 표현하기 위해 수학의 언어를 기반으로 한다. 일단 제대로 형식화되면, 우리는 해결하고자 하는 task에 대한 통찰력을 얻을 수 있다. 전 세계 수학을 배우는 학생들이 흔히 불평하는 것 중 하나는 다루는 주제들이 실제 문제와 거의 관련이 없어 보인다는 점이다. 우리는 머신러닝이 사람들이 수학을 배우는 명확하고 직접적인 동기가 된다고 믿는다.

이 책은 현대 머신러닝의 토대를 이루는 방대한 수학 문헌에 대한 안내서 역할을 한다. 우리는 근본적인 머신러닝 문제의 맥락에서 수학적 개념의 유용성을 직접적으로 지적함으로써 수학적 개념의 필요성을 설명한다. 책의 분량을 짧게 유지하기 위해 많은 세부 사항과 더 고급 개념들은 생략되었다. 여기에 제시된 기본 개념들과 그것들이 머신러닝의 더 큰 맥락에 어떻게 들어맞는지 이해한다면, 독자들은 각 장의 끝에 제공된 수많은 추가 학습 자료를 찾을 수 있을 것이다. 수학적 배경을 가진 독자들에게 이 책은 머신러닝에 대한 간략하지만 정확하게 서술된 통찰력을 제공한다. 머신러닝의 방법론과 모델(MacKay, 2003; Bishop, 2006; Alpaydin, 2010; Barber, 2012; Murphy, 2012; Shalev-Shwartz and Ben-David, 2014; Rogers and Girolami, 2016) 또는 프로그래밍 측면(Müller and Guido, 2016; Raschka and Mirjalili, 2017; Chollet and Allaire, 2018)에 초점을 맞춘 다른 책들과는 달리, 우리는 네 가지 대표적인 머신러닝 알고리즘 예시만을 제공한다. 대신, 우리는 모델 자체의 이면에 있는 수학적 개념에 집중한다. 독자들이 머신러닝의 기본 질문에 대해 더 깊이 이해하고, 머신러닝 사용에서 발생하는 실제 질문들을 수학적 모델의 근본적인 선택과 연결할 수 있기를 바란다.

우리는 고전적인 머신러닝 책을 쓰는 것을 목표로 하지 않는다. 대신, 우리의 의도는 네 가지 핵심 머신러닝 문제에 적용된 수학적 배경을 제공하여 다른 머신러닝 교과서를 더 쉽게 읽을 수 있도록 하는 것이다.

Who Is the Target Audience?

머신러닝의 응용 분야가 사회 전반에 걸쳐 확산됨에 따라, 우리는 모든 사람이 그 기본 원리에 대한 이해를 가져야 한다고 생각한다. 이 책은 학술적인 수학적 스타일로 작성되어, 머신러닝 뒤에 숨겨진 개념들을 정확하게 설명할 수 있도록 한다. 우리는 이러한 간결해 보이는 스타일에 익숙하지 않은 독자들이 인내심을 가지고 각 주제의 목표를 염두에 두기를 권장한다. 우리는 큰 그림에 대한 유용한 지침을 제공하기를 바라며, 텍스트 전반에 걸쳐 주석과 비고를 덧붙였다.

이 책은 독자가 고등학교 수학 및 물리학에서 일반적으로 다루는 수학적 지식을 가지고 있다고 가정한다. 예를 들어, 독자는 미분과 적분, 그리고 2차원 또는 3차원 기하학적 벡터를 이전에 접해 보았어야 한다. 여기에서부터 우리는 이러한 개념들을 일반화한다. 따라서 이 책의 대상 독자는 학부 대학생, 야간 학습자 및 온라인 머신러닝 과정에 참여하는 학습자를 포함한다.

음악에 비유하자면, 사람들이 머신러닝과 상호작용하는 방식은 세 가지 유형이 있다:

예리한 청취자 (Astute Listener) 오픈 소스 소프트웨어, 온라인 튜토리얼 및 클라우드 기반 도구의 제공으로 머신러닝이 대중화되면서, 사용자들은 파이프라인의 세부 사항에 대해 걱정할 필요가 없게 되었다. 사용자들은 **기성 도구(off-the-shelf tools)**를 사용하여 데이터에서 통찰력을 추출하는 데 집중할 수 있다. 이는 기술에 익숙하지 않은 도메인 전문가도 머신러닝의 혜택을 누릴 수 있게 한다. 이는 음악을 듣는 것과 유사하다. 사용자는 다양한 유형의 머신러닝을 선택하고 구별할 수 있으며, 그로부터 이점을 얻는다. 더 숙련된 사용자들은 음악 평론가와 같아서, 윤리, 공정성, 개인의 프라이버시와 같이 사회에서 머신러닝을 적용하는 것에 대한 중요한 질문을 던진다. 우리는 이 책이 머신러닝 시스템의 인증 및 위험 관리에 대해 생각할 수 있는 토대를 제공하고, 그들이 자신의 도메인 전문 지식을 사용하여 더 나은 머신러닝 시스템을 구축할 수 있도록 돕기를 바란다.

숙련된 예술가 (Experienced Artist) 숙련된 머신러닝 실무자들은 다양한 도구와 라이브러리를 분석 파이프라인에 **플러그 앤 플레이(plug and play)**할 수 있다. 전형적인 실무자는 머신러닝 인터페이스와 그 사용 사례를 이해하고, 데이터로부터 놀라운 예측을 수행할 수 있는 데이터 과학자 또는 엔지니어일 것이다. 이는 음악을 연주하는 **거장(virtuoso)**과 유사하며, 고도로 숙련된 실무자들은 기존 악기에 생명을 불어넣고 청중에게 즐거움을 선사할 수 있다. 여기에 제시된 수학을 입문서로 사용하여, 실무자들은 자신이 선호하는 방법의 장점과 한계를 이해하고, 기존 머신러닝 알고리즘을 확장하고 일반화할 수 있을 것이다. 우리는 이 책이 머신러닝 방법의 더 엄격하고 원칙적인 개발을 위한 추진력을 제공하기를 바란다.

초보 작곡가 (Fledgling Composer) 머신러닝이 새로운 도메인에 적용됨에 따라, 머신러닝 개발자들은 새로운 방법을 개발하고 기존 알고리즘을 확장해야 한다. 이들은 종종 머신러닝의 수학적 기반을 이해하고 서로 다른 task 간의 관계를 밝혀내야 하는 연구자들이다. 이는 음악 이론의 규칙과 구조 내에서 새롭고 놀라운 작품을 창조하는 음악 작곡가와 유사하다. 우리는 이 책이 머신러닝 작곡가가 되고자 하는 사람들을 위한 다른 기술 서적에 대한 높은 수준의 개요를 제공하기를 바란다. 데이터로부터 학습하는 많은 도전 과제를 해결하기 위한 새로운 접근 방식을 제안하고 탐구할 수 있는 새로운 연구자들에 대한 사회적 요구가 크다.

Acknowledgments

이 책의 초기 초고를 검토하고 개념에 대한 어려운 설명을 인내해 준 많은 분들께 감사드린다. 우리는 그들의 아이디어 중 우리가 강력히 반대하지 않는 것들을 구현하려고 노력했다. 특히 Christfried Webers에게 책의 여러 부분을 세심하게 읽어주고, 구조와 표현에 대한 상세한 제안을 해준 것에 대해 감사드린다. 많은 친구와 동료들도 각 장의 다른 버전에 시간과 에너지를 할애해 주었다. 우리는 **https://github.com**을 통해 개선 사항을 제안하여 책을 크게 향상시킨 온라인 커뮤니티의 관대함 덕분에 많은 도움을 받았다.

다음 사람들은 https://github.com 또는 개인적인 연락을 통해 버그를 발견하고, 설명을 제안하며, 관련 문헌을 추천해 주었다. 이름은 알파벳순으로 정렬되어 있다.

Abdul-Ganiy UsmanEllen Broad
Adam GaierFengkuangtian Zhu
Adele JacksonFiona Condon
Aditya MenonGeorgios Theodorou
Alasdair TranHe Xin
Aleksandar KrnjaicIrene Raissa Kameni
Alexander MakrigiorgosJakub Nabaglo
Alfredo CanzianiJames Hensman
Ali ShaftiJamie Liu
Amr KhalifaJean Kaddour
Andrew TanggaraJean-Paul Ebejer
Angus GruenJerry Qiang
Antal A. BussJitesh Sindhare
Antoine Toisoul Le CannJohn Lloyd
Areg SarvazyanJonas Ngnawe
Artem ArtemevJon Martin
Artyom StepanovJustin Hsi
Bill KromydasKai Arulkumaran
Bob WilliamsonKamil Dreczkowski
Boon Ping LimLily Wang
Chao QuLionel Tondji Ngoupeyou
Cheng LiLydia Knüfing
Chris SherlockMahmoud Aslan
Christopher GrayMark Hartenstein
Daniel McNamaraMark van der Wilk
Daniel WoodMarkus Hegland
Darren SiegelMartin Hewing
David JohnstonMatthew Alger
Dawei ChenMatthew Lee
Maximus McCannShakir Mohamed
Mengyan ZhangShawn Berry
Michael BennettSheikh Abdul Raheem Ali
Michael PedersenSheng Xue
Minjeong ShinSridhar Thiagarajan
Mohammad MalekzadehSyed Nouman Hasany
Naveen KumarSzymon Brych
Nico MontaliThomas Bühler
Oscar ArmasTimur Sharapov
Patrick HenriksenTom Melamed
Patrick WieschollekVincent Adam
Pattarawat ChormaiVincent Dutordoir
Paul KellyVu Minh
Petros ChristodoulouWasim Aftab
Piotr JanuszewskiWen Zhi
Pranav SubramaniWojciech Stokowiec
Quyu KongXiaonan Chong
Ragib ZamanXiaowei Zhang
Rui Zhang
Ryan-Rhys GriffithsYazhou Hao
Salomon KabongoYicheng Luo
Samuel OgunmolaYoung Lee
Sandeep MavadiaYu Lu
Sarvesh NikumbhYun Cheng
Sebastian RaschkaYuxiao Huang
Senanayak Sesh Kumar KarriZac Cranko
Seung-Heon BaekZijian Cao
Shahbaz ChaudharyZoe Nolan

GitHub 프로필에 실명이 기재되지 않은 GitHub 기여자들은 다음과 같다:

SamDataMadinsadempet
bumptiousmonkeyHorizonPvictorBigand
idoamihaics-maillist17SKYE
deepakiimkudo23jessjing1995

또한 Parameswaran Raman과 Cambridge University Press에서 조직한 익명의 많은 검토자들에게도 깊이 감사드린다. 이들은 원고의 초기 버전 중 하나 이상의 장을 읽고 상당한 개선을 이끌어낸 건설적인 비판을 제공했다. 특히 Dinesh Singh Negi에게는 ATEX\mathrm{AT}_{\mathrm{E}} \mathrm{X} 관련 문제에 대한 상세하고 신속한 조언을 제공해 준 ATEX\mathrm{AT}_{\mathrm{E}} \mathrm{X} 지원에 대해 특별히 언급하고 싶다. 마지막으로, 이 책의 집필 과정을 인내심 있게 지도해 준 편집자 Lauren Cowles에게 매우 감사드린다.

기호 표

기호일반적인 의미
a,b,c,α,β,γa, b, c, \alpha, \beta, \gamma스칼라는 소문자
x,y,z\boldsymbol{x}, \boldsymbol{y}, \boldsymbol{z}벡터는 굵은 소문자
A,B,C\boldsymbol{A}, \boldsymbol{B}, \boldsymbol{C}행렬은 굵은 대문자
x,A\boldsymbol{x}^{\top}, \boldsymbol{A}^{\top}벡터 또는 행렬의 전치
A1\boldsymbol{A}^{-1}행렬의 역행렬
x,y\langle\boldsymbol{x}, \boldsymbol{y}\ranglex\boldsymbol{x}y\boldsymbol{y}의 내적
xy\boldsymbol{x}^{\top} \boldsymbol{y}x\boldsymbol{x}y\boldsymbol{y}의 점곱
B=(b1,b2,b3)B=\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}, \boldsymbol{b}_{3}\right)(순서가 있는) 튜플
B=[b1,b2,b3]\boldsymbol{B}=\left[\boldsymbol{b}_{1}, \boldsymbol{b}_{2}, \boldsymbol{b}_{3}\right]열 벡터를 가로로 쌓은 행렬
B={b1,b2,b3}\mathcal{B}=\left\{\boldsymbol{b}_{1}, \boldsymbol{b}_{2}, \boldsymbol{b}_{3}\right\}벡터의 집합 (순서 없음)
Z,N\mathbb{Z}, \mathbb{N}각각 정수와 자연수
R,C\mathbb{R}, \mathbb{C}각각 실수와 복소수
Rn\mathbb{R}^{n}nn차원 실수 벡터 공간
x\forall x전칭 기호: 모든 xx에 대해
x\exists x존재 기호: xx가 존재한다
a:=ba:=baabb로 정의된다
a=:ba=: bbbaa로 정의된다
aba \propto baabb에 비례한다 (즉, a=a= 상수 b\cdot b)
gfg \circ f함수 합성: "ff 다음 gg"
\Longleftrightarrow필요충분조건
\Longrightarrow함의
A,C\mathcal{A}, \mathcal{C}집합
aAa \in \mathcal{A}aa는 집합 A\mathcal{A}의 원소이다
\emptyset공집합
A\B\mathcal{A} \backslash \mathcal{B}A\mathcal{A}에서 B\mathcal{B}를 제외한 것: A\mathcal{A}에는 있지만 B\mathcal{B}에는 없는 원소들의 집합
DD차원의 수; d=1,,Dd=1, \ldots, D로 인덱싱됨
NN데이터 포인트의 수; n=1,,Nn=1, \ldots, N으로 인덱싱됨
Im\boldsymbol{I}_{m}크기 m×mm \times m의 항등 행렬
0m,n\mathbf{0}_{m, n}크기 m×nm \times n의 영행렬
1m,n\mathbf{1}_{m, n}크기 m×nm \times n의 일행렬
ei\boldsymbol{e}_{i}표준/정규 벡터 (ii번째 성분이 1인)
dim\operatorname{dim}벡터 공간의 차원
rk(A)\operatorname{rk}(\boldsymbol{A})행렬 A\boldsymbol{A}의 랭크
Im(Φ)\operatorname{Im}(\Phi)선형 사상 Φ\Phi의 이미지
ker( Φ\Phi )선형 사상 Φ\Phi의 커널 (영공간)
span[b1]\operatorname{span}\left[\boldsymbol{b}_{1}\right]b1\boldsymbol{b}_{1}의 스팬 (생성 집합)
tr(A)\operatorname{tr}(\boldsymbol{A})A\boldsymbol{A}의 트레이스
det(A)\operatorname{det}(\boldsymbol{A})A\boldsymbol{A}의 행렬식
\|\cdot\|절댓값 또는 행렬식 (문맥에 따라 다름)
$\\cdot\
λ\lambda고유값 또는 라그랑주 승수
EλE_{\lambda}고유값 λ\lambda에 해당하는 고유 공간
기호일반적인 의미
xy\boldsymbol{x} \perp \boldsymbol{y}벡터 x\boldsymbol{x}y\boldsymbol{y}는 직교한다
VV벡터 공간
VV^{\perp}벡터 공간 VV의 직교 여공간
n=1Nxn\sum_{n=1}^{N} x_{n}xnx_{n}의 합: x1++xNx_{1}+\ldots+x_{N}
n=1Nxn\prod_{n=1}^{N} x_{n}xnx_{n}의 곱: x1xNx_{1} \cdot \ldots \cdot x_{N}
θ\boldsymbol{\theta}파라미터 벡터
f\underline{\partial f}xx에 대한 ff의 편미분
x\underline{\partial x}xx에 대한 ff의 전미분
\nabla그래디언트
f=minxf(x)f_{*}=\min _{x} f(x)ff의 가장 작은 함수 값
xargminxf(x)x_{*} \in \arg \min _{x} f(x)ff를 최소화하는 값 xx_{*} (참고: arg min은 값들의 집합을 반환함)
L\mathfrak{L}라그랑지안
L\mathcal{L}음의 로그-우도
(nk)\binom{n}{k}이항 계수, nn개 중 kk개 선택
VX[x]\mathbb{V}_{X}[\boldsymbol{x}]확률 변수 XX에 대한 x\boldsymbol{x}의 분산
EX[x]\mathbb{E}_{X}[\boldsymbol{x}]확률 변수 XX에 대한 x\boldsymbol{x}의 기댓값
CovX,Y[x,y]\operatorname{Cov}_{X, Y}[\boldsymbol{x}, \boldsymbol{y}]x\boldsymbol{x}y\boldsymbol{y} 사이의 공분산
X\PerpYZX \Perp Y \mid ZZZ가 주어졌을 때 XXYY와 조건부 독립이다
XpX \sim p확률 변수 XXpp에 따라 분포한다
N(μ,Σ)\mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})평균 μ\boldsymbol{\mu}와 공분산 Σ\boldsymbol{\Sigma}를 갖는 가우시안 분포
Ber(μ)\operatorname{Ber}(\mu)파라미터 μ\mu를 갖는 베르누이 분포
Bin(N,μ)\operatorname{Bin}(N, \mu)파라미터 N,μN, \mu를 갖는 이항 분포
Beta(α,β)\operatorname{Beta}(\alpha, \beta)파라미터 α,β\alpha, \beta를 갖는 베타 분포

약어 및 두문자어 표

약어의미
e.g.Exempli gratia (라틴어: 예를 들어)
GMMGaussian mixture model
i.e.Id est (라틴어: 즉)
i.i.d.Independent, identically distributed
MAPMaximum a posteriori
MLEMaximum likelihood estimation/estimator
ONBOrthonormal basis
PCAPrincipal component analysis
PPCAProbabilistic principal component analysis
REFRow-echelon form
SPDSymmetric, positive definite
SVMSupport vector machine

Part I

Mathematical Foundations

1

Introduction and Motivation

머신러닝은 데이터에서 가치 있는 정보를 자동으로 추출하는 알고리즘을 설계하는 학문이다. 여기서 강조하는 것은 **"자동"**이다. 즉, 머신러닝은 많은 데이터셋에 적용될 수 있으면서도 의미 있는 결과를 생성하는 범용적인 방법론에 중점을 둔다. 머신러닝의 핵심에는 데이터, 모델, 학습이라는 세 가지 개념이 있다.

머신러닝은 본질적으로 데이터 중심이기 때문에 데이터가 핵심이다. 머신러닝의 목표는 도메인별 전문 지식 없이도 데이터에서 가치 있는 패턴을 추출하는 범용적인 방법론을 설계하는 것이다. 예를 들어, 방대한 문서 코퍼스(예: 여러 도서관의 책)가 주어졌을 때, 머신러닝 방법은 문서들 간에 공유되는 관련 주제를 자동으로 찾아내는 데 사용될 수 있다 (Hoffman et al., 2010). 이 목표를 달성하기 위해 우리는 주어진 데이터셋과 유사하게 데이터를 생성하는 프로세스와 일반적으로 관련된 모델을 설계한다. 예를 들어, 회귀(regression) 설정에서 모델은 입력을 실수 값 출력으로 매핑하는 함수를 설명할 것이다. Mitchell (1997)의 말을 빌리자면, "모델은 주어진 task에서 데이터가 고려된 후 성능이 향상되면 데이터로부터 학습했다고 말한다." 목표는 아직 보지 못한 데이터에 대해서도 잘 일반화되는 좋은 모델을 찾는 것이며, 이는 미래에 중요하게 여겨질 수 있다. 학습은 모델의 파라미터를 최적화하여 데이터에서 패턴과 구조를 자동으로 찾는 방법으로 이해될 수 있다.

머신러닝은 많은 성공 사례를 보였고, 풍부하고 유연한 머신러닝 시스템을 설계하고 훈련하기 위한 소프트웨어가 쉽게 구할 수 있지만, 우리는 머신러닝의 수학적 기초가 더 복잡한 머신러닝 시스템이 구축되는 근본적인 원리를 이해하는 데 중요하다고 믿는다. 이러한 원리를 이해하는 것은 새로운 머신러닝 솔루션을 만들고, 기존 접근 방식을 이해하고 디버깅하며, 우리가 작업하는 방법론의 내재된 가정과 한계를 배우는 데 도움이 될 수 있다.

1.1 Finding Words for Intuitions

머신러닝에서 우리가 흔히 직면하는 과제는 개념과 단어가 모호하여, 머신러닝 시스템의 특정 구성 요소가 다양한 수학적 개념으로 추상화될 수 있다는 점이다. 예를 들어, "알고리즘"이라는 단어는 머신러닝 맥락에서 적어도 두 가지 다른 의미로 사용된다. 첫 번째 의미에서 우리는 "머신러닝 알고리즘"이라는 문구를 입력 데이터에 기반하여 예측을 수행하는 시스템을 의미하는 데 사용한다. 우리는 이러한 알고리즘을 **예측기(predictor)**라고 부른다. 두 번째 의미에서 우리는 동일한 "머신러닝 알고리즘"이라는 문구를 예측기의 일부 내부 매개변수를 조정하여 미래의 보지 못한 입력 데이터에 대해 잘 작동하도록 하는 시스템을 의미하는 데 사용한다. 여기서 우리는 이러한 조정을 **시스템 훈련(training)**이라고 부른다.

이 책은 이러한 모호성 문제를 해결하지는 않겠지만, 문맥에 따라 동일한 표현이 다른 의미를 가질 수 있음을 미리 강조하고자 한다. 그러나 우리는 모호성을 줄이기 위해 문맥을 충분히 명확하게 만들려고 노력할 것이다.

이 책의 첫 번째 부분에서는 머신러닝 시스템의 세 가지 주요 구성 요소인 **데이터(data), 모델(models), 학습(learning)**에 대해 논의하는 데 필요한 수학적 개념과 기초를 소개한다. 우리는 여기서 이러한 구성 요소를 간략하게 설명하고, 필요한 수학적 개념을 논의한 후 8장에서 다시 다룰 것이다.

모든 데이터가 수치형은 아니지만, 데이터를 숫자 형식으로 고려하는 것이 유용한 경우가 많다. 이 책에서는 데이터가 컴퓨터 프로그램으로 읽어들이기에 적합한 수치 표현으로 이미 적절하게 변환되었다고 가정한다. 따라서 우리는 데이터를 **벡터(vectors)**로 생각한다. 단어가 얼마나 미묘한지 보여주는 또 다른 예시로, 벡터를 생각하는 (적어도) 세 가지 다른 방법이 있다: 숫자의 배열로서의 벡터(컴퓨터 과학적 관점), 방향과 크기를 가진 화살표로서의 벡터(물리학적 관점), 그리고 덧셈과 스케일링을 따르는 객체로서의 벡터(수학적 관점).

모델은 일반적으로 현재 가지고 있는 데이터셋과 유사하게 데이터를 생성하는 프로세스를 설명하는 데 사용된다. 따라서 좋은 모델은 실제(알 수 없는) 데이터 생성 프로세스의 단순화된 버전으로 생각할 수 있으며, 데이터를 모델링하고 숨겨진 패턴을 추출하는 데 관련된 측면을 포착한다. 좋은 모델은 실제 실험을 수행하지 않고도 실제 세계에서 어떤 일이 일어날지 예측하는 데 사용될 수 있다.

이제 문제의 핵심인 머신러닝의 학습(learning) 구성 요소에 대해 이야기할 차례이다. 데이터셋과 적절한 모델이 주어졌다고 가정하자. 모델을 **훈련(training)**한다는 것은 사용 가능한 데이터를 사용하여 모델이 훈련 데이터를 얼마나 잘 예측하는지 평가하는 효용 함수(utility function)에 대해 모델의 일부 매개변수를 최적화하는 것을 의미한다. 대부분의 훈련 방법은 언덕을 올라 정상에 도달하는 것과 유사한 접근 방식으로 생각할 수 있다. 이 비유에서 언덕의 정상은 원하는 성능 측정의 최대값에 해당한다. 그러나 실제로는 모델이 보지 못한 데이터에 대해 잘 작동하는 데 관심이 있다. 이미 본 데이터(훈련 데이터)에 대해 잘 작동한다는 것은 데이터를 기억하는 좋은 방법을 찾았다는 의미일 뿐일 수 있다. 그러나 이것은 보지 못한 데이터에 잘 일반화되지 않을 수 있으며, 실제 응용 프로그램에서는 머신러닝 시스템을 이전에 접하지 못한 상황에 노출시켜야 하는 경우가 많다.

이 책에서 다루는 머신러닝의 주요 개념을 요약하면 다음과 같다:

  • 우리는 데이터를 벡터로 표현한다.
  • 우리는 확률론적 관점 또는 최적화 관점을 사용하여 적절한 모델을 선택한다.
  • 우리는 모델이 훈련에 사용되지 않은 데이터에 대해 잘 작동하도록 하는 것을 목표로 수치 최적화 방법을 사용하여 사용 가능한 데이터로부터 학습한다.

1.2 Two Ways to Read This Book

머신러닝을 위한 수학을 이해하는 두 가지 전략을 고려할 수 있다:

  • Bottom-up: 기초 개념부터 고급 개념까지 쌓아 올리는 방식이다. 이는 수학과 같은 기술 분야에서 선호되는 접근 방식이다. 이 전략은 독자가 항상 이전에 학습한 개념에 의존할 수 있다는 장점이 있다. 안타깝게도 실무자에게는 많은 기초 개념들이 그 자체로 특별히 흥미롭지 않으며, 동기 부여의 부족으로 인해 대부분의 기초 정의는 빠르게 잊혀진다.
  • Top-down: 실제적인 필요에서부터 더 기본적인 요구 사항으로 파고드는 방식이다. 이 목표 지향적 접근 방식은 독자가 특정 개념을 왜 다루어야 하는지 항상 알고 있으며, 필요한 지식에 대한 명확한 경로가 있다는 장점이 있다. 이 전략의 단점은 지식이 잠재적으로 불안정한 기반 위에 구축되며, 독자가 이해할 방법이 없는 일련의 용어들을 기억해야 한다는 점이다.

우리는 이 책을 두 가지 방식으로 모두 읽을 수 있도록 기초적인 (수학적) 개념과 응용을 분리하여 모듈식으로 작성하기로 결정했다. 이 책은 두 부분으로 나뉘는데, Part I에서는 수학적 기초를 다루고 Part II에서는 Part I의 개념을 그림 1.1에 설명된 머신러닝의 네 가지 기둥(회귀, 차원 축소, 밀도 추정, 분류)을 형성하는 일련의 근본적인 머신러닝 문제에 적용한다. Part I의 챕터들은 대부분 이전 챕터들을 기반으로 하지만, 필요한 경우 챕터를 건너뛰고 역으로 학습하는 것도 가능하다. Part II의 챕터들은 느슨하게 연결되어 있어 어떤 순서로든 읽을 수 있다.

선형대수 해석 기하학 행렬 분해

그림 1.1 머신러닝의 기초와 네 가지 기둥.

이 책의 두 부분 사이에는 수학적 개념과 머신러닝 알고리즘을 연결하기 위한 많은 상호 참조가 있다.

물론 이 책을 읽는 방법은 두 가지 이상이다. 대부분의 독자는 top-down과 bottom-up 접근 방식을 조합하여 학습하며, 때로는 더 복잡한 개념을 시도하기 전에 기본적인 수학적 기술을 쌓기도 하고, 머신러닝의 응용을 기반으로 주제를 선택하기도 한다.

Part I Is about Mathematics

이 책에서 다루는 머신러닝의 네 가지 핵심 요소(그림 1.1 참조)는 견고한 수학적 기초를 필요로 하며, 이는 Part I에서 설명한다.

우리는 수치 데이터를 벡터로 표현하고, 이러한 데이터의 테이블을 행렬로 표현한다. 벡터와 행렬에 대한 연구를 선형대수학이라고 하며, 이는 2장에서 소개한다. 행렬로서의 벡터 집합도 거기서 설명한다.

실세계의 두 객체를 나타내는 두 벡터가 주어졌을 때, 우리는 그들의 유사성에 대해 진술하고자 한다. 유사한 벡터는 우리의 머신러닝 알고리즘(우리의 예측기)에 의해 유사한 출력을 가질 것으로 예측되어야 한다는 아이디어이다. 벡터 간의 유사성 개념을 형식화하기 위해, 두 벡터를 입력으로 받아 그들의 유사성을 나타내는 수치 값을 반환하는 연산을 도입해야 한다. 유사성과 거리의 구성은 해석 기하학의 핵심이며, 3장에서 논의한다.

4장에서는 행렬과 행렬 분해에 대한 몇 가지 기본 개념을 소개한다. 행렬에 대한 일부 연산은 머신러닝에서 매우 유용하며, 데이터에 대한 직관적인 해석과 더 효율적인 학습을 가능하게 한다.

우리는 종종 데이터를 어떤 진정한 기저 신호에 대한 노이즈가 있는 관측치로 간주한다. 머신러닝을 적용함으로써 노이즈로부터 신호를 식별할 수 있기를 바란다. 이를 위해서는 "노이즈"가 무엇을 의미하는지 정량화하는 언어가 필요하다. 우리는 또한 어떤 종류의 불확실성을 표현할 수 있는 예측기를 원할 때가 많다. 예를 들어, 특정 테스트 데이터 포인트에서 예측 값에 대한 우리의 확신을 정량화하는 것이다. 불확실성의 정량화는 확률 이론의 영역이며, 6장에서 다룬다.

머신러닝 모델을 훈련시키기 위해, 우리는 일반적으로 어떤 성능 측정치를 최대화하는 매개변수를 찾는다. 많은 최적화 기법기울기(gradient) 개념을 필요로 하는데, 이는 해를 찾을 방향을 알려준다. 5장은 벡터 미적분학에 관한 것이며, 기울기 개념을 자세히 설명한다. 이 개념은 7장에서 함수의 최대/최소를 찾기 위한 최적화에 대해 이야기할 때 사용된다.

Part II Is about Machine Learning

이 책의 두 번째 부분에서는 그림 1.1에 나타난 머신러닝의 네 가지 기둥을 소개한다. 우리는 이 책의 첫 번째 부분에서 소개된 수학적 개념들이 각 기둥의 토대가 되는 방식을 설명한다. 대체로, 챕터들은 난이도 순서(오름차순)로 정렬되어 있다.

8장에서는 머신러닝의 세 가지 구성 요소(데이터, 모델, 파라미터 추정)를 수학적인 방식으로 재정의한다. 또한, 머신러닝 시스템의 지나치게 낙관적인 평가를 방지하는 실험 설정 구축을 위한 몇 가지 지침을 제공한다. 목표는 보지 못한 데이터에 대해 잘 작동하는 예측기를 구축하는 것임을 상기하자.

9장에서는 **선형 회귀(linear regression)**를 자세히 살펴볼 것이다. 여기서 우리의 목표는 입력 xRD\boldsymbol{x} \in \mathbb{R}^{D}를 해당 관측 함수 값 yRy \in \mathbb{R}에 매핑하는 함수를 찾는 것이다. 이 yy는 각 입력의 레이블로 해석될 수 있다. 우리는 최대 우도(maximum likelihood) 및 **최대 사후 추정(maximum a posteriori estimation)**을 통한 고전적인 모델 피팅(파라미터 추정)과, 파라미터를 최적화하는 대신 통합하는 **베이즈 선형 회귀(Bayesian linear regression)**에 대해 논의할 것이다.

10장은 그림 1.1의 두 번째 기둥인 **차원 축소(dimensionality reduction)**에 초점을 맞추며, **주성분 분석(principal component analysis)**을 사용한다. 차원 축소의 핵심 목표는 고차원 데이터 xRD\boldsymbol{x} \in \mathbb{R}^{D}압축된 저차원 표현을 찾는 것이다. 이는 종종 원본 데이터보다 분석하기 쉽다. 회귀와 달리 차원 축소는 데이터 모델링에만 관련되며, 데이터 포인트 x\boldsymbol{x}와 관련된 레이블은 없다.

11장에서는 세 번째 기둥인 **밀도 추정(density estimation)**으로 넘어갈 것이다. 밀도 추정의 목표는 주어진 데이터셋을 설명하는 확률 분포를 찾는 것이다. 우리는 이 목적을 위해 **가우시안 혼합 모델(Gaussian mixture models)**에 초점을 맞출 것이며, 이 모델의 파라미터를 찾는 반복적인 방식을 논의할 것이다. 차원 축소와 마찬가지로 데이터 포인트 xRD\boldsymbol{x} \in \mathbb{R}^{D}와 관련된 레이블은 없다. 그러나 우리는 데이터의 저차원 표현을 찾지 않는다. 대신, 데이터를 설명하는 밀도 모델에 관심이 있다.

12장은 네 번째 기둥인 **분류(classification)**에 대한 심층적인 논의로 책을 마무리한다. 우리는 **서포트 벡터 머신(support vector machines)**의 맥락에서 분류를 논의할 것이다. 회귀(9장)와 유사하게, 입력 x\boldsymbol{x}와 해당 레이블 yy가 있다. 그러나 레이블이 실수 값이었던 회귀와 달리, 분류에서의 레이블은 정수이며, 이는 특별한 주의를 요한다.

1.3 Exercises and Feedback

Part I에서는 주로 펜과 종이로 할 수 있는 몇 가지 연습 문제를 제공한다. Part II에서는 이 책에서 다루는 머신러닝 알고리즘의 일부 속성을 탐색하기 위한 프로그래밍 튜토리얼(jupyter notebooks)을 제공한다.

Cambridge University Press가 교육과 학습의 민주화를 위한 우리의 목표를 강력히 지지하여 이 책을 다음 웹사이트에서 무료로 다운로드할 수 있도록 해준 것에 감사드린다: https://mml-book.com 이곳에서 튜토리얼, 정오표 및 추가 자료를 찾을 수 있다. 오류 보고 및 피드백은 위 URL을 통해 제공할 수 있다.

2

Linear Algebra

직관적인 개념을 형식화할 때, 일반적으로 일련의 객체(기호)와 이 객체를 조작하는 일련의 규칙을 구성하는 접근 방식을 사용한다. 이를 **대수(algebra)**라고 한다. **선형 대수(Linear algebra)**는 벡터와 벡터를 조작하는 특정 규칙에 대한 학문이다. 우리가 학교에서 배운 벡터는 "기하학적 벡터(geometric vectors)"라고 불리며, 보통 문자 위에 작은 화살표로 표시된다(예: x\vec{x}y\vec{y}). 이 책에서는 더 일반적인 벡터 개념을 다루며, 굵은 글자로 표시한다(예: x\boldsymbol{x}y\boldsymbol{y}).

일반적으로 벡터는 서로 더할 수 있고 스칼라를 곱하여 같은 종류의 다른 객체를 생성할 수 있는 특별한 객체이다. 추상적인 수학적 관점에서, 이 두 가지 속성을 만족하는 모든 객체는 벡터로 간주될 수 있다. 다음은 이러한 벡터 객체의 몇 가지 예시이다:

  1. 기하학적 벡터(Geometric vectors). 이 벡터 예시는 고등학교 수학 및 물리학에서 익숙할 수 있다. 그림 2.1(a)에서 볼 수 있는 기하학적 벡터는 방향을 가진 선분으로, (적어도 2차원에서는) 그릴 수 있다. 두 기하학적 벡터 x,y\overrightarrow{\boldsymbol{x}}, \overrightarrow{\boldsymbol{y}}는 서로 더할 수 있으며, 그 결과 x+y=z\overrightarrow{\boldsymbol{x}}+\overrightarrow{\boldsymbol{y}}=\overrightarrow{\boldsymbol{z}}는 또 다른 기하학적 벡터가 된다. 또한, 스칼라 λR\lambda \in \mathbb{R}를 곱한 λx\lambda \overrightarrow{\boldsymbol{x}}도 기하학적 벡터이다. 사실, 이는 원래 벡터가 λ\lambda만큼 스케일링된 것이다. 따라서 기하학적 벡터는 이전에 소개된 벡터 개념의 한 예시이다. 벡터를 기하학적 벡터로 해석하면 방향과 크기에 대한 직관을 사용하여 수학적 연산에 대해 추론할 수 있다.
  2. **다항식(Polynomials)**도 벡터이다. 그림 2.1(b)를 참조하라: 두 다항식을

(a) 기하학적 벡터.

(b) 다항식.

algebra

그림 2.1 다양한 유형의 벡터. 벡터는 다음과 같은 놀라운 객체를 포함할 수 있다: (a) 기하학적 벡터 및 (b) 다항식. 서로 더하면 또 다른 다항식이 되고, 스칼라 λR\lambda \in \mathbb{R}를 곱해도 그 결과는 다항식이다. 따라서 다항식은 (다소 특이한) 벡터의 한 예시이다. 다항식은 기하학적 벡터와 매우 다르다는 점에 유의하라. 기하학적 벡터가 구체적인 "그림"인 반면, 다항식은 추상적인 개념이다. 그러나 둘 다 이전에 설명된 의미에서 벡터이다. 3. **오디오 신호(Audio signals)**는 벡터이다. 오디오 신호는 일련의 숫자로 표현된다. 오디오 신호를 서로 더할 수 있으며, 그 합은 새로운 오디오 신호이다. 오디오 신호를 스케일링해도 오디오 신호를 얻는다. 따라서 오디오 신호도 벡터의 한 유형이다. 4. Rn\mathbb{R}^{n}의 원소(nn개의 실수 튜플)는 벡터이다. Rn\mathbb{R}^{n}은 다항식보다 더 추상적이며, 이 책에서 우리가 중점적으로 다룰 개념이다. 예를 들어,

a=[123]R3\boldsymbol{a}=\left[\begin{array}{l} 1 \\ 2 \\ 3 \end{array}\right] \in \mathbb{R}^{3}

는 세 개의 숫자 튜플의 예시이다. 두 벡터 a,bRn\boldsymbol{a}, \boldsymbol{b} \in \mathbb{R}^{n}를 성분별로 더하면 또 다른 벡터 a+b=cRn\boldsymbol{a}+\boldsymbol{b}=\boldsymbol{c} \in \mathbb{R}^{n}가 된다. 또한, aRn\boldsymbol{a} \in \mathbb{R}^{n}λR\lambda \in \mathbb{R}를 곱하면 스케일링된 벡터 λaRn\lambda \boldsymbol{a} \in \mathbb{R}^{n}가 된다. 벡터를 Rn\mathbb{R}^{n}의 원소로 간주하는 것은 컴퓨터의 실수 배열과 느슨하게 일치한다는 추가적인 이점이 있다. 많은 프로그래밍 언어는 배열 연산을 지원하며, 이는 벡터 연산을 포함하는 알고리즘을 편리하게 구현할 수 있게 한다.

선형 대수는 이러한 벡터 개념 간의 유사성에 초점을 맞춘다. 우리는 벡터를 서로 더하고 스칼라를 곱할 수 있다. 선형 대수의 대부분의 알고리즘이 Rn\mathbb{R}^{n}으로 공식화되기 때문에 우리는 주로 Rn\mathbb{R}^{n}의 벡터에 초점을 맞출 것이다. 8장에서 데이터가 종종 Rn\mathbb{R}^{n}의 벡터로 표현된다는 것을 알게 될 것이다. 이 책에서는 **유한 차원 벡터 공간(finite-dimensional vector spaces)**에 초점을 맞출 것이며, 이 경우 모든 종류의 벡터와 Rn\mathbb{R}^{n} 사이에 1:1 대응이 존재한다. 편리할 때마다 기하학적 벡터에 대한 직관을 사용하고 배열 기반 알고리즘을 고려할 것이다.

수학의 주요 아이디어 중 하나는 "닫힘(closure)" 개념이다. 이는 "내가 제안한 연산의 결과로 나올 수 있는 모든 것들의 집합은 무엇인가?"라는 질문이다. 벡터의 경우: "작은 벡터 집합에서 시작하여 서로 더하고 스케일링하여 얻을 수 있는 벡터들의 집합은 무엇인가?" 이는 벡터 공간(vector space)(섹션 2.4)으로 이어진다. 벡터 공간의 개념과 그 속성은 머신러닝의 많은 부분의 기초를 이룬다. 이 장에서 소개된 개념들은 그림 2.2에 요약되어 있다.

이 장은 주로 Drumm과 Weil (2001), Strang (2003), Hogben (2013), Liesen과 Mehrmann (2015)의 강의 노트와 서적, 그리고 Pavel Grinfeld의 Linear Algebra 시리즈를 기반으로 한다. 다른 훌륭한

그림 2.2 이 장에서 소개된 개념들과 책의 다른 부분에서 사용되는 위치를 보여주는 마인드맵.

자료로는 MIT의 Gilbert Strang의 Linear Algebra 강의와 3Blue1Brown의 Linear Algebra 시리즈가 있다.

선형 대수는 머신러닝과 일반 수학에서 중요한 역할을 한다. 이 장에서 소개된 개념들은 3장에서 기하학 개념을 포함하도록 더욱 확장된다. 5장에서는 행렬 연산에 대한 원칙적인 지식이 필수적인 **벡터 미적분(vector calculus)**을 다룰 것이다. 10장에서는 **주성분 분석(Principal Component Analysis, PCA)**을 이용한 **차원 축소(dimensionality reduction)**를 위해 투영(projections)(섹션 3.8에서 소개될 예정)을 사용할 것이다. 9장에서는 **최소 제곱 문제(least-squares problems)**를 해결하는 데 선형 대수가 중심적인 역할을 하는 **선형 회귀(linear regression)**를 다룰 것이다.

2.1 Systems of Linear Equations

선형 방정식 시스템은 선형 대수학의 핵심적인 부분이다. 많은 문제들이 선형 방정식 시스템으로 공식화될 수 있으며, 선형 대수학은 이를 해결하기 위한 도구를 제공한다.

Example 2.1

한 회사가 제품 N1,,NnN_{1}, \ldots, N_{n}을 생산하는데, 이를 위해 자원 R1,,RmR_{1}, \ldots, R_{m}이 필요하다. 제품 NjN_{j} 한 단위를 생산하기 위해서는 자원 RiR_{i}aija_{i j} 단위 필요하며, 여기서 i=1,,mi=1, \ldots, m이고 j=1,,nj=1, \ldots, n이다.

목표는 최적의 생산 계획을 찾는 것이다. 즉, 총 bib_{i} 단위의 자원 RiR_{i}가 사용 가능하고 (이상적으로는) 남는 자원이 없을 때, 각 제품 NjN_{j}를 몇 단위 xjx_{j} 생산해야 하는지에 대한 계획이다.

만약 해당 제품들을 x1,,xnx_{1}, \ldots, x_{n} 단위 생산한다면, 총 자원 RiR_{i}는 다음과 같이 필요하다:

ai1x1++ainxna_{i 1} x_{1}+\cdots+a_{i n} x_{n}

따라서 최적의 생산 계획 (x1,,xn)Rn\left(x_{1}, \ldots, x_{n}\right) \in \mathbb{R}^{n}은 다음 연립방정식을 만족해야 한다:

a11x1++a1nxn=b1am1x1++amnxn=bm\begin{gathered} a_{11} x_{1}+\cdots+a_{1 n} x_{n}=b_{1} \\ \vdots \\ a_{m 1} x_{1}+\cdots+a_{m n} x_{n}=b_{m} \end{gathered}

여기서 aijRa_{i j} \in \mathbb{R}이고 biRb_{i} \in \mathbb{R}이다. 선형 연립방정식

방정식 (2.3)은 선형 연립방정식의 일반적인 형태이며, x1,,xnx_{1}, \ldots, x_{n}은 이 시스템의 미지수이다. (2.3)을 만족하는 모든 nn-튜플 (x1,,xn)Rn\left(x_{1}, \ldots, x_{n}\right) \in \mathbb{R}^{n}선형 연립방정식의 해이다.

Example 2.2

선형 방정식 시스템

x1+x2+x3=3x1x2+2x3=22x1\begin{array}{r} x_{1}+x_{2}+x_{3}=3 \\ x_{1}-x_{2}+2 x_{3}=2 \\ 2 x_{1} \end{array}

는 해가 없다: 첫 번째 두 방정식을 더하면 2x1+3x3=52 x_{1}+3 x_{3}=5가 되는데, 이는 세 번째 방정식 (3)과 모순된다.

선형 방정식 시스템

x1+x2+x3=3x1x2+2x3=2x2+x3=2\begin{array}{r} x_{1}+x_{2}+x_{3}=3 \\ x_{1}-x_{2}+2 x_{3}=2 \\ x_{2}+x_{3}=2 \end{array}

를 살펴보자. 첫 번째 방정식과 세 번째 방정식으로부터 x1=1x_{1}=1이 도출된다. (1) + (2)로부터 2x1+3x3=52 x_{1}+3 x_{3}=5, 즉 x3=1x_{3}=1을 얻는다. (3)으로부터 x2=1x_{2}=1을 얻는다. 따라서 (1,1,11,1,1)은 유일하게 가능한 해이다 ((1,1,11,1,1)이 해인지 대입하여 확인해 보라).

세 번째 예시로 다음을 고려한다.

x1+x2+x3=3x1x2+2x3=22x1=5x3=5\begin{array}{r} x_{1}+x_{2}+x_{3}=3 \\ x_{1}-x_{2}+2 x_{3}=2 \\ 2 x_{1} \end{array}=5 x_{3}=5

(1)+(2)=(3)(1)+(2)=(3)이므로, 세 번째 방정식은 생략할 수 있다 (redundancy). (1)과 (2)로부터 2x1=53x32 x_{1}=5-3 x_{3}2x2=1+x32 x_{2}=1+x_{3}를 얻는다. 우리는 x3=aRx_{3}=a \in \mathbb{R}를 **자유 변수(free variable)**로 정의하여, 다음의 모든 삼중쌍(triplet)

(5232a,12+12a,a),aR\left(\frac{5}{2}-\frac{3}{2} a, \frac{1}{2}+\frac{1}{2} a, a\right), \quad a \in \mathbb{R}

그림 2.3 두 변수를 가진 두 선형 방정식 시스템의 해 공간은 두 직선의 교점으로 기하학적으로 해석될 수 있다. 모든 선형 방정식은 하나의 직선을 나타낸다.

이 선형 방정식 시스템의 해가 되도록 한다. 즉, 무한히 많은 해를 포함하는 해 집합을 얻는다.

일반적으로, 실수 값을 갖는 선형 방정식 시스템의 경우 해가 없거나, 정확히 하나이거나, 무한히 많은 해를 얻는다. 선형 회귀(9장)는 선형 방정식 시스템을 풀 수 없을 때 예시 2.1의 한 버전을 해결한다.

비고 (선형 방정식 시스템의 기하학적 해석). 두 변수 x1,x2x_{1}, x_{2}를 갖는 선형 방정식 시스템에서 각 선형 방정식은 x1x2x_{1} x_{2}-평면에서 직선을 정의한다. 선형 방정식 시스템의 해는 모든 방정식을 동시에 만족해야 하므로, 해 집합은 이 직선들의 교점이다. 이 교점 집합은 직선(선형 방정식이 동일한 직선을 나타내는 경우), 점, 또는 공집합(직선들이 평행한 경우)이 될 수 있다. 다음 시스템에 대한 그림 2.3에 예시가 나와 있다.

4x1+4x2=52x14x2=1\begin{aligned} & 4 x_{1}+4 x_{2}=5 \\ & 2 x_{1}-4 x_{2}=1 \end{aligned}

여기서 해 공간은 점 (x1,x2)=(1,14)\left(x_{1}, x_{2}\right)=\left(1, \frac{1}{4}\right)이다. 유사하게, 세 변수의 경우 각 선형 방정식은 3차원 공간에서 평면을 결정한다. 이 평면들을 교차시킬 때, 즉 모든 선형 방정식을 동시에 만족시킬 때, 해 집합은 평면, 직선, 점 또는 공집합(평면들이 공통 교점을 갖지 않는 경우)이 될 수 있다.

선형 방정식 시스템을 해결하기 위한 체계적인 접근 방식을 위해 유용한 간결한 표기법을 도입할 것이다. 계수 aija_{i j}를 벡터로 모으고, 벡터들을 행렬로 모은다. 다시 말해, (2.3)의 시스템을 다음 형식으로 작성한다.

[a11am1]x1+[a12am2]x2++[a1namn]xn=[b1bm]\left[\begin{array}{c} a_{11} \\ \vdots \\ a_{m 1} \end{array}\right] x_{1}+\left[\begin{array}{c} a_{12} \\ \vdots \\ a_{m 2} \end{array}\right] x_{2}+\cdots+\left[\begin{array}{c} a_{1 n} \\ \vdots \\ a_{m n} \end{array}\right] x_{n}=\left[\begin{array}{c} b_{1} \\ \vdots \\ b_{m} \end{array}\right] [a11a1nam1amn][x1xn]=[b1bm]\Longleftrightarrow\left[\begin{array}{ccc} a_{11} & \cdots & a_{1 n} \\ \vdots & & \vdots \\ a_{m 1} & \cdots & a_{m n} \end{array}\right]\left[\begin{array}{c} x_{1} \\ \vdots \\ x_{n} \end{array}\right]=\left[\begin{array}{c} b_{1} \\ \vdots \\ b_{m} \end{array}\right]

다음에서는 이러한 행렬들을 자세히 살펴보고 계산 규칙을 정의할 것이다. 선형 방정식 해결에 대해서는 2.3절에서 다시 다룰 것이다.

2.2 Matrices

행렬은 선형대수학에서 중심적인 역할을 한다. 행렬은 연립 선형 방정식을 간결하게 나타내는 데 사용될 수 있으며, 2.7절에서 보겠지만 선형 함수(선형 매핑)를 나타내기도 한다. 이러한 흥미로운 주제들을 논의하기 전에, 먼저 행렬이 무엇인지, 그리고 행렬로 어떤 종류의 연산을 수행할 수 있는지 정의해 보자. 행렬의 더 많은 속성은 4장에서 다룰 것이다.

정의 2.1 (행렬). m,nNm, n \in \mathbb{N}일 때, 실수 값의 (m,n)(m, n) 행렬 A\boldsymbol{A}mm개의 행과 nn개의 열로 구성된 직사각형 형태에 따라 정렬된 mnm \cdot n개의 원소 aij,i=1,,m,j=1,,na_{i j}, i=1, \ldots, m, j=1, \ldots, n의 튜플이다:

A=[a11a12a1na21a22a2nam1am2amn],aijR\boldsymbol{A}=\left[\begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22} & \cdots & a_{2 n} \\ \vdots & \vdots & & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{array}\right], \quad a_{i j} \in \mathbb{R}

row column row vector column vector Figure 2.4 열들을 쌓음으로써 행렬 A\boldsymbol{A}는 긴 벡터 a\boldsymbol{a}로 표현될 수 있다.

행렬의 크기에 유의하라. C=\mathrm{C}= np.einsum('il, ljl j ', A, B)

관례적으로 (1,n)(1, n)-행렬은 **행(rows)**이라고 불리며, (m,1)(m, 1)-행렬은 **열(columns)**이라고 불린다. 이러한 특수한 행렬들은 **행/열 벡터(row/column vectors)**라고도 불린다. Rm×n\mathbb{R}^{m \times n}은 모든 실수 값의 (m,n)(m, n)-행렬들의 집합이다. ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}은 행렬의 모든 nn개 열을 긴 벡터로 쌓아서 aRmn\boldsymbol{a} \in \mathbb{R}^{m n}으로 동등하게 표현될 수 있다; 그림 2.4를 참조하라.

2.2.1 Matrix Addition and Multiplication

두 행렬 ARm×n,BRm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}, \boldsymbol{B} \in \mathbb{R}^{m \times n}의 합은 elementwise sum으로 정의된다. 즉,

A+B:=[a11+b11a1n+b1nam1+bm1amn+bmn]Rm×n.\boldsymbol{A}+\boldsymbol{B}:=\left[\begin{array}{ccc} a_{11}+b_{11} & \cdots & a_{1 n}+b_{1 n} \\ \vdots & & \vdots \\ a_{m 1}+b_{m 1} & \cdots & a_{m n}+b_{m n} \end{array}\right] \in \mathbb{R}^{m \times n} .

행렬 ARm×n,BRn×k\boldsymbol{A} \in \mathbb{R}^{m \times n}, \boldsymbol{B} \in \mathbb{R}^{n \times k}에 대해, 곱 C=ABRm×k\boldsymbol{C}=\boldsymbol{A} \boldsymbol{B} \in \mathbb{R}^{m \times k}의 원소 cijc_{i j}는 다음과 같이 계산된다.

cij=l=1nailblj,i=1,,m,j=1,,k.c_{i j}=\sum_{l=1}^{n} a_{i l} b_{l j}, \quad i=1, \ldots, m, \quad j=1, \ldots, k .

이는 원소 cijc_{i j}를 계산하기 위해 A\boldsymbol{A}ii번째 행의 원소들과 B\boldsymbol{B}jj번째 열의 원소들을 곱하고 합산한다는 것을 의미한다. 3.2절에서 우리는 이를 해당 행과 열의 dot product라고 부를 것이다. 곱셈을 수행하고 있음을 명시해야 하는 경우, 곱셈을 나타내기 위해 AB\boldsymbol{A} \cdot \boldsymbol{B} 표기법을 사용한다("."을 명시적으로 표시).
참고. 행렬은 "인접한" 차원이 일치하는 경우에만 곱할 수 있다. 예를 들어, n×kn \times k 행렬 A\boldsymbol{A}k×mk \times m 행렬 B\boldsymbol{B}와 곱할 수 있지만, 왼쪽에서만 가능하다.

An×kBk×m=Cn×m\underbrace{A}_{n \times k} \underbrace{B}_{k \times m}=\underbrace{C}_{n \times m}

BA\boldsymbol{B} \boldsymbol{A}의 곱은 mnm \neq n인 경우 정의되지 않는데, 이는 인접한 차원이 일치하지 않기 때문이다.
참고. 행렬 곱셈은 행렬 원소에 대한 element-wise operation으로 정의되지 않는다. 즉, cijaijbijc_{i j} \neq a_{i j} b_{i j}이다 (심지어 A,B\boldsymbol{A}, \boldsymbol{B}의 크기가 적절하게 선택되었더라도). 이러한 종류의 element-wise 곱셈은 프로그래밍 언어에서 (다차원) 배열을 서로 곱할 때 자주 나타나며, Hadamard product라고 불린다.

Example 2.3

A=[123321]R2×3,B=[021101]R3×2\boldsymbol{A}=\left[\begin{array}{lll}1 & 2 & 3 \\ 3 & 2 & 1\end{array}\right] \in \mathbb{R}^{2 \times 3}, \boldsymbol{B}=\left[\begin{array}{cc}0 & 2 \\ 1 & -1 \\ 0 & 1\end{array}\right] \in \mathbb{R}^{3 \times 2} 일 때, 다음을 얻는다.

AB=[123321][021101]=[2325]R2×2BA=[021101][123321]=[642202321]R3×3\begin{aligned} \boldsymbol{A} \boldsymbol{B} & =\left[\begin{array}{lll} 1 & 2 & 3 \\ 3 & 2 & 1 \end{array}\right]\left[\begin{array}{cc} 0 & 2 \\ 1 & -1 \\ 0 & 1 \end{array}\right]=\left[\begin{array}{ll} 2 & 3 \\ 2 & 5 \end{array}\right] \in \mathbb{R}^{2 \times 2} \\ \boldsymbol{B} \boldsymbol{A} & =\left[\begin{array}{cc} 0 & 2 \\ 1 & -1 \\ 0 & 1 \end{array}\right]\left[\begin{array}{ccc} 1 & 2 & 3 \\ 3 & 2 & 1 \end{array}\right]=\left[\begin{array}{ccc} 6 & 4 & 2 \\ -2 & 0 & 2 \\ 3 & 2 & 1 \end{array}\right] \in \mathbb{R}^{3 \times 3} \end{aligned}

이 예시에서 행렬 곱셈은 교환법칙이 성립하지 않음, 즉 ABBA\boldsymbol{A} \boldsymbol{B} \neq \boldsymbol{B} \boldsymbol{A} 임을 알 수 있다. 그림 2.5에서도 이를 확인할 수 있다.

정의 2.2 (항등 행렬). Rn×n\mathbb{R}^{n \times n}에서 항등 행렬을 다음과 같이 정의한다.

In:=[1000010000100001]Rn×n\boldsymbol{I}_{n}:=\left[\begin{array}{cccccc} 1 & 0 & \cdots & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 0 & \cdots & 1 \end{array}\right] \in \mathbb{R}^{n \times n}

A\boldsymbol{A}에는 nn개의 열이 있고 B\boldsymbol{B}에는 nn개의 행이 있으므로 l=1,,nl=1, \ldots, n에 대해 ailblja_{i l} b_{l j}를 계산할 수 있다. 일반적으로 두 벡터 a,b\boldsymbol{a}, \boldsymbol{b}의 **내적(dot product)**은 ab\boldsymbol{a}^{\top} \boldsymbol{b} 또는 a,b\langle\boldsymbol{a}, \boldsymbol{b}\rangle로 표기한다.

Hadamard product

그림 2.5 두 행렬 곱셈 AB\boldsymbol{A} \boldsymbol{B}BA\boldsymbol{B} \boldsymbol{A}가 모두 정의되더라도 결과의 차원은 다를 수 있다. 대각선에 1이 있고 다른 모든 곳에 0이 있는 n×nn \times n 행렬이다. 이제 행렬 곱셈, 행렬 덧셈 및 항등 행렬을 정의했으므로 행렬의 몇 가지 속성을 살펴보자. 결합법칙(associativity) 분배법칙(distributivity)

**정방 행렬(square matrix)**은 열과 행의 수가 같다. 역행렬(inverse) 정칙 행렬(regular) 가역 행렬(invertible) 비특이 행렬(nonsingular) 특이 행렬(singular) 비가역 행렬(noninvertible)

  • 결합법칙(Associativity):
ARm×n,BRn×p,CRp×q:(AB)C=A(BC)\forall \boldsymbol{A} \in \mathbb{R}^{m \times n}, \boldsymbol{B} \in \mathbb{R}^{n \times p}, \boldsymbol{C} \in \mathbb{R}^{p \times q}:(\boldsymbol{A} \boldsymbol{B}) \boldsymbol{C}=\boldsymbol{A}(\boldsymbol{B} \boldsymbol{C})
  • 분배법칙(Distributivity):
A,BRm×n,C,DRn×p:(A+B)C=AC+BCA(C+D)=AC+AD\begin{array}{r} \forall A, B \in \mathbb{R}^{m \times n}, C, D \in \mathbb{R}^{n \times p}:(A+B) C=A C+B C \\ A(C+D)=A C+A D \end{array}
  • 항등 행렬과의 곱셈(Multiplication with the identity matrix):
ARm×n:ImA=AIn=A\forall \boldsymbol{A} \in \mathbb{R}^{m \times n}: \boldsymbol{I}_{m} \boldsymbol{A}=\boldsymbol{A} \boldsymbol{I}_{n}=\boldsymbol{A}

mnm \neq n일 때 ImIn\boldsymbol{I}_{m} \neq \boldsymbol{I}_{n} 임에 유의하라.

2.2.2 Inverse and Transpose

정의 2.3 (역행렬, Inverse). 정방행렬 ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}를 고려하자. 행렬 BRn×n\boldsymbol{B} \in \mathbb{R}^{n \times n}AB=In=BA\boldsymbol{A} \boldsymbol{B}=\boldsymbol{I}_{n}=\boldsymbol{B} \boldsymbol{A} 속성을 가질 때, B\boldsymbol{B}A\boldsymbol{A}의 **역행렬(inverse)**이라고 부르며 A1\boldsymbol{A}^{-1}로 표기한다.

불행히도 모든 행렬 A\boldsymbol{A}가 역행렬 A1\boldsymbol{A}^{-1}를 가지는 것은 아니다. 만약 역행렬이 존재한다면, A\boldsymbol{A}를 **정칙(regular/invertible/nonsingular)**이라고 부르고, 그렇지 않다면 **특이(singular/noninvertible)**라고 부른다. 행렬의 역행렬이 존재할 경우, 그것은 유일하다. 섹션 2.3에서는 연립 선형 방정식을 푸는 일반적인 방법으로 행렬의 역행렬을 계산하는 방법을 논의할 것이다.

비고 (2x2 행렬의 역행렬 존재). 다음 행렬을 고려하자.

A:=[a11a12a21a22]R2×2\boldsymbol{A}:=\left[\begin{array}{ll} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array}\right] \in \mathbb{R}^{2 \times 2}

A\boldsymbol{A}에 다음 행렬을 곱하면

A:=[a22a12a21a11]\boldsymbol{A}^{\prime}:=\left[\begin{array}{cc} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{array}\right]

다음과 같은 결과를 얻는다.

AA=[a11a22a12a2100a11a22a12a21]=(a11a22a12a21)I.\boldsymbol{A} \boldsymbol{A}^{\prime}=\left[\begin{array}{cc} a_{11} a_{22}-a_{12} a_{21} & 0 \\ 0 & a_{11} a_{22}-a_{12} a_{21} \end{array}\right]=\left(a_{11} a_{22}-a_{12} a_{21}\right) \boldsymbol{I} .

따라서,

A1=1a11a22a12a21[a22a12a21a11]\boldsymbol{A}^{-1}=\frac{1}{a_{11} a_{22}-a_{12} a_{21}}\left[\begin{array}{cc} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{array}\right]

a11a22a12a210a_{11} a_{22}-a_{12} a_{21} \neq 0일 때만 성립한다. 섹션 4.1에서 a11a22a12a21a_{11} a_{22}-a_{12} a_{21}가 2x2 행렬의 **행렬식(determinant)**임을 알게 될 것이다. 또한, 일반적으로 행렬식을 사용하여 행렬이 **가역(invertible)**인지 확인할 수 있다.

Example 2.4 (Inverse Matrix)

행렬

A=[121445677],B=[776211454]\boldsymbol{A}=\left[\begin{array}{lll} 1 & 2 & 1 \\ 4 & 4 & 5 \\ 6 & 7 & 7 \end{array}\right], \quad \boldsymbol{B}=\left[\begin{array}{ccc} -7 & -7 & 6 \\ 2 & 1 & -1 \\ 4 & 5 & -4 \end{array}\right]

AB=I=BA\boldsymbol{A} \boldsymbol{B}=\boldsymbol{I}=\boldsymbol{B} \boldsymbol{A} 이므로 서로 역행렬 관계이다.

정의 2.4 (Transpose). ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}에 대해 bij=ajib_{i j}=a_{j i}인 행렬 BRn×m\boldsymbol{B} \in \mathbb{R}^{n \times m}A\boldsymbol{A}의 **전치행렬(transpose)**이라고 한다. 우리는 B=A\boldsymbol{B}=\boldsymbol{A}^{\top}로 표기한다.

일반적으로 A\boldsymbol{A}^{\top}A\boldsymbol{A}의 열을 A\boldsymbol{A}^{\top}의 행으로 작성하여 얻을 수 있다. 다음은 역행렬과 전치행렬의 중요한 속성이다:

\begin{aligned} \boldsymbol{A} \boldsymbol{A}^{-1} & =\boldsymbol{I}=\boldsymbol{A}^{-1} \boldsymbol{A} \\ (\boldsymbol{A} \boldsymbol{B})^{-1} & =\boldsymbol{B}^{-1} \boldsymbol{A}^{-1} \\ (\boldsymbol{A}+\boldsymbol{B})^{-1} & \neq \boldsymbol{A}^{-1}+\boldsymbol{B}^{-1} \\ \left(\boldsymbol{A}^{\top}\right)^{\top} & =\boldsymbol{A} \\ (\boldsymbol{A}+\boldsymbol{B})^{\top} & =\boldsymbol{A}^{\top}+\boldsymbol{B}^{\top} \\ (\boldsymbol{A} \boldsymbol{B})^{\top} & =\boldsymbol{B}^{\top} \boldsymbol{A}^{\top} </aligned}

정의 2.5 (Symmetric Matrix). 행렬 ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}A=A\boldsymbol{A}=\boldsymbol{A}^{\top}이면 **대칭 행렬(symmetric matrix)**이라고 한다.

오직 (n,n)(n, n)-행렬만이 대칭 행렬이 될 수 있다는 점에 유의해야 한다. 일반적으로 (n,n)(n, n)-행렬은 행과 열의 수가 같기 때문에 **정방 행렬(square matrices)**이라고도 불린다. 또한, A\boldsymbol{A}가 가역 행렬(invertible)이면 A\boldsymbol{A}^{\top}도 가역 행렬이며, (A1)=(A)1=:A\left(\boldsymbol{A}^{-1}\right)^{\top}=\left(\boldsymbol{A}^{\top}\right)^{-1}=: \boldsymbol{A}^{-\top}이다. 비고 (대칭 행렬의 합과 곱). 대칭 행렬 A,BRn×n\boldsymbol{A}, \boldsymbol{B} \in \mathbb{R}^{n \times n}의 합은 항상 대칭 행렬이다. 그러나 이들의 곱은 항상 정의되지만, 일반적으로 대칭 행렬은 아니다:

[1000][1111]=[1100]\left[\begin{array}{ll} 1 & 0 \\ 0 & 0 \end{array}\right]\left[\begin{array}{ll} 1 & 1 \\ 1 & 1 \end{array}\right]=\left[\begin{array}{ll} 1 & 1 \\ 0 & 0 \end{array}\right]

2.2.3 Multiplication by a Scalar

행렬이 스칼라 λR\lambda \in \mathbb{R}에 의해 곱해질 때 어떤 일이 발생하는지 살펴보자. ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}이고 λR\lambda \in \mathbb{R}이라고 하자. 그러면 λA=K\lambda \boldsymbol{A}=\boldsymbol{K}이고, Kij=λaijK_{i j}=\lambda a_{i j}이다. 실제적으로 λ\lambdaA\boldsymbol{A}의 각 요소를 스케일링한다. λ,ψR\lambda, \psi \in \mathbb{R}에 대해 다음이 성립한다: transpose 행렬 A\boldsymbol{A}주대각선(때로는 "principal diagonal", "primary diagonal", "leading diagonal", 또는 "major diagonal"이라고도 불림)은 i=ji=j인 엔트리 AijA_{i j}의 집합이다. (2.28)의 스칼라 경우는 다음과 같다: 12+4=1612+14\frac{1}{2+4}=\frac{1}{6} \neq \frac{1}{2}+\frac{1}{4}. symmetric matrix square matrix associativity distributivity

  • 결합법칙 (Associativity): (λψ)C=λ(ψC),CRm×n(\lambda \psi) \boldsymbol{C}=\lambda(\psi \boldsymbol{C}), \quad \boldsymbol{C} \in \mathbb{R}^{m \times n} λ(BC)=(λB)C=B(λC)=(BC)λ,BRm×n,CRn×k\lambda(\boldsymbol{B} \boldsymbol{C})=(\lambda \boldsymbol{B}) \boldsymbol{C}=\boldsymbol{B}(\lambda \boldsymbol{C})=(\boldsymbol{B} \boldsymbol{C}) \lambda, \quad \boldsymbol{B} \in \mathbb{R}^{m \times n}, \boldsymbol{C} \in \mathbb{R}^{n \times k}.

이는 스칼라 값을 자유롭게 이동시킬 수 있음을 의미한다.

  • (λC)=Cλ=Cλ=λC(\lambda \boldsymbol{C})^{\top}=\boldsymbol{C}^{\top} \lambda^{\top}=\boldsymbol{C}^{\top} \lambda=\lambda \boldsymbol{C}^{\top} (모든 λR\lambda \in \mathbb{R}에 대해 λ=λ\lambda=\lambda^{\top}이므로).
  • 분배법칙 (Distributivity):
(λ+ψ)C=λC+ψC,CRm×nλ(B+C)=λB+λC,B,CRm×n\begin{array}{ll} (\lambda+\psi) \boldsymbol{C}=\lambda \boldsymbol{C}+\psi \boldsymbol{C}, & \boldsymbol{C} \in \mathbb{R}^{m \times n} \\ \lambda(\boldsymbol{B}+\boldsymbol{C})=\lambda \boldsymbol{B}+\lambda \boldsymbol{C}, & \boldsymbol{B}, \boldsymbol{C} \in \mathbb{R}^{m \times n} \end{array}

Example 2.5 (Distributivity)

만약 우리가 다음과 같이 정의한다면,

C:=[1234],C:=\left[\begin{array}{ll} 1 & 2 \\ 3 & 4 \end{array}\right],

임의의 λ,ψR\lambda, \psi \in \mathbb{R}에 대해 다음을 얻는다:

(λ+ψ)C=[(λ+ψ)1(λ+ψ)2(λ+ψ)3(λ+ψ)4]=[λ+ψ2λ+2ψ3λ+3ψ4λ+4ψ]=[λ2λ3λ4λ]+[ψ2ψ3ψ4ψ]=λC+ψC.\begin{aligned} (\lambda+\psi) \boldsymbol{C} & =\left[\begin{array}{ll} (\lambda+\psi) 1 & (\lambda+\psi) 2 \\ (\lambda+\psi) 3 & (\lambda+\psi) 4 \end{array}\right]=\left[\begin{array}{cc} \lambda+\psi & 2 \lambda+2 \psi \\ 3 \lambda+3 \psi & 4 \lambda+4 \psi \end{array}\right] \\ & =\left[\begin{array}{cc} \lambda & 2 \lambda \\ 3 \lambda & 4 \lambda \end{array}\right]+\left[\begin{array}{cc} \psi & 2 \psi \\ 3 \psi & 4 \psi \end{array}\right]=\lambda \boldsymbol{C}+\psi \boldsymbol{C} . \end{aligned}

2.2.4 Compact Representations of Systems of Linear Equations

선형 방정식 시스템

2x1+3x2+5x3=14x12x27x3=89x1+5x23x3=2\begin{aligned} & 2 x_{1}+3 x_{2}+5 x_{3}=1 \\ & 4 x_{1}-2 x_{2}-7 x_{3}=8 \\ & 9 x_{1}+5 x_{2}-3 x_{3}=2 \end{aligned}

를 고려하고 행렬 곱셈 규칙을 사용하면, 이 방정식 시스템을 다음과 같이 더 간결한 형태로 작성할 수 있다.

[235427953][x1x2x3]=[182].\left[\begin{array}{ccc} 2 & 3 & 5 \\ 4 & -2 & -7 \\ 9 & 5 & -3 \end{array}\right]\left[\begin{array}{l} x_{1} \\ x_{2} \\ x_{3} \end{array}\right]=\left[\begin{array}{l} 1 \\ 8 \\ 2 \end{array}\right] .

여기서 x1x_{1}은 첫 번째 열을, x2x_{2}는 두 번째 열을, 그리고 x3x_{3}는 세 번째 열을 스케일링한다.

일반적으로, 선형 방정식 시스템은 행렬 형태인 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}로 간결하게 표현될 수 있다. (2.3)을 참조하라. 그리고 곱 Ax\boldsymbol{A} \boldsymbol{x}A\boldsymbol{A}의 열들의 (선형) 조합이다. 선형 조합에 대해서는 2.5절에서 더 자세히 논의할 것이다.

2.3 Solving Systems of Linear Equations

(2.3)에서 우리는 방정식 시스템의 일반적인 형태를 다음과 같이 소개했다.

a11x1++a1nxn=b1am1x1++amnxn=bm\begin{aligned} a_{11} x_{1}+\cdots+a_{1 n} x_{n}= & b_{1} \\ & \vdots \\ a_{m 1} x_{1}+\cdots+a_{m n} x_{n}= & b_{m} \end{aligned}

여기서 aijRa_{i j} \in \mathbb{R}biRb_{i} \in \mathbb{R}는 알려진 상수이고 xjx_{j}는 미지수이며, i=1,,m,j=1,,ni=1, \ldots, m, j=1, \ldots, n이다. 지금까지 우리는 행렬이 선형 방정식 시스템을 간결하게 표현하는 방법으로 사용될 수 있음을 보았고, 이를 통해 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}로 쓸 수 있었다(2.10 참조). 또한, 행렬의 덧셈과 곱셈과 같은 기본적인 행렬 연산을 정의했다. 다음에서는 선형 방정식 시스템을 푸는 데 중점을 두고, 행렬의 역행렬을 찾는 알고리즘을 제공할 것이다.

2.3.1 Particular and General Solution

선형 방정식 시스템을 일반적으로 푸는 방법에 대해 논의하기 전에, 예시를 살펴보자. 다음 방정식 시스템을 고려해보자.

[108401212][x1x2x3x4]=[428]\left[\begin{array}{llll} 1 & 0 & 8 & -4 \\ 0 & 1 & 2 & 12 \end{array}\right]\left[\begin{array}{l} x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \end{array}\right]=\left[\begin{array}{c} 42 \\ 8 \end{array}\right]

이 시스템은 두 개의 방정식과 네 개의 미지수를 가지고 있다. 따라서 일반적으로 무한히 많은 해를 기대할 수 있다. 이 방정식 시스템은 처음 두 열이 1과 0으로 구성되어 있어 특히 쉬운 형태를 띠고 있다. 우리는 i=14xici=b\sum_{i=1}^{4} x_{i} \boldsymbol{c}_{i}=\boldsymbol{b}를 만족하는 스칼라 x1,,x4x_{1}, \ldots, x_{4}를 찾는 것을 목표로 한다. 여기서 ci\boldsymbol{c}_{i}는 행렬의 ii번째 열이고, b\boldsymbol{b}는 (2.38)의 우변이다. (2.38)의 문제에 대한 해는 첫 번째 열에 42를 곱하고 두 번째 열에 8을 곱하여 즉시 찾을 수 있다.

b=[428]=42[10]+8[01]\boldsymbol{b}=\left[\begin{array}{c} 42 \\ 8 \end{array}\right]=42\left[\begin{array}{l} 1 \\ 0 \end{array}\right]+8\left[\begin{array}{l} 0 \\ 1 \end{array}\right]

따라서 하나의 해는 [42,8,0,0][42,8,0,0]^{\top}이다. 이 해를 특수해(particular solution) 또는 **특정해(special solution)**라고 한다. 그러나 이것이 이 선형 방정식 시스템의 유일한 해는 아니다. 다른 모든 해를 포착하기 위해서는 행렬의 열을 사용하여 자명하지 않은(non-trivial) 방식으로 0\mathbf{0}을 생성하는 데 창의적이어야 한다. 특수해에 0\mathbf{0}을 더해도 특수해는 변하지 않는다. 이를 위해 세 번째 열을 처음 두 열(매우 간단한 형태)을 사용하여 표현한다.

[82]=8[10]+2[01]\left[\begin{array}{l} 8 \\ 2 \end{array}\right]=8\left[\begin{array}{l} 1 \\ 0 \end{array}\right]+2\left[\begin{array}{l} 0 \\ 1 \end{array}\right]

따라서 0=8c1+2c21c3+0c4\mathbf{0}=8 \boldsymbol{c}_{1}+2 \boldsymbol{c}_{2}-1 \boldsymbol{c}_{3}+0 \boldsymbol{c}_{4}이고 (x1,x2,x3,x4)=(8,2,1,0)(x_{1}, x_{2}, x_{3}, x_{4})=(8,2,-1,0)이다. 사실, 이 해를 λ1R\lambda_{1} \in \mathbb{R}로 스케일링하면 0\mathbf{0} 벡터가 생성된다. 즉,

[108401212](λ1[8210])=λ1(8c1+2c2c3)=0\left[\begin{array}{cccc} 1 & 0 & 8 & -4 \\ 0 & 1 & 2 & 12 \end{array}\right]\left(\lambda_{1}\left[\begin{array}{c} 8 \\ 2 \\ -1 \\ 0 \end{array}\right]\right)=\lambda_{1}\left(8 \boldsymbol{c}_{1}+2 \boldsymbol{c}_{2}-\boldsymbol{c}_{3}\right)=\mathbf{0}

동일한 추론에 따라, (2.38)의 행렬의 네 번째 열을 처음 두 열을 사용하여 표현하고 0\mathbf{0}의 또 다른 자명하지 않은 버전을 다음과 같이 생성한다.

[108401212](λ2[41201])=λ2(4c1+12c2c4)=0\left[\begin{array}{llll} 1 & 0 & 8 & -4 \\ 0 & 1 & 2 & 12 \end{array}\right]\left(\lambda_{2}\left[\begin{array}{c} -4 \\ 12 \\ 0 \\ -1 \end{array}\right]\right)=\lambda_{2}\left(-4 \boldsymbol{c}_{1}+12 \boldsymbol{c}_{2}-\boldsymbol{c}_{4}\right)=\mathbf{0}

모든 λ2R\lambda_{2} \in \mathbb{R}에 대해 위 식이 성립한다. 모든 것을 종합하면, (2.38)의 방정식 시스템의 모든 해를 얻을 수 있으며, 이를 **일반해(general solution)**라고 한다. 이 해는 다음과 같은 집합으로 표현된다.

{xR4:x=[42800]+λ1[8210]+λ2[41201],λ1,λ2R}\left\{\boldsymbol{x} \in \mathbb{R}^{4}: \boldsymbol{x}=\left[\begin{array}{c} 42 \\ 8 \\ 0 \\ 0 \end{array}\right]+\lambda_{1}\left[\begin{array}{c} 8 \\ 2 \\ -1 \\ 0 \end{array}\right]+\lambda_{2}\left[\begin{array}{c} -4 \\ 12 \\ 0 \\ -1 \end{array}\right], \lambda_{1}, \lambda_{2} \in \mathbb{R}\right\}

참고. 우리가 따른 일반적인 접근 방식은 다음 세 단계로 구성되었다.

  1. Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}에 대한 **특수해(particular solution)**를 찾는다.
  2. Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}에 대한 모든 해를 찾는다.
  3. 1단계와 2단계의 해를 결합하여 **일반해(general solution)**를 얻는다.

일반해와 특수해 모두 유일하지 않다.
앞선 예시의 선형 방정식 시스템은 (2.38)의 행렬이 특히 편리한 형태를 가지고 있어, 특수해일반해직관적으로(by inspection) 찾을 수 있었기 때문에 풀기 쉬웠다. 그러나 일반적인 방정식 시스템은 이러한 간단한 형태가 아니다. 다행히도, 모든 선형 방정식 시스템을 이 특별히 간단한 형태로 변환하는 구성적인 알고리즘 방식이 존재한다: 바로 **가우스 소거법(Gaussian elimination)**이다. 가우스 소거법의 핵심은 방정식 시스템을 간단한 형태로 변환하는 **선형 방정식 시스템의 기본 변환(elementary transformations)**이다. 그런 다음, (2.38)의 예시에서 방금 논의한 세 단계를 간단한 형태에 적용할 수 있다.

2.3.2 Elementary Transformations

선형 방정식 시스템을 푸는 데 핵심적인 것은 해 집합을 동일하게 유지하면서 방정식 시스템을 더 간단한 형태로 변환하는 **기본 변환(elementary transformations)**이다.

2.3 Solving Systems of Linear Equations

  • 두 방정식(연립방정식을 나타내는 행렬의 행)의 교환
  • 방정식(행)에 상수 λR\{0}\lambda \in \mathbb{R} \backslash\{0\}곱하는 것
  • 두 방정식(행)의 덧셈

Example 2.6

aRa \in \mathbb{R}에 대해 다음 연립방정식의 모든 해를 구한다:

2x1+4x22x3x4+4x5=r4x18x2+3x33x4+x5=x12x2+x3x4+x5=x12x2\begin{array}{r} -2 x_{1}+4 x_{2}-2 x_{3}-x_{4}+4 x_{5}=r \\ 4 x_{1}-8 x_{2}+3 x_{3}-3 x_{4}+x_{5}= \\ x_{1}-2 x_{2}+x_{3}-x_{4}+x_{5}= \\ x_{1}-2 x_{2} \end{array}

이 연립방정식을 compact matrix notation Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}로 변환하는 것부터 시작한다. 변수 x\boldsymbol{x}는 더 이상 명시적으로 언급하지 않고, augmented matrix (형태는 [Ab][\boldsymbol{A} \mid \boldsymbol{b}])를 구성한다.

[24214348331212111012034a] Swap with R3\left[\begin{array}{rrrrr|r} -2 & 4 & -2 & -1 & 4 & -3 \\ 4 & -8 & 3 & -3 & 1 & 2 \\ 1 & -2 & 1 & -1 & 1 & 0 \\ 1 & -2 & 0 & -3 & 4 & a \end{array}\right] \quad \text { Swap with } R_{3}

여기서 (2.44)의 좌변과 우변을 구분하기 위해 수직선을 사용했다. elementary transformation을 사용하여 augmented matrix의 변환을 나타내기 위해 \rightsquigarrow를 사용한다.

행 1과 행 3을 바꾸면 다음과 같다.

[12111048331224214312034a]4R1+2R1R1\left[\begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 4 & -8 & 3 & -3 & 1 & 2 \\ -2 & 4 & -2 & -1 & 4 & -3 \\ 1 & -2 & 0 & -3 & 4 & a \end{array}\right] \begin{aligned} & -4 R_{1} \\ & +2 R_{1} \\ & -R_{1} \end{aligned}

이제 지시된 변환을 적용하면 (예: 행 1을 4번 빼서 행 2에 적용), 다음을 얻는다.

[12111000113200036300123a]R2R3[12111000113200036300000a+1].(1).(13)[12111000113200012100000a+1]\begin{aligned} {\left[\begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 0 & 0 & -1 & 1 & -3 & 2 \\ 0 & 0 & 0 & -3 & 6 & -3 \\ 0 & 0 & -1 & -2 & 3 & a \end{array}\right]-R_{2}-R_{3} } \\ \rightsquigarrow\left[\begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 0 & 0 & -1 & 1 & -3 & 2 \\ 0 & 0 & 0 & -3 & 6 & -3 \\ 0 & 0 & 0 & 0 & 0 & a+1 \end{array}\right] \begin{array}{l} .(-1) \\ .\left(-\frac{1}{3}\right) \end{array} \\ \rightsquigarrow\left[\begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 0 & 0 & 1 & -1 & 3 & -2 \\ 0 & 0 & 0 & 1 & -2 & 1 \\ 0 & 0 & 0 & 0 & 0 & a+1 \end{array}\right] \end{aligned}

augmented matrix

augmented matrix [Ab][\boldsymbol{A} \mid \boldsymbol{b}]는 연립 선형 방정식 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}를 간결하게 나타낸다. row-echelon form particular solution general solution pivot row-echelon form pivot leading coefficient 다른 텍스트에서는 때때로 pivot이 1이어야 한다고 요구하기도 한다. basic variable free variable

이 (augmented) matrix는 편리한 형태인 **row-echelon form (REF)**이다. 이 compact notation을 우리가 찾는 변수를 포함하는 명시적 notation으로 되돌리면 다음을 얻는다.

x12x2+x3x4+x5=x3x4+3x5=2x42x5=1=a+1.\begin{aligned} x_{1}-2 x_{2}+x_{3}-x_{4}+x_{5} & = \\ x_{3}-x_{4}+3 x_{5} & =-2 \\ x_{4}-2 x_{5} & =1 \\ & \end{aligned} \quad \begin{aligned} & =a+1 \end{aligned} .

이 시스템은 a=1a=-1일 때만 해를 가질 수 있다. particular solution은 다음과 같다.

[x1x2x3x4x5]=[20110].\left[\begin{array}{l} x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \\ x_{5} \end{array}\right]=\left[\begin{array}{c} 2 \\ 0 \\ -1 \\ 1 \\ 0 \end{array}\right] .

모든 가능한 해의 집합을 나타내는 general solution은 다음과 같다.

{xR5:x=[20110]+λ1[21000]+λ2[20121],λ1,λ2R}.\left\{\boldsymbol{x} \in \mathbb{R}^{5}: \boldsymbol{x}=\left[\begin{array}{c} 2 \\ 0 \\ -1 \\ 1 \\ 0 \end{array}\right]+\lambda_{1}\left[\begin{array}{l} 2 \\ 1 \\ 0 \\ 0 \\ 0 \end{array}\right]+\lambda_{2}\left[\begin{array}{c} 2 \\ 0 \\ -1 \\ 2 \\ 1 \end{array}\right], \quad \lambda_{1}, \lambda_{2} \in \mathbb{R}\right\} .

다음에서는 연립 선형 방정식의 particular solutiongeneral solution을 얻는 구성적인 방법을 자세히 설명할 것이다. Remark (Pivots and Staircase Structure). 한 행의 leading coefficient (왼쪽에서 첫 번째 0이 아닌 숫자)를 pivot이라고 하며, 항상 그 위에 있는 행의 pivot보다 엄격하게 오른쪽에 위치한다. 따라서 row-echelon form의 모든 방정식 시스템은 항상 "staircase" 구조를 가진다.

Definition 2.6 (Row-Echelon Form). 행렬이 row-echelon form에 있다는 것은 다음을 의미한다.

  • 모든 0으로만 구성된 행은 행렬의 맨 아래에 위치한다. 이에 따라 적어도 하나의 0이 아닌 요소를 포함하는 모든 행은 0으로만 구성된 행 위에 위치한다.
  • 0이 아닌 행만 볼 때, 왼쪽에서 첫 번째 0이 아닌 숫자 (pivot 또는 leading coefficient라고도 함)는 항상 그 위에 있는 행의 pivot보다 엄격하게 오른쪽에 위치한다.

Remark (Basic and Free Variables). row-echelon form에서 pivot에 해당하는 변수를 basic variables라고 하고, 다른 변수들을 free variables라고 한다. 예를 들어, (2.45)에서 x1,x3,x4x_{1}, x_{3}, x_{4}basic variables이고, x2,x5x_{2}, x_{5}free variables이다. Remark (Obtaining a Particular Solution). row-echelon formparticular solution을 결정해야 할 때 우리의 작업을 더 쉽게 만든다. 이를 위해 방정식 시스템의 우변을 pivot columns를 사용하여 b=i=1Pλipi\boldsymbol{b}=\sum_{i=1}^{P} \lambda_{i} \boldsymbol{p}_{i}와 같이 표현한다. 여기서 pi,i=1,,P\boldsymbol{p}_{i}, i=1, \ldots, Ppivot columns이다. λi\lambda_{i}는 가장 오른쪽 pivot column부터 시작하여 왼쪽으로 진행하면서 가장 쉽게 결정된다.

이전 예시에서 우리는 λ1,λ2,λ3\lambda_{1}, \lambda_{2}, \lambda_{3}를 찾아 다음을 만족시키려고 할 것이다.

λ1[1000]+λ2[1100]+λ3[1110]=[0210]\lambda_{1}\left[\begin{array}{l} 1 \\ 0 \\ 0 \\ 0 \end{array}\right]+\lambda_{2}\left[\begin{array}{l} 1 \\ 1 \\ 0 \\ 0 \end{array}\right]+\lambda_{3}\left[\begin{array}{c} -1 \\ -1 \\ 1 \\ 0 \end{array}\right]=\left[\begin{array}{c} 0 \\ -2 \\ 1 \\ 0 \end{array}\right]

여기서 λ3=1,λ2=1,λ1=2\lambda_{3}=1, \lambda_{2}=-1, \lambda_{1}=2임을 비교적 직접적으로 알 수 있다. 모든 것을 종합할 때, 계수를 암묵적으로 0으로 설정한 non-pivot columns를 잊어서는 안 된다. 따라서 particular solution x=[2,0,1,1,0]\boldsymbol{x}=[2,0,-1,1,0]^{\top}를 얻는다. Remark (Reduced Row Echelon Form). 방정식 시스템이 reduced row-echelon form (또는 row-reduced echelon form 또는 row canonical form)에 있다는 것은 다음을 의미한다.

  • row-echelon form이다.
  • 모든 pivot은 1이다.
  • pivot은 해당 열에서 유일한 0이 아닌 항목이다.

reduced row-echelon form은 나중에 Section 2.3.3에서 중요한 역할을 할 것이다. 왜냐하면 이를 통해 연립 선형 방정식의 general solution을 간단한 방법으로 결정할 수 있기 때문이다. Remark (Gaussian Elimination). Gaussian eliminationelementary transformations를 수행하여 연립 선형 방정식을 reduced row-echelon form으로 만드는 알고리즘이다.

Example 2.7 (Reduced Row Echelon Form)

다음 행렬이 **기약 행 사다리꼴(reduced row-echelon form)**인지 확인한다 (피벗은 굵게 표시):

A=[130030010900014]\boldsymbol{A}=\left[\begin{array}{ccccc} \mathbf{1} & 3 & 0 & 0 & 3 \\ 0 & 0 & \mathbf{1} & 0 & 9 \\ 0 & 0 & 0 & \mathbf{1} & -4 \end{array}\right]

Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해를 찾는 핵심 아이디어는 **비피벗 열(nonpivot columns)**을 살펴보는 것이다. 이 비피벗 열을 피벗 열의 (선형) 조합으로 표현해야 한다. 기약 행 사다리꼴은 이를 비교적 간단하게 만들어주며, 비피벗 열을 왼쪽에 있는 피벗 열의 합과 곱으로 표현한다. 두 번째 열은 첫 번째 열의 3배이다 (두 번째 열의 오른쪽에 있는 피벗 열은 무시할 수 있다). 따라서 0\mathbf{0}을 얻으려면 첫 번째 열의 3배에서 두 번째 열을 빼야 한다. 이제 두 번째 비피벗 열인 다섯 번째 열을 살펴보자. 다섯 번째 열은 첫 번째 피벗 열의 3배, 두 번째 피벗 열의 9배, 세 번째 피벗 열의 -4배로 표현될 수 있다. 우리는 피벗 열의 인덱스를 추적하고 이를 첫 번째 열의 3배, 두 번째 열(비피벗 열)의 0배, 세 번째 열(두 번째 피벗 열)의 9배, 네 번째 열(세 번째 피벗 열)의 -4배로 변환해야 한다. 그런 다음 0\mathbf{0}을 얻기 위해 다섯 번째 열을 빼야 한다. 결국, 우리는 여전히 동차 방정식 시스템을 풀고 있는 것이다.

요약하면, Ax=0,xR5\boldsymbol{A x}=\mathbf{0}, \boldsymbol{x} \in \mathbb{R}^{5}의 모든 해는 다음과 같이 주어진다:

{xR5:x=λ1[31000]+λ2[30941],λ1,λ2R}\left\{\boldsymbol{x} \in \mathbb{R}^{5}: \boldsymbol{x}=\lambda_{1}\left[\begin{array}{c} 3 \\ -1 \\ 0 \\ 0 \\ 0 \end{array}\right]+\lambda_{2}\left[\begin{array}{c} 3 \\ 0 \\ 9 \\ -4 \\ -1 \end{array}\right], \quad \lambda_{1}, \lambda_{2} \in \mathbb{R}\right\}

2.3.3 The Minus-1 Trick

다음에서는 동차 선형 방정식 시스템 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해 x\boldsymbol{x}를 읽어내는 실용적인 방법을 소개한다. 여기서 ARk×n,xRn\boldsymbol{A} \in \mathbb{R}^{k \times n}, \boldsymbol{x} \in \mathbb{R}^{n}이다.

먼저, A\boldsymbol{A}가 0으로만 구성된 행이 없는 **기약 행 사다리꼴(reduced row-echelon form)**이라고 가정한다. 즉,

A=[00100000100000000001],\boldsymbol{A}=\left[\begin{array}{ccccccccccccccc} 0 & \cdots & 0 & \mathbf{1} & * & \cdots & * & 0 & * & \cdots & * & 0 & * & \cdots & * \\ \vdots & & \vdots & 0 & 0 & \cdots & 0 & \mathbf{1} & * & \cdots & * & \vdots & \vdots & & \vdots \\ \vdots & & \vdots & \vdots & \vdots & & \vdots & 0 & \vdots & & \vdots & \vdots & \vdots & & \vdots \\ \vdots & & \vdots & \vdots & \vdots & & \vdots & \vdots & \vdots & & \vdots & 0 & \vdots & & \vdots \\ 0 & \cdots & 0 & 0 & 0 & \cdots & 0 & 0 & 0 & \cdots & 0 & \mathbf{1} & * & \cdots & * \end{array}\right],

여기서 *는 임의의 실수일 수 있으며, 각 행의 첫 번째 0이 아닌 원소는 1이어야 하고 해당 열의 다른 모든 원소는 0이어야 한다는 제약이 있다. 피벗(pivot)(굵게 표시)이 있는 열 j1,,jkj_{1}, \ldots, j_{k}는 표준 단위 벡터 e1,,ekRk\boldsymbol{e}_{1}, \ldots, \boldsymbol{e}_{k} \in \mathbb{R}^{k}이다. 우리는 이 행렬을 다음과 같은 형태의 nkn-k개 행을 추가하여 n×nn \times n 행렬 A~\tilde{\boldsymbol{A}}로 확장한다.

[00100]\left[\begin{array}{lllllll} 0 & \cdots & 0 & -1 & 0 & \cdots & 0 \end{array}\right]

이렇게 하면 확장된 행렬 A~\tilde{\boldsymbol{A}}의 대각선에는 1 또는 -1이 포함된다. 이때, -1을 피벗으로 포함하는 A~\tilde{\boldsymbol{A}}의 열들은 동차 방정식 시스템 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해가 된다. 더 정확히 말하면, 이 열들은 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해 공간의 기저(basis)(섹션 2.6.1)를 형성하며, 이 해 공간을 나중에 커널(kernel) 또는 널 공간(null space)(섹션 2.7.3 참조)이라고 부를 것이다.

Example 2.8 (Minus-1 Trick)

이제 (2.49)의 행렬을 다시 살펴보자. 이 행렬은 이미 **기약 행사다리꼴(reduced REF)**이다:

A=[130030010900014]\boldsymbol{A}=\left[\begin{array}{ccccc} 1 & 3 & 0 & 0 & 3 \\ 0 & 0 & 1 & 0 & 9 \\ 0 & 0 & 0 & 1 & -4 \end{array}\right]

이제 이 행렬을 대각선에 **피벗(pivot)**이 없는 위치에 (2.52) 형태의 행을 추가하여 5×55 \times 5 행렬로 확장하면 다음과 같다:

A~=[1300301000001090001400001]\tilde{\boldsymbol{A}}=\left[\begin{array}{ccccc} 1 & 3 & 0 & 0 & 3 \\ 0 & -\mathbf{1} & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 9 \\ 0 & 0 & 0 & 1 & -4 \\ 0 & 0 & 0 & 0 & -\mathbf{1} \end{array}\right]

이 형태로부터, 대각선에 -1을 포함하는 A~\tilde{\boldsymbol{A}}의 열을 취함으로써 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해를 즉시 읽어낼 수 있다:

{xR5:x=λ1[31000]+λ2[30941],λ1,λ2R}\left\{\boldsymbol{x} \in \mathbb{R}^{5}: \boldsymbol{x}=\lambda_{1}\left[\begin{array}{c} 3 \\ -1 \\ 0 \\ 0 \\ 0 \end{array}\right]+\lambda_{2}\left[\begin{array}{c} 3 \\ 0 \\ 9 \\ -4 \\ -1 \end{array}\right], \quad \lambda_{1}, \lambda_{2} \in \mathbb{R}\right\}

이는 우리가 "통찰력"으로 얻었던 (2.50)의 해와 동일하다.

Calculating the Inverse

ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}의 역행렬 A1\boldsymbol{A}^{-1}을 계산하기 위해, 우리는 AX=In\boldsymbol{A} \boldsymbol{X}=\boldsymbol{I}_{n}을 만족하는 행렬 X\boldsymbol{X}를 찾아야 한다. 그러면 X=A1\boldsymbol{X}=\boldsymbol{A}^{-1}이 된다. 우리는 이를 연립 선형 방정식 AX=In\boldsymbol{A} \boldsymbol{X}=\boldsymbol{I}_{n}으로 쓸 수 있으며, 여기서 X=[x1xn]\boldsymbol{X}=\left[\boldsymbol{x}_{1}|\cdots| \boldsymbol{x}_{n}\right]을 구한다. 이 연립 선형 방정식 시스템을 간결하게 표현하기 위해 확장 행렬(augmented matrix) 표기법을 사용하면 다음과 같다.

[AIn][InA1].\left[\boldsymbol{A} \mid \boldsymbol{I}_{n}\right] \quad \rightsquigarrow \cdots \rightsquigarrow \quad\left[\boldsymbol{I}_{n} \mid \boldsymbol{A}^{-1}\right] .

이는 확장된 방정식 시스템을 **기약 행 사다리꼴(reduced row-echelon form)**로 만들면, 방정식 시스템의 오른쪽에 있는 역행렬을 읽어낼 수 있음을 의미한다. 따라서 행렬의 역행렬을 결정하는 것은 선형 방정식 시스템을 푸는 것과 동등하다.

Example 2.9 (Calculating an Inverse Matrix by Gaussian Elimination)

다음 행렬 A\boldsymbol{A}의 역행렬을 구하기 위해

A=[1020110012011111]\boldsymbol{A}=\left[\begin{array}{llll} 1 & 0 & 2 & 0 \\ 1 & 1 & 0 & 0 \\ 1 & 2 & 0 & 1 \\ 1 & 1 & 1 & 1 \end{array}\right]

우리는 **첨가 행렬(augmented matrix)**을 다음과 같이 작성한다:

[10201000110001001201001011110001]\left[\begin{array}{llll|llll} 1 & 0 & 2 & 0 & 1 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 1 & 0 & 0 \\ 1 & 2 & 0 & 1 & 0 & 0 & 1 & 0 \\ 1 & 1 & 1 & 1 & 0 & 0 & 0 & 1 \end{array}\right]

그리고 **가우스 소거법(Gaussian elimination)**을 사용하여 이 행렬을 **기약 행사다리꼴(reduced row-echelon form)**로 변환한다:

[10001222010011220010111100011012],\left[\begin{array}{cccc|cccc} 1 & 0 & 0 & 0 & -1 & 2 & -2 & 2 \\ 0 & 1 & 0 & 0 & 1 & -1 & 2 & -2 \\ 0 & 0 & 1 & 0 & 1 & -1 & 1 & -1 \\ 0 & 0 & 0 & 1 & -1 & 0 & -1 & 2 \end{array}\right],

이때, 원하는 역행렬은 우측 부분으로 주어진다:

A1=[1222112211111012].\boldsymbol{A}^{-1}=\left[\begin{array}{cccc} -1 & 2 & -2 & 2 \\ 1 & -1 & 2 & -2 \\ 1 & -1 & 1 & -1 \\ -1 & 0 & -1 & 2 \end{array}\right] .

(2.58)이 실제로 역행렬인지 확인하기 위해 AA1\boldsymbol{A} \boldsymbol{A}^{-1}를 곱하여 I4\boldsymbol{I}_{4}가 복원되는지 관찰할 수 있다.

2.3.4 Algorithms for Solving a System of Linear Equations

다음에서는 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b} 형태의 선형 방정식 시스템을 푸는 접근 방식에 대해 간략하게 논의한다. 우리는 해가 존재한다고 가정한다. 만약 해가 없다면, 근사 해법을 사용해야 하는데, 이는 이 장에서 다루지 않는다. 근사 문제를 해결하는 한 가지 방법은 선형 회귀(linear regression) 접근 방식을 사용하는 것이며, 이는 9장에서 자세히 논의한다.

특수한 경우, 우리는 역행렬 A1\boldsymbol{A}^{-1}을 결정할 수 있으며, 이 경우 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}의 해는 x=A1b\boldsymbol{x}=\boldsymbol{A}^{-1} \boldsymbol{b}로 주어진다. 그러나 이는 A\boldsymbol{A}가 **정방행렬(square matrix)**이고 **가역행렬(invertible)**인 경우에만 가능하며, 이는 종종 그렇지 않다. 그렇지 않은 경우, 완만한 가정(즉, A\boldsymbol{A}는 선형 독립적인 열을 가져야 함) 하에 다음 변환을 사용할 수 있다.

Ax=bAAx=Abx=(AA)1Ab\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b} \Longleftrightarrow \boldsymbol{A}^{\top} \boldsymbol{A} \boldsymbol{x}=\boldsymbol{A}^{\top} \boldsymbol{b} \Longleftrightarrow \boldsymbol{x}=\left(\boldsymbol{A}^{\top} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{\top} \boldsymbol{b}

그리고 Moore-Penrose pseudo-inverse (AA)1A\left(\boldsymbol{A}^{\top} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{\top}를 사용하여 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}를 푸는 해 (2.59)를 결정할 수 있으며, 이는 또한 **최소 노름 최소 제곱 해(minimum norm least-squares solution)**에 해당한다. 이 접근 방식의 단점은 행렬-행렬 곱셈과 AA\boldsymbol{A}^{\top} \boldsymbol{A}의 역행렬 계산에 많은 연산이 필요하다는 것이다. 더욱이, 수치 정밀도(numerical precision) 문제로 인해 역행렬 또는 pseudo-inverse를 계산하는 것은 일반적으로 권장되지 않는다. 따라서 다음에서는 선형 방정식 시스템을 푸는 대안적인 접근 방식에 대해 간략하게 논의한다.

**가우스 소거법(Gaussian elimination)**은 행렬식(determinants) 계산(4.1절), 벡터 집합이 선형 독립인지 확인(2.5절), 행렬의 역행렬 계산(2.2.2절), 행렬의 랭크(rank) 계산(2.6.2절), 그리고 벡터 공간의 기저(basis) 결정(2.6.1절)에 중요한 역할을 한다. 가우스 소거법은 수천 개의 변수를 가진 선형 방정식 시스템을 해결하는 직관적이고 구성적인 방법이다. 그러나 수백만 개의 변수를 가진 시스템의 경우, 필요한 산술 연산의 수가 동시 방정식 수에 대해 3차적으로 증가하므로 비실용적이다.

실제로 많은 선형 방정식 시스템은 Richardson method, Jacobi method, Gauß-Seidel method, successive over-relaxation method와 같은 **정지 반복법(stationary iterative methods)**이나 conjugate gradients, generalized minimal residual, biconjugate gradients와 같은 Krylov subspace methods를 통해 간접적으로 해결된다. 더 자세한 내용은 Stoer와 Burlirsch (2002), Strang (2003), Liesen과 Mehrmann (2015)의 서적을 참조한다.

x\boldsymbol{x}_{*}Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}의 해라고 하자. 이러한 반복 방법의 핵심 아이디어는 다음과 같은 형태의 반복을 설정하는 것이다.

x(k+1)=Cx(k)+d\boldsymbol{x}^{(k+1)}=\boldsymbol{C} \boldsymbol{x}^{(k)}+\boldsymbol{d}

적절한 C\boldsymbol{C}d\boldsymbol{d}에 대해 매 반복마다 잔차 오차(residual error) x(k+1)x\left\|\boldsymbol{x}^{(k+1)}-\boldsymbol{x}_{*}\right\|를 줄이고 x\boldsymbol{x}_{*}로 수렴하도록 한다. 벡터 간의 유사성을 계산할 수 있게 해주는 노름(norms) \|\cdot\|은 3.1절에서 소개할 것이다.

2.4 Vector Spaces

지금까지 우리는 연립 선형 방정식과 이를 푸는 방법을 살펴보았다(섹션 2.3). 연립 선형 방정식이 행렬-벡터 표기법(2.10)을 사용하여 간결하게 표현될 수 있음을 확인했다. 다음에서는 벡터 공간, 즉 벡터가 존재하는 구조화된 공간에 대해 더 자세히 살펴볼 것이다.

이 장의 시작 부분에서 우리는 벡터를 서로 더하고 스칼라를 곱해도 같은 유형의 객체로 유지되는 객체로 비공식적으로 특징지었다. 이제 이를 공식화할 준비가 되었으며, 그룹이라는 개념을 도입하는 것으로 시작할 것이다. 그룹은 요소들의 집합과 이 요소들에 대해 정의된 연산으로 구성되며, 이 연산은 집합의 일부 구조를 그대로 유지한다.

Moore-Penrose pseudo-inverse

2.4.1 Groups

그룹은 컴퓨터 과학에서 중요한 역할을 한다. 그룹은 집합에 대한 연산을 위한 기본적인 프레임워크를 제공할 뿐만 아니라, 암호학, 코딩 이론 및 그래픽스 분야에서 많이 사용된다.

정의 2.7 (그룹). 집합 G\mathcal{G}G\mathcal{G}에 정의된 연산 :G×GG\otimes: \mathcal{G} \times \mathcal{G} \rightarrow \mathcal{G}를 고려하자. 그룹 닫힘 결합법칙 항등원 역원

아벨 그룹 N0:=N{0}\mathbb{N}_{0}:=\mathbb{N} \cup\{0\} 이때 G:=(G,)G:=(\mathcal{G}, \otimes)가 다음을 만족하면 그룹이라고 한다:

  1. \otimes에 대한 G\mathcal{G}닫힘(Closure): x,yG:xyG\forall x, y \in \mathcal{G}: x \otimes y \in \mathcal{G}
  2. 결합법칙(Associativity): x,y,zG:(xy)z=x(yz)\forall x, y, z \in \mathcal{G}:(x \otimes y) \otimes z=x \otimes(y \otimes z)
  3. 항등원(Neutral element): eGxG:xe=x\exists e \in \mathcal{G} \forall x \in \mathcal{G}: x \otimes e=x 이고 ex=xe \otimes x=x
  4. 역원(Inverse element): xGyG:xy=e\forall x \in \mathcal{G} \exists y \in \mathcal{G}: x \otimes y=e 이고 yx=ey \otimes x=e (여기서 ee는 항등원이다). 우리는 종종 xx의 역원을 x1x^{-1}로 표기한다.

비고. 역원은 연산 \otimes에 대해 정의되며, 반드시 1x\frac{1}{x}를 의미하는 것은 아니다. 만약 추가적으로 x,yG:xy=yx\forall x, y \in \mathcal{G}: x \otimes y=y \otimes x를 만족하면, G=(G,)G=(\mathcal{G}, \otimes)아벨 그룹(Abelian group) (교환 가능)이라고 한다.

Example 2.10 (Groups)

연산이 연관된 집합의 몇 가지 예시를 살펴보고, 이들이 group인지 확인해 보자:

  • ( Z,+\mathbb{Z},+ )는 Abelian group이다.
  • ( N0,+\mathbb{N}_{0},+ )는 group이 아니다: ( N0,+\mathbb{N}_{0},+ )는 neutral element(0)를 가지고 있지만, inverse element가 없다.
  • ( Z,\mathbb{Z}, \cdot )는 group이 아니다: ( Z,\mathbb{Z}, \cdot )는 neutral element(1)를 포함하지만, zZ,z±1z \in \mathbb{Z}, z \neq \pm 1인 모든 zz에 대한 inverse element가 없다.
  • ( R,\mathbb{R}, \cdot )는 0이 inverse element를 가지지 않으므로 group이 아니다.
  • ( R\{0},\mathbb{R} \backslash\{0\}, \cdot )는 Abelian이다.
  • ( Rn,+\mathbb{R}^{n},+ ), ( Zn,+\mathbb{Z}^{n},+ ), nNn \in \mathbb{N}는 +가 componentwise로 정의될 경우 Abelian이다. 즉,
(x1,,xn)+(y1,,yn)=(x1+y1,,xn+yn)\left(x_{1}, \cdots, x_{n}\right)+\left(y_{1}, \cdots, y_{n}\right)=\left(x_{1}+y_{1}, \cdots, x_{n}+y_{n}\right)

이 경우, (x1,,xn)1:=(x1,,xn)\left(x_{1}, \cdots, x_{n}\right)^{-1}:=\left(-x_{1}, \cdots,-x_{n}\right)inverse element이고 e=(0,,0)e=(0, \cdots, 0)neutral element이다.

  • ( Rm×n,+\mathbb{R}^{m \times n},+ ), 즉 m×nm \times n-matrix의 집합은 Abelian이다 (2.61에서 정의된 componentwise addition과 함께).
  • ( Rn×n,\mathbb{R}^{n \times n}, \cdot ), 즉 2.13에서 정의된 matrix multiplication을 가진 n×nn \times n-matrix의 집합을 더 자세히 살펴보자.
  • Closureassociativitymatrix multiplication의 정의에서 직접적으로 도출된다.
  • Neutral element: identity matrix In\boldsymbol{I}_{n}는 ( Rn×n,\mathbb{R}^{n \times n}, \cdot )에서 matrix multiplication "."에 대한 neutral element이다.
  • Inverse element: inverse가 존재한다면 (A\boldsymbol{A}regular인 경우), A1\boldsymbol{A}^{-1}ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}inverse element이며, 정확히 이 경우 ( Rn×n,\mathbb{R}^{n \times n}, \cdot )는 group이 되며, 이를 general linear group이라고 한다.

정의 2.8 (General Linear Group). regular (invertible) matrix ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}의 집합은 2.13에서 정의된 matrix multiplication에 대한 group이며, general linear group GL(n,R)G L(n, \mathbb{R})이라고 불린다. 그러나 matrix multiplicationcommutative하지 않으므로, 이 groupAbelian이 아니다.

2.4.2 Vector Spaces

그룹에 대해 논의할 때, 우리는 집합 G\mathcal{G}G\mathcal{G} 내의 요소에만 작용하는 G×GG\mathcal{G} \times \mathcal{G} \rightarrow \mathcal{G} 형태의 **내부 연산(inner operation)**을 살펴보았다. 다음에서는 내부 연산 + 외에 외부 연산(outer operation) \cdot, 즉 G\mathcal{G}의 벡터 xG\boldsymbol{x} \in \mathcal{G}에 스칼라 λR\lambda \in \mathbb{R}를 곱하는 연산을 포함하는 집합을 고려할 것이다. 내부 연산을 일종의 덧셈으로, 외부 연산을 일종의 스케일링으로 생각할 수 있다. 내부/외부 연산은 내적/외적과는 관련이 없다는 점에 유의하라.

정의 2.9 (Vector Space). 실수 값 벡터 공간(vector space) V=(V,+,)V=(\mathcal{V},+, \cdot)은 두 가지 연산을 가진 집합 V\mathcal{V}이다.

+:V×VV:R×VV\begin{aligned} & +: \mathcal{V} \times \mathcal{V} \rightarrow \mathcal{V} \\ & \cdot: \mathbb{R} \times \mathcal{V} \rightarrow \mathcal{V} \end{aligned}

여기서

  1. (V,+)(\mathcal{V},+)는 **아벨 군(Abelian group)**이다.
  2. 분배 법칙(Distributivity):
    1. λR,x,yV:λ(x+y)=λx+λy\forall \lambda \in \mathbb{R}, \boldsymbol{x}, \boldsymbol{y} \in \mathcal{V}: \lambda \cdot(\boldsymbol{x}+\boldsymbol{y})=\lambda \cdot \boldsymbol{x}+\lambda \cdot \boldsymbol{y}
    2. λ,ψR,xV:(λ+ψ)x=λx+ψx\forall \lambda, \psi \in \mathbb{R}, \boldsymbol{x} \in \mathcal{V}:(\lambda+\psi) \cdot \boldsymbol{x}=\lambda \cdot \boldsymbol{x}+\psi \cdot \boldsymbol{x}
  3. 결합 법칙(Associativity) (외부 연산): λ,ψR,xV:λ(ψx)=(λψ)x\forall \lambda, \psi \in \mathbb{R}, \boldsymbol{x} \in \mathcal{V}: \lambda \cdot(\psi \cdot \boldsymbol{x})=(\lambda \psi) \cdot \boldsymbol{x}
  4. 외부 연산에 대한 항등원(Neutral element with respect to the outer operation): xV:1x=x\forall \boldsymbol{x} \in \mathcal{V}: 1 \cdot \boldsymbol{x}=\boldsymbol{x}

VV의 요소 xV\boldsymbol{x} \in V를 **벡터(vector)**라고 한다. (V,+)(\mathcal{V},+)의 항등원은 영 벡터(zero vector) 0=[0,,0]\mathbf{0}=[0, \ldots, 0]^{\top}이며, 내부 연산 +는 **벡터 덧셈(vector addition)**이라고 한다. R\mathbb{R}의 요소 λR\lambda \in \mathbb{R}를 **스칼라(scalar)**라고 하며, 외부 연산 \cdot은 **스칼라 곱셈(multiplication by scalars)**이다. 스칼라 곱은 다른 개념이며, 이에 대해서는 3.2절에서 다룰 것이다.

비고. "벡터 곱셈" ab,a,bRn\boldsymbol{a} \boldsymbol{b}, \boldsymbol{a}, \boldsymbol{b} \in \mathbb{R}^{n}은 정의되지 않는다. 이론적으로는 cj=ajbjc_{j}=a_{j} b_{j}c=ab\boldsymbol{c}=\boldsymbol{a} \boldsymbol{b}와 같은 **요소별 곱셈(element-wise multiplication)**을 정의할 수 있다. 이러한 "배열 곱셈(array multiplication)"은 많은 프로그래밍 언어에서 흔히 사용되지만, 표준 행렬 곱셈 규칙을 사용하면 수학적으로 제한적인 의미를 갖는다. 벡터를 n×1n \times 1 행렬로 취급함으로써 (우리가 일반적으로 하는 방식), (2.13)에서 정의된 행렬 곱셈을 사용할 수 있다. 그러나 이 경우 벡터의 차원이 일치하지 않는다. 벡터에 대해 정의된 유일한 곱셈은 다음과 같다: abRn×n\boldsymbol{a} \boldsymbol{b}^{\top} \in \mathbb{R}^{n \times n} (외적(outer product)), abR\boldsymbol{a}^{\top} \boldsymbol{b} \in \mathbb{R} (내적/스칼라/점곱(inner/scalar/dot product)). ©2021 M. P. Deisenroth, A. A. Faisal, C. S. Ong. Published by Cambridge University Press (2020).

Example 2.11 (Vector Spaces)

몇 가지 중요한 예시를 살펴보자:

  • V=Rn,nN\mathcal{V}=\mathbb{R}^{n}, n \in \mathbb{N}은 다음과 같이 연산이 정의된 벡터 공간이다:
    • 덧셈: x+y=(x1,,xn)+(y1,,yn)=(x1+y1,,xn+yn)\boldsymbol{x}+\boldsymbol{y}=\left(x_{1}, \ldots, x_{n}\right)+\left(y_{1}, \ldots, y_{n}\right)=\left(x_{1}+y_{1}, \ldots, x_{n}+y_{n}\right) (모든 x,yRn\boldsymbol{x}, \boldsymbol{y} \in \mathbb{R}^{n}에 대해)
    • 스칼라 곱셈: λx=λ(x1,,xn)=(λx1,,λxn)\lambda \boldsymbol{x}=\lambda\left(x_{1}, \ldots, x_{n}\right)=\left(\lambda x_{1}, \ldots, \lambda x_{n}\right) (모든 λR,xRn\lambda \in \mathbb{R}, \boldsymbol{x} \in \mathbb{R}^{n}에 대해)
  • V=Rm×n,m,nN\mathcal{V}=\mathbb{R}^{m \times n}, m, n \in \mathbb{N}은 다음과 같은 벡터 공간이다:
    • 덧셈: A+B=[a11+b11a1n+b1nam1+bm1amn+bmn]\boldsymbol{A}+\boldsymbol{B}=\left[\begin{array}{ccc}a_{11}+b_{11} & \cdots & a_{1 n}+b_{1 n} \\ \vdots & & \vdots \\ a_{m 1}+b_{m 1} & \cdots & a_{m n}+b_{m n}\end{array}\right]는 모든 A,BV\boldsymbol{A}, \boldsymbol{B} \in \mathcal{V}에 대해 원소별(elementwise)로 정의된다.
    • 스칼라 곱셈: λA=[λa11λa1nλam1λamn]\lambda \boldsymbol{A}=\left[\begin{array}{ccc}\lambda a_{11} & \cdots & \lambda a_{1 n} \\ \vdots & & \vdots \\ \lambda a_{m 1} & \cdots & \lambda a_{m n}\end{array}\right]는 섹션 2.2에서 정의된 바와 같다. Rm×n\mathbb{R}^{m \times n}Rmn\mathbb{R}^{m n}과 동등하다는 것을 기억하라.
  • V=C\mathcal{V}=\mathbb{C}는 복소수의 표준 덧셈 정의를 따른다.

참고. 다음에서 우리는 벡터 공간 (V,+,)(\mathcal{V},+, \cdot)VV로 표기할 것이다. 이때 ++\cdot은 표준 벡터 덧셈과 스칼라 곱셈이다. 또한, 표기법을 단순화하기 위해 V\mathcal{V}의 벡터에 대해 xV\boldsymbol{x} \in V 표기법을 사용할 것이다.

참고. 벡터 공간 Rn,Rn×1,R1×n\mathbb{R}^{n}, \mathbb{R}^{n \times 1}, \mathbb{R}^{1 \times n}은 벡터를 쓰는 방식에서만 차이가 있다. 다음에서는 Rn\mathbb{R}^{n}Rn×1\mathbb{R}^{n \times 1}을 구분하지 않을 것이며, 이를 통해 nn-튜플을 **열 벡터(column vector)**로 쓸 수 있다.

x=[x1xn]\boldsymbol{x}=\left[\begin{array}{c} x_{1} \\ \vdots \\ x_{n} \end{array}\right]

이는 벡터 공간 연산에 대한 표기법을 단순화한다. 그러나 행렬 곱셈과의 혼동을 피하기 위해 Rn×1\mathbb{R}^{n \times 1}R1×n\mathbb{R}^{1 \times n} (행 벡터)은 구분한다. 기본적으로 x\boldsymbol{x}는 열 벡터를 나타내고, 행 벡터는 x\boldsymbol{x}의 전치(transpose)인 x\boldsymbol{x}^{\top}로 표기한다.

2.4.3 Vector Subspaces

다음으로 vector subspace에 대해 소개한다. 직관적으로 vector subspace는 원래의 vector space에 포함된 집합으로, 이 subspace 내의 원소들에 대해 vector space 연산을 수행할 때 결코 이 subspace를 벗어나지 않는 속성을 가진다. 이러한 의미에서 이들은 "닫혀 있다(closed)"고 말한다. Vector subspace는 머신러닝의 핵심 아이디어이다. 예를 들어, 10장에서는 차원 축소를 위해 vector subspace를 사용하는 방법을 보여준다.

정의 2.10 (Vector Subspace). V=(V,+,)V=(\mathcal{V},+, \cdot)가 vector space이고 UV,U\mathcal{U} \subseteq \mathcal{V}, \mathcal{U} \neq \emptyset라고 하자. 이때 U=(U,+,)U=(\mathcal{U},+, \cdot)VVvector subspace (또는 linear subspace)라고 불리는데, 이는 UUU×U\mathcal{U} \times \mathcal{U}R×U\mathbb{R} \times \mathcal{U}로 제한된 vector space 연산 + 및 \cdot을 가진 vector space이기 때문이다. VV의 subspace UU를 나타내기 위해 UVU \subseteq V라고 쓴다.

만약 UV\mathcal{U} \subseteq \mathcal{V}이고 VV가 vector space라면, UUVV로부터 많은 속성을 자연스럽게 직접 상속받는다. 이는 해당 속성들이 모든 xV\boldsymbol{x} \in \mathcal{V}에 대해 성립하고, 특히 모든 xUV\boldsymbol{x} \in \mathcal{U} \subseteq \mathcal{V}에 대해서도 성립하기 때문이다. 여기에는 Abelian group 속성, 분배성(distributivity), 결합성(associativity) 및 항등원(neutral element)이 포함된다. (U,+,)(\mathcal{U},+, \cdot)VV의 subspace인지 확인하기 위해 다음을 여전히 보여주어야 한다.

  1. U\mathcal{U} \neq \emptyset, 특히: 0U\mathbf{0} \in \mathcal{U}
  2. UU닫힘(Closure): a. 외부 연산에 대하여: λRxU:λxU\forall \lambda \in \mathbb{R} \forall \boldsymbol{x} \in \mathcal{U}: \lambda \boldsymbol{x} \in \mathcal{U}. b. 내부 연산에 대하여: x,yU:x+yU\forall \boldsymbol{x}, \boldsymbol{y} \in \mathcal{U}: \boldsymbol{x}+\boldsymbol{y} \in \mathcal{U}.

Example 2.12 (Vector Subspaces)

몇 가지 예시를 살펴보자:

  • 모든 벡터 공간 VV에 대해, **자명한 부분 공간(trivial subspaces)**은 VV 자체와 {0}\{\mathbf{0}\}이다.
  • 그림 2.6의 예시 DD만이 R2\mathbb{R}^{2}의 부분 공간이다(일반적인 내/외 연산 포함). AACC에서는 **닫힘 속성(closure property)**이 위반되었고, BB0\mathbf{0}을 포함하지 않는다.
  • nn개의 미지수 x=[x1,,xn]\boldsymbol{x}=\left[x_{1}, \ldots, x_{n}\right]^{\top}를 갖는 동차 선형 방정식 시스템 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해 집합은 Rn\mathbb{R}^{n}의 부분 공간이다.
  • 비동차 선형 방정식 시스템 Ax=b,b0\boldsymbol{A} \boldsymbol{x}= \boldsymbol{b}, \boldsymbol{b} \neq \mathbf{0}의 해는 Rn\mathbb{R}^{n}의 부분 공간이 아니다.
  • 임의의 많은 부분 공간들의 **교집합(intersection)**은 그 자체로 부분 공간이다. vector subspace linear subspace

그림 2.6 R2\mathbb{R}^{2}의 모든 부분집합이 부분 공간인 것은 아니다. AACC에서는 닫힘 속성이 위반되었고, BB0\mathbf{0}을 포함하지 않는다. DD만이 부분 공간이다.

비고. 모든 부분 공간 U(Rn,+,)U \subseteq\left(\mathbb{R}^{n},+, \cdot\right)xRn\boldsymbol{x} \in \mathbb{R}^{n}에 대한 동차 선형 방정식 시스템 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해 공간이다.

2.5 Linear Independence

다음으로, 우리는 벡터(벡터 공간의 요소)로 무엇을 할 수 있는지 자세히 살펴볼 것이다. 특히, 우리는 벡터를 서로 더하고 스칼라와 곱할 수 있다. **닫힘 속성(closure property)**은 우리가 동일한 벡터 공간 내의 다른 벡터로 귀결됨을 보장한다. 벡터 공간의 모든 벡터를 서로 더하고 스케일링하여 나타낼 수 있는 벡터 집합을 찾는 것이 가능하다. 이 벡터 집합이 **기저(basis)**이며, 우리는 2.6.1절에서 이를 논의할 것이다. 그 전에, 우리는 **선형 결합(linear combination)**과 **선형 독립(linear independence)**의 개념을 소개해야 한다.

정의 2.11 (선형 결합). 벡터 공간 VV와 유한한 수의 벡터 x1,,xkV\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k} \in V를 고려하자. 그러면, 다음과 같은 형태의 모든 vV\boldsymbol{v} \in V

v=λ1x1++λkxk=i=1kλixiV\boldsymbol{v}=\lambda_{1} \boldsymbol{x}_{1}+\cdots+\lambda_{k} \boldsymbol{x}_{k}=\sum_{i=1}^{k} \lambda_{i} \boldsymbol{x}_{i} \in V

λ1,,λkR\lambda_{1}, \ldots, \lambda_{k} \in \mathbb{R}을 갖는 벡터 x1,,xk\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}의 **선형 결합(linear combination)**이다. 0\mathbf{0}-벡터는 항상 kk개의 벡터 x1,,xk\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}의 선형 결합으로 작성될 수 있는데, 이는 0=i=1k0xi\mathbf{0}=\sum_{i=1}^{k} 0 \boldsymbol{x}_{i}가 항상 참이기 때문이다. 다음에서는, 0\mathbf{0}을 나타내기 위한 벡터 집합의 자명하지 않은(non-trivial) 선형 결합에 관심이 있다. 즉, (2.65)에서 모든 계수 λi\lambda_{i}가 0이 아닌 벡터 x1,,xk\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}의 선형 결합이다.

정의 2.12 (선형 (비)독립). kNk \in \mathbb{N}x1,,xkV\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k} \in V를 갖는 벡터 공간 VV를 고려하자. 만약 적어도 하나의 λi0\lambda_{i} \neq 0인 자명하지 않은 선형 결합이 존재하여 0=i=1kλixi\mathbf{0}=\sum_{i=1}^{k} \lambda_{i} \boldsymbol{x}_{i}를 만족한다면, 벡터 x1,,xk\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}는 **선형 종속(linearly dependent)**이다. 만약 자명한 해만 존재한다면, 즉 λ1==λk=0\lambda_{1}=\ldots=\lambda_{k}=0이라면, 벡터 x1,,xk\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}는 **선형 독립(linearly independent)**이다.

선형 독립은 선형 대수학에서 가장 중요한 개념 중 하나이다. 직관적으로, 선형 독립 벡터 집합은 중복성이 없는(no redundancy) 벡터들로 구성된다. 즉, 그 벡터들 중 어느 하나라도 집합에서 제거하면 무언가를 잃게 된다. 다음 섹션들에서 우리는 이러한 직관을 더욱 형식화할 것이다.

Example 2.13 (Linearly Dependent Vectors)

선형 독립의 개념을 명확히 하는 데 지리적 예시가 도움이 될 수 있다. 케냐 나이로비에 있는 사람이 르완다 키갈리의 위치를 설명하면서 "캄팔라(우간다)까지 북서쪽으로 506km 간 다음 남서쪽으로 374km 가면 키갈리에 도착할 수 있습니다."라고 말할 수 있다. 지리적 좌표계를 2차원 벡터 공간으로 간주할 수 있으므로(고도와 지구의 곡면 무시), 이 정보만으로 키갈리의 위치를 설명하기에 충분하다. 이 사람은 "여기서 서쪽으로 약 751km 떨어져 있습니다."라고 덧붙일 수 있다. 이 마지막 진술은 사실이지만, 앞선 정보가 주어졌을 때 키갈리를 찾는 데는 불필요하다(그림 2.7 참조). 이 예시에서 "북서쪽으로 506km" 벡터(파란색)와 "남서쪽으로 374km" 벡터(보라색)는 선형 독립이다. 이는 남서쪽 벡터를 북서쪽 벡터로 설명할 수 없으며, 그 반대도 마찬가지임을 의미한다. 그러나 세 번째 "서쪽으로 751km" 벡터(검은색)는 다른 두 벡터의 선형 결합이며, 이로 인해 벡터 집합은 선형 종속이 된다. 동등하게, "서쪽으로 751km"와 "남서쪽으로 374km"가 주어졌을 때, 이들을 선형 결합하여 "북서쪽으로 506km"를 얻을 수 있다.

그림 2.7 2차원 공간(평면)에서 선형 종속 벡터의 지리적 예시(방위에 대한 대략적인 근사치 포함).

참고. 다음 속성들은 벡터가 선형 독립인지 여부를 파악하는 데 유용하다:

  • kk개의 벡터는 선형 종속이거나 선형 독립이다. 세 번째 옵션은 없다.

  • 벡터 x1,,xk\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k} 중 적어도 하나가 0\mathbf{0}이면 이들은 선형 종속이다. 두 벡터가 동일한 경우에도 마찬가지이다.

  • 벡터 집합 {x1,,xk:xi0,i=1,,k},k2\left\{\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}: \boldsymbol{x}_{i} \neq \mathbf{0}, i=1, \ldots, k\right\}, k \geqslant 2는 (적어도) 그 중 하나가 다른 벡터들의 선형 결합인 경우에만 선형 종속이다. 특히, 한 벡터가 다른 벡터의 배수, 즉 xi=λxj,λR\boldsymbol{x}_{i}=\lambda \boldsymbol{x}_{j}, \lambda \in \mathbb{R}인 경우, 집합 {x1,,xk:xi0,i=1,,k}\left\{\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}: \boldsymbol{x}_{i} \neq \mathbf{0}, i=1, \ldots, k\right\}는 선형 종속이다.

  • 벡터 x1,,xkV\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k} \in V가 선형 독립인지 확인하는 실용적인 방법은 가우스 소거법을 사용하는 것이다: 모든 벡터를 행렬 A\boldsymbol{A}의 열로 작성하고, 행렬이 **행 사다리꼴 형식(row echelon form)**이 될 때까지 가우스 소거법을 수행한다(여기서는 기약 행 사다리꼴 형식은 불필요하다):

    • **피벗 열(pivot columns)**은 왼쪽에 있는 벡터들과 선형 독립인 벡터들을 나타낸다. 행렬이 구성될 때 벡터들의 순서가 있다는 점에 유의하라.
    • **비피벗 열(non-pivot columns)**은 왼쪽에 있는 피벗 열들의 선형 결합으로 표현될 수 있다. 예를 들어, 행 사다리꼴 형식
    [130002]\left[\begin{array}{lll} 1 & 3 & 0 \\ 0 & 0 & 2 \end{array}\right]

    은 첫 번째와 세 번째 열이 피벗 열임을 알려준다. 두 번째 열은 첫 번째 열의 세 배이므로 비피벗 열이다.

모든 열 벡터는 모든 열이 피벗 열인 경우에만 선형 독립이다. 적어도 하나의 비피벗 열이 있다면, 해당 열들(따라서 해당 벡터들)은 선형 종속이다.

Example 2.14

R4\mathbb{R}^{4}에서 다음 벡터들을 고려해 보자.

x1=[1234],x2=[1102],x3=[1211].\boldsymbol{x}_{1}=\left[\begin{array}{c} 1 \\ 2 \\ -3 \\ 4 \end{array}\right], \quad \boldsymbol{x}_{2}=\left[\begin{array}{l} 1 \\ 1 \\ 0 \\ 2 \end{array}\right], \quad \boldsymbol{x}_{3}=\left[\begin{array}{c} -1 \\ -2 \\ 1 \\ 1 \end{array}\right] .

이 벡터들이 **선형 종속(linearly dependent)**인지 확인하기 위해 일반적인 접근 방식을 따라 다음 방정식을 푼다.

λ1x1+λ2x2+λ3x3=λ1[1234]+λ2[1102]+λ3[1211]=0\lambda_{1} \boldsymbol{x}_{1}+\lambda_{2} \boldsymbol{x}_{2}+\lambda_{3} \boldsymbol{x}_{3}=\lambda_{1}\left[\begin{array}{c} 1 \\ 2 \\ -3 \\ 4 \end{array}\right]+\lambda_{2}\left[\begin{array}{l} 1 \\ 1 \\ 0 \\ 2 \end{array}\right]+\lambda_{3}\left[\begin{array}{c} -1 \\ -2 \\ 1 \\ 1 \end{array}\right]=\mathbf{0}

여기서 λ1,,λ3\lambda_{1}, \ldots, \lambda_{3} 값을 찾는다. 벡터 xi,i=1,2,3\boldsymbol{x}_{i}, i=1,2,3를 행렬의 열로 쓰고, **피벗 열(pivot columns)**을 식별할 때까지 **기본 행 연산(elementary row operations)**을 적용한다.

[111212301421][111010001000].\left[\begin{array}{ccc} 1 & 1 & -1 \\ 2 & 1 & -2 \\ -3 & 0 & 1 \\ 4 & 2 & 1 \end{array}\right] \quad \rightsquigarrow \cdots \rightsquigarrow\left[\begin{array}{ccc} 1 & 1 & -1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \end{array}\right] .

여기서 행렬의 모든 열이 피벗 열이다. 따라서 **자명하지 않은 해(non-trivial solution)**는 없으며, 방정식 시스템을 풀기 위해서는 λ1=0,λ2=0,λ3=0\lambda_{1}=0, \lambda_{2}=0, \lambda_{3}=0이 필요하다. 그러므로 벡터 x1,x2,x3\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \boldsymbol{x}_{3}는 **선형 독립(linearly independent)**이다.

참고. kk개의 선형 독립 벡터 b1,,bk\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{k}를 갖는 벡터 공간 VVmm개의 선형 결합을 고려해 보자.

x1=i=1kλi1bixm=i=1kλimbi\begin{aligned} \boldsymbol{x}_{1} & =\sum_{i=1}^{k} \lambda_{i 1} \boldsymbol{b}_{i} \\ & \vdots \\ \boldsymbol{x}_{m} & =\sum_{i=1}^{k} \lambda_{i m} \boldsymbol{b}_{i} \end{aligned}

선형 독립 벡터 b1,,bk\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{k}를 열로 하는 행렬을 B=[b1,,bk]\boldsymbol{B}=\left[\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{k}\right]로 정의하면, 다음을 더 간결한 형태로 쓸 수 있다.

xj=Bλj,λj=[λ1jλkj],j=1,,m\boldsymbol{x}_{j}=\boldsymbol{B} \boldsymbol{\lambda}_{j}, \quad \boldsymbol{\lambda}_{j}=\left[\begin{array}{c} \lambda_{1 j} \\ \vdots \\ \lambda_{k j} \end{array}\right], \quad j=1, \ldots, m

우리는 x1,,xm\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{m}이 선형 독립인지 테스트하고자 한다. 이를 위해 j=1mψjxj=0\sum_{j=1}^{m} \psi_{j} \boldsymbol{x}_{j}=\mathbf{0}일 때를 테스트하는 일반적인 접근 방식을 따른다. (2.71)을 사용하면 다음을 얻는다.

j=1mψjxj=j=1mψjBλj=Bj=1mψjλj\sum_{j=1}^{m} \psi_{j} \boldsymbol{x}_{j}=\sum_{j=1}^{m} \psi_{j} \boldsymbol{B} \boldsymbol{\lambda}_{j}=\boldsymbol{B} \sum_{j=1}^{m} \psi_{j} \boldsymbol{\lambda}_{j}

이는 {x1,,xm}\left\{\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{m}\right\}이 선형 독립인 경우에만 열 벡터 {λ1,,λm}\left\{\boldsymbol{\lambda}_{1}, \ldots, \boldsymbol{\lambda}_{m}\right\}이 선형 독립임을 의미한다.

참고. 벡터 공간 VV에서 kk개의 벡터 x1,,xk\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}mm개의 선형 결합은 m>km>k인 경우 선형 종속이다.

Example 2.15

선형 독립 벡터 b1,b2,b3,b4Rn\boldsymbol{b}_{1}, \boldsymbol{b}_{2}, \boldsymbol{b}_{3}, \boldsymbol{b}_{4} \in \mathbb{R}^{n} 집합과 다음 식이 주어졌다고 가정해 보자.

x1=b12b2+b3x2=4b12b2x3=2b1+3b2b4x4=17b110b2+11b3+4b4b4\begin{aligned} & \boldsymbol{x}_{1}=\boldsymbol{b}_{1}-2 \boldsymbol{b}_{2}+\boldsymbol{b}_{3} \\ & \boldsymbol{x}_{2}=-4 \boldsymbol{b}_{1}-2 \boldsymbol{b}_{2} \\ & \boldsymbol{x}_{3}=2 \boldsymbol{b}_{1}+3 \boldsymbol{b}_{2}-\boldsymbol{b}_{4} \\ & \boldsymbol{x}_{4}=17 \boldsymbol{b}_{1}-10 \boldsymbol{b}_{2}+11 \boldsymbol{b}_{3}+4 \boldsymbol{b}_{4} \\ & \boldsymbol{b}_{4} \end{aligned}

벡터 x1,,x4Rn\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{4} \in \mathbb{R}^{n}는 선형 독립일까? 이 질문에 답하기 위해, 다음 열 벡터들이

{[1211],[4204],[2313],[1710111]}\left\{\left[\begin{array}{c} 1 \\ -2 \\ 1 \\ -1 \end{array}\right],\left[\begin{array}{c} -4 \\ -2 \\ 0 \\ 4 \end{array}\right],\left[\begin{array}{c} 2 \\ 3 \\ -1 \\ -3 \end{array}\right],\left[\begin{array}{c} 17 \\ -10 \\ 11 \\ 1 \end{array}\right]\right\}

선형 독립인지 조사한다. 계수 행렬이 다음과 같은 해당 선형 방정식 시스템의 **기약 행 사다리꼴(reduced row-echelon form)**은

A=[1421722310101111431]\boldsymbol{A}=\left[\begin{array}{cccc} 1 & -4 & 2 & 17 \\ -2 & -2 & 3 & -10 \\ 1 & 0 & -1 & 11 \\ -1 & 4 & -3 & 1 \end{array}\right]

다음과 같이 주어진다.

[100701015001180000]\left[\begin{array}{cccc} 1 & 0 & 0 & -7 \\ 0 & 1 & 0 & -15 \\ 0 & 0 & 1 & -18 \\ 0 & 0 & 0 & 0 \end{array}\right]

해당 선형 방정식 시스템이 자명하지 않게(non-trivially) 해를 가짐을 알 수 있다. 마지막 열은 **피벗 열(pivot column)**이 아니며, x4=7x115x218x3\boldsymbol{x}_{4}=-7 \boldsymbol{x}_{1}-15 \boldsymbol{x}_{2}-18 \boldsymbol{x}_{3}이다. 따라서 x4\boldsymbol{x}_{4}x1,,x3\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{3}의 선형 결합으로 표현될 수 있으므로, x1,,x4\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{4}는 **선형 종속(linearly dependent)**이다.

2.6 Basis and Rank

벡터 공간 VV에서 우리는 VV 내의 어떤 벡터 v\boldsymbol{v}라도 A\mathcal{A} 내의 벡터들의 **선형 결합(linear combination)**으로 얻을 수 있는 속성을 가진 벡터 집합 A\mathcal{A}에 특히 관심을 가진다. 이 벡터들은 특별한 벡터들이며, 다음에서 우리는 이들을 특징지을 것이다.

2.6.1 Generating Set and Basis

정의 2.13 (생성 집합과 Span). 벡터 공간 V=(V,+,)V= (\mathcal{V},+, \cdot)와 벡터 집합 A={x1,,xk}V\mathcal{A}=\left\{\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}\right\} \subseteq \mathcal{V}를 고려하자. 만약 모든 벡터 vV\boldsymbol{v} \in \mathcal{V}x1,,xk\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}의 **선형 결합(linear combination)**으로 표현될 수 있다면, A\mathcal{A}VV의 **생성 집합(generating set)**이라고 한다. A\mathcal{A}에 있는 벡터들의 모든 선형 결합의 집합을 A\mathcal{A}span이라고 한다. 만약 A\mathcal{A}가 벡터 공간 VV를 span한다면, 우리는 V=span[A]V=\operatorname{span}[\mathcal{A}] 또는 V=span[x1,,xk]V=\operatorname{span}\left[\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{k}\right]라고 쓴다.

생성 집합은 벡터 (부분) 공간을 span하는 벡터들의 집합이다. 즉, 모든 벡터는 생성 집합에 있는 벡터들의 선형 결합으로 표현될 수 있다. 이제 우리는 벡터 (부분) 공간을 span하는 가장 작은 생성 집합을 더 구체적으로 특성화할 것이다.

정의 2.14 (기저). 벡터 공간 V=(V,+,)V=(\mathcal{V},+, \cdot)AV\mathcal{A} \subseteq \mathcal{V}를 고려하자. VV의 생성 집합 A\mathcal{A}minimal이라는 것은 VV를 span하는 더 작은 집합 A~AV\tilde{\mathcal{A}} \subsetneq \mathcal{A} \subseteq \mathcal{V}가 존재하지 않는다는 의미이다. VV의 모든 **선형 독립(linearly independent)**인 생성 집합은 minimal이며, 이를 VV의 **기저(basis)**라고 한다.

V=(V,+,)V=(\mathcal{V},+, \cdot)를 벡터 공간이라고 하고 BV,B\mathcal{B} \subseteq \mathcal{V}, \mathcal{B} \neq \emptyset라고 하자. 그러면 다음 진술들은 동등하다:

  • B\mathcal{B}VV의 기저이다.
  • B\mathcal{B}는 minimal 생성 집합이다.
  • B\mathcal{B}VV에서 maximal 선형 독립 집합이다. 즉, 이 집합에 다른 어떤 벡터를 추가하면 선형 종속이 된다.
  • VV의 모든 벡터 xV\boldsymbol{x} \in VB\mathcal{B}의 벡터들의 선형 결합이며, 모든 선형 결합은 유일하다. 즉,
x=i=1kλibi=i=1kψibi\boldsymbol{x}=\sum_{i=1}^{k} \lambda_{i} \boldsymbol{b}_{i}=\sum_{i=1}^{k} \psi_{i} \boldsymbol{b}_{i}

이고 λi,ψiR,biB\lambda_{i}, \psi_{i} \in \mathbb{R}, \boldsymbol{b}_{i} \in \mathcal{B}일 때, λi=ψi,i=1,,k\lambda_{i}=\psi_{i}, i=1, \ldots, k가 성립한다.

Example 2.16

  • R3\mathbb{R}^{3}에서 canonical/standard basis는 다음과 같다:
B={[100],[010],[001]}.\mathcal{B}=\left\{\left[\begin{array}{l} 1 \\ 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 0 \\ 1 \end{array}\right]\right\} .
  • R3\mathbb{R}^{3}의 다른 basis들은 다음과 같다:
B1={[100],[110],[111]},B2={[0.50.80.4],[1.80.30.3],[2.21.33.5]}.\mathcal{B}_{1}=\left\{\left[\begin{array}{l} 1 \\ 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 1 \\ 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right]\right\}, \mathcal{B}_{2}=\left\{\left[\begin{array}{l} 0.5 \\ 0.8 \\ 0.4 \end{array}\right],\left[\begin{array}{l} 1.8 \\ 0.3 \\ 0.3 \end{array}\right],\left[\begin{array}{c} -2.2 \\ -1.3 \\ 3.5 \end{array}\right]\right\} .
  • 다음 집합은
A={[1234],[2102],[1104]}\mathcal{A}=\left\{\left[\begin{array}{l} 1 \\ 2 \\ 3 \\ 4 \end{array}\right],\left[\begin{array}{c} 2 \\ -1 \\ 0 \\ 2 \end{array}\right],\left[\begin{array}{c} 1 \\ 1 \\ 0 \\ -4 \end{array}\right]\right\}

**선형 독립(linearly independent)**이지만, R4\mathbb{R}^{4}의 **생성 집합(generating set)**은 아니며 (따라서 basis도 아니다): 예를 들어, 벡터 [1,0,0,0][1,0,0,0]^{\top}A\mathcal{A}의 원소들의 **선형 결합(linear combination)**으로 얻을 수 없다.

참고. 모든 벡터 공간(vector space) VVbasis B\mathcal{B}를 가진다. 앞선 예시들은 벡터 공간 VV에 여러 basis가 있을 수 있음을 보여준다. 즉, 유일한 basis는 존재하지 않는다. 그러나 모든 basis는 동일한 수의 원소, 즉 basis vector를 가진다.

우리는 유한 차원 벡터 공간(finite-dimensional vector spaces) VV만을 고려한다. 이 경우, VV의 **차원(dimension)**은 VVbasis vector의 수이며, dim(V)\operatorname{dim}(V)로 표기한다. 만약 UVU \subseteq VVV의 **부분 공간(subspace)**이라면, dim(U)dim(V)\operatorname{dim}(U) \leqslant \operatorname{dim}(V)이고 dim(U)=dim(V)\operatorname{dim}(U) = \operatorname{dim}(V)인 경우에만 U=VU=V이다. 직관적으로, 벡터 공간의 차원은 이 벡터 공간 내의 **독립적인 방향(independent directions)**의 수로 생각할 수 있다.

basis는 **최소 생성 집합(minimal generating set)**이자 **최대 선형 독립 집합(maximal linearly independent set)**이다.

참고. 벡터 공간의 차원이 반드시 벡터 내 원소의 수와 일치하는 것은 아니다. 예를 들어, 벡터 공간 V=span[[01]V=\operatorname{span}\left[\left[\begin{array}{l}0 \\ 1\end{array}\right]\right.basis vector가 두 개의 원소를 가지고 있음에도 불구하고 **1차원(one-dimensional)**이다.

참고. 부분 공간 U=span[x1,,xm]RnU=\operatorname{span}\left[\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{m}\right] \subseteq \mathbb{R}^{n}basis는 다음 단계를 수행하여 찾을 수 있다:

  1. **생성 벡터(spanning vectors)**를 행렬 A\boldsymbol{A}의 열로 작성한다.
  2. A\boldsymbol{A}의 **행 사다리꼴(row-echelon form)**을 결정한다.
  3. **피벗 열(pivot columns)**과 관련된 생성 벡터들이 UUbasis가 된다.

Example 2.17 (Determining a Basis)

벡터 x1=[12111],x2=[21122],x3=[34353],x4=[18561]R5\boldsymbol{x}_{1}=\left[\begin{array}{c}1 \\ 2 \\ -1 \\ -1 \\ -1\end{array}\right], \quad \boldsymbol{x}_{2}=\left[\begin{array}{c}2 \\ -1 \\ 1 \\ 2 \\ -2\end{array}\right], \quad \boldsymbol{x}_{3}=\left[\begin{array}{c}3 \\ -4 \\ 3 \\ 5 \\ -3\end{array}\right], \quad \boldsymbol{x}_{4}=\left[\begin{array}{c}-1 \\ 8 \\ -5 \\ -6 \\ 1\end{array}\right] \in \mathbb{R}^{5}에 의해 span되는 벡터 부분 공간 UR5U \subseteq \mathbb{R}^{5}에 대해, 우리는 어떤 벡터 x1,,x4\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{4}UU의 **기저(basis)**가 되는지 알아보고자 한다. 이를 위해 x1,,x4\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{4}가 **선형 독립(linearly independent)**인지 확인해야 한다. 따라서 우리는 다음을 풀어야 한다.

i=14λixi=0,\sum_{i=1}^{4} \lambda_{i} \boldsymbol{x}_{i}=\mathbf{0},

이는 다음 행렬을 갖는 **동차 연립 방정식(homogeneous system of equations)**으로 이어진다.

[x1,x2,x3,x4]=[12312148113512561231]\left[\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \boldsymbol{x}_{3}, \boldsymbol{x}_{4}\right]=\left[\begin{array}{cccc} 1 & 2 & 3 & -1 \\ 2 & -1 & -4 & 8 \\ -1 & 1 & 3 & -5 \\ -1 & 2 & 5 & -6 \\ -1 & -2 & -3 & 1 \end{array}\right]

선형 방정식 시스템의 기본 변환 규칙을 사용하여 **행 사다리꼴(row-echelon form)**을 얻는다.

[12312148113512561231][12310122000100000000].\left[\begin{array}{rrrr} 1 & 2 & 3 & -1 \\ 2 & -1 & -4 & 8 \\ -1 & 1 & 3 & -5 \\ -1 & 2 & 5 & -6 \\ -1 & -2 & -3 & 1 \end{array}\right] \quad \rightsquigarrow \cdots \rightsquigarrow\left[\begin{array}{rrrr} 1 & 2 & 3 & -1 \\ 0 & 1 & 2 & -2 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array}\right] .

**피벗 열(pivot columns)**은 어떤 벡터 집합이 선형 독립인지 나타내므로, 행 사다리꼴에서 x1,x2,x4\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \boldsymbol{x}_{4}가 선형 독립임을 알 수 있다 (선형 방정식 시스템 λ1x1+λ2x2+λ4x4=0\lambda_{1} \boldsymbol{x}_{1}+\lambda_{2} \boldsymbol{x}_{2}+\lambda_{4} \boldsymbol{x}_{4}=\mathbf{0}λ1=λ2=λ4=0\lambda_{1}=\lambda_{2}=\lambda_{4}=0으로만 풀 수 있기 때문이다). 따라서 {x1,x2,x4}\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \boldsymbol{x}_{4}\right\}UU의 기저이다.

2.6.2 Rank

행렬 ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}의 선형 독립적인 열의 개수는 선형 독립적인 행의 개수와 같으며, 이를 A\boldsymbol{A}rank라고 하고 rk(A)\operatorname{rk}(\boldsymbol{A})로 표기한다. 참고. 행렬의 rank는 몇 가지 중요한 속성을 갖는다:

  • rk(A)=rk(A)\operatorname{rk}(\boldsymbol{A})=\operatorname{rk}\left(\boldsymbol{A}^{\top}\right), 즉 열 rank는 행 rank와 같다.
  • ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}의 열들은 dim(U)=rk(A)\operatorname{dim}(U)= \operatorname{rk}(\boldsymbol{A})인 부분 공간 URmU \subseteq \mathbb{R}^{m}을 생성한다. 나중에 이 부분 공간을 image 또는 range라고 부를 것이다. UU의 기저는 A\boldsymbol{A}Gaussian elimination을 적용하여 pivot column을 식별함으로써 찾을 수 있다.
  • ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}의 행들은 dim(W)=rk(A)\operatorname{dim}(W)= \operatorname{rk}(\boldsymbol{A})인 부분 공간 WRnW \subseteq \mathbb{R}^{n}을 생성한다. WW의 기저는 A\boldsymbol{A}^{\top}에 Gaussian elimination을 적용하여 찾을 수 있다.
  • 모든 ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}에 대해 A\boldsymbol{A}가 **regular (invertible)**인 것은 rk(A)=n\operatorname{rk}(\boldsymbol{A})=n인 경우에만 성립한다.
  • 모든 ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}와 모든 bRm\boldsymbol{b} \in \mathbb{R}^{m}에 대해 선형 방정식 시스템 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}가 해를 가질 수 있는 것은 rk(A)=rk(Ab)\operatorname{rk}(\boldsymbol{A})=\operatorname{rk}(\boldsymbol{A} \mid \boldsymbol{b})인 경우에만 성립하며, 여기서 Ab\boldsymbol{A} \mid \boldsymbol{b}augmented system을 나타낸다.
  • ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}에 대해 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해 공간은 nrk(A)n-\operatorname{rk}(\boldsymbol{A}) 차원을 갖는다. 나중에 이 부분 공간을 kernel 또는 null space라고 부를 것이다.
  • 행렬 ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}full rank를 갖는다고 하는데, 이는 해당 행렬의 rank가 동일한 차원의 행렬에 대해 가능한 가장 큰 rank와 같을 때를 의미한다. 즉, full-rank 행렬의 rank는 행의 개수와 열의 개수 중 더 작은 값과 같으며, rk(A)=min(m,n)\operatorname{rk}(\boldsymbol{A})=\min (m, n)이다. 행렬이 full rank를 갖지 않으면 rank deficient라고 한다.
  • rk(A)=rk(A)\operatorname{rk}(\boldsymbol{A})=\operatorname{rk}\left(\boldsymbol{A}^{\top}\right), 즉 열 rank는 행 rank와 같다.
  • A\boldsymbol{A}의 행들은 full rank를 갖는다.

Example 2.18 (Rank)

  • A=[101011000]\boldsymbol{A}=\left[\begin{array}{lll}1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 0\end{array}\right]. A\boldsymbol{A}는 두 개의 선형 독립적인 행/열을 가지므로 rk(A)=2\operatorname{rk}(\boldsymbol{A})=2이다. linear mapping vector space homomorphism linear transformation injective surjective bijective
  • A=[121231350]\boldsymbol{A}=\left[\begin{array}{ccc}1 & 2 & 1 \\ -2 & -3 & 1 \\ 3 & 5 & 0\end{array}\right].

랭크를 결정하기 위해 **가우스 소거법(Gaussian elimination)**을 사용한다:

[121231350][121013000].\left[\begin{array}{ccc} 1 & 2 & 1 \\ -2 & -3 & 1 \\ 3 & 5 & 0 \end{array}\right] \quad \rightsquigarrow \cdots \rightsquigarrow\left[\begin{array}{lll} 1 & 2 & 1 \\ 0 & 1 & 3 \\ 0 & 0 & 0 \end{array}\right] .

여기서 선형 독립적인 행과 열의 개수가 2임을 알 수 있으며, 따라서 rk(A)=2\operatorname{rk}(\boldsymbol{A})=2이다.

2.7 Linear Mappings

다음으로, 우리는 벡터 공간의 구조를 보존하는 매핑을 연구할 것이며, 이를 통해 **좌표(coordinate)**의 개념을 정의할 수 있다. 이 장의 시작 부분에서 우리는 벡터가 서로 더하고 스칼라를 곱해도 여전히 벡터가 되는 객체라고 말했다. 우리는 매핑을 적용할 때 이 속성을 보존하고자 한다. 두 실수 벡터 공간 V,WV, W를 고려하자. 매핑 Φ:VW\Phi: V \rightarrow W가 벡터 공간의 구조를 보존한다면 다음이 성립한다:

Φ(x+y)=Φ(x)+Φ(y)Φ(λx)=λΦ(x)\begin{aligned} \Phi(\boldsymbol{x}+\boldsymbol{y}) & =\Phi(\boldsymbol{x})+\Phi(\boldsymbol{y}) \\ \Phi(\lambda \boldsymbol{x}) & =\lambda \Phi(\boldsymbol{x}) \end{aligned}

모든 x,yV\boldsymbol{x}, \boldsymbol{y} \in VλR\lambda \in \mathbb{R}에 대해. 이를 다음 정의로 요약할 수 있다:

정의 2.15 (Linear Mapping). 벡터 공간 V,WV, W에 대해, 매핑 Φ:VW\Phi: V \rightarrow W는 다음이 성립할 때 선형 매핑(linear mapping) (또는 벡터 공간 동형 사상/선형 변환)이라고 불린다:

x,yVλ,ψR:Φ(λx+ψy)=λΦ(x)+ψΦ(y)\forall \boldsymbol{x}, \boldsymbol{y} \in V \forall \lambda, \psi \in \mathbb{R}: \Phi(\lambda \boldsymbol{x}+\psi \boldsymbol{y})=\lambda \Phi(\boldsymbol{x})+\psi \Phi(\boldsymbol{y})

선형 매핑은 행렬로 표현될 수 있음이 밝혀졌다 (섹션 2.7.1). 우리는 또한 벡터 집합을 행렬의 열로 모을 수 있다는 것을 상기하자. 행렬을 다룰 때, 우리는 행렬이 무엇을 나타내는지 명심해야 한다: 선형 매핑인지 아니면 벡터의 모음인지. 선형 매핑에 대해서는 4장에서 더 자세히 다룰 것이다. 계속하기 전에, 우리는 특별한 매핑들을 간략하게 소개할 것이다. 정의 2.16 (Injective, Surjective, Bijective). 매핑 Φ:VW\Phi: \mathcal{V} \rightarrow \mathcal{W}를 고려하자. 여기서 V,W\mathcal{V}, \mathcal{W}는 임의의 집합이 될 수 있다. 이때 Φ\Phi는 다음과 같이 불린다:

  • Injective (단사) 만약 x,yV:Φ(x)=Φ(y)x=y\forall \boldsymbol{x}, \boldsymbol{y} \in \mathcal{V}: \Phi(\boldsymbol{x})=\Phi(\boldsymbol{y}) \Longrightarrow \boldsymbol{x}=\boldsymbol{y} 이면.
  • Surjective (전사) 만약 Φ(V)=W\Phi(\mathcal{V})=\mathcal{W} 이면.
  • Bijective (전단사) 만약 injective 이고 surjective 이면.

만약 Φ\Phi가 surjective 이면, W\mathcal{W}의 모든 요소는 Φ\Phi를 사용하여 V\mathcal{V}로부터 "도달"될 수 있다. bijective Φ\Phi는 "되돌릴 수 있다", 즉 ΨΦ(x)=x\Psi \circ \Phi(\boldsymbol{x})=\boldsymbol{x}가 되도록 하는 매핑 Ψ:WV\Psi: \mathcal{W} \rightarrow \mathcal{V}가 존재한다. 이 매핑 Ψ\PsiΦ\Phi의 **역함수(inverse)**라고 불리며 일반적으로 Φ1\Phi^{-1}로 표기된다.

이러한 정의들을 바탕으로, 벡터 공간 VVWW 사이의 선형 매핑의 다음 특수한 경우들을 소개한다:

  • Isomorphism (동형 사상): Φ:VW\Phi: V \rightarrow W가 선형이고 bijective.
  • Endomorphism (자기 사상): Φ:VV\Phi: V \rightarrow V가 선형.
  • Automorphism (자기 동형 사상): Φ:VV\Phi: V \rightarrow V가 선형이고 bijective.
  • 우리는 idV:VV,xx\operatorname{id}_{V}: V \rightarrow V, \boldsymbol{x} \mapsto \boldsymbol{x}VV에서의 항등 매핑(identity mapping) 또는 **항등 자기 동형 사상(identity automorphism)**으로 정의한다.

Example 2.19 (Homomorphism)

매핑 Φ:R2C,Φ(x)=x1+ix2\Phi: \mathbb{R}^{2} \rightarrow \mathbb{C}, \Phi(\boldsymbol{x})=x_{1}+i x_{2}homomorphism이다:

Φ([x1x2]+[y1y2])=(x1+y1)+i(x2+y2)=x1+ix2+y1+iy2=Φ([x1x2])+Φ([y1y2])Φ(λ[x1x2])=λx1+λix2=λ(x1+ix2)=λΦ([x1x2])\begin{aligned} \Phi\left(\left[\begin{array}{l} x_{1} \\ x_{2} \end{array}\right]+\left[\begin{array}{l} y_{1} \\ y_{2} \end{array}\right]\right) & =\left(x_{1}+y_{1}\right)+i\left(x_{2}+y_{2}\right)=x_{1}+i x_{2}+y_{1}+i y_{2} \\ & =\Phi\left(\left[\begin{array}{l} x_{1} \\ x_{2} \end{array}\right]\right)+\Phi\left(\left[\begin{array}{l} y_{1} \\ y_{2} \end{array}\right]\right) \\ \Phi\left(\lambda\left[\begin{array}{l} x_{1} \\ x_{2} \end{array}\right]\right) & =\lambda x_{1}+\lambda i x_{2}=\lambda\left(x_{1}+i x_{2}\right)=\lambda \Phi\left(\left[\begin{array}{l} x_{1} \\ x_{2} \end{array}\right]\right) \end{aligned}

이는 복소수가 R2\mathbb{R}^{2}의 튜플로 표현될 수 있는 이유를 정당화한다. R2\mathbb{R}^{2}의 튜플의 원소별 덧셈을 복소수 집합의 해당 덧셈으로 변환하는 전단사 선형 매핑이 존재하기 때문이다. 우리는 선형성만 보였을 뿐, 전단사는 보이지 않았다는 점에 유의하라.

정리 2.17 (Axler (2015)의 정리 3.59). 유한 차원 벡터 공간 VVWWdim(V)=dim(W)\operatorname{dim}(V)=\operatorname{dim}(W)인 경우에만 isomorphic이다.

정리 2.17은 동일한 차원의 두 벡터 공간 사이에 선형적이고 전단사적인 매핑이 존재한다고 말한다. 직관적으로 이는 동일한 차원의 벡터 공간은 어떤 손실도 없이 서로 변환될 수 있으므로 본질적으로 동일한 것임을 의미한다.

정리 2.17은 또한 Rm×n\mathbb{R}^{m \times n}(m×nm \times n 행렬의 벡터 공간)과 Rmn\mathbb{R}^{m n}(길이길이 m n인벡터의벡터공간)을동일하게취급할수있는정당성을제공한다.이들의차원은인 벡터의 벡터 공간)을 동일하게 취급할 수 있는 정당성을 제공한다. 이들의 차원은 m n이며,하나를다른것으로변환하는선형적이고전단사적인매핑이존재하기때문이다.비고.벡터공간이며, 하나를 다른 것으로 변환하는 선형적이고 전단사적인 매핑이 존재하기 때문이다. 비고. 벡터 공간 V, W, X$를 고려하자. 그러면:

  • 선형 매핑 Φ:VW\Phi: V \rightarrow WΨ:WX\Psi: W \rightarrow X에 대해, 매핑 ΨΦ:VX\Psi \circ \Phi: V \rightarrow X도 선형이다.
  • Φ:VW\Phi: V \rightarrow Wisomorphism이면, Φ1:WV\Phi^{-1}: W \rightarrow Visomorphism이다. isomorphism endomorphism automorphism identity mapping identity automorphism ordered basis

Figure 2.8 두 개의 기저 벡터 집합으로 정의된 두 개의 다른 좌표계. 벡터 x\boldsymbol{x}는 어떤 좌표계를 선택하느냐에 따라 다른 좌표 표현을 갖는다.

  • Φ:VW,Ψ:VW\Phi: V \rightarrow W, \Psi: V \rightarrow W가 선형이면, Φ+Ψ\Phi+\PsiλΦ,λR\lambda \Phi, \lambda \in \mathbb{R}도 선형이다.

2.7.1 Matrix Representation of Linear Mappings

모든 nn-차원 벡터 공간은 Rn\mathbb{R}^{n}과 동형이다(정리 2.17). 우리는 nn-차원 벡터 공간 VV의 기저 {b1,,bn}\left\{\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right\}를 고려한다. 다음에서는 기저 벡터의 순서가 중요하므로,

B=(b1,,bn)B=\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right)

라고 쓰고 이 nn-튜플을 VV의 **순서 기저(ordered basis)**라고 부른다.

비고 (표기법). 표기법이 다소 까다로워지는 시점이므로, 여기서 일부 내용을 요약한다. B=(b1,,bn)B=\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right)는 순서 기저이고, B={b1,,bn}\mathcal{B}=\left\{\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right\}는 (순서가 없는) 기저이며, B=[b1,,bn]\boldsymbol{B}=\left[\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right]는 열이 벡터 b1,,bn\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}인 행렬이다.

정의 2.18 (좌표). 벡터 공간 VVVV의 순서 기저 B=(b1,,bn)B=\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right)를 고려한다. 임의의 xV\boldsymbol{x} \in V에 대해 우리는 BB에 대한 x\boldsymbol{x}의 유일한 표현(선형 결합)을 얻는다.

x=α1b1++αnbn\boldsymbol{x}=\alpha_{1} \boldsymbol{b}_{1}+\ldots+\alpha_{n} \boldsymbol{b}_{n}

이때 α1,,αn\alpha_{1}, \ldots, \alpha_{n}BB에 대한 x\boldsymbol{x}의 **좌표(coordinates)**이며, 벡터

α=[α1αn]Rn\boldsymbol{\alpha}=\left[\begin{array}{c} \alpha_{1} \\ \vdots \\ \alpha_{n} \end{array}\right] \in \mathbb{R}^{n}

는 순서 기저 BB에 대한 x\boldsymbol{x}좌표 벡터(coordinate vector) 또는 **좌표 표현(coordinate representation)**이다.

기저는 효과적으로 **좌표계(coordinate system)**를 정의한다. 우리는 정규 기저 벡터 e1,e2\boldsymbol{e}_{1}, \boldsymbol{e}_{2}에 의해 생성되는 2차원 **데카르트 좌표계(Cartesian coordinate system)**에 익숙하다. 이 좌표계에서 R2\mathbb{R}^{2}의 벡터 x\boldsymbol{x}x\boldsymbol{x}를 얻기 위해 e1\boldsymbol{e}_{1}e2\boldsymbol{e}_{2}를 어떻게 선형 결합해야 하는지를 알려주는 표현을 갖는다. 그러나 R2\mathbb{R}^{2}의 모든 기저는 유효한 좌표계를 정의하며, 이전의 동일한 벡터 x\boldsymbol{x}(b1,b2)\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right) 기저에서 다른 좌표 표현을 가질 수 있다. 그림 2.8에서 표준 기저 (e1,e2)\left(\boldsymbol{e}_{1}, \boldsymbol{e}_{2}\right)에 대한 x\boldsymbol{x}의 좌표는 [2,2][2,2]^{\top}이다. 그러나 기저 (b1,b2)\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right)에 대해서는 동일한 벡터 x\boldsymbol{x}[1.09,0.72][1.09,0.72]^{\top}로 표현된다. 즉, x=1.09b1+0.72b2\boldsymbol{x}=1.09 \boldsymbol{b}_{1}+0.72 \boldsymbol{b}_{2}이다. 다음 섹션에서는 이 표현을 얻는 방법을 알아볼 것이다.

Example 2.20

R2\mathbb{R}^{2}의 표준 기저(e1,e2\boldsymbol{e}_{1}, \boldsymbol{e}_{2})에 대한 좌표가 [2,3][2,3]^{\top}인 기하학적 벡터 xR2\boldsymbol{x} \in \mathbb{R}^{2}를 살펴보자. 이는 x=2e1+3e2\boldsymbol{x}=2 \boldsymbol{e}_{1}+3 \boldsymbol{e}_{2}로 쓸 수 있음을 의미한다. 그러나 이 벡터를 표현하기 위해 반드시 표준 기저를 선택할 필요는 없다. 기저 벡터 b1=[1,1],b2=[1,1]\boldsymbol{b}_{1}=[1,-1]^{\top}, \boldsymbol{b}_{2}=[1,1]^{\top}를 사용하면 동일한 벡터를 (b1,b2)\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right)에 대해 12[1,5]\frac{1}{2}[-1,5]^{\top} 좌표로 표현할 수 있다(그림 2.9 참조).

참고. nn차원 벡터 공간 VVVV의 순서 기저 BB에 대해, 매핑 Φ:RnV,Φ(ei)=bi,i=1,,n\Phi: \mathbb{R}^{n} \rightarrow V, \Phi\left(\boldsymbol{e}_{i}\right)=\boldsymbol{b}_{i}, i=1, \ldots, n는 선형이다(그리고 정리 2.17에 따라 동형 사상이다). 여기서 (e1,,en\boldsymbol{e}_{1}, \ldots, \boldsymbol{e}_{n})은 Rn\mathbb{R}^{n}의 표준 기저이다.

이제 행렬과 유한 차원 벡터 공간 사이의 선형 매핑 간의 명시적인 연결을 만들 준비가 되었다.

정의 2.19 (변환 행렬). 해당 (순서) 기저 B=(b1,,bn)B=\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right)C=(c1,,cm)C=\left(\boldsymbol{c}_{1}, \ldots, \boldsymbol{c}_{m}\right)를 갖는 벡터 공간 V,WV, W를 고려한다. 또한, 선형 매핑 Φ:VW\Phi: V \rightarrow W를 고려한다. j{1,,n}j \in\{1, \ldots, n\}에 대해,

Φ(bj)=α1jc1++αmjcm=i=1mαijci\Phi\left(\boldsymbol{b}_{j}\right)=\alpha_{1 j} \boldsymbol{c}_{1}+\cdots+\alpha_{m j} \boldsymbol{c}_{m}=\sum_{i=1}^{m} \alpha_{i j} \boldsymbol{c}_{i}

CC에 대한 Φ(bj)\Phi\left(\boldsymbol{b}_{j}\right)의 유일한 표현이다. 이때, 요소가 다음과 같이 주어지는 m×nm \times n-행렬 AΦ\boldsymbol{A}_{\Phi}

AΦ(i,j)=αijA_{\Phi}(i, j)=\alpha_{i j}

Φ\Phi변환 행렬(transformation matrix)이라고 부른다(VV의 순서 기저 BBWW의 순서 기저 CC에 대해).

WW의 순서 기저 CC에 대한 Φ(bj)\Phi\left(\boldsymbol{b}_{j}\right)의 좌표는 AΦ\boldsymbol{A}_{\Phi}jj-번째 열이다. 순서 기저 B,CB, C를 갖는 (유한 차원) 벡터 공간 V,WV, W와 다음을 갖는 선형 매핑 Φ:VW\Phi: V \rightarrow W를 고려한다.

Figure 2.9 기저 선택에 따라 달라지는 벡터 x\boldsymbol{x}의 다른 좌표 표현.

변환 행렬 AΦ\boldsymbol{A}_{\Phi}. 만약 x^\hat{\boldsymbol{x}}BB에 대한 xV\boldsymbol{x} \in V의 좌표 벡터이고 y^\hat{\boldsymbol{y}}CC에 대한 y=Φ(x)W\boldsymbol{y}=\Phi(\boldsymbol{x}) \in W의 좌표 벡터라면,

y^=AΦx^.\hat{\boldsymbol{y}}=\boldsymbol{A}_{\Phi} \hat{\boldsymbol{x}} .

이는 변환 행렬VV의 순서 기저에 대한 좌표를 WW의 순서 기저에 대한 좌표로 매핑하는 데 사용될 수 있음을 의미한다.

Example 2.21 (Transformation Matrix)

동형사상 Φ:VW\Phi: V \rightarrow WVV의 순서 기저 B=(b1,,b3)B= \left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{3}\right)WW의 순서 기저 C=(c1,,c4)C=\left(\boldsymbol{c}_{1}, \ldots, \boldsymbol{c}_{4}\right)를 고려하자.

Φ(b1)=c1c2+3c3c4Φ(b2)=2c1+c2+7c3+2c4Φ(b3)=3c2+c3+4c4\begin{aligned} & \Phi\left(\boldsymbol{b}_{1}\right)=\boldsymbol{c}_{1}-\boldsymbol{c}_{2}+3 \boldsymbol{c}_{3}-\boldsymbol{c}_{4} \\ & \Phi\left(\boldsymbol{b}_{2}\right)=2 \boldsymbol{c}_{1}+\boldsymbol{c}_{2}+7 \boldsymbol{c}_{3}+2 \boldsymbol{c}_{4} \\ & \Phi\left(\boldsymbol{b}_{3}\right)=3 \boldsymbol{c}_{2}+\boldsymbol{c}_{3}+4 \boldsymbol{c}_{4} \end{aligned}

BBCC에 대한 변환 행렬 AΦ\boldsymbol{A}_{\Phi}k=1,,3k=1, \ldots, 3에 대해 Φ(bk)=i=14αikci\Phi\left(\boldsymbol{b}_{k}\right)= \sum_{i=1}^{4} \alpha_{i k} \boldsymbol{c}_{i}를 만족하며 다음과 같이 주어진다.

AΦ=[α1,α2,α3]=[120113371124],\boldsymbol{A}_{\Phi}=\left[\boldsymbol{\alpha}_{1}, \boldsymbol{\alpha}_{2}, \boldsymbol{\alpha}_{3}\right]=\left[\begin{array}{ccc} 1 & 2 & 0 \\ -1 & 1 & 3 \\ 3 & 7 & 1 \\ -1 & 2 & 4 \end{array}\right],

여기서 αj,j=1,2,3\boldsymbol{\alpha}_{j}, j=1,2,3CC에 대한 Φ(bj)\Phi\left(\boldsymbol{b}_{j}\right)의 좌표 벡터이다.

Example 2.22 (Linear Transformations of Vectors)

Figure 2.10 (a)에 점으로 표시된 벡터들의 선형 변환 세 가지 예시; (b) 4545^{\circ} 회전; (c) 수평 좌표를 2배로 늘림; (d) 반사, 회전 및 늘림의 조합.

(a) 원본 데이터.

우리는 변환 행렬을 사용하여 R2R^{2}에 있는 벡터 집합의 세 가지 선형 변환을 고려한다.

A1=[cos(π4)sin(π4)sin(π4)cos(π4)],A2=[2001],A3=12[3111].\boldsymbol{A}_{1}=\left[\begin{array}{cc} \cos \left(\frac{\pi}{4}\right) & -\sin \left(\frac{\pi}{4}\right) \\ \sin \left(\frac{\pi}{4}\right) & \cos \left(\frac{\pi}{4}\right) \end{array}\right], \quad \boldsymbol{A}_{2}=\left[\begin{array}{ll} 2 & 0 \\ 0 & 1 \end{array}\right], \quad \boldsymbol{A}_{3}=\frac{1}{2}\left[\begin{array}{ll} 3 & -1 \\ 1 & -1 \end{array}\right] .

Figure 2.10은 벡터 집합의 선형 변환 세 가지 예시를 보여준다. Figure 2.10(a)는 R2\mathbb{R}^{2}에 있는 400개의 벡터를 보여주며, 각 벡터는 해당 (x1,x2x_{1}, x_{2})-좌표에 점으로 표시된다. 벡터들은 정사각형 형태로 배열되어 있다. (2.97)의 행렬 A1\boldsymbol{A}_{1}을 사용하여 이 벡터들 각각을 선형 변환하면, Figure 2.10(b)와 같이 회전된 정사각형을 얻는다. A2\boldsymbol{A}_{2}로 표현되는 선형 매핑을 적용하면, Figure 2.10(c)와 같이 각 x1x_{1}-좌표가 2배로 늘어난 직사각형을 얻는다. Figure 2.10(d)는 Figure 2.10(a)의 원본 정사각형이 A3\boldsymbol{A}_{3}를 사용하여 선형 변환된 모습을 보여주는데, 이는 반사, 회전 및 늘림의 조합이다.

2.7.2 Basis Change

다음에서는 선형 매핑 Φ:VW\Phi: V \rightarrow W의 **변환 행렬(transformation matrices)**이 VVWW의 기저를 변경할 때 어떻게 변하는지 자세히 살펴볼 것이다. VV의 두 순서 기저(ordered bases)

B=(b1,,bn),B~=(b~1,,b~n)B=\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right), \quad \tilde{B}=\left(\tilde{\boldsymbol{b}}_{1}, \ldots, \tilde{\boldsymbol{b}}_{n}\right)

WW의 두 순서 기저

C=(c1,,cm),C~=(c~1,,c~m)C=\left(\boldsymbol{c}_{1}, \ldots, \boldsymbol{c}_{m}\right), \quad \tilde{C}=\left(\tilde{\boldsymbol{c}}_{1}, \ldots, \tilde{\boldsymbol{c}}_{m}\right)

를 고려하자. 또한, AΦRm×n\boldsymbol{A}_{\Phi} \in \mathbb{R}^{m \times n}는 기저 BBCC에 대한 선형 매핑 Φ:VW\Phi: V \rightarrow W의 변환 행렬이고, A~ΦRm×n\tilde{\boldsymbol{A}}_{\Phi} \in \mathbb{R}^{m \times n}B~\tilde{B}C~\tilde{C}에 대한 해당 변환 매핑이다. 다음에서는 A\boldsymbol{A}A~\tilde{\boldsymbol{A}}가 어떻게 관련되어 있는지, 즉 B,CB, C에서 B~,C~\tilde{B}, \tilde{C}로 기저 변경을 수행하기로 선택할 경우 AΦ\boldsymbol{A}_{\Phi}A~Φ\tilde{\boldsymbol{A}}_{\Phi}로 어떻게/변환할 수 있는지 조사할 것이다. 참고. 우리는 항등 매핑(identity mapping) idV\mathrm{id}_{V}의 서로 다른 좌표 표현을 효과적으로 얻는다. 그림 2.9의 맥락에서 이는 벡터 x\boldsymbol{x}를 변경하지 않고 (e1,e2)\left(\boldsymbol{e}_{1}, \boldsymbol{e}_{2}\right)에 대한 좌표를 (b1,b2)\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right)에 대한 좌표로 매핑하는 것을 의미한다. 기저를 변경하고 그에 따라 벡터의 표현을 변경함으로써, 이 새로운 기저에 대한 변환 행렬은 간단한 계산을 가능하게 하는 특히 단순한 형태를 가질 수 있다.

Example 2.23 (Basis Change)

R2\mathbb{R}^{2}canonical basis에 대한 변환 행렬은 다음과 같다:

A=[2112]\boldsymbol{A}=\left[\begin{array}{ll} 2 & 1 \\ 1 & 2 \end{array}\right]

만약 우리가 새로운 basis를 다음과 같이 정의한다면,

B=([11],[11])B=\left(\left[\begin{array}{l} 1 \\ 1 \end{array}\right],\left[\begin{array}{c} 1 \\ -1 \end{array}\right]\right)

우리는 BB에 대한 대각 변환 행렬을 얻게 되며, 이는 A\boldsymbol{A}보다 다루기 쉽다.

A~=[3001]\tilde{\boldsymbol{A}}=\left[\begin{array}{ll} 3 & 0 \\ 0 & 1 \end{array}\right]

다음에서는 한 basis에 대한 좌표 벡터를 다른 basis에 대한 좌표 벡터로 변환하는 매핑에 대해 살펴볼 것이다. 먼저 주요 결과를 제시한 다음 설명을 제공한다.

정리 2.20 (Basis Change). 선형 매핑 Φ:VW\Phi: V \rightarrow W에 대해, VV의 순서화된 basis

B=(b1,,bn),B~=(b~1,,b~n)B=\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right), \quad \tilde{B}=\left(\tilde{\boldsymbol{b}}_{1}, \ldots, \tilde{\boldsymbol{b}}_{n}\right)

WW의 순서화된 basis

C=(c1,,cm),C~=(c~1,,c~m)C=\left(\boldsymbol{c}_{1}, \ldots, \boldsymbol{c}_{m}\right), \quad \tilde{C}=\left(\tilde{\boldsymbol{c}}_{1}, \ldots, \tilde{\boldsymbol{c}}_{m}\right)

그리고 BBCC에 대한 Φ\Phi의 변환 행렬 AΦ\boldsymbol{A}_{\Phi}가 주어졌을 때, basis B~\tilde{B}C~\tilde{C}에 대한 해당 변환 행렬 A~Φ\tilde{\boldsymbol{A}}_{\Phi}는 다음과 같이 주어진다.

A~Φ=T1AΦS\tilde{\boldsymbol{A}}_{\Phi}=\boldsymbol{T}^{-1} \boldsymbol{A}_{\Phi} \boldsymbol{S}

여기서 SRn×n\boldsymbol{S} \in \mathbb{R}^{n \times n}B~\tilde{B}에 대한 좌표를 BB에 대한 좌표로 매핑하는 idV\operatorname{id}_{V}의 변환 행렬이고, TRm×m\boldsymbol{T} \in \mathbb{R}^{m \times m}C~\tilde{C}에 대한 좌표를 CC에 대한 좌표로 매핑하는 idW\operatorname{id}_{W}의 변환 행렬이다.

증명 Drumm과 Weil (2001)에 따르면, VV의 새로운 basis B~\tilde{B}의 벡터를 BB의 basis 벡터들의 선형 결합으로 다음과 같이 쓸 수 있다.

b~j=s1jb1++snjbn=i=1nsijbi,j=1,,n.\tilde{\boldsymbol{b}}_{j}=s_{1 j} \boldsymbol{b}_{1}+\cdots+s_{n j} \boldsymbol{b}_{n}=\sum_{i=1}^{n} s_{i j} \boldsymbol{b}_{i}, \quad j=1, \ldots, n .

마찬가지로, WW의 새로운 basis 벡터 C~\tilde{C}CC의 basis 벡터들의 선형 결합으로 다음과 같이 쓸 수 있다.

c~k=t1kc1++tmkcm=l=1mtlkcl,k=1,,m.\tilde{\boldsymbol{c}}_{k}=t_{1 k} \boldsymbol{c}_{1}+\cdots+t_{m k} \boldsymbol{c}_{m}=\sum_{l=1}^{m} t_{l k} \boldsymbol{c}_{l}, \quad k=1, \ldots, m .

우리는 B~\tilde{B}에 대한 좌표를 BB에 대한 좌표로 매핑하는 변환 행렬을 S=((sij))Rn×n\boldsymbol{S}=\left(\left(s_{i j}\right)\right) \in \mathbb{R}^{n \times n}로 정의하고, C~\tilde{C}에 대한 좌표를 CC에 대한 좌표로 매핑하는 변환 행렬을 T=((tlk))Rm×m\boldsymbol{T}=\left(\left(t_{l k}\right)\right) \in \mathbb{R}^{m \times m}로 정의한다. 특히, S\boldsymbol{S}jj번째 열은 BB에 대한 b~j\tilde{\boldsymbol{b}}_{j}의 좌표 표현이고, T\boldsymbol{T}kk번째 열은 CC에 대한 c~k\tilde{\boldsymbol{c}}_{k}의 좌표 표현이다. S\boldsymbol{S}T\boldsymbol{T}는 모두 정칙 행렬이다.

우리는 Φ(b~j)\Phi\left(\tilde{\boldsymbol{b}}_{j}\right)를 두 가지 관점에서 살펴볼 것이다. 첫째, 매핑 Φ\Phi를 적용하면 모든 j=1,,nj=1, \ldots, n에 대해 다음을 얻는다.

Φ(b~j)=k=1ma~kjc~kW=(2.107)k=1ma~kjl=1mtlkcl=l=1m(k=1mtlka~kj)cl,\Phi\left(\tilde{\boldsymbol{b}}_{j}\right)=\sum_{k=1}^{m} \underbrace{\tilde{a}_{k j} \tilde{\boldsymbol{c}}_{k}}_{\in W} \stackrel{(2.107)}{=} \sum_{k=1}^{m} \tilde{a}_{k j} \sum_{l=1}^{m} t_{l k} \boldsymbol{c}_{l}=\sum_{l=1}^{m}\left(\sum_{k=1}^{m} t_{l k} \tilde{a}_{k j}\right) \boldsymbol{c}_{l},

여기서 우리는 먼저 새로운 basis 벡터 c~kW\tilde{\boldsymbol{c}}_{k} \in W를 basis 벡터 clW\boldsymbol{c}_{l} \in W의 선형 결합으로 표현한 다음, 합의 순서를 바꾸었다.

다른 방법으로, b~jV\tilde{\boldsymbol{b}}_{j} \in VbjV\boldsymbol{b}_{j} \in V의 선형 결합으로 표현하면 다음을 얻는다.

Φ(b~j)=(2.106)Φ(i=1nsijbi)=i=1nsijΦ(bi)=i=1nsijl=1malicl=l=1m(i=1nalisij)cl,j=1,,n\begin{aligned} \Phi\left(\tilde{\boldsymbol{b}}_{j}\right) & \stackrel{(2.106)}{=} \Phi\left(\sum_{i=1}^{n} s_{i j} \boldsymbol{b}_{i}\right)=\sum_{i=1}^{n} s_{i j} \Phi\left(\boldsymbol{b}_{i}\right)=\sum_{i=1}^{n} s_{i j} \sum_{l=1}^{m} a_{l i} \boldsymbol{c}_{l} \\ & =\sum_{l=1}^{m}\left(\sum_{i=1}^{n} a_{l i} s_{i j}\right) \boldsymbol{c}_{l}, \quad j=1, \ldots, n \end{aligned}

여기서 우리는 Φ\Phi의 선형성을 활용했다. (2.108)과 (2.109b)를 비교하면, 모든 j=1,,nj=1, \ldots, nl=1,,ml=1, \ldots, m에 대해 다음이 성립한다.

k=1mtlka~kj=i=1nalisij\sum_{k=1}^{m} t_{l k} \tilde{a}_{k j}=\sum_{i=1}^{n} a_{l i} s_{i j}

따라서,

TA~Φ=AΦSRm×n\boldsymbol{T} \tilde{\boldsymbol{A}}_{\Phi}=\boldsymbol{A}_{\Phi} \boldsymbol{S} \in \mathbb{R}^{m \times n}

이므로,

A~Φ=T1AΦS\tilde{\boldsymbol{A}}_{\Phi}=\boldsymbol{T}^{-1} \boldsymbol{A}_{\Phi} \boldsymbol{S}

이는 정리 2.20을 증명한다. 정리 2.20은 VV에서 basis 변경(BBB~\tilde{B}로 대체됨)과 WW에서 basis 변경(CCC~\tilde{C}로 대체됨)이 있을 때, 선형 매핑 Φ:VW\Phi: V \rightarrow W의 변환 행렬 AΦ\boldsymbol{A}_{\Phi}가 다음과 같은 동등한 행렬 A~Φ\tilde{\boldsymbol{A}}_{\Phi}로 대체됨을 알려준다.

A~Φ=T1AΦS\tilde{\boldsymbol{A}}_{\Phi}=\boldsymbol{T}^{-1} \boldsymbol{A}_{\Phi} \boldsymbol{S}

그림 2.11은 이 관계를 보여준다: homomorphism Φ:VW\Phi: V \rightarrow WVV의 순서화된 basis B,B~B, \tilde{B}WW의 순서화된 basis C,C~C, \tilde{C}를 고려해보자. 매핑 ΦCB\Phi_{C B}Φ\Phi의 인스턴스이며 BB의 basis 벡터를 CC의 basis 벡터들의 선형 결합으로 매핑한다. 순서화된 basis B,CB, C에 대한 ΦCB\Phi_{C B}의 변환 행렬 AΦ\boldsymbol{A}_{\Phi}를 알고 있다고 가정하자. VV에서 BB에서 B~\tilde{B}로, WW에서 CC에서 C~\tilde{C}로 basis 변경을 수행할 때, 우리는 해당 변환 행렬 A~Φ\tilde{\boldsymbol{A}}_{\Phi}를 다음과 같이 결정할 수 있다: 먼저, 새로운 basis B~\tilde{B}에 대한 좌표를 "이전" basis BB에 대한 (고유한) 좌표로 매핑하는 선형 매핑 ΨBB~:VV\Psi_{B \tilde{B}}: V \rightarrow V의 행렬 표현을 찾는다. 그런 다음, ΦCB:VW\Phi_{C B}: V \rightarrow W의 변환 행렬 AΦ\boldsymbol{A}_{\Phi}를 사용하여 이 좌표들을 WWCC에 대한 좌표로 매핑한다. 마지막으로, 선형 매핑 ΞC~C:WW\Xi_{\tilde{C} C}: W \rightarrow W를 사용하여 CC에 대한 좌표를 C~\tilde{C}에 대한 좌표로 매핑한다. 따라서, 우리는 선형 매핑 ΦC~B~\Phi_{\tilde{C} \tilde{B}}를 "이전" basis를 포함하는 선형 매핑들의 합성으로 표현할 수 있다:

ΦC~B~=ΞC~CΦCBΨBB~=ΞCC~1ΦCBΨBB~.\Phi_{\tilde{C} \tilde{B}}=\Xi_{\tilde{C} C} \circ \Phi_{C B} \circ \Psi_{B \tilde{B}}=\Xi_{C \tilde{C}}^{-1} \circ \Phi_{C B} \circ \Psi_{B \tilde{B}} .

구체적으로, 우리는 ΨBB~=idV\Psi_{B \tilde{B}}=\mathrm{id}_{V}ΞCC~=idW\Xi_{C \tilde{C}}=\mathrm{id}_{W}를 사용한다. 즉, 벡터를 자기 자신으로 매핑하지만 다른 basis에 대한 identity mapping을 사용한다. 정의 2.21 (Equivalence). 두 행렬 A,A~Rm×n\boldsymbol{A}, \tilde{\boldsymbol{A}} \in \mathbb{R}^{m \times n}는 정칙 행렬 SRn×n\boldsymbol{S} \in \mathbb{R}^{n \times n}TRm×m\boldsymbol{T} \in \mathbb{R}^{m \times m}가 존재하여 A~=T1AS\tilde{\boldsymbol{A}}=\boldsymbol{T}^{-1} \boldsymbol{A} \boldsymbol{S}를 만족할 때 equivalent하다고 한다.

정의 2.22 (Similarity). 두 행렬 A,A~Rn×n\boldsymbol{A}, \tilde{\boldsymbol{A}} \in \mathbb{R}^{n \times n}는 정칙 행렬 SRn×n\boldsymbol{S} \in \mathbb{R}^{n \times n}가 존재하여 A~=S1AS\tilde{\boldsymbol{A}}=\boldsymbol{S}^{-1} \boldsymbol{A} \boldsymbol{S}를 만족할 때 similar하다고 한다.

비고. similar한 행렬은 항상 equivalent하다. 그러나 equivalent한 행렬이 반드시 similar한 것은 아니다. 비고. 벡터 공간 V,W,XV, W, X를 고려해보자. 정리 2.17에 이어지는 비고에서 우리는 선형 매핑 Φ:VW\Phi: V \rightarrow WΨ:WX\Psi: W \rightarrow X에 대해 매핑 ΨΦ:VX\Psi \circ \Phi: V \rightarrow X도 선형임을 이미 알고 있다. 해당 매핑들의 변환 행렬 AΦ\boldsymbol{A}_{\Phi}AΨ\boldsymbol{A}_{\Psi}를 사용하면, 전체 변환 행렬은 AΨΦ=AΨAΦ\boldsymbol{A}_{\Psi \circ \Phi}=\boldsymbol{A}_{\Psi} \boldsymbol{A}_{\Phi}이다.

이 비고에 비추어, 우리는 선형 매핑의 합성을 통해 basis 변경을 살펴볼 수 있다:

  • AΦ\boldsymbol{A}_{\Phi}는 basis B,CB, C에 대한 선형 매핑 ΦCB:VW\Phi_{C B}: V \rightarrow W의 변환 행렬이다.
  • A~Φ\tilde{\boldsymbol{A}}_{\Phi}는 basis B~,C~\tilde{B}, \tilde{C}에 대한 선형 매핑 ΦC~B~:VW\Phi_{\tilde{C} \tilde{B}}: V \rightarrow W의 변환 행렬이다.
  • S\boldsymbol{S}BB의 관점에서 B~\tilde{B}를 나타내는 선형 매핑 ΨBB~:VV\Psi_{B \tilde{B}}: V \rightarrow V (automorphism)의 변환 행렬이다. 일반적으로 Ψ=idV\Psi=\operatorname{id}_{V}VVidentity mapping이다.
  • T\boldsymbol{T}CC의 관점에서 C~\tilde{C}를 나타내는 선형 매핑 ΞCC~:WW\Xi_{C \tilde{C}}: W \rightarrow W (automorphism)의 변환 행렬이다. 일반적으로 Ξ=idW\Xi=\mathrm{id}_{W}WWidentity mapping이다.

만약 우리가 (비공식적으로) basis 관점에서 변환을 작성한다면, AΦ:BC,A~Φ:B~C~,S:B~B,T:C~C\boldsymbol{A}_{\Phi}: B \rightarrow C, \tilde{\boldsymbol{A}}_{\Phi}: \tilde{B} \rightarrow \tilde{C}, \boldsymbol{S}: \tilde{B} \rightarrow B, \boldsymbol{T}: \tilde{C} \rightarrow C 그리고 T1:CC~\boldsymbol{T}^{-1}: C \rightarrow \tilde{C} 이고,

B~C~=B~BCC~A~Φ=T1AΦS\begin{gathered} \tilde{B} \rightarrow \tilde{C}=\tilde{B} \rightarrow B \rightarrow C \rightarrow \tilde{C} \\ \tilde{\boldsymbol{A}}_{\Phi}=\boldsymbol{T}^{-1} \boldsymbol{A}_{\Phi} \boldsymbol{S} \end{gathered}

(2.116)에서 실행 순서는 오른쪽에서 왼쪽으로 진행된다는 점에 유의해야 한다. 이는 벡터가 오른쪽에 곱해지므로 xSxAΦ(Sx)T1(AΦ(Sx))=A~Φx\boldsymbol{x} \mapsto \boldsymbol{S} \boldsymbol{x} \mapsto \boldsymbol{A}_{\Phi}(\boldsymbol{S} \boldsymbol{x}) \mapsto \boldsymbol{T}^{-1}\left(\boldsymbol{A}_{\Phi}(\boldsymbol{S} \boldsymbol{x})\right)=\tilde{\boldsymbol{A}}_{\Phi} \boldsymbol{x}가 되기 때문이다.

Example 2.24 (Basis Change)

선형 매핑 Φ:R3R4\Phi: \mathbb{R}^{3} \rightarrow \mathbb{R}^{4}를 고려하자. 이 매핑의 변환 행렬은 다음과 같다:

AΦ=[120113371124]\boldsymbol{A}_{\Phi}=\left[\begin{array}{ccc} 1 & 2 & 0 \\ -1 & 1 & 3 \\ 3 & 7 & 1 \\ -1 & 2 & 4 \end{array}\right]

이는 표준 기저(standard bases)

B=([100],[010],[001]),C=([1000],[0100],[0010],[0001])B=\left(\left[\begin{array}{l} 1 \\ 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 0 \\ 1 \end{array}\right]\right), \quad C=\left(\left[\begin{array}{l} 1 \\ 0 \\ 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \\ 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 0 \\ 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 0 \\ 0 \\ 1 \end{array}\right]\right)

에 대한 것이다.

우리는 새로운 기저

B~=([110],[011],[101])R3,C~=([1100],[1010],[0110],[1001])\tilde{B}=\left(\left[\begin{array}{l} 1 \\ 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \\ 1 \end{array}\right],\left[\begin{array}{l} 1 \\ 0 \\ 1 \end{array}\right]\right) \in \mathbb{R}^{3}, \quad \tilde{C}=\left(\left[\begin{array}{l} 1 \\ 1 \\ 0 \\ 0 \end{array}\right],\left[\begin{array}{l} 1 \\ 0 \\ 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \\ 1 \\ 0 \end{array}\right],\left[\begin{array}{l} 1 \\ 0 \\ 0 \\ 1 \end{array}\right]\right)

에 대한 Φ\Phi의 변환 행렬 A~Φ\tilde{\boldsymbol{A}}_{\Phi}를 찾고자 한다.

그러면,

S=[101110011],T=[1101101001100001]\boldsymbol{S}=\left[\begin{array}{ccc} 1 & 0 & 1 \\ 1 & 1 & 0 \\ 0 & 1 & 1 \end{array}\right], \quad \boldsymbol{T}=\left[\begin{array}{cccc} 1 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right]

여기서 S\boldsymbol{S}ii번째 열은 b~i\tilde{\boldsymbol{b}}_{i}의 기저 BB에 대한 좌표 표현이다. BB가 표준 기저이므로, 좌표 표현은 쉽게 찾을 수 있다. 일반적인 기저 BB의 경우, i=13λibi=b~j,j=1,,3\sum_{i=1}^{3} \lambda_{i} \boldsymbol{b}_{i}=\tilde{\boldsymbol{b}}_{j}, j=1, \ldots, 3를 만족하는 λi\lambda_{i}를 찾기 위해 선형 방정식 시스템을 풀어야 할 것이다. 유사하게, T\boldsymbol{T}jj번째 열은 c~j\tilde{\boldsymbol{c}}_{j}의 기저 CC에 대한 좌표 표현이다.

따라서, 우리는 다음을 얻는다:

A~Φ=T1AΦS=12[1111111111110002][3210421084163]=[442600484163].\begin{aligned} \tilde{\boldsymbol{A}}_{\Phi} & =\boldsymbol{T}^{-1} \boldsymbol{A}_{\Phi} \boldsymbol{S}=\frac{1}{2}\left[\begin{array}{cccc} 1 & 1 & -1 & -1 \\ 1 & -1 & 1 & -1 \\ -1 & 1 & 1 & 1 \\ 0 & 0 & 0 & 2 \end{array}\right]\left[\begin{array}{ccc} 3 & 2 & 1 \\ 0 & 4 & 2 \\ 10 & 8 & 4 \\ 1 & 6 & 3 \end{array}\right] \\ & =\left[\begin{array}{ccc} -4 & -4 & -2 \\ 6 & 0 & 0 \\ 4 & 8 & 4 \\ 1 & 6 & 3 \end{array}\right] . \end{aligned}

4장에서는 기저 변환(basis change) 개념을 활용하여 endomorphism의 변환 행렬이 특히 간단한 (대각) 형태를 갖는 기저를 찾을 수 있을 것이다. 10장에서는 데이터 압축 문제를 살펴보고 압축 손실을 최소화하면서 데이터를 투영할 수 있는 편리한 기저를 찾을 것이다.

2.7.3 Image and Kernel

선형 매핑의 imagekernel은 특정 중요한 속성을 가진 벡터 부분 공간이다. 다음에서는 이를 더 자세히 설명한다.

정의 2.23 (Image와 Kernel). kernel null space image range domain codomain

Φ:VW\Phi: V \rightarrow W에 대해, kernel/null space는 다음과 같이 정의한다.

ker(Φ):=Φ1(0W)={vV:Φ(v)=0W}\operatorname{ker}(\Phi):=\Phi^{-1}\left(\mathbf{0}_{W}\right)=\left\{\boldsymbol{v} \in V: \Phi(\boldsymbol{v})=\mathbf{0}_{W}\right\}

그리고 image/range는 다음과 같이 정의한다.

Im(Φ):=Φ(V)={wWvV:Φ(v)=w}.\operatorname{Im}(\Phi):=\Phi(V)=\{\boldsymbol{w} \in W \mid \exists \boldsymbol{v} \in V: \Phi(\boldsymbol{v})=\boldsymbol{w}\} .

또한 VVWW를 각각 Φ\Phidomaincodomain이라고 부른다.
직관적으로, kernelΦ\Phi가 중립 원소 0WW\mathbf{0}_{W} \in W로 매핑하는 벡터 vV\boldsymbol{v} \in V의 집합이다. imageVV의 어떤 벡터로부터 Φ\Phi에 의해 "도달"할 수 있는 벡터 wW\boldsymbol{w} \in W의 집합이다. 그림 2.12에 설명되어 있다.
참고. V,WV, W가 벡터 공간인 선형 매핑 Φ:VW\Phi: V \rightarrow W를 고려하자.

  • 항상 Φ(0V)=0W\Phi\left(\mathbf{0}_{V}\right)=\mathbf{0}_{W}가 성립하며, 따라서 0Vker(Φ)\mathbf{0}_{V} \in \operatorname{ker}(\Phi)이다. 특히, null space는 결코 비어 있지 않다.
  • Im(Φ)W\operatorname{Im}(\Phi) \subseteq WWW의 부분 공간이고, ker(Φ)V\operatorname{ker}(\Phi) \subseteq VVV의 부분 공간이다.

그림 2.12 선형 매핑 Φ:VW\Phi: V \rightarrow Wkernelimage.

  • Φ\Phiker(Φ)={0}\operatorname{ker}(\Phi)=\{\mathbf{0}\}인 경우에만 **injective (one-to-one)**이다.

참고 (Null Space와 Column Space). ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}와 선형 매핑 Φ:RnRm,xAx\Phi: \mathbb{R}^{n} \rightarrow \mathbb{R}^{m}, \boldsymbol{x} \mapsto \boldsymbol{A} \boldsymbol{x}를 고려하자.

  • A=[a1,,an]\boldsymbol{A}=\left[\boldsymbol{a}_{1}, \ldots, \boldsymbol{a}_{n}\right]일 때, 여기서 ai\boldsymbol{a}_{i}A\boldsymbol{A}의 열 벡터이다.
Im(Φ)={Ax:xRn}={i=1nxiai:x1,,xnR}=span[a1,,an]Rm\begin{aligned} \operatorname{Im}(\Phi) & =\left\{\boldsymbol{A} \boldsymbol{x}: \boldsymbol{x} \in \mathbb{R}^{n}\right\}=\left\{\sum_{i=1}^{n} x_{i} \boldsymbol{a}_{i}: x_{1}, \ldots, x_{n} \in \mathbb{R}\right\} \\ & =\operatorname{span}\left[\boldsymbol{a}_{1}, \ldots, \boldsymbol{a}_{n}\right] \subseteq \mathbb{R}^{m} \end{aligned}

즉, imageA\boldsymbol{A}의 열 벡터들의 span이며, 이를 column space라고도 한다. 따라서 **column space (image)**는 Rm\mathbb{R}^{m}의 부분 공간이며, 여기서 mm은 행렬의 "높이"이다.

  • rk(A)=dim(Im(Φ))\operatorname{rk}(\boldsymbol{A})=\operatorname{dim}(\operatorname{Im}(\Phi)).
  • kernel/null space ker(Φ)\operatorname{ker}(\Phi)는 동차 선형 방정식 시스템 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 일반 해이며, 0Rm\mathbf{0} \in \mathbb{R}^{m}을 생성하는 Rn\mathbb{R}^{n}의 요소들의 가능한 모든 선형 조합을 포착한다.
  • kernelRn\mathbb{R}^{n}의 부분 공간이며, 여기서 nn은 행렬의 "너비"이다.
  • kernel은 열 벡터들 간의 관계에 초점을 맞추며, 이를 사용하여 한 열 벡터를 다른 열 벡터들의 선형 조합으로 표현할 수 있는지 여부와 방법을 결정할 수 있다.

Example 2.25 (Image and Kernel of a Linear Mapping)

매핑

Φ:R4R2,[x1x2x3x4][12101001][x1x2x3x4]=[x1+2x2x3x1+x4]\Phi: \mathbb{R}^{4} \rightarrow \mathbb{R}^{2}, \quad\left[\begin{array}{l} x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \end{array}\right] \mapsto\left[\begin{array}{cccc} 1 & 2 & -1 & 0 \\ 1 & 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \end{array}\right]=\left[\begin{array}{c} x_{1}+2 x_{2}-x_{3} \\ x_{1}+x_{4} \end{array}\right]

는 선형이다. Im(Φ)\operatorname{Im}(\Phi)를 결정하기 위해, 변환 행렬의 열들의 span을 취하여 다음을 얻을 수 있다.

Im(Φ)=span[[11],[20],[10],[01]]\operatorname{Im}(\Phi)=\operatorname{span}\left[\left[\begin{array}{l} 1 \\ 1 \end{array}\right],\left[\begin{array}{l} 2 \\ 0 \end{array}\right],\left[\begin{array}{c} -1 \\ 0 \end{array}\right],\left[\begin{array}{l} 0 \\ 1 \end{array}\right]\right]

Φ\Phi의 **kernel (null space)**을 계산하기 위해 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}을 풀어야 한다. 즉, 동차 선형 방정식 시스템을 풀어야 한다. 이를 위해 가우스 소거법을 사용하여 A\boldsymbol{A}를 **기약 행사다리꼴(reduced row-echelon form)**로 변환한다.

[12101001][1001011212].\left[\begin{array}{cccc} 1 & 2 & -1 & 0 \\ 1 & 0 & 0 & 1 \end{array}\right] \quad \rightsquigarrow \cdots \rightsquigarrow\left[\begin{array}{cccc} 1 & 0 & 0 & 1 \\ 0 & 1 & -\frac{1}{2} & -\frac{1}{2} \end{array}\right] .

이 행렬은 기약 행사다리꼴이며, Minus1 Trick을 사용하여 kernel의 기저를 계산할 수 있다 (섹션 2.3.3 참조). 또는, 비피벗 열(non-pivot columns) (3열과 4열)을 피벗 열(pivot columns) (1열과 2열)의 선형 결합으로 표현할 수 있다. 세 번째 열 a3\boldsymbol{a}_{3}은 두 번째 열 a2\boldsymbol{a}_{2}12-\frac{1}{2}배와 동일하다. 따라서 0=a3+12a2\mathbf{0}=\boldsymbol{a}_{3}+\frac{1}{2} \boldsymbol{a}_{2}이다. 같은 방식으로 a4=a112a2\boldsymbol{a}_{4}=\boldsymbol{a}_{1}-\frac{1}{2} \boldsymbol{a}_{2}이므로 0=a112a2a4\mathbf{0}=\boldsymbol{a}_{1}-\frac{1}{2} \boldsymbol{a}_{2}-\boldsymbol{a}_{4}이다. 종합적으로, 이는 kernel (null space)을 다음과 같이 제공한다.

ker(Φ)=span[[01210],[11201]]\operatorname{ker}(\Phi)=\operatorname{span}\left[\left[\begin{array}{l} 0 \\ \frac{1}{2} \\ 1 \\ 0 \end{array}\right],\left[\begin{array}{c} -1 \\ \frac{1}{2} \\ 0 \\ 1 \end{array}\right]\right]

정리 2.24 (Rank-Nullity Theorem). 벡터 공간 V,WV, W와 선형 매핑 Φ:VW\Phi: V \rightarrow W에 대해 다음이 성립한다.

dim(ker(Φ))+dim(Im(Φ))=dim(V)\operatorname{dim}(\operatorname{ker}(\Phi))+\operatorname{dim}(\operatorname{Im}(\Phi))=\operatorname{dim}(V)

rank-nullity theorem은 **선형 매핑의 기본 정리(fundamental theorem of linear mappings)**라고도 불린다 (Axler, 2015, 정리 3.22). 다음은 정리 2.24의 직접적인 결과이다.

  • 만약 dim(Im(Φ))<dim(V)\operatorname{dim}(\operatorname{Im}(\Phi))<\operatorname{dim}(V)이면, ker(Φ)\operatorname{ker}(\Phi)자명하지 않다(non-trivial). 즉, kernel은 0V\mathbf{0}_{V}보다 많은 원소를 포함하며 dim(ker(Φ))1\operatorname{dim}(\operatorname{ker}(\Phi)) \geqslant 1이다.
  • 만약 AΦ\boldsymbol{A}_{\Phi}가 정렬된 기저에 대한 Φ\Phi의 변환 행렬이고 dim(Im(Φ))<dim(V)\operatorname{dim}(\operatorname{Im}(\Phi))<\operatorname{dim}(V)이면, 선형 방정식 시스템 AΦx=0\boldsymbol{A}_{\Phi} \boldsymbol{x}= \mathbf{0}은 무한히 많은 해를 갖는다.
  • 만약 dim(V)=dim(W)\operatorname{dim}(V)=\operatorname{dim}(W)이면, 다음 세 가지 동등성이 성립한다.
    • Φ\Phi는 **단사(injective)**이다.
    • Φ\Phi는 **전사(surjective)**이다.
    • Φ\Phi는 **전단사(bijective)**이다. 이는 Im(Φ)W\operatorname{Im}(\Phi) \subseteq W이기 때문이다.

"Mathematics for Machine Learning" 초안 (2021-07-29). 피드백: https://mml-book.com.

2.8 Affine Spaces

다음에서는 원점에서 오프셋된 공간, 즉 더 이상 **벡터 부분 공간(vector subspaces)**이 아닌 공간에 대해 자세히 살펴볼 것이다. 또한, 이러한 아핀 공간(affine spaces) 간의 매핑(mapping) 속성에 대해 간략하게 논의할 것인데, 이는 **선형 매핑(linear mappings)**과 유사하다.
참고: 머신러닝 문헌에서는 선형(linear)과 아핀(affine)의 구분이 명확하지 않은 경우가 있어, 아핀 공간/매핑을 선형 공간/매핑으로 언급하는 자료를 찾아볼 수 있다.

2.8.1 Affine Subspaces

정의 2.25 (Affine Subspace). VV를 벡터 공간이라 하고, x0V\boldsymbol{x}_{0} \in VUVU \subseteq V를 부분 공간이라 하자. 이때 다음 부분집합은

L=x0+U:={x0+u:uU}={vVuU:v=x0+u}V\begin{aligned} L & =\boldsymbol{x}_{0}+U:=\left\{\boldsymbol{x}_{0}+\boldsymbol{u}: \boldsymbol{u} \in U\right\} \\ & =\left\{\boldsymbol{v} \in V \mid \exists \boldsymbol{u} \in U: \boldsymbol{v}=\boldsymbol{x}_{0}+\boldsymbol{u}\right\} \subseteq V \end{aligned}

VVaffine subspace 또는 linear manifold라고 불린다. UUdirection 또는 direction space라고 불리며, x0\boldsymbol{x}_{0}support point라고 불린다. 12장에서는 이러한 부분 공간을 hyperplane이라고 지칭한다.

affine subspace의 정의는 x0U\boldsymbol{x}_{0} \notin U인 경우 0\mathbf{0}을 제외한다는 점에 유의해야 한다. 따라서 x0U\boldsymbol{x}_{0} \notin U인 경우 affine subspace는 VV의 (선형) 부분 공간(vector subspace)이 아니다.

affine subspace의 예시로는 R3\mathbb{R}^{3}의 점, 선, 평면이 있으며, 이들은 (반드시) 원점을 통과하지는 않는다. 비고. 벡터 공간 VV의 두 affine subspace L=x0+UL=\boldsymbol{x}_{0}+UL~=x~0+U~\tilde{L}=\tilde{\boldsymbol{x}}_{0}+\tilde{U}를 고려하자. 그러면 LL~L \subseteq \tilde{L}UU~U \subseteq \tilde{U}이고 x0x~0U~\boldsymbol{x}_{0}-\tilde{\boldsymbol{x}}_{0} \in \tilde{U}인 경우에만 성립한다.

affine subspace는 종종 매개변수로 설명된다: VVkk-차원 affine space L=x0+UL=\boldsymbol{x}_{0}+U를 고려하자. 만약 (b1,,bk)(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{k})UU의 순서 기저(ordered basis)라면, LL의 모든 원소 xL\boldsymbol{x} \in L는 다음과 같이 고유하게 설명될 수 있다:

x=x0+λ1b1++λkbk\boldsymbol{x}=\boldsymbol{x}_{0}+\lambda_{1} \boldsymbol{b}_{1}+\ldots+\lambda_{k} \boldsymbol{b}_{k}

여기서 λ1,,λkR\lambda_{1}, \ldots, \lambda_{k} \in \mathbb{R}이다. 이 표현을 parametric equation이라고 하며, directional vectors b1,,bk\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{k}parameters λ1,,λk\lambda_{1}, \ldots, \lambda_{k}를 갖는다.

Example 2.26 (Affine Subspaces)

  • 1차원 affine subspace는 **직선(line)**이라고 불리며, y=x0+λb1\boldsymbol{y}=\boldsymbol{x}_{0}+\lambda \boldsymbol{b}_{1}으로 표현될 수 있다. 여기서 λR\lambda \in \mathbb{R}이고 U=span[b1]RnU=\operatorname{span}\left[\boldsymbol{b}_{1}\right] \subseteq \mathbb{R}^{n}Rn\mathbb{R}^{n}의 1차원 subspace이다. 이는 직선support point x0\boldsymbol{x}_{0}와 **방향(direction)**을 정의하는 벡터 b1\boldsymbol{b}_{1}에 의해 정의됨을 의미한다. 그림 2.13에서 이를 확인할 수 있다.

    affine subspace linear manifold direction direction space support point hyperplane parametric equation parameters plane hyperplane

  • Rn\mathbb{R}^{n}의 2차원 affine subspace는 **평면(plane)**이라고 불린다. 평면parametric equationy=x0+λ1b1+λ2b2\boldsymbol{y}=\boldsymbol{x}_{0}+\lambda_{1} \boldsymbol{b}_{1}+\lambda_{2} \boldsymbol{b}_{2}이며, 여기서 λ1,λ2R\lambda_{1}, \lambda_{2} \in \mathbb{R}이고 U=span[b1,b2]RnU=\operatorname{span}\left[\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right] \subseteq \mathbb{R}^{n}이다. 이는 평면support point x0\boldsymbol{x}_{0}direction space를 span하는 두 개의 선형 독립 벡터 b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2}에 의해 정의됨을 의미한다.

  • Rn\mathbb{R}^{n}에서 (n1)(n-1)차원 affine subspace는 **초평면(hyperplane)**이라고 불리며, 해당 parametric equationy=x0+i=1n1λibi\boldsymbol{y}=\boldsymbol{x}_{0}+\sum_{i=1}^{n-1} \lambda_{i} \boldsymbol{b}_{i}이다. 여기서 b1,,bn1\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n-1}Rn\mathbb{R}^{n}(n1)(n-1)차원 subspace UU의 기저를 형성한다. 이는 초평면support point x0\boldsymbol{x}_{0}direction space를 span하는 (n1)(n-1)개의 선형 독립 벡터 b1,,bn1\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n-1}에 의해 정의됨을 의미한다. R2\mathbb{R}^{2}에서는 직선초평면이기도 하다. R3\mathbb{R}^{3}에서는 평면초평면이기도 하다.

비고 (비동차 선형 방정식 시스템과 affine subspace). ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}xRm\boldsymbol{x} \in \mathbb{R}^{m}에 대해, 선형 방정식 시스템 Aλ=x\boldsymbol{A} \boldsymbol{\lambda}=\boldsymbol{x}의 해는 공집합이거나 차원 nrk(A)n-\operatorname{rk}(\boldsymbol{A})Rn\mathbb{R}^{n}affine subspace이다. 특히, (λ1,,λn)(0,,0)\left(\lambda_{1}, \ldots, \lambda_{n}\right) \neq(0, \ldots, 0)인 선형 방정식 λ1b1++λnbn=x\lambda_{1} \boldsymbol{b}_{1}+\ldots+\lambda_{n} \boldsymbol{b}_{n}=\boldsymbol{x}의 해는 Rn\mathbb{R}^{n}hyperplane이다.

Rn\mathbb{R}^{n}에서 모든 kk차원 affine subspace는 비동차 선형 방정식 시스템 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}의 해이다. 여기서 ARm×n\boldsymbol{A} \in \mathbb{R}^{m \times n}, bRm\boldsymbol{b} \in \mathbb{R}^{m}이고 rk(A)=nk\operatorname{rk}(\boldsymbol{A})=n-k이다. 동차 방정식 시스템 Ax=0\boldsymbol{A} \boldsymbol{x}=\mathbf{0}의 해는 vector subspace였으며, 이는 support point x0=0\boldsymbol{x}_{0}=\mathbf{0}를 갖는 특수한 affine space로도 생각할 수 있다.

2.8.2 Affine Mappings

섹션 2.7에서 논의했던 벡터 공간 간의 선형 매핑과 유사하게, 우리는 두 아핀 공간 간의 **아핀 매핑(affine mapping)**을 정의할 수 있다. 선형 매핑과 아핀 매핑은 밀접하게 관련되어 있다. 따라서 선형 매핑에서 이미 알고 있는 많은 속성들, 예를 들어 선형 매핑의 합성(composition)이 선형 매핑이라는 속성은 아핀 매핑에도 적용된다.

정의 2.26 (아핀 매핑). 두 벡터 공간 V,WV, W에 대해 선형 매핑 Φ:VW\Phi: V \rightarrow WaW\boldsymbol{a} \in W가 주어졌을 때, 다음 매핑은

ϕ:VWxa+Φ(x)\begin{aligned} \phi: V & \rightarrow W \\ \boldsymbol{x} & \mapsto \boldsymbol{a}+\Phi(\boldsymbol{x}) \end{aligned}

VV에서 WW로의 아핀 매핑이다. 벡터 a\boldsymbol{a}ϕ\phi의 **변환 벡터(translation vector)**라고 불린다.

  • 모든 아핀 매핑 ϕ:VW\phi: V \rightarrow W는 선형 매핑 Φ:VW\Phi: V \rightarrow WWW에서의 변환 τ:WW\tau: W \rightarrow W의 합성으로도 표현될 수 있으며, ϕ=τΦ\phi=\tau \circ \Phi이다. 매핑 Φ\Phiτ\tau는 유일하게 결정된다.
  • 아핀 매핑 ϕ:VW,ϕ:WX\phi: V \rightarrow W, \phi^{\prime}: W \rightarrow X의 합성 ϕϕ\phi^{\prime} \circ \phi는 아핀 매핑이다.
  • 아핀 매핑은 기하학적 구조를 불변으로 유지한다. 또한 차원과 평행성을 보존한다.

2.9 Further Reading

선형대수를 학습하기 위한 많은 자료들이 있으며, 여기에는 Strang (2003), Golan (2007), Axler (2015), Liesen and Mehrmann (2015)의 교재들이 포함된다. 또한 이 장의 서론에서 언급했던 여러 온라인 자료들도 있다. 우리는 여기에서 Gaussian elimination만 다루었지만, 선형 방정식 시스템을 푸는 다른 많은 접근 방식들이 있으며, 이에 대한 심층적인 논의는 Stoer and Burlirsch (2002), Golub and Van Loan (2012), Horn and Johnson (2013)의 수치 선형대수 교재를 참고하기 바란다.

이 책에서 우리는 선형대수(예: 벡터, 행렬, 선형 독립, 기저)와 벡터 공간의 기하학과 관련된 주제를 구분한다. 3장에서는 **내적(inner product)**을 소개할 것이며, 이는 **노름(norm)**을 유도한다. 이러한 개념들을 통해 우리는 각도, 길이, 거리를 정의할 수 있으며, 이를 **직교 투영(orthogonal projection)**에 사용할 것이다. 투영은 선형 회귀(linear regression) 및 주성분 분석(principal component analysis)과 같은 많은 머신러닝 알고리즘에서 핵심적인 역할을 하며, 이 두 가지는 각각 9장과 10장에서 다룰 것이다.

Exercises

2.1 (R\{1},)(\mathbb{R} \backslash\{-1\}, \star)를 고려한다. 여기서

ab:=ab+a+b,a,bR\{1}a \star b:=a b+a+b, \quad a, b \in \mathbb{R} \backslash\{-1\}

a. (R\{1},)(\mathbb{R} \backslash\{-1\}, \star)가 **아벨 군(Abelian group)**임을 보여라. b. 아벨 군 (R\{1},)(\mathbb{R} \backslash\{-1\}, \star)에서 다음을 풀어라. 여기서 \star는 (2.134)에 정의되어 있다.

3xx=153 \star x \star x=15

2.2 nnN\{0}\mathbb{N} \backslash\{0\}에 속한다고 하자. k,xk, xZ\mathbb{Z}에 속한다고 하자. 정수 kk합동류(congruence class) kˉ\bar{k}를 다음과 같이 정의한다.

kˉ={xZxk=0(modn)}={xZaZ:(xk=na)}.\begin{aligned} \bar{k} & =\{x \in \mathbb{Z} \mid x-k=0(\bmod n)\} \\ & =\{x \in \mathbb{Z} \mid \exists a \in \mathbb{Z}:(x-k=n \cdot a)\} . \end{aligned}

이제 Z/nZ\mathbb{Z} / n \mathbb{Z} (때로는 Zn\mathbb{Z}_{n}으로 표기)를 modulo nn의 모든 합동류의 집합으로 정의한다. **유클리드 나눗셈(Euclidean division)**은 이 집합이 nn개의 원소를 포함하는 유한 집합임을 의미한다.

Zn={0,1,,n1}\mathbb{Z}_{n}=\{\overline{0}, \overline{1}, \ldots, \overline{n-1}\}

모든 aˉ,bˉZn\bar{a}, \bar{b} \in \mathbb{Z}_{n}에 대해 다음을 정의한다.

aˉbˉ:=a+b\bar{a} \oplus \bar{b}:=\overline{a+b}

a. (Zn,)\left(\mathbb{Z}_{n}, \oplus\right)가 **군(group)**임을 보여라. 아벨 군인가? b. 이제 Zn\mathbb{Z}_{n}의 모든 aˉ\bar{a}bˉ\bar{b}에 대해 또 다른 연산 \otimes를 다음과 같이 정의한다.

aˉbˉ=a×b,\bar{a} \otimes \bar{b}=\overline{a \times b},

여기서 a×ba \times bZ\mathbb{Z}에서의 일반적인 곱셈을 나타낸다. n=5n=5라고 하자. \otimes 연산에 대한 Z5\{0}\mathbb{Z}_{5} \backslash\{\overline{0}\} 원소들의 **곱셈표(times table)**를 그려라. 즉, Z5\{0}\mathbb{Z}_{5} \backslash\{\overline{0}\}의 모든 aˉ\bar{a}bˉ\bar{b}에 대해 곱 aˉbˉ\bar{a} \otimes \bar{b}를 계산하라. 따라서 Z5\{0}\mathbb{Z}_{5} \backslash\{\overline{0}\}\otimes에 대해 닫혀 있고(closed), \otimes에 대한 **항등원(neutral element)**을 가짐을 보여라. \otimes에 대한 Z5\{0}\mathbb{Z}_{5} \backslash\{\overline{0}\}의 모든 원소의 **역원(inverse)**을 표시하라. (Z5\{0},)\left(\mathbb{Z}_{5} \backslash\{\overline{0}\}, \otimes\right)아벨 군임을 결론지어라. c. (Z8\{0},)\left(\mathbb{Z}_{8} \backslash\{\overline{0}\}, \otimes\right)이 아님을 보여라. d. **베주 항등식(Bézout's identity)**은 두 정수 aabb서로소(relatively prime)(즉, gcd(a,b)=1\operatorname{gcd}(a, b)=1)인 것은 au+bv=1au+bv=1을 만족하는 두 정수 uuvv가 존재할 때 그리고 그 때에만 성립한다고 말한다. (Zn\{0},)(\mathbb{Z}_{n} \backslash\{\overline{0}\}, \otimes)인 것은 nN\{0}n \in \mathbb{N} \backslash\{0\}이 **소수(prime)**일 때 그리고 그 때에만 성립함을 보여라. 2.3 다음과 같이 정의된 3×33 \times 3 행렬의 집합 G\mathcal{G}를 고려한다.

G={[1xz01y001]R3×3x,y,zR}\mathcal{G}=\left\{\left.\left[\begin{array}{lll} 1 & x & z \\ 0 & 1 & y \\ 0 & 0 & 1 \end{array}\right] \in \mathbb{R}^{3 \times 3} \right\rvert\, x, y, z \in \mathbb{R}\right\}

\cdot을 **표준 행렬 곱셈(standard matrix multiplication)**으로 정의한다. (G,)(\mathcal{G}, \cdot)인가? 그렇다면 아벨 군인가? 답을 정당화하라. 2.4 다음 행렬 곱을 가능하다면 계산하라: a.

[124578][110011101]\left[\begin{array}{ll} 1 & 2 \\ 4 & 5 \\ 7 & 8 \end{array}\right]\left[\begin{array}{lll} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \end{array}\right]

b.

[123456789][110011101]\left[\begin{array}{lll} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array}\right]\left[\begin{array}{lll} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \end{array}\right]

c.

[110011101][123456789]\left[\begin{array}{lll} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \end{array}\right]\left[\begin{array}{lll} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array}\right]

d.

[12124114][03112152]\left[\begin{array}{cccc} 1 & 2 & 1 & 2 \\ 4 & 1 & -1 & -4 \end{array}\right]\left[\begin{array}{cc} 0 & 3 \\ 1 & -1 \\ 2 & 1 \\ 5 & 2 \end{array}\right]

e.

[03112152][12124114]\left[\begin{array}{cc} 0 & 3 \\ 1 & -1 \\ 2 & 1 \\ 5 & 2 \end{array}\right]\left[\begin{array}{cccc} 1 & 2 & 1 & 2 \\ 4 & 1 & -1 & -4 \end{array}\right]

2.5 다음 비동차 선형 시스템(inhomogeneous linear systems) Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}의 모든 해 집합 S\mathcal{S}x\boldsymbol{x}에 대해 찾아라. 여기서 A\boldsymbol{A}b\boldsymbol{b}는 다음과 같이 정의된다. a.

A=[1111257521135242],b=[1246]\boldsymbol{A}=\left[\begin{array}{cccc} 1 & 1 & -1 & -1 \\ 2 & 5 & -7 & -5 \\ 2 & -1 & 1 & 3 \\ 5 & 2 & -4 & 2 \end{array}\right], \quad \boldsymbol{b}=\left[\begin{array}{c} 1 \\ -2 \\ 4 \\ 6 \end{array}\right]

b.

A=[11001110302101112021],b=[3651]\boldsymbol{A}=\left[\begin{array}{ccccc} 1 & -1 & 0 & 0 & 1 \\ 1 & 1 & 0 & -3 & 0 \\ 2 & -1 & 0 & 1 & -1 \\ -1 & 2 & 0 & -2 & -1 \end{array}\right], \quad \boldsymbol{b}=\left[\begin{array}{c} 3 \\ 6 \\ 5 \\ -1 \end{array}\right]

2.6 **가우스 소거법(Gaussian elimination)**을 사용하여 다음 비동차 방정식 시스템(inhomogeneous equation system) Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}의 모든 해를 찾아라.

A=[010010000110010001],b=[211].\boldsymbol{A}=\left[\begin{array}{llllll} 0 & 1 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 & 1 & 0 \\ 0 & 1 & 0 & 0 & 0 & 1 \end{array}\right], \quad \boldsymbol{b}=\left[\begin{array}{c} 2 \\ -1 \\ 1 \end{array}\right] .

2.7 방정식 시스템 Ax=12x\boldsymbol{A} \boldsymbol{x}=12 \boldsymbol{x}x=[x1x2x3]R3\boldsymbol{x}=\left[\begin{array}{l}x_{1} \\ x_{2} \\ x_{3}\end{array}\right] \in \mathbb{R}^{3}에 대한 모든 해를 찾아라. 여기서

A=[643609080]\boldsymbol{A}=\left[\begin{array}{lll} 6 & 4 & 3 \\ 6 & 0 & 9 \\ 0 & 8 & 0 \end{array}\right]

이고 i=13xi=1\sum_{i=1}^{3} x_{i}=1이다. 2.8 가능하다면 다음 행렬의 **역행렬(inverses)**을 결정하라: a.

A=[234345456]\boldsymbol{A}=\left[\begin{array}{lll} 2 & 3 & 4 \\ 3 & 4 & 5 \\ 4 & 5 & 6 \end{array}\right]

b.

A=[1010011011011110]\boldsymbol{A}=\left[\begin{array}{llll} 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 \\ 1 & 1 & 0 & 1 \\ 1 & 1 & 1 & 0 \end{array}\right]

2.9 다음 집합 중 R3\mathbb{R}^{3}의 **부분 공간(subspaces)**인 것은 무엇인가? a. A={(λ,λ+μ3,λμ3)λ,μR}A=\left\{\left(\lambda, \lambda+\mu^{3}, \lambda-\mu^{3}\right) \mid \lambda, \mu \in \mathbb{R}\right\} b. B={(λ2,λ2,0)λR}B=\left\{\left(\lambda^{2},-\lambda^{2}, 0\right) \mid \lambda \in \mathbb{R}\right\} c. γ\gammaR\mathbb{R}에 속한다고 하자. C={(ξ1,ξ2,ξ3)R3ξ12ξ2+3ξ3=γ}C=\left\{\left(\xi_{1}, \xi_{2}, \xi_{3}\right) \in \mathbb{R}^{3} \mid \xi_{1}-2 \xi_{2}+3 \xi_{3}=\gamma\right\} d. D={(ξ1,ξ2,ξ3)R3ξ2Z}D=\left\{\left(\xi_{1}, \xi_{2}, \xi_{3}\right) \in \mathbb{R}^{3} \mid \xi_{2} \in \mathbb{Z}\right\} 2.10 다음 벡터 집합은 **선형 독립(linearly independent)**인가? a.

x1=[213],x2=[112],x3=[338]\boldsymbol{x}_{1}=\left[\begin{array}{c} 2 \\ -1 \\ 3 \end{array}\right], \quad \boldsymbol{x}_{2}=\left[\begin{array}{c} 1 \\ 1 \\ -2 \end{array}\right], \quad \boldsymbol{x}_{3}=\left[\begin{array}{c} 3 \\ -3 \\ 8 \end{array}\right]

b.

x1=[12100],x2=[11011],x3=[10011]\boldsymbol{x}_{1}=\left[\begin{array}{l} 1 \\ 2 \\ 1 \\ 0 \\ 0 \end{array}\right], \quad \boldsymbol{x}_{2}=\left[\begin{array}{l} 1 \\ 1 \\ 0 \\ 1 \\ 1 \end{array}\right], \quad \boldsymbol{x}_{3}=\left[\begin{array}{l} 1 \\ 0 \\ 0 \\ 1 \\ 1 \end{array}\right]

2.11 다음을 **선형 결합(linear combination)**으로 작성하라.

y=[125]\boldsymbol{y}=\left[\begin{array}{c} 1 \\ -2 \\ 5 \end{array}\right]

다음의 선형 결합으로 작성하라.

x1=[111],x2=[123],x3=[211]\boldsymbol{x}_{1}=\left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right], \quad \boldsymbol{x}_{2}=\left[\begin{array}{l} 1 \\ 2 \\ 3 \end{array}\right], \quad \boldsymbol{x}_{3}=\left[\begin{array}{c} 2 \\ -1 \\ 1 \end{array}\right]

2.12 R4\mathbb{R}^{4}의 두 부분 공간을 고려한다:

U1=span[[1131],[2101],[1111]],U2=span[[1221],[2200],[3621]].U_{1}=\operatorname{span}\left[\left[\begin{array}{c} 1 \\ 1 \\ -3 \\ 1 \end{array}\right],\left[\begin{array}{c} 2 \\ -1 \\ 0 \\ -1 \end{array}\right],\left[\begin{array}{c} -1 \\ 1 \\ -1 \\ 1 \end{array}\right]\right], \quad U_{2}=\operatorname{span}\left[\left[\begin{array}{c} -1 \\ -2 \\ 2 \\ 1 \end{array}\right],\left[\begin{array}{c} 2 \\ -2 \\ 0 \\ 0 \end{array}\right],\left[\begin{array}{c} -3 \\ 6 \\ -2 \\ -1 \end{array}\right]\right] .

U1U2U_{1} \cap U_{2}의 **기저(basis)**를 결정하라. 2.13 두 부분 공간 U1U_{1}U2U_{2}를 고려한다. 여기서 U1U_{1}동차 방정식 시스템(homogeneous equation system) A1x=0\boldsymbol{A}_{1} \boldsymbol{x}=\mathbf{0}의 해 공간이고, U2U_{2}동차 방정식 시스템 A2x=0\boldsymbol{A}_{2} \boldsymbol{x}=\mathbf{0}의 해 공간이다.

A1=[101121213101],A2=[330123752312]\boldsymbol{A}_{1}=\left[\begin{array}{ccc} 1 & 0 & 1 \\ 1 & -2 & -1 \\ 2 & 1 & 3 \\ 1 & 0 & 1 \end{array}\right], \quad \boldsymbol{A}_{2}=\left[\begin{array}{ccc} 3 & -3 & 0 \\ 1 & 2 & 3 \\ 7 & -5 & 2 \\ 3 & -1 & 2 \end{array}\right]

a. U1,U2U_{1}, U_{2}의 **차원(dimension)**을 결정하라. b. U1U_{1}U2U_{2}기저를 결정하라. c. U1U2U_{1} \cap U_{2}기저를 결정하라. 2.14 두 부분 공간 U1U_{1}U2U_{2}를 고려한다. 여기서 U1U_{1}A1\boldsymbol{A}_{1}의 열 벡터로 **생성(span)**되고, U2U_{2}A2\boldsymbol{A}_{2}의 열 벡터로 생성된다.

A1=[101121213101],A2=[330123752312]\boldsymbol{A}_{1}=\left[\begin{array}{ccc} 1 & 0 & 1 \\ 1 & -2 & -1 \\ 2 & 1 & 3 \\ 1 & 0 & 1 \end{array}\right], \quad \boldsymbol{A}_{2}=\left[\begin{array}{ccc} 3 & -3 & 0 \\ 1 & 2 & 3 \\ 7 & -5 & 2 \\ 3 & -1 & 2 \end{array}\right]

a. U1,U2U_{1}, U_{2}차원을 결정하라. b. U1U_{1}U2U_{2}기저를 결정하라. c. U1U2U_{1} \cap U_{2}기저를 결정하라. 2.15 F={(x,y,z)R3x+yz=0}F=\left\{(x, y, z) \in \mathbb{R}^{3} \mid x+y-z=0\right\}이고 G={(ab,a+b,a3b)a,bR}G=\{(a-b, a+b, a-3 b) \mid a, b \in \mathbb{R}\}라고 하자. a. FFGGR3\mathbb{R}^{3}부분 공간임을 보여라. b. **기저 벡터(basis vector)**를 사용하지 않고 FGF \cap G를 계산하라. c. FFGG에 대한 기저를 각각 하나씩 찾고, 이전에 찾은 기저 벡터를 사용하여 FGF \cap G를 계산한 다음, 이전 질문의 결과와 비교하여 확인하라. 2.16 다음 **매핑(mappings)**은 **선형(linear)**인가? a. a,bRa, b \in \mathbb{R}이라고 하자.

Φ:L1([a,b])RfΦ(f)=abf(x)dx\begin{aligned} \Phi: L^{1}([a, b]) & \rightarrow \mathbb{R} \\ f & \mapsto \Phi(f)=\int_{a}^{b} f(x) d x \end{aligned}

여기서 L1([a,b])L^{1}([a, b])[a,b][a, b]에서 **적분 가능한 함수(integrable functions)**의 집합을 나타낸다. b.

Φ:C1C0fΦ(f)=f\begin{aligned} \Phi: C^{1} & \rightarrow C^{0} \\ f & \mapsto \Phi(f)=f^{\prime} \end{aligned}

여기서 k1k \geqslant 1에 대해 CkC^{k}kk번 **연속 미분 가능한 함수(continuously differentiable functions)**의 집합을 나타내고, C0C^{0}는 **연속 함수(continuous functions)**의 집합을 나타낸다. c.

Φ:RRxΦ(x)=cos(x)\begin{aligned} \Phi: \mathbb{R} & \rightarrow \mathbb{R} \\ x & \mapsto \Phi(x)=\cos (x) \end{aligned}

d.

Φ:R3R2x[123143]x\begin{aligned} \Phi: \mathbb{R}^{3} & \rightarrow \mathbb{R}^{2} \\ \boldsymbol{x} & \mapsto\left[\begin{array}{lll} 1 & 2 & 3 \\ 1 & 4 & 3 \end{array}\right] \boldsymbol{x} \end{aligned}

e. θ\theta[0,2π[[0,2 \pi[에 속한다고 하자.

Φ:R2R2x[cos(θ)sin(θ)sin(θ)cos(θ)]x\begin{aligned} \Phi: \mathbb{R}^{2} & \rightarrow \mathbb{R}^{2} \\ \boldsymbol{x} & \mapsto\left[\begin{array}{cc} \cos (\theta) & \sin (\theta) \\ -\sin (\theta) & \cos (\theta) \end{array}\right] \boldsymbol{x} \end{aligned}

2.17 다음 **선형 매핑(linear mapping)**을 고려한다.

Φ:R3R4Φ([x1x2x3])=[3x1+2x2+x3x1+x2+x3x13x22x1+3x2+x3]\begin{aligned} & \Phi: \mathbb{R}^{3} \rightarrow \mathbb{R}^{4} \\ & \Phi\left(\left[\begin{array}{l} x_{1} \\ x_{2} \\ x_{3} \end{array}\right]\right)=\left[\begin{array}{c} 3 x_{1}+2 x_{2}+x_{3} \\ x_{1}+x_{2}+x_{3} \\ x_{1}-3 x_{2} \\ 2 x_{1}+3 x_{2}+x_{3} \end{array}\right] \end{aligned}
  • 변환 행렬(transformation matrix) AΦ\boldsymbol{A}_{\Phi}를 찾아라.
  • rk(AΦ)\operatorname{rk}\left(\boldsymbol{A}_{\Phi}\right)를 결정하라.
  • Φ\Phi의 **핵(kernel)**과 **상(image)**을 계산하라. dim(ker(Φ))\operatorname{dim}(\operatorname{ker}(\Phi))dim(Im(Φ))\operatorname{dim}(\operatorname{Im}(\Phi))는 무엇인가? 2.18 EE를 **벡터 공간(vector space)**이라고 하자. fg=idEf \circ g=\operatorname{id}_{E} (즉, fgf \circ g항등 매핑(identity mapping) idE\operatorname{id}_{E}이다)를 만족하는 EE의 두 자기 동형 사상(automorphisms) ffgg를 고려한다. ker(f)=ker(gf)\operatorname{ker}(f)= \operatorname{ker}(g \circ f), Im(g)=Im(gf)\operatorname{Im}(g)=\operatorname{Im}(g \circ f)이고 ker(f)Im(g)={0E}\operatorname{ker}(f) \cap \operatorname{Im}(g)=\left\{\mathbf{0}_{E}\right\}임을 보여라. 2.19 **표준 기저(standard basis)**에 대한 변환 행렬이 다음과 같은 자기 준동형 사상(endomorphism) Φ:R3R3\Phi: \mathbb{R}^{3} \rightarrow \mathbb{R}^{3}을 고려한다.
AΦ=[110110111].\boldsymbol{A}_{\Phi}=\left[\begin{array}{ccc} 1 & 1 & 0 \\ 1 & -1 & 0 \\ 1 & 1 & 1 \end{array}\right] .

a. ker(Φ)\operatorname{ker}(\Phi)Im(Φ)\operatorname{Im}(\Phi)를 결정하라. b. 다음 기저에 대한 변환 행렬 A~Φ\tilde{\boldsymbol{A}}_{\Phi}를 결정하라.

B=([111],[121],[100]),B=\left(\left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right],\left[\begin{array}{l} 1 \\ 2 \\ 1 \end{array}\right],\left[\begin{array}{l} 1 \\ 0 \\ 0 \end{array}\right]\right),

즉, 새로운 기저 BB로 **기저 변환(basis change)**을 수행하라. 2.20 R2\mathbb{R}^{2}표준 기저로 표현된 R2\mathbb{R}^{2}의 4개 벡터 b1,b2,b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2}, \boldsymbol{b}_{1}^{\prime}, \boldsymbol{b}_{2}^{\prime}를 고려한다.

b1=[21],b2=[11],b1=[22],b2=[11]\boldsymbol{b}_{1}=\left[\begin{array}{l} 2 \\ 1 \end{array}\right], \quad \boldsymbol{b}_{2}=\left[\begin{array}{l} -1 \\ -1 \end{array}\right], \quad \boldsymbol{b}_{1}^{\prime}=\left[\begin{array}{c} 2 \\ -2 \end{array}\right], \quad \boldsymbol{b}_{2}^{\prime}=\left[\begin{array}{l} 1 \\ 1 \end{array}\right]

그리고 R2\mathbb{R}^{2}의 두 순서 기저(ordered bases) B=(b1,b2)B=\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right)B=(b1,b2)B^{\prime}=\left(\boldsymbol{b}_{1}^{\prime}, \boldsymbol{b}_{2}^{\prime}\right)를 정의한다. a. BBBB^{\prime}R2\mathbb{R}^{2}의 두 기저임을 보이고, 이 기저 벡터들을 그려라. b. BB^{\prime}에서 BB기저 변환을 수행하는 행렬 P1\boldsymbol{P}_{1}을 계산하라. c. R3\mathbb{R}^{3}표준 기저로 정의된 R3\mathbb{R}^{3}의 세 벡터 c1,c2,c3\boldsymbol{c}_{1}, \boldsymbol{c}_{2}, \boldsymbol{c}_{3}를 고려한다.

c1=[121],c2=[012],c3=[101]\boldsymbol{c}_{1}=\left[\begin{array}{c} 1 \\ 2 \\ -1 \end{array}\right], \quad \boldsymbol{c}_{2}=\left[\begin{array}{c} 0 \\ -1 \\ 2 \end{array}\right], \quad \boldsymbol{c}_{3}=\left[\begin{array}{c} 1 \\ 0 \\ -1 \end{array}\right]

그리고 C=(c1,c2,c3)C=\left(\boldsymbol{c}_{1}, \boldsymbol{c}_{2}, \boldsymbol{c}_{3}\right)를 정의한다. (i) **행렬식(determinants)**을 사용하여 (4.1절 참조) CCR3\mathbb{R}^{3}기저임을 보여라. (ii) C=(c1,c2,c3)C^{\prime}=\left(\boldsymbol{c}_{1}^{\prime}, \boldsymbol{c}_{2}^{\prime}, \boldsymbol{c}_{3}^{\prime}\right)R3\mathbb{R}^{3}표준 기저라고 하자. CC에서 CC^{\prime}기저 변환을 수행하는 행렬 P2\boldsymbol{P}_{2}를 결정하라. d. 준동형 사상(homomorphism) Φ:R2R3\Phi: \mathbb{R}^{2} \longrightarrow \mathbb{R}^{3}를 고려한다.

Φ(b1+b2)=c2+c3Φ(b1b2)=2c1c2+3c3\begin{aligned} & \Phi\left(\boldsymbol{b}_{1}+\boldsymbol{b}_{2}\right)=\boldsymbol{c}_{2}+\boldsymbol{c}_{3} \\ & \Phi\left(\boldsymbol{b}_{1}-\boldsymbol{b}_{2}\right)=2 \boldsymbol{c}_{1}-\boldsymbol{c}_{2}+3 \boldsymbol{c}_{3} \end{aligned}

여기서 B=(b1,b2)B=\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right)C=(c1,c2,c3)C=\left(\boldsymbol{c}_{1}, \boldsymbol{c}_{2}, \boldsymbol{c}_{3}\right)는 각각 R2\mathbb{R}^{2}R3\mathbb{R}^{3}순서 기저이다. 순서 기저 BBCC에 대한 Φ\Phi변환 행렬 AΦ\boldsymbol{A}_{\Phi}를 결정하라. e. 기저 B\boldsymbol{B}^{\prime}C\boldsymbol{C}^{\prime}에 대한 Φ\Phi변환 행렬 A\boldsymbol{A}^{\prime}를 결정하라. f. BB^{\prime}에서 좌표가 [2,3][2,3]^{\top}R2\mathbb{R}^{2}의 벡터 x\boldsymbol{x}를 고려한다. 즉, x=2b1+3b2\boldsymbol{x}=2 \boldsymbol{b}_{1}^{\prime}+3 \boldsymbol{b}_{2}^{\prime}이다. (i) BB에서 x\boldsymbol{x}의 좌표를 계산하라. (ii) 이를 바탕으로 CC로 표현된 Φ(x)\Phi(\boldsymbol{x})의 좌표를 계산하라. (iii) 그런 다음 Φ(x)\Phi(\boldsymbol{x})c1,c2,c3\boldsymbol{c}_{1}^{\prime}, \boldsymbol{c}_{2}^{\prime}, \boldsymbol{c}_{3}^{\prime}로 작성하라. (iv) BB^{\prime}에서 x\boldsymbol{x}의 표현과 행렬 A\boldsymbol{A}^{\prime}를 사용하여 이 결과를 직접 찾아라.