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 Usman
Ellen Broad
Adam Gaier
Fengkuangtian Zhu
Adele Jackson
Fiona Condon
Aditya Menon
Georgios Theodorou
Alasdair Tran
He Xin
Aleksandar Krnjaic
Irene Raissa Kameni
Alexander Makrigiorgos
Jakub Nabaglo
Alfredo Canziani
James Hensman
Ali Shafti
Jamie Liu
Amr Khalifa
Jean Kaddour
Andrew Tanggara
Jean-Paul Ebejer
Angus Gruen
Jerry Qiang
Antal A. Buss
Jitesh Sindhare
Antoine Toisoul Le Cann
John Lloyd
Areg Sarvazyan
Jonas Ngnawe
Artem Artemev
Jon Martin
Artyom Stepanov
Justin Hsi
Bill Kromydas
Kai Arulkumaran
Bob Williamson
Kamil Dreczkowski
Boon Ping Lim
Lily Wang
Chao Qu
Lionel Tondji Ngoupeyou
Cheng Li
Lydia Knüfing
Chris Sherlock
Mahmoud Aslan
Christopher Gray
Mark Hartenstein
Daniel McNamara
Mark van der Wilk
Daniel Wood
Markus Hegland
Darren Siegel
Martin Hewing
David Johnston
Matthew Alger
Dawei Chen
Matthew Lee
Maximus McCann
Shakir Mohamed
Mengyan Zhang
Shawn Berry
Michael Bennett
Sheikh Abdul Raheem Ali
Michael Pedersen
Sheng Xue
Minjeong Shin
Sridhar Thiagarajan
Mohammad Malekzadeh
Syed Nouman Hasany
Naveen Kumar
Szymon Brych
Nico Montali
Thomas Bühler
Oscar Armas
Timur Sharapov
Patrick Henriksen
Tom Melamed
Patrick Wieschollek
Vincent Adam
Pattarawat Chormai
Vincent Dutordoir
Paul Kelly
Vu Minh
Petros Christodoulou
Wasim Aftab
Piotr Januszewski
Wen Zhi
Pranav Subramani
Wojciech Stokowiec
Quyu Kong
Xiaonan Chong
Ragib Zaman
Xiaowei Zhang
Rui Zhang
Ryan-Rhys Griffiths
Yazhou Hao
Salomon Kabongo
Yicheng Luo
Samuel Ogunmola
Young Lee
Sandeep Mavadia
Yu Lu
Sarvesh Nikumbh
Yun Cheng
Sebastian Raschka
Yuxiao Huang
Senanayak Sesh Kumar Karri
Zac Cranko
Seung-Heon Baek
Zijian Cao
Shahbaz Chaudhary
Zoe Nolan
GitHub 프로필에 실명이 기재되지 않은 GitHub 기여자들은 다음과 같다:
SamDataMad
insad
empet
bumptiousmonkey
HorizonP
victorBigand
idoamihai
cs-maillist
17SKYE
deepakiim
kudo23
jessjing1995
또한 Parameswaran Raman과 Cambridge University Press에서 조직한 익명의 많은 검토자들에게도 깊이 감사드린다. 이들은 원고의 초기 버전 중 하나 이상의 장을 읽고 상당한 개선을 이끌어낸 건설적인 비판을 제공했다. 특히 Dinesh Singh Negi에게는 ATEX 관련 문제에 대한 상세하고 신속한 조언을 제공해 준 ATEX 지원에 대해 특별히 언급하고 싶다. 마지막으로, 이 책의 집필 과정을 인내심 있게 지도해 준 편집자 Lauren Cowles에게 매우 감사드린다.
기호 표
기호
일반적인 의미
a,b,c,α,β,γ
스칼라는 소문자
x,y,z
벡터는 굵은 소문자
A,B,C
행렬은 굵은 대문자
x⊤,A⊤
벡터 또는 행렬의 전치
A−1
행렬의 역행렬
⟨x,y⟩
x와 y의 내적
x⊤y
x와 y의 점곱
B=(b1,b2,b3)
(순서가 있는) 튜플
B=[b1,b2,b3]
열 벡터를 가로로 쌓은 행렬
B={b1,b2,b3}
벡터의 집합 (순서 없음)
Z,N
각각 정수와 자연수
R,C
각각 실수와 복소수
Rn
n차원 실수 벡터 공간
∀x
전칭 기호: 모든 x에 대해
∃x
존재 기호: x가 존재한다
a:=b
a는 b로 정의된다
a=:b
b는 a로 정의된다
a∝b
a는 b에 비례한다 (즉, a= 상수 ⋅b)
g∘f
함수 합성: "f 다음 g"
⟺
필요충분조건
⟹
함의
A,C
집합
a∈A
a는 집합 A의 원소이다
∅
공집합
A\B
A에서 B를 제외한 것: A에는 있지만 B에는 없는 원소들의 집합
D
차원의 수; d=1,…,D로 인덱싱됨
N
데이터 포인트의 수; n=1,…,N으로 인덱싱됨
Im
크기 m×m의 항등 행렬
0m,n
크기 m×n의 영행렬
1m,n
크기 m×n의 일행렬
ei
표준/정규 벡터 (i번째 성분이 1인)
dim
벡터 공간의 차원
rk(A)
행렬 A의 랭크
Im(Φ)
선형 사상 Φ의 이미지
ker( Φ )
선형 사상 Φ의 커널 (영공간)
span[b1]
b1의 스팬 (생성 집합)
tr(A)
A의 트레이스
det(A)
A의 행렬식
∥⋅∥
절댓값 또는 행렬식 (문맥에 따라 다름)
$\
\cdot\
λ
고유값 또는 라그랑주 승수
Eλ
고유값 λ에 해당하는 고유 공간
기호
일반적인 의미
x⊥y
벡터 x와 y는 직교한다
V
벡터 공간
V⊥
벡터 공간 V의 직교 여공간
∑n=1Nxn
xn의 합: x1+…+xN
∏n=1Nxn
xn의 곱: x1⋅…⋅xN
θ
파라미터 벡터
∂f
x에 대한 f의 편미분
∂x
x에 대한 f의 전미분
∇
그래디언트
f∗=minxf(x)
f의 가장 작은 함수 값
x∗∈argminxf(x)
f를 최소화하는 값 x∗ (참고: arg min은 값들의 집합을 반환함)
L
라그랑지안
L
음의 로그-우도
(kn)
이항 계수, n개 중 k개 선택
VX[x]
확률 변수 X에 대한 x의 분산
EX[x]
확률 변수 X에 대한 x의 기댓값
CovX,Y[x,y]
x와 y 사이의 공분산
X\PerpY∣Z
Z가 주어졌을 때 X는 Y와 조건부 독립이다
X∼p
확률 변수 X는 p에 따라 분포한다
N(μ,Σ)
평균 μ와 공분산 Σ를 갖는 가우시안 분포
Ber(μ)
파라미터 μ를 갖는 베르누이 분포
Bin(N,μ)
파라미터 N,μ를 갖는 이항 분포
Beta(α,β)
파라미터 α,β를 갖는 베타 분포
약어 및 두문자어 표
약어
의미
e.g.
Exempli gratia (라틴어: 예를 들어)
GMM
Gaussian mixture model
i.e.
Id est (라틴어: 즉)
i.i.d.
Independent, identically distributed
MAP
Maximum a posteriori
MLE
Maximum likelihood estimation/estimator
ONB
Orthonormal basis
PCA
Principal component analysis
PPCA
Probabilistic principal component analysis
REF
Row-echelon form
SPD
Symmetric, positive definite
SVM
Support 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)**를 자세히 살펴볼 것이다. 여기서 우리의 목표는 입력 x∈RD를 해당 관측 함수 값 y∈R에 매핑하는 함수를 찾는 것이다. 이 y는 각 입력의 레이블로 해석될 수 있다. 우리는 최대 우도(maximum likelihood) 및 **최대 사후 추정(maximum a posteriori estimation)**을 통한 고전적인 모델 피팅(파라미터 추정)과, 파라미터를 최적화하는 대신 통합하는 **베이즈 선형 회귀(Bayesian linear regression)**에 대해 논의할 것이다.
10장은 그림 1.1의 두 번째 기둥인 **차원 축소(dimensionality reduction)**에 초점을 맞추며, **주성분 분석(principal component analysis)**을 사용한다. 차원 축소의 핵심 목표는 고차원 데이터 x∈RD의 압축된 저차원 표현을 찾는 것이다. 이는 종종 원본 데이터보다 분석하기 쉽다. 회귀와 달리 차원 축소는 데이터 모델링에만 관련되며, 데이터 포인트 x와 관련된 레이블은 없다.
11장에서는 세 번째 기둥인 **밀도 추정(density estimation)**으로 넘어갈 것이다. 밀도 추정의 목표는 주어진 데이터셋을 설명하는 확률 분포를 찾는 것이다. 우리는 이 목적을 위해 **가우시안 혼합 모델(Gaussian mixture models)**에 초점을 맞출 것이며, 이 모델의 파라미터를 찾는 반복적인 방식을 논의할 것이다. 차원 축소와 마찬가지로 데이터 포인트 x∈RD와 관련된 레이블은 없다. 그러나 우리는 데이터의 저차원 표현을 찾지 않는다. 대신, 데이터를 설명하는 밀도 모델에 관심이 있다.
12장은 네 번째 기둥인 **분류(classification)**에 대한 심층적인 논의로 책을 마무리한다. 우리는 **서포트 벡터 머신(support vector machines)**의 맥락에서 분류를 논의할 것이다. 회귀(9장)와 유사하게, 입력 x와 해당 레이블 y가 있다. 그러나 레이블이 실수 값이었던 회귀와 달리, 분류에서의 레이블은 정수이며, 이는 특별한 주의를 요한다.
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와 y). 이 책에서는 더 일반적인 벡터 개념을 다루며, 굵은 글자로 표시한다(예: x와 y).
일반적으로 벡터는 서로 더할 수 있고 스칼라를 곱하여 같은 종류의 다른 객체를 생성할 수 있는 특별한 객체이다. 추상적인 수학적 관점에서, 이 두 가지 속성을 만족하는 모든 객체는 벡터로 간주될 수 있다. 다음은 이러한 벡터 객체의 몇 가지 예시이다:
기하학적 벡터(Geometric vectors). 이 벡터 예시는 고등학교 수학 및 물리학에서 익숙할 수 있다. 그림 2.1(a)에서 볼 수 있는 기하학적 벡터는 방향을 가진 선분으로, (적어도 2차원에서는) 그릴 수 있다. 두 기하학적 벡터 x,y는 서로 더할 수 있으며, 그 결과 x+y=z는 또 다른 기하학적 벡터가 된다. 또한, 스칼라 λ∈R를 곱한 λx도 기하학적 벡터이다. 사실, 이는 원래 벡터가 λ만큼 스케일링된 것이다. 따라서 기하학적 벡터는 이전에 소개된 벡터 개념의 한 예시이다. 벡터를 기하학적 벡터로 해석하면 방향과 크기에 대한 직관을 사용하여 수학적 연산에 대해 추론할 수 있다.
**다항식(Polynomials)**도 벡터이다. 그림 2.1(b)를 참조하라: 두 다항식을
(a) 기하학적 벡터.
(b) 다항식.
algebra
그림 2.1
다양한 유형의 벡터. 벡터는 다음과 같은 놀라운 객체를 포함할 수 있다:
(a) 기하학적 벡터 및 (b) 다항식.
서로 더하면 또 다른 다항식이 되고, 스칼라 λ∈R를 곱해도 그 결과는 다항식이다. 따라서 다항식은 (다소 특이한) 벡터의 한 예시이다. 다항식은 기하학적 벡터와 매우 다르다는 점에 유의하라. 기하학적 벡터가 구체적인 "그림"인 반면, 다항식은 추상적인 개념이다. 그러나 둘 다 이전에 설명된 의미에서 벡터이다.
3. **오디오 신호(Audio signals)**는 벡터이다. 오디오 신호는 일련의 숫자로 표현된다. 오디오 신호를 서로 더할 수 있으며, 그 합은 새로운 오디오 신호이다. 오디오 신호를 스케일링해도 오디오 신호를 얻는다. 따라서 오디오 신호도 벡터의 한 유형이다.
4. Rn의 원소(n개의 실수 튜플)는 벡터이다. Rn은 다항식보다 더 추상적이며, 이 책에서 우리가 중점적으로 다룰 개념이다. 예를 들어,
a=123∈R3
는 세 개의 숫자 튜플의 예시이다. 두 벡터 a,b∈Rn를 성분별로 더하면 또 다른 벡터 a+b=c∈Rn가 된다. 또한, a∈Rn에 λ∈R를 곱하면 스케일링된 벡터 λa∈Rn가 된다. 벡터를 Rn의 원소로 간주하는 것은 컴퓨터의 실수 배열과 느슨하게 일치한다는 추가적인 이점이 있다. 많은 프로그래밍 언어는 배열 연산을 지원하며, 이는 벡터 연산을 포함하는 알고리즘을 편리하게 구현할 수 있게 한다.
선형 대수는 이러한 벡터 개념 간의 유사성에 초점을 맞춘다. 우리는 벡터를 서로 더하고 스칼라를 곱할 수 있다. 선형 대수의 대부분의 알고리즘이 Rn으로 공식화되기 때문에 우리는 주로 Rn의 벡터에 초점을 맞출 것이다. 8장에서 데이터가 종종 Rn의 벡터로 표현된다는 것을 알게 될 것이다. 이 책에서는 **유한 차원 벡터 공간(finite-dimensional vector spaces)**에 초점을 맞출 것이며, 이 경우 모든 종류의 벡터와 Rn 사이에 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,…,Nn을 생산하는데, 이를 위해 자원 R1,…,Rm이 필요하다. 제품 Nj 한 단위를 생산하기 위해서는 자원 Ri가 aij 단위 필요하며, 여기서 i=1,…,m이고 j=1,…,n이다.
목표는 최적의 생산 계획을 찾는 것이다. 즉, 총 bi 단위의 자원 Ri가 사용 가능하고 (이상적으로는) 남는 자원이 없을 때, 각 제품 Nj를 몇 단위 xj 생산해야 하는지에 대한 계획이다.
만약 해당 제품들을 x1,…,xn 단위 생산한다면, 총 자원 Ri는 다음과 같이 필요하다:
ai1x1+⋯+ainxn
따라서 최적의 생산 계획 (x1,…,xn)∈Rn은 다음 연립방정식을 만족해야 한다:
a11x1+⋯+a1nxn=b1⋮am1x1+⋯+amnxn=bm
여기서 aij∈R이고 bi∈R이다.
선형 연립방정식해
방정식 (2.3)은 선형 연립방정식의 일반적인 형태이며, x1,…,xn은 이 시스템의 미지수이다. (2.3)을 만족하는 모든 n-튜플 (x1,…,xn)∈Rn은 선형 연립방정식의 해이다.
Example 2.2
선형 방정식 시스템
x1+x2+x3=3x1−x2+2x3=22x1
는 해가 없다: 첫 번째 두 방정식을 더하면 2x1+3x3=5가 되는데, 이는 세 번째 방정식 (3)과 모순된다.
선형 방정식 시스템
x1+x2+x3=3x1−x2+2x3=2x2+x3=2
를 살펴보자. 첫 번째 방정식과 세 번째 방정식으로부터 x1=1이 도출된다. (1) + (2)로부터 2x1+3x3=5, 즉 x3=1을 얻는다. (3)으로부터 x2=1을 얻는다. 따라서 (1,1,1)은 유일하게 가능한 해이다 ((1,1,1)이 해인지 대입하여 확인해 보라).
세 번째 예시로 다음을 고려한다.
x1+x2+x3=3x1−x2+2x3=22x1=5x3=5
(1)+(2)=(3)이므로, 세 번째 방정식은 생략할 수 있다 (redundancy). (1)과 (2)로부터 2x1=5−3x3 및 2x2=1+x3를 얻는다. 우리는 x3=a∈R를 **자유 변수(free variable)**로 정의하여, 다음의 모든 삼중쌍(triplet)
(25−23a,21+21a,a),a∈R
그림 2.3 두 변수를 가진 두 선형 방정식 시스템의 해 공간은 두 직선의 교점으로 기하학적으로 해석될 수 있다. 모든 선형 방정식은 하나의 직선을 나타낸다.
이 선형 방정식 시스템의 해가 되도록 한다. 즉, 무한히 많은 해를 포함하는 해 집합을 얻는다.
일반적으로, 실수 값을 갖는 선형 방정식 시스템의 경우 해가 없거나, 정확히 하나이거나, 무한히 많은 해를 얻는다. 선형 회귀(9장)는 선형 방정식 시스템을 풀 수 없을 때 예시 2.1의 한 버전을 해결한다.
비고 (선형 방정식 시스템의 기하학적 해석). 두 변수 x1,x2를 갖는 선형 방정식 시스템에서 각 선형 방정식은 x1x2-평면에서 직선을 정의한다. 선형 방정식 시스템의 해는 모든 방정식을 동시에 만족해야 하므로, 해 집합은 이 직선들의 교점이다. 이 교점 집합은 직선(선형 방정식이 동일한 직선을 나타내는 경우), 점, 또는 공집합(직선들이 평행한 경우)이 될 수 있다. 다음 시스템에 대한 그림 2.3에 예시가 나와 있다.
4x1+4x2=52x1−4x2=1
여기서 해 공간은 점 (x1,x2)=(1,41)이다. 유사하게, 세 변수의 경우 각 선형 방정식은 3차원 공간에서 평면을 결정한다. 이 평면들을 교차시킬 때, 즉 모든 선형 방정식을 동시에 만족시킬 때, 해 집합은 평면, 직선, 점 또는 공집합(평면들이 공통 교점을 갖지 않는 경우)이 될 수 있다.
선형 방정식 시스템을 해결하기 위한 체계적인 접근 방식을 위해 유용한 간결한 표기법을 도입할 것이다. 계수 aij를 벡터로 모으고, 벡터들을 행렬로 모은다. 다시 말해, (2.3)의 시스템을 다음 형식으로 작성한다.
다음에서는 이러한 행렬들을 자세히 살펴보고 계산 규칙을 정의할 것이다. 선형 방정식 해결에 대해서는 2.3절에서 다시 다룰 것이다.
2.2 Matrices
행렬은 선형대수학에서 중심적인 역할을 한다. 행렬은 연립 선형 방정식을 간결하게 나타내는 데 사용될 수 있으며, 2.7절에서 보겠지만 선형 함수(선형 매핑)를 나타내기도 한다. 이러한 흥미로운 주제들을 논의하기 전에, 먼저 행렬이 무엇인지, 그리고 행렬로 어떤 종류의 연산을 수행할 수 있는지 정의해 보자. 행렬의 더 많은 속성은 4장에서 다룰 것이다.
정의 2.1 (행렬). m,n∈N일 때, 실수 값의 (m,n)행렬A는 m개의 행과 n개의 열로 구성된 직사각형 형태에 따라 정렬된 m⋅n개의 원소 aij,i=1,…,m,j=1,…,n의 튜플이다:
row
column row vector column vector
Figure 2.4 열들을 쌓음으로써 행렬 A는 긴 벡터 a로 표현될 수 있다.
행렬의 크기에 유의하라.
C= np.einsum('il, lj ', A, B)
관례적으로 (1,n)-행렬은 **행(rows)**이라고 불리며, (m,1)-행렬은 **열(columns)**이라고 불린다. 이러한 특수한 행렬들은 **행/열 벡터(row/column vectors)**라고도 불린다.
Rm×n은 모든 실수 값의 (m,n)-행렬들의 집합이다. A∈Rm×n은 행렬의 모든 n개 열을 긴 벡터로 쌓아서 a∈Rmn으로 동등하게 표현될 수 있다; 그림 2.4를 참조하라.
행렬 A∈Rm×n,B∈Rn×k에 대해, 곱 C=AB∈Rm×k의 원소 cij는 다음과 같이 계산된다.
cij=l=1∑nailblj,i=1,…,m,j=1,…,k.
이는 원소 cij를 계산하기 위해 A의 i번째 행의 원소들과 B의 j번째 열의 원소들을 곱하고 합산한다는 것을 의미한다. 3.2절에서 우리는 이를 해당 행과 열의 dot product라고 부를 것이다. 곱셈을 수행하고 있음을 명시해야 하는 경우, 곱셈을 나타내기 위해 A⋅B 표기법을 사용한다("."을 명시적으로 표시).
참고. 행렬은 "인접한" 차원이 일치하는 경우에만 곱할 수 있다. 예를 들어, n×k 행렬 A는 k×m 행렬 B와 곱할 수 있지만, 왼쪽에서만 가능하다.
n×kAk×mB=n×mC
BA의 곱은 m=n인 경우 정의되지 않는데, 이는 인접한 차원이 일치하지 않기 때문이다.
참고. 행렬 곱셈은 행렬 원소에 대한 element-wise operation으로 정의되지 않는다. 즉, cij=aijbij이다 (심지어 A,B의 크기가 적절하게 선택되었더라도). 이러한 종류의 element-wise 곱셈은 프로그래밍 언어에서 (다차원) 배열을 서로 곱할 때 자주 나타나며, Hadamard product라고 불린다.
Example 2.3
A=[132231]∈R2×3,B=0102−11∈R3×2 일 때, 다음을 얻는다.
A에는 n개의 열이 있고 B에는 n개의 행이 있으므로 l=1,…,n에 대해 ailblj를 계산할 수 있다.
일반적으로 두 벡터 a,b의 **내적(dot product)**은 a⊤b 또는 ⟨a,b⟩로 표기한다.
Hadamard product
그림 2.5 두 행렬 곱셈 AB와 BA가 모두 정의되더라도 결과의 차원은 다를 수 있다.
대각선에 1이 있고 다른 모든 곳에 0이 있는 n×n 행렬이다.
이제 행렬 곱셈, 행렬 덧셈 및 항등 행렬을 정의했으므로 행렬의 몇 가지 속성을 살펴보자.
결합법칙(associativity)분배법칙(distributivity)
**정방 행렬(square matrix)**은 열과 행의 수가 같다.
역행렬(inverse)정칙 행렬(regular)가역 행렬(invertible)비특이 행렬(nonsingular)특이 행렬(singular)비가역 행렬(noninvertible)
결합법칙(Associativity):
∀A∈Rm×n,B∈Rn×p,C∈Rp×q:(AB)C=A(BC)
분배법칙(Distributivity):
∀A,B∈Rm×n,C,D∈Rn×p:(A+B)C=AC+BCA(C+D)=AC+AD
항등 행렬과의 곱셈(Multiplication with the identity matrix):
∀A∈Rm×n:ImA=AIn=A
m=n일 때 Im=In 임에 유의하라.
2.2.2 Inverse and Transpose
정의 2.3 (역행렬, Inverse). 정방행렬 A∈Rn×n를 고려하자. 행렬 B∈Rn×n가 AB=In=BA 속성을 가질 때, B를 A의 **역행렬(inverse)**이라고 부르며 A−1로 표기한다.
불행히도 모든 행렬 A가 역행렬 A−1를 가지는 것은 아니다. 만약 역행렬이 존재한다면, A를 **정칙(regular/invertible/nonsingular)**이라고 부르고, 그렇지 않다면 **특이(singular/noninvertible)**라고 부른다. 행렬의 역행렬이 존재할 경우, 그것은 유일하다. 섹션 2.3에서는 연립 선형 방정식을 푸는 일반적인 방법으로 행렬의 역행렬을 계산하는 방법을 논의할 것이다.
는 a11a22−a12a21=0일 때만 성립한다. 섹션 4.1에서 a11a22−a12a21가 2x2 행렬의 **행렬식(determinant)**임을 알게 될 것이다. 또한, 일반적으로 행렬식을 사용하여 행렬이 **가역(invertible)**인지 확인할 수 있다.
Example 2.4 (Inverse Matrix)
행렬
A=146247157,B=−724−7156−1−4
은 AB=I=BA 이므로 서로 역행렬 관계이다.
정의 2.4 (Transpose). A∈Rm×n에 대해 bij=aji인 행렬 B∈Rn×m를 A의 **전치행렬(transpose)**이라고 한다. 우리는 B=A⊤로 표기한다.
일반적으로 A⊤는 A의 열을 A⊤의 행으로 작성하여 얻을 수 있다. 다음은 역행렬과 전치행렬의 중요한 속성이다:
정의 2.5 (Symmetric Matrix). 행렬 A∈Rn×n가 A=A⊤이면 **대칭 행렬(symmetric matrix)**이라고 한다.
오직 (n,n)-행렬만이 대칭 행렬이 될 수 있다는 점에 유의해야 한다. 일반적으로 (n,n)-행렬은 행과 열의 수가 같기 때문에 **정방 행렬(square matrices)**이라고도 불린다. 또한, A가 가역 행렬(invertible)이면 A⊤도 가역 행렬이며, (A−1)⊤=(A⊤)−1=:A−⊤이다.
비고 (대칭 행렬의 합과 곱). 대칭 행렬 A,B∈Rn×n의 합은 항상 대칭 행렬이다. 그러나 이들의 곱은 항상 정의되지만, 일반적으로 대칭 행렬은 아니다:
[1000][1111]=[1010]
2.2.3 Multiplication by a Scalar
행렬이 스칼라 λ∈R에 의해 곱해질 때 어떤 일이 발생하는지 살펴보자. A∈Rm×n이고 λ∈R이라고 하자. 그러면 λA=K이고, Kij=λaij이다. 실제적으로 λ는 A의 각 요소를 스케일링한다. λ,ψ∈R에 대해 다음이 성립한다:
transpose
행렬 A의 주대각선(때로는 "principal diagonal", "primary diagonal", "leading diagonal", 또는 "major diagonal"이라고도 불림)은 i=j인 엔트리 Aij의 집합이다.
(2.28)의 스칼라 경우는 다음과 같다:
2+41=61=21+41.
symmetric matrix
square matrix
associativity
distributivity
를 고려하고 행렬 곱셈 규칙을 사용하면, 이 방정식 시스템을 다음과 같이 더 간결한 형태로 작성할 수 있다.
2493−255−7−3x1x2x3=182.
여기서 x1은 첫 번째 열을, x2는 두 번째 열을, 그리고 x3는 세 번째 열을 스케일링한다.
일반적으로, 선형 방정식 시스템은 행렬 형태인 Ax=b로 간결하게 표현될 수 있다. (2.3)을 참조하라. 그리고 곱 Ax는 A의 열들의 (선형) 조합이다. 선형 조합에 대해서는 2.5절에서 더 자세히 논의할 것이다.
2.3 Solving Systems of Linear Equations
(2.3)에서 우리는 방정식 시스템의 일반적인 형태를 다음과 같이 소개했다.
a11x1+⋯+a1nxn=am1x1+⋯+amnxn=b1⋮bm
여기서 aij∈R와 bi∈R는 알려진 상수이고 xj는 미지수이며, i=1,…,m,j=1,…,n이다. 지금까지 우리는 행렬이 선형 방정식 시스템을 간결하게 표현하는 방법으로 사용될 수 있음을 보았고, 이를 통해 Ax=b로 쓸 수 있었다(2.10 참조). 또한, 행렬의 덧셈과 곱셈과 같은 기본적인 행렬 연산을 정의했다. 다음에서는 선형 방정식 시스템을 푸는 데 중점을 두고, 행렬의 역행렬을 찾는 알고리즘을 제공할 것이다.
2.3.1 Particular and General Solution
선형 방정식 시스템을 일반적으로 푸는 방법에 대해 논의하기 전에, 예시를 살펴보자. 다음 방정식 시스템을 고려해보자.
[100182−412]x1x2x3x4=[428]
이 시스템은 두 개의 방정식과 네 개의 미지수를 가지고 있다. 따라서 일반적으로 무한히 많은 해를 기대할 수 있다. 이 방정식 시스템은 처음 두 열이 1과 0으로 구성되어 있어 특히 쉬운 형태를 띠고 있다. 우리는 ∑i=14xici=b를 만족하는 스칼라 x1,…,x4를 찾는 것을 목표로 한다. 여기서 ci는 행렬의 i번째 열이고, b는 (2.38)의 우변이다. (2.38)의 문제에 대한 해는 첫 번째 열에 42를 곱하고 두 번째 열에 8을 곱하여 즉시 찾을 수 있다.
b=[428]=42[10]+8[01]
따라서 하나의 해는 [42,8,0,0]⊤이다. 이 해를 특수해(particular solution) 또는 **특정해(special solution)**라고 한다. 그러나 이것이 이 선형 방정식 시스템의 유일한 해는 아니다. 다른 모든 해를 포착하기 위해서는 행렬의 열을 사용하여 자명하지 않은(non-trivial) 방식으로 0을 생성하는 데 창의적이어야 한다. 특수해에 0을 더해도 특수해는 변하지 않는다. 이를 위해 세 번째 열을 처음 두 열(매우 간단한 형태)을 사용하여 표현한다.
[82]=8[10]+2[01]
따라서 0=8c1+2c2−1c3+0c4이고 (x1,x2,x3,x4)=(8,2,−1,0)이다. 사실, 이 해를 λ1∈R로 스케일링하면 0 벡터가 생성된다. 즉,
일반해와 특수해 모두 유일하지 않다.
앞선 예시의 선형 방정식 시스템은 (2.38)의 행렬이 특히 편리한 형태를 가지고 있어, 특수해와 일반해를 직관적으로(by inspection) 찾을 수 있었기 때문에 풀기 쉬웠다. 그러나 일반적인 방정식 시스템은 이러한 간단한 형태가 아니다. 다행히도, 모든 선형 방정식 시스템을 이 특별히 간단한 형태로 변환하는 구성적인 알고리즘 방식이 존재한다: 바로 **가우스 소거법(Gaussian elimination)**이다. 가우스 소거법의 핵심은 방정식 시스템을 간단한 형태로 변환하는 **선형 방정식 시스템의 기본 변환(elementary transformations)**이다. 그런 다음, (2.38)의 예시에서 방금 논의한 세 단계를 간단한 형태에 적용할 수 있다.
2.3.2 Elementary Transformations
선형 방정식 시스템을 푸는 데 핵심적인 것은 해 집합을 동일하게 유지하면서 방정식 시스템을 더 간단한 형태로 변환하는 **기본 변환(elementary transformations)**이다.
augmented matrix[A∣b]는 연립 선형 방정식 Ax=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으로 되돌리면 다음을 얻는다.
다음에서는 연립 선형 방정식의 particular solution과 general 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,x4는 basic variables이고, x2,x5는 free variables이다.
Remark (Obtaining a Particular Solution). row-echelon form은 particular solution을 결정해야 할 때 우리의 작업을 더 쉽게 만든다. 이를 위해 방정식 시스템의 우변을 pivot columns를 사용하여 b=∑i=1Pλipi와 같이 표현한다. 여기서 pi,i=1,…,P는 pivot columns이다. λi는 가장 오른쪽 pivot column부터 시작하여 왼쪽으로 진행하면서 가장 쉽게 결정된다.
이전 예시에서 우리는 λ1,λ2,λ3를 찾아 다음을 만족시키려고 할 것이다.
λ11000+λ21100+λ3−1−110=0−210
여기서 λ3=1,λ2=−1,λ1=2임을 비교적 직접적으로 알 수 있다. 모든 것을 종합할 때, 계수를 암묵적으로 0으로 설정한 non-pivot columns를 잊어서는 안 된다. 따라서 particular solutionx=[2,0,−1,1,0]⊤를 얻는다.
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 elimination은 elementary transformations를 수행하여 연립 선형 방정식을 reduced row-echelon form으로 만드는 알고리즘이다.
Ax=0의 해를 찾는 핵심 아이디어는 **비피벗 열(nonpivot columns)**을 살펴보는 것이다. 이 비피벗 열을 피벗 열의 (선형) 조합으로 표현해야 한다. 기약 행 사다리꼴은 이를 비교적 간단하게 만들어주며, 비피벗 열을 왼쪽에 있는 피벗 열의 합과 곱으로 표현한다. 두 번째 열은 첫 번째 열의 3배이다 (두 번째 열의 오른쪽에 있는 피벗 열은 무시할 수 있다). 따라서 0을 얻으려면 첫 번째 열의 3배에서 두 번째 열을 빼야 한다. 이제 두 번째 비피벗 열인 다섯 번째 열을 살펴보자. 다섯 번째 열은 첫 번째 피벗 열의 3배, 두 번째 피벗 열의 9배, 세 번째 피벗 열의 -4배로 표현될 수 있다. 우리는 피벗 열의 인덱스를 추적하고 이를 첫 번째 열의 3배, 두 번째 열(비피벗 열)의 0배, 세 번째 열(두 번째 피벗 열)의 9배, 네 번째 열(세 번째 피벗 열)의 -4배로 변환해야 한다. 그런 다음 0을 얻기 위해 다섯 번째 열을 빼야 한다. 결국, 우리는 여전히 동차 방정식 시스템을 풀고 있는 것이다.
여기서 *는 임의의 실수일 수 있으며, 각 행의 첫 번째 0이 아닌 원소는 1이어야 하고 해당 열의 다른 모든 원소는 0이어야 한다는 제약이 있다. 피벗(pivot)(굵게 표시)이 있는 열 j1,…,jk는 표준 단위 벡터 e1,…,ek∈Rk이다. 우리는 이 행렬을 다음과 같은 형태의 n−k개 행을 추가하여 n×n 행렬 A~로 확장한다.
[0⋯0−10⋯0]
이렇게 하면 확장된 행렬 A~의 대각선에는 1 또는 -1이 포함된다. 이때, -1을 피벗으로 포함하는 A~의 열들은 동차 방정식 시스템 Ax=0의 해가 된다. 더 정확히 말하면, 이 열들은 Ax=0의 해 공간의 기저(basis)(섹션 2.6.1)를 형성하며, 이 해 공간을 나중에 커널(kernel) 또는 널 공간(null space)(섹션 2.7.3 참조)이라고 부를 것이다.
Example 2.8 (Minus-1 Trick)
이제 (2.49)의 행렬을 다시 살펴보자. 이 행렬은 이미 **기약 행사다리꼴(reduced REF)**이다:
A=10030001000139−4
이제 이 행렬을 대각선에 **피벗(pivot)**이 없는 위치에 (2.52) 형태의 행을 추가하여 5×5 행렬로 확장하면 다음과 같다:
A~=100003−10000010000010309−4−1
이 형태로부터, 대각선에 -1을 포함하는 A~의 열을 취함으로써 Ax=0의 해를 즉시 읽어낼 수 있다:
A∈Rn×n의 역행렬 A−1을 계산하기 위해, 우리는 AX=In을 만족하는 행렬 X를 찾아야 한다. 그러면 X=A−1이 된다. 우리는 이를 연립 선형 방정식 AX=In으로 쓸 수 있으며, 여기서 X=[x1∣⋯∣xn]을 구한다. 이 연립 선형 방정식 시스템을 간결하게 표현하기 위해 확장 행렬(augmented matrix) 표기법을 사용하면 다음과 같다.
[A∣In]⇝⋯⇝[In∣A−1].
이는 확장된 방정식 시스템을 **기약 행 사다리꼴(reduced row-echelon form)**로 만들면, 방정식 시스템의 오른쪽에 있는 역행렬을 읽어낼 수 있음을 의미한다. 따라서 행렬의 역행렬을 결정하는 것은 선형 방정식 시스템을 푸는 것과 동등하다.
Example 2.9 (Calculating an Inverse Matrix by Gaussian Elimination)
다음 행렬 A의 역행렬을 구하기 위해
A=1111012120010011
우리는 **첨가 행렬(augmented matrix)**을 다음과 같이 작성한다:
11110121200100111000010000100001
그리고 **가우스 소거법(Gaussian elimination)**을 사용하여 이 행렬을 **기약 행사다리꼴(reduced row-echelon form)**로 변환한다:
(2.58)이 실제로 역행렬인지 확인하기 위해 AA−1를 곱하여 I4가 복원되는지 관찰할 수 있다.
2.3.4 Algorithms for Solving a System of Linear Equations
다음에서는 Ax=b 형태의 선형 방정식 시스템을 푸는 접근 방식에 대해 간략하게 논의한다. 우리는 해가 존재한다고 가정한다. 만약 해가 없다면, 근사 해법을 사용해야 하는데, 이는 이 장에서 다루지 않는다. 근사 문제를 해결하는 한 가지 방법은 선형 회귀(linear regression) 접근 방식을 사용하는 것이며, 이는 9장에서 자세히 논의한다.
특수한 경우, 우리는 역행렬 A−1을 결정할 수 있으며, 이 경우 Ax=b의 해는 x=A−1b로 주어진다. 그러나 이는 A가 **정방행렬(square matrix)**이고 **가역행렬(invertible)**인 경우에만 가능하며, 이는 종종 그렇지 않다. 그렇지 않은 경우, 완만한 가정(즉, A는 선형 독립적인 열을 가져야 함) 하에 다음 변환을 사용할 수 있다.
Ax=b⟺A⊤Ax=A⊤b⟺x=(A⊤A)−1A⊤b
그리고 Moore-Penrose pseudo-inverse(A⊤A)−1A⊤를 사용하여 Ax=b를 푸는 해 (2.59)를 결정할 수 있으며, 이는 또한 **최소 노름 최소 제곱 해(minimum norm least-squares solution)**에 해당한다. 이 접근 방식의 단점은 행렬-행렬 곱셈과 A⊤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∗를 Ax=b의 해라고 하자. 이러한 반복 방법의 핵심 아이디어는 다음과 같은 형태의 반복을 설정하는 것이다.
x(k+1)=Cx(k)+d
적절한 C와 d에 대해 매 반복마다 잔차 오차(residual error) x(k+1)−x∗를 줄이고 x∗로 수렴하도록 한다. 벡터 간의 유사성을 계산할 수 있게 해주는 노름(norms) ∥⋅∥은 3.1절에서 소개할 것이다.
2.4 Vector Spaces
지금까지 우리는 연립 선형 방정식과 이를 푸는 방법을 살펴보았다(섹션 2.3). 연립 선형 방정식이 행렬-벡터 표기법(2.10)을 사용하여 간결하게 표현될 수 있음을 확인했다. 다음에서는 벡터 공간, 즉 벡터가 존재하는 구조화된 공간에 대해 더 자세히 살펴볼 것이다.
이 장의 시작 부분에서 우리는 벡터를 서로 더하고 스칼라를 곱해도 같은 유형의 객체로 유지되는 객체로 비공식적으로 특징지었다. 이제 이를 공식화할 준비가 되었으며, 그룹이라는 개념을 도입하는 것으로 시작할 것이다. 그룹은 요소들의 집합과 이 요소들에 대해 정의된 연산으로 구성되며, 이 연산은 집합의 일부 구조를 그대로 유지한다.
Moore-Penrose pseudo-inverse
2.4.1 Groups
그룹은 컴퓨터 과학에서 중요한 역할을 한다. 그룹은 집합에 대한 연산을 위한 기본적인 프레임워크를 제공할 뿐만 아니라, 암호학, 코딩 이론 및 그래픽스 분야에서 많이 사용된다.
정의 2.7 (그룹). 집합 G와 G에 정의된 연산 ⊗:G×G→G를 고려하자.
그룹
닫힘
결합법칙
항등원
역원
아벨 그룹
N0:=N∪{0}
이때 G:=(G,⊗)가 다음을 만족하면 그룹이라고 한다:
⊗에 대한 G의 닫힘(Closure): ∀x,y∈G:x⊗y∈G
결합법칙(Associativity): ∀x,y,z∈G:(x⊗y)⊗z=x⊗(y⊗z)
항등원(Neutral element): ∃e∈G∀x∈G:x⊗e=x 이고 e⊗x=x
역원(Inverse element): ∀x∈G∃y∈G:x⊗y=e 이고 y⊗x=e (여기서 e는 항등원이다). 우리는 종종 x의 역원을 x−1로 표기한다.
비고. 역원은 연산 ⊗에 대해 정의되며, 반드시 x1를 의미하는 것은 아니다.
만약 추가적으로 ∀x,y∈G:x⊗y=y⊗x를 만족하면, G=(G,⊗)는 아벨 그룹(Abelian group) (교환 가능)이라고 한다.
Example 2.10 (Groups)
연산이 연관된 집합의 몇 가지 예시를 살펴보고, 이들이 group인지 확인해 보자:
( Z,+ )는 Abelian group이다.
( N0,+ )는 group이 아니다: ( N0,+ )는 neutral element(0)를 가지고 있지만, inverse element가 없다.
( Z,⋅ )는 group이 아니다: ( Z,⋅ )는 neutral element(1)를 포함하지만, z∈Z,z=±1인 모든 z에 대한 inverse element가 없다.
( R,⋅ )는 0이 inverse element를 가지지 않으므로 group이 아니다.
( R\{0},⋅ )는 Abelian이다.
( Rn,+ ), ( Zn,+ ), n∈N는 +가 componentwise로 정의될 경우 Abelian이다. 즉,
(x1,⋯,xn)+(y1,⋯,yn)=(x1+y1,⋯,xn+yn)
이 경우, (x1,⋯,xn)−1:=(−x1,⋯,−xn)는 inverse element이고 e=(0,⋯,0)는 neutral element이다.
( Rm×n,+ ), 즉 m×n-matrix의 집합은 Abelian이다 (2.61에서 정의된 componentwise addition과 함께).
( Rn×n,⋅ ), 즉 2.13에서 정의된 matrix multiplication을 가진 n×n-matrix의 집합을 더 자세히 살펴보자.
Closure와 associativity는 matrix multiplication의 정의에서 직접적으로 도출된다.
Inverse element: inverse가 존재한다면 (A가 regular인 경우), A−1는 A∈Rn×n의 inverse element이며, 정확히 이 경우 ( Rn×n,⋅ )는 group이 되며, 이를 general linear group이라고 한다.
정의 2.8 (General Linear Group). regular (invertible) matrixA∈Rn×n의 집합은 2.13에서 정의된 matrix multiplication에 대한 group이며, general linear groupGL(n,R)이라고 불린다. 그러나 matrix multiplication은 commutative하지 않으므로, 이 group은 Abelian이 아니다.
2.4.2 Vector Spaces
그룹에 대해 논의할 때, 우리는 집합 G와 G 내의 요소에만 작용하는 G×G→G 형태의 **내부 연산(inner operation)**을 살펴보았다. 다음에서는 내부 연산 + 외에 외부 연산(outer operation)⋅, 즉 G의 벡터 x∈G에 스칼라 λ∈R를 곱하는 연산을 포함하는 집합을 고려할 것이다. 내부 연산을 일종의 덧셈으로, 외부 연산을 일종의 스케일링으로 생각할 수 있다. 내부/외부 연산은 내적/외적과는 관련이 없다는 점에 유의하라.
정의 2.9 (Vector Space). 실수 값 벡터 공간(vector space)V=(V,+,⋅)은 두 가지 연산을 가진 집합 V이다.
+:V×V→V⋅:R×V→V
여기서
(V,+)는 **아벨 군(Abelian group)**이다.
분배 법칙(Distributivity):
∀λ∈R,x,y∈V:λ⋅(x+y)=λ⋅x+λ⋅y
∀λ,ψ∈R,x∈V:(λ+ψ)⋅x=λ⋅x+ψ⋅x
결합 법칙(Associativity) (외부 연산): ∀λ,ψ∈R,x∈V:λ⋅(ψ⋅x)=(λψ)⋅x
외부 연산에 대한 항등원(Neutral element with respect to the outer operation): ∀x∈V:1⋅x=x
V의 요소 x∈V를 **벡터(vector)**라고 한다. (V,+)의 항등원은 영 벡터(zero vector)0=[0,…,0]⊤이며, 내부 연산 +는 **벡터 덧셈(vector addition)**이라고 한다. R의 요소 λ∈R를 **스칼라(scalar)**라고 하며, 외부 연산 ⋅은 **스칼라 곱셈(multiplication by scalars)**이다. 스칼라 곱은 다른 개념이며, 이에 대해서는 3.2절에서 다룰 것이다.
스칼라 곱셈: λx=λ(x1,…,xn)=(λx1,…,λxn) (모든 λ∈R,x∈Rn에 대해)
V=Rm×n,m,n∈N은 다음과 같은 벡터 공간이다:
덧셈: A+B=a11+b11⋮am1+bm1⋯⋯a1n+b1n⋮amn+bmn는 모든 A,B∈V에 대해 원소별(elementwise)로 정의된다.
스칼라 곱셈: λA=λa11⋮λam1⋯⋯λa1n⋮λamn는 섹션 2.2에서 정의된 바와 같다. Rm×n은 Rmn과 동등하다는 것을 기억하라.
V=C는 복소수의 표준 덧셈 정의를 따른다.
참고. 다음에서 우리는 벡터 공간 (V,+,⋅)을 V로 표기할 것이다. 이때 +와 ⋅은 표준 벡터 덧셈과 스칼라 곱셈이다. 또한, 표기법을 단순화하기 위해 V의 벡터에 대해 x∈V 표기법을 사용할 것이다.
참고. 벡터 공간 Rn,Rn×1,R1×n은 벡터를 쓰는 방식에서만 차이가 있다. 다음에서는 Rn과 Rn×1을 구분하지 않을 것이며, 이를 통해 n-튜플을 **열 벡터(column vector)**로 쓸 수 있다.
x=x1⋮xn
이는 벡터 공간 연산에 대한 표기법을 단순화한다. 그러나 행렬 곱셈과의 혼동을 피하기 위해 Rn×1과 R1×n (행 벡터)은 구분한다. 기본적으로 x는 열 벡터를 나타내고, 행 벡터는 x의 전치(transpose)인 x⊤로 표기한다.
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,+,⋅)가 vector space이고 U⊆V,U=∅라고 하자. 이때 U=(U,+,⋅)는 V의 vector subspace (또는 linear subspace)라고 불리는데, 이는 U가 U×U 및 R×U로 제한된 vector space 연산 + 및 ⋅을 가진 vector space이기 때문이다. V의 subspace U를 나타내기 위해 U⊆V라고 쓴다.
만약 U⊆V이고 V가 vector space라면, U는 V로부터 많은 속성을 자연스럽게 직접 상속받는다. 이는 해당 속성들이 모든 x∈V에 대해 성립하고, 특히 모든 x∈U⊆V에 대해서도 성립하기 때문이다. 여기에는 Abelian group 속성, 분배성(distributivity), 결합성(associativity) 및 항등원(neutral element)이 포함된다. (U,+,⋅)가 V의 subspace인지 확인하기 위해 다음을 여전히 보여주어야 한다.
U=∅, 특히: 0∈U
U의 닫힘(Closure):
a. 외부 연산에 대하여: ∀λ∈R∀x∈U:λx∈U.
b. 내부 연산에 대하여: ∀x,y∈U:x+y∈U.
Example 2.12 (Vector Subspaces)
몇 가지 예시를 살펴보자:
모든 벡터 공간 V에 대해, **자명한 부분 공간(trivial subspaces)**은 V 자체와 {0}이다.
그림 2.6의 예시 D만이 R2의 부분 공간이다(일반적인 내/외 연산 포함). A와 C에서는 **닫힘 속성(closure property)**이 위반되었고, B는 0을 포함하지 않는다.
n개의 미지수 x=[x1,…,xn]⊤를 갖는 동차 선형 방정식 시스템 Ax=0의 해 집합은 Rn의 부분 공간이다.
비동차 선형 방정식 시스템 Ax=b,b=0의 해는 Rn의 부분 공간이 아니다.
임의의 많은 부분 공간들의 **교집합(intersection)**은 그 자체로 부분 공간이다.
vector subspace linear subspace
그림 2.6 R2의 모든 부분집합이 부분 공간인 것은 아니다. A와 C에서는 닫힘 속성이 위반되었고, B는 0을 포함하지 않는다. D만이 부분 공간이다.
비고. 모든 부분 공간 U⊆(Rn,+,⋅)는 x∈Rn에 대한 동차 선형 방정식 시스템 Ax=0의 해 공간이다.
2.5 Linear Independence
다음으로, 우리는 벡터(벡터 공간의 요소)로 무엇을 할 수 있는지 자세히 살펴볼 것이다. 특히, 우리는 벡터를 서로 더하고 스칼라와 곱할 수 있다. **닫힘 속성(closure property)**은 우리가 동일한 벡터 공간 내의 다른 벡터로 귀결됨을 보장한다. 벡터 공간의 모든 벡터를 서로 더하고 스케일링하여 나타낼 수 있는 벡터 집합을 찾는 것이 가능하다. 이 벡터 집합이 **기저(basis)**이며, 우리는 2.6.1절에서 이를 논의할 것이다. 그 전에, 우리는 **선형 결합(linear combination)**과 **선형 독립(linear independence)**의 개념을 소개해야 한다.
정의 2.11 (선형 결합). 벡터 공간 V와 유한한 수의 벡터 x1,…,xk∈V를 고려하자. 그러면, 다음과 같은 형태의 모든 v∈V는
v=λ1x1+⋯+λkxk=i=1∑kλixi∈V
λ1,…,λk∈R을 갖는 벡터 x1,…,xk의 **선형 결합(linear combination)**이다.
0-벡터는 항상 k개의 벡터 x1,…,xk의 선형 결합으로 작성될 수 있는데, 이는 0=∑i=1k0xi가 항상 참이기 때문이다. 다음에서는, 0을 나타내기 위한 벡터 집합의 자명하지 않은(non-trivial) 선형 결합에 관심이 있다. 즉, (2.65)에서 모든 계수 λi가 0이 아닌 벡터 x1,…,xk의 선형 결합이다.
정의 2.12 (선형 (비)독립). k∈N과 x1,…,xk∈V를 갖는 벡터 공간 V를 고려하자. 만약 적어도 하나의 λi=0인 자명하지 않은 선형 결합이 존재하여 0=∑i=1kλixi를 만족한다면, 벡터 x1,…,xk는 **선형 종속(linearly dependent)**이다. 만약 자명한 해만 존재한다면, 즉 λ1=…=λk=0이라면, 벡터 x1,…,xk는 **선형 독립(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차원 공간(평면)에서 선형 종속 벡터의 지리적 예시(방위에 대한 대략적인 근사치 포함).
참고. 다음 속성들은 벡터가 선형 독립인지 여부를 파악하는 데 유용하다:
k개의 벡터는 선형 종속이거나 선형 독립이다. 세 번째 옵션은 없다.
벡터 x1,…,xk 중 적어도 하나가 0이면 이들은 선형 종속이다. 두 벡터가 동일한 경우에도 마찬가지이다.
벡터 집합 {x1,…,xk:xi=0,i=1,…,k},k⩾2는 (적어도) 그 중 하나가 다른 벡터들의 선형 결합인 경우에만 선형 종속이다. 특히, 한 벡터가 다른 벡터의 배수, 즉 xi=λxj,λ∈R인 경우, 집합 {x1,…,xk:xi=0,i=1,…,k}는 선형 종속이다.
벡터 x1,…,xk∈V가 선형 독립인지 확인하는 실용적인 방법은 가우스 소거법을 사용하는 것이다: 모든 벡터를 행렬 A의 열로 작성하고, 행렬이 **행 사다리꼴 형식(row echelon form)**이 될 때까지 가우스 소거법을 수행한다(여기서는 기약 행 사다리꼴 형식은 불필요하다):
**피벗 열(pivot columns)**은 왼쪽에 있는 벡터들과 선형 독립인 벡터들을 나타낸다. 행렬이 구성될 때 벡터들의 순서가 있다는 점에 유의하라.
**비피벗 열(non-pivot columns)**은 왼쪽에 있는 피벗 열들의 선형 결합으로 표현될 수 있다. 예를 들어, 행 사다리꼴 형식
[103002]
은 첫 번째와 세 번째 열이 피벗 열임을 알려준다. 두 번째 열은 첫 번째 열의 세 배이므로 비피벗 열이다.
모든 열 벡터는 모든 열이 피벗 열인 경우에만 선형 독립이다. 적어도 하나의 비피벗 열이 있다면, 해당 열들(따라서 해당 벡터들)은 선형 종속이다.
Example 2.14
R4에서 다음 벡터들을 고려해 보자.
x1=12−34,x2=1102,x3=−1−211.
이 벡터들이 **선형 종속(linearly dependent)**인지 확인하기 위해 일반적인 접근 방식을 따라 다음 방정식을 푼다.
여기서 λ1,…,λ3 값을 찾는다. 벡터 xi,i=1,2,3를 행렬의 열로 쓰고, **피벗 열(pivot columns)**을 식별할 때까지 **기본 행 연산(elementary row operations)**을 적용한다.
12−341102−1−211⇝⋯⇝10001100−1010.
여기서 행렬의 모든 열이 피벗 열이다. 따라서 **자명하지 않은 해(non-trivial solution)**는 없으며, 방정식 시스템을 풀기 위해서는 λ1=0,λ2=0,λ3=0이 필요하다. 그러므로 벡터 x1,x2,x3는 **선형 독립(linearly independent)**이다.
참고. k개의 선형 독립 벡터 b1,…,bk를 갖는 벡터 공간 V와 m개의 선형 결합을 고려해 보자.
x1xm=i=1∑kλi1bi⋮=i=1∑kλimbi
선형 독립 벡터 b1,…,bk를 열로 하는 행렬을 B=[b1,…,bk]로 정의하면, 다음을 더 간결한 형태로 쓸 수 있다.
xj=Bλj,λj=λ1j⋮λkj,j=1,…,m
우리는 x1,…,xm이 선형 독립인지 테스트하고자 한다. 이를 위해 ∑j=1mψjxj=0일 때를 테스트하는 일반적인 접근 방식을 따른다. (2.71)을 사용하면 다음을 얻는다.
j=1∑mψjxj=j=1∑mψjBλj=Bj=1∑mψjλj
이는 {x1,…,xm}이 선형 독립인 경우에만 열 벡터 {λ1,…,λm}이 선형 독립임을 의미한다.
참고. 벡터 공간 V에서 k개의 벡터 x1,…,xk의 m개의 선형 결합은 m>k인 경우 선형 종속이다.
Example 2.15
선형 독립 벡터 b1,b2,b3,b4∈Rn 집합과 다음 식이 주어졌다고 가정해 보자.
선형 독립인지 조사한다. 계수 행렬이 다음과 같은 해당 선형 방정식 시스템의 **기약 행 사다리꼴(reduced row-echelon form)**은
A=1−21−1−4−20423−1−317−10111
다음과 같이 주어진다.
100001000010−7−15−180
해당 선형 방정식 시스템이 자명하지 않게(non-trivially) 해를 가짐을 알 수 있다. 마지막 열은 **피벗 열(pivot column)**이 아니며, x4=−7x1−15x2−18x3이다. 따라서 x4가 x1,…,x3의 선형 결합으로 표현될 수 있으므로, x1,…,x4는 **선형 종속(linearly dependent)**이다.
2.6 Basis and Rank
벡터 공간 V에서 우리는 V 내의 어떤 벡터 v라도 A 내의 벡터들의 **선형 결합(linear combination)**으로 얻을 수 있는 속성을 가진 벡터 집합 A에 특히 관심을 가진다. 이 벡터들은 특별한 벡터들이며, 다음에서 우리는 이들을 특징지을 것이다.
2.6.1 Generating Set and Basis
정의 2.13 (생성 집합과 Span). 벡터 공간 V=(V,+,⋅)와 벡터 집합 A={x1,…,xk}⊆V를 고려하자. 만약 모든 벡터 v∈V가 x1,…,xk의 **선형 결합(linear combination)**으로 표현될 수 있다면, A를 V의 **생성 집합(generating set)**이라고 한다. A에 있는 벡터들의 모든 선형 결합의 집합을 A의 span이라고 한다. 만약 A가 벡터 공간 V를 span한다면, 우리는 V=span[A] 또는 V=span[x1,…,xk]라고 쓴다.
생성 집합은 벡터 (부분) 공간을 span하는 벡터들의 집합이다. 즉, 모든 벡터는 생성 집합에 있는 벡터들의 선형 결합으로 표현될 수 있다. 이제 우리는 벡터 (부분) 공간을 span하는 가장 작은 생성 집합을 더 구체적으로 특성화할 것이다.
정의 2.14 (기저). 벡터 공간 V=(V,+,⋅)와 A⊆V를 고려하자. V의 생성 집합 A가 minimal이라는 것은 V를 span하는 더 작은 집합 A~⊊A⊆V가 존재하지 않는다는 의미이다. V의 모든 **선형 독립(linearly independent)**인 생성 집합은 minimal이며, 이를 V의 **기저(basis)**라고 한다.
V=(V,+,⋅)를 벡터 공간이라고 하고 B⊆V,B=∅라고 하자. 그러면 다음 진술들은 동등하다:
B는 V의 기저이다.
B는 minimal 생성 집합이다.
B는 V에서 maximal 선형 독립 집합이다. 즉, 이 집합에 다른 어떤 벡터를 추가하면 선형 종속이 된다.
**선형 독립(linearly independent)**이지만, R4의 **생성 집합(generating set)**은 아니며 (따라서 basis도 아니다): 예를 들어, 벡터 [1,0,0,0]⊤는 A의 원소들의 **선형 결합(linear combination)**으로 얻을 수 없다.
참고. 모든 벡터 공간(vector space)V는 basisB를 가진다. 앞선 예시들은 벡터 공간 V에 여러 basis가 있을 수 있음을 보여준다. 즉, 유일한 basis는 존재하지 않는다. 그러나 모든 basis는 동일한 수의 원소, 즉 basis vector를 가진다.
우리는 유한 차원 벡터 공간(finite-dimensional vector spaces)V만을 고려한다. 이 경우, V의 **차원(dimension)**은 V의 basis vector의 수이며, dim(V)로 표기한다. 만약 U⊆V가 V의 **부분 공간(subspace)**이라면, dim(U)⩽dim(V)이고 dim(U)=dim(V)인 경우에만 U=V이다. 직관적으로, 벡터 공간의 차원은 이 벡터 공간 내의 **독립적인 방향(independent directions)**의 수로 생각할 수 있다.
basis는 **최소 생성 집합(minimal generating set)**이자 **최대 선형 독립 집합(maximal linearly independent set)**이다.
참고. 벡터 공간의 차원이 반드시 벡터 내 원소의 수와 일치하는 것은 아니다. 예를 들어, 벡터 공간 V=span[[01]은 basis vector가 두 개의 원소를 가지고 있음에도 불구하고 **1차원(one-dimensional)**이다.
참고. 부분 공간 U=span[x1,…,xm]⊆Rn의 basis는 다음 단계를 수행하여 찾을 수 있다:
**생성 벡터(spanning vectors)**를 행렬 A의 열로 작성한다.
A의 **행 사다리꼴(row-echelon form)**을 결정한다.
**피벗 열(pivot columns)**과 관련된 생성 벡터들이 U의 basis가 된다.
Example 2.17 (Determining a Basis)
벡터 x1=12−1−1−1,x2=2−112−2,x3=3−435−3,x4=−18−5−61∈R5에 의해 span되는 벡터 부분 공간 U⊆R5에 대해, 우리는 어떤 벡터 x1,…,x4가 U의 **기저(basis)**가 되는지 알아보고자 한다. 이를 위해 x1,…,x4가 **선형 독립(linearly independent)**인지 확인해야 한다. 따라서 우리는 다음을 풀어야 한다.
i=1∑4λixi=0,
이는 다음 행렬을 갖는 **동차 연립 방정식(homogeneous system of equations)**으로 이어진다.
**피벗 열(pivot columns)**은 어떤 벡터 집합이 선형 독립인지 나타내므로, 행 사다리꼴에서 x1,x2,x4가 선형 독립임을 알 수 있다 (선형 방정식 시스템 λ1x1+λ2x2+λ4x4=0은 λ1=λ2=λ4=0으로만 풀 수 있기 때문이다). 따라서 {x1,x2,x4}는 U의 기저이다.
2.6.2 Rank
행렬 A∈Rm×n의 선형 독립적인 열의 개수는 선형 독립적인 행의 개수와 같으며, 이를 A의 rank라고 하고 rk(A)로 표기한다.
참고. 행렬의 rank는 몇 가지 중요한 속성을 갖는다:
rk(A)=rk(A⊤), 즉 열 rank는 행 rank와 같다.
A∈Rm×n의 열들은 dim(U)=rk(A)인 부분 공간 U⊆Rm을 생성한다. 나중에 이 부분 공간을 image 또는 range라고 부를 것이다. U의 기저는 A에 Gaussian elimination을 적용하여 pivot column을 식별함으로써 찾을 수 있다.
A∈Rm×n의 행들은 dim(W)=rk(A)인 부분 공간 W⊆Rn을 생성한다. W의 기저는 A⊤에 Gaussian elimination을 적용하여 찾을 수 있다.
모든 A∈Rn×n에 대해 A가 **regular (invertible)**인 것은 rk(A)=n인 경우에만 성립한다.
모든 A∈Rm×n와 모든 b∈Rm에 대해 선형 방정식 시스템 Ax=b가 해를 가질 수 있는 것은 rk(A)=rk(A∣b)인 경우에만 성립하며, 여기서 A∣b는 augmented system을 나타낸다.
A∈Rm×n에 대해 Ax=0의 해 공간은 n−rk(A) 차원을 갖는다. 나중에 이 부분 공간을 kernel 또는 null space라고 부를 것이다.
행렬 A∈Rm×n는 full rank를 갖는다고 하는데, 이는 해당 행렬의 rank가 동일한 차원의 행렬에 대해 가능한 가장 큰 rank와 같을 때를 의미한다. 즉, full-rank 행렬의 rank는 행의 개수와 열의 개수 중 더 작은 값과 같으며, rk(A)=min(m,n)이다. 행렬이 full rank를 갖지 않으면 rank deficient라고 한다.
rk(A)=rk(A⊤), 즉 열 rank는 행 rank와 같다.
A의 행들은 full rank를 갖는다.
Example 2.18 (Rank)
A=100010110.
A는 두 개의 선형 독립적인 행/열을 가지므로 rk(A)=2이다.
linear mapping vector space homomorphism linear transformation
injective
surjective bijective
A=1−232−35110.
랭크를 결정하기 위해 **가우스 소거법(Gaussian elimination)**을 사용한다:
1−232−35110⇝⋯⇝100210130.
여기서 선형 독립적인 행과 열의 개수가 2임을 알 수 있으며, 따라서 rk(A)=2이다.
2.7 Linear Mappings
다음으로, 우리는 벡터 공간의 구조를 보존하는 매핑을 연구할 것이며, 이를 통해 **좌표(coordinate)**의 개념을 정의할 수 있다. 이 장의 시작 부분에서 우리는 벡터가 서로 더하고 스칼라를 곱해도 여전히 벡터가 되는 객체라고 말했다. 우리는 매핑을 적용할 때 이 속성을 보존하고자 한다. 두 실수 벡터 공간 V,W를 고려하자. 매핑 Φ:V→W가 벡터 공간의 구조를 보존한다면 다음이 성립한다:
Φ(x+y)Φ(λx)=Φ(x)+Φ(y)=λΦ(x)
모든 x,y∈V 및 λ∈R에 대해. 이를 다음 정의로 요약할 수 있다:
정의 2.15 (Linear Mapping). 벡터 공간 V,W에 대해, 매핑 Φ:V→W는 다음이 성립할 때 선형 매핑(linear mapping) (또는 벡터 공간 동형 사상/선형 변환)이라고 불린다:
∀x,y∈V∀λ,ψ∈R:Φ(λx+ψy)=λΦ(x)+ψΦ(y)
선형 매핑은 행렬로 표현될 수 있음이 밝혀졌다 (섹션 2.7.1). 우리는 또한 벡터 집합을 행렬의 열로 모을 수 있다는 것을 상기하자. 행렬을 다룰 때, 우리는 행렬이 무엇을 나타내는지 명심해야 한다: 선형 매핑인지 아니면 벡터의 모음인지. 선형 매핑에 대해서는 4장에서 더 자세히 다룰 것이다. 계속하기 전에, 우리는 특별한 매핑들을 간략하게 소개할 것이다.
정의 2.16 (Injective, Surjective, Bijective). 매핑 Φ:V→W를 고려하자. 여기서 V,W는 임의의 집합이 될 수 있다. 이때 Φ는 다음과 같이 불린다:
Injective (단사) 만약 ∀x,y∈V:Φ(x)=Φ(y)⟹x=y 이면.
Surjective (전사) 만약 Φ(V)=W 이면.
Bijective (전단사) 만약 injective 이고 surjective 이면.
만약 Φ가 surjective 이면, W의 모든 요소는 Φ를 사용하여 V로부터 "도달"될 수 있다. bijective Φ는 "되돌릴 수 있다", 즉 Ψ∘Φ(x)=x가 되도록 하는 매핑 Ψ:W→V가 존재한다. 이 매핑 Ψ는 Φ의 **역함수(inverse)**라고 불리며 일반적으로 Φ−1로 표기된다.
이러한 정의들을 바탕으로, 벡터 공간 V와 W 사이의 선형 매핑의 다음 특수한 경우들을 소개한다:
Isomorphism (동형 사상): Φ:V→W가 선형이고 bijective.
Endomorphism (자기 사상): Φ:V→V가 선형.
Automorphism (자기 동형 사상): Φ:V→V가 선형이고 bijective.
우리는 idV:V→V,x↦x를 V에서의 항등 매핑(identity mapping) 또는 **항등 자기 동형 사상(identity automorphism)**으로 정의한다.
Figure 2.8 두 개의 기저 벡터 집합으로 정의된 두 개의 다른 좌표계. 벡터 x는 어떤 좌표계를 선택하느냐에 따라 다른 좌표 표현을 갖는다.
Φ:V→W,Ψ:V→W가 선형이면, Φ+Ψ와 λΦ,λ∈R도 선형이다.
2.7.1 Matrix Representation of Linear Mappings
모든 n-차원 벡터 공간은 Rn과 동형이다(정리 2.17). 우리는 n-차원 벡터 공간 V의 기저 {b1,…,bn}를 고려한다. 다음에서는 기저 벡터의 순서가 중요하므로,
B=(b1,…,bn)
라고 쓰고 이 n-튜플을 V의 **순서 기저(ordered basis)**라고 부른다.
비고 (표기법). 표기법이 다소 까다로워지는 시점이므로, 여기서 일부 내용을 요약한다. B=(b1,…,bn)는 순서 기저이고, B={b1,…,bn}는 (순서가 없는) 기저이며, B=[b1,…,bn]는 열이 벡터 b1,…,bn인 행렬이다.
정의 2.18 (좌표). 벡터 공간 V와 V의 순서 기저 B=(b1,…,bn)를 고려한다. 임의의 x∈V에 대해 우리는 B에 대한 x의 유일한 표현(선형 결합)을 얻는다.
x=α1b1+…+αnbn
이때 α1,…,αn은 B에 대한 x의 **좌표(coordinates)**이며, 벡터
α=α1⋮αn∈Rn
는 순서 기저 B에 대한 x의 좌표 벡터(coordinate vector) 또는 **좌표 표현(coordinate representation)**이다.
기저는 효과적으로 **좌표계(coordinate system)**를 정의한다. 우리는 정규 기저 벡터 e1,e2에 의해 생성되는 2차원 **데카르트 좌표계(Cartesian coordinate system)**에 익숙하다. 이 좌표계에서 R2의 벡터 x는 x를 얻기 위해 e1과 e2를 어떻게 선형 결합해야 하는지를 알려주는 표현을 갖는다. 그러나 R2의 모든 기저는 유효한 좌표계를 정의하며, 이전의 동일한 벡터 x는 (b1,b2) 기저에서 다른 좌표 표현을 가질 수 있다. 그림 2.8에서 표준 기저 (e1,e2)에 대한 x의 좌표는 [2,2]⊤이다. 그러나 기저 (b1,b2)에 대해서는 동일한 벡터 x가 [1.09,0.72]⊤로 표현된다. 즉, x=1.09b1+0.72b2이다. 다음 섹션에서는 이 표현을 얻는 방법을 알아볼 것이다.
Example 2.20
R2의 표준 기저(e1,e2)에 대한 좌표가 [2,3]⊤인 기하학적 벡터 x∈R2를 살펴보자. 이는 x=2e1+3e2로 쓸 수 있음을 의미한다. 그러나 이 벡터를 표현하기 위해 반드시 표준 기저를 선택할 필요는 없다. 기저 벡터 b1=[1,−1]⊤,b2=[1,1]⊤를 사용하면 동일한 벡터를 (b1,b2)에 대해 21[−1,5]⊤ 좌표로 표현할 수 있다(그림 2.9 참조).
참고. n차원 벡터 공간 V와 V의 순서 기저 B에 대해, 매핑 Φ:Rn→V,Φ(ei)=bi,i=1,…,n는 선형이다(그리고 정리 2.17에 따라 동형 사상이다). 여기서 (e1,…,en)은 Rn의 표준 기저이다.
이제 행렬과 유한 차원 벡터 공간 사이의 선형 매핑 간의 명시적인 연결을 만들 준비가 되었다.
정의 2.19 (변환 행렬). 해당 (순서) 기저 B=(b1,…,bn)와 C=(c1,…,cm)를 갖는 벡터 공간 V,W를 고려한다. 또한, 선형 매핑 Φ:V→W를 고려한다. j∈{1,…,n}에 대해,
Φ(bj)=α1jc1+⋯+αmjcm=i=1∑mαijci
는 C에 대한 Φ(bj)의 유일한 표현이다. 이때, 요소가 다음과 같이 주어지는 m×n-행렬 AΦ를
Figure 2.10은 벡터 집합의 선형 변환 세 가지 예시를 보여준다. Figure 2.10(a)는 R2에 있는 400개의 벡터를 보여주며, 각 벡터는 해당 (x1,x2)-좌표에 점으로 표시된다. 벡터들은 정사각형 형태로 배열되어 있다. (2.97)의 행렬 A1을 사용하여 이 벡터들 각각을 선형 변환하면, Figure 2.10(b)와 같이 회전된 정사각형을 얻는다. A2로 표현되는 선형 매핑을 적용하면, Figure 2.10(c)와 같이 각 x1-좌표가 2배로 늘어난 직사각형을 얻는다. Figure 2.10(d)는 Figure 2.10(a)의 원본 정사각형이 A3를 사용하여 선형 변환된 모습을 보여주는데, 이는 반사, 회전 및 늘림의 조합이다.
2.7.2 Basis Change
다음에서는 선형 매핑 Φ:V→W의 **변환 행렬(transformation matrices)**이 V와 W의 기저를 변경할 때 어떻게 변하는지 자세히 살펴볼 것이다. V의 두 순서 기저(ordered bases)
B=(b1,…,bn),B~=(b~1,…,b~n)
와 W의 두 순서 기저
C=(c1,…,cm),C~=(c~1,…,c~m)
를 고려하자. 또한, AΦ∈Rm×n는 기저 B와 C에 대한 선형 매핑 Φ:V→W의 변환 행렬이고, A~Φ∈Rm×n는 B~와 C~에 대한 해당 변환 매핑이다. 다음에서는 A와 A~가 어떻게 관련되어 있는지, 즉 B,C에서 B~,C~로 기저 변경을 수행하기로 선택할 경우 AΦ를 A~Φ로 어떻게/변환할 수 있는지 조사할 것이다.
참고. 우리는 항등 매핑(identity mapping)idV의 서로 다른 좌표 표현을 효과적으로 얻는다. 그림 2.9의 맥락에서 이는 벡터 x를 변경하지 않고 (e1,e2)에 대한 좌표를 (b1,b2)에 대한 좌표로 매핑하는 것을 의미한다. 기저를 변경하고 그에 따라 벡터의 표현을 변경함으로써, 이 새로운 기저에 대한 변환 행렬은 간단한 계산을 가능하게 하는 특히 단순한 형태를 가질 수 있다.
Example 2.23 (Basis Change)
R2의 canonical basis에 대한 변환 행렬은 다음과 같다:
A=[2112]
만약 우리가 새로운 basis를 다음과 같이 정의한다면,
B=([11],[1−1])
우리는 B에 대한 대각 변환 행렬을 얻게 되며, 이는 A보다 다루기 쉽다.
A~=[3001]
다음에서는 한 basis에 대한 좌표 벡터를 다른 basis에 대한 좌표 벡터로 변환하는 매핑에 대해 살펴볼 것이다. 먼저 주요 결과를 제시한 다음 설명을 제공한다.
정리 2.20 (Basis Change). 선형 매핑 Φ:V→W에 대해, V의 순서화된 basis
B=(b1,…,bn),B~=(b~1,…,b~n)
와 W의 순서화된 basis
C=(c1,…,cm),C~=(c~1,…,c~m)
그리고 B와 C에 대한 Φ의 변환 행렬 AΦ가 주어졌을 때, basis B~와 C~에 대한 해당 변환 행렬 A~Φ는 다음과 같이 주어진다.
A~Φ=T−1AΦS
여기서 S∈Rn×n는 B~에 대한 좌표를 B에 대한 좌표로 매핑하는 idV의 변환 행렬이고, T∈Rm×m는 C~에 대한 좌표를 C에 대한 좌표로 매핑하는 idW의 변환 행렬이다.
증명 Drumm과 Weil (2001)에 따르면, V의 새로운 basis B~의 벡터를 B의 basis 벡터들의 선형 결합으로 다음과 같이 쓸 수 있다.
b~j=s1jb1+⋯+snjbn=i=1∑nsijbi,j=1,…,n.
마찬가지로, W의 새로운 basis 벡터 C~를 C의 basis 벡터들의 선형 결합으로 다음과 같이 쓸 수 있다.
c~k=t1kc1+⋯+tmkcm=l=1∑mtlkcl,k=1,…,m.
우리는 B~에 대한 좌표를 B에 대한 좌표로 매핑하는 변환 행렬을 S=((sij))∈Rn×n로 정의하고, C~에 대한 좌표를 C에 대한 좌표로 매핑하는 변환 행렬을 T=((tlk))∈Rm×m로 정의한다. 특히, S의 j번째 열은 B에 대한 b~j의 좌표 표현이고, T의 k번째 열은 C에 대한 c~k의 좌표 표현이다. S와 T는 모두 정칙 행렬이다.
우리는 Φ(b~j)를 두 가지 관점에서 살펴볼 것이다. 첫째, 매핑 Φ를 적용하면 모든 j=1,…,n에 대해 다음을 얻는다.
여기서 우리는 Φ의 선형성을 활용했다. (2.108)과 (2.109b)를 비교하면, 모든 j=1,…,n 및 l=1,…,m에 대해 다음이 성립한다.
k=1∑mtlka~kj=i=1∑nalisij
따라서,
TA~Φ=AΦS∈Rm×n
이므로,
A~Φ=T−1AΦS
이는 정리 2.20을 증명한다.
정리 2.20은 V에서 basis 변경(B가 B~로 대체됨)과 W에서 basis 변경(C가 C~로 대체됨)이 있을 때, 선형 매핑 Φ:V→W의 변환 행렬 AΦ가 다음과 같은 동등한 행렬 A~Φ로 대체됨을 알려준다.
A~Φ=T−1AΦS
그림 2.11은 이 관계를 보여준다: homomorphismΦ:V→W와 V의 순서화된 basis B,B~ 및 W의 순서화된 basis C,C~를 고려해보자. 매핑 ΦCB는 Φ의 인스턴스이며 B의 basis 벡터를 C의 basis 벡터들의 선형 결합으로 매핑한다. 순서화된 basis B,C에 대한 ΦCB의 변환 행렬 AΦ를 알고 있다고 가정하자. V에서 B에서 B~로, W에서 C에서 C~로 basis 변경을 수행할 때, 우리는 해당 변환 행렬 A~Φ를 다음과 같이 결정할 수 있다: 먼저, 새로운 basis B~에 대한 좌표를 "이전" basis B에 대한 (고유한) 좌표로 매핑하는 선형 매핑 ΨBB~:V→V의 행렬 표현을 찾는다. 그런 다음, ΦCB:V→W의 변환 행렬 AΦ를 사용하여 이 좌표들을 W의 C에 대한 좌표로 매핑한다. 마지막으로, 선형 매핑 ΞC~C:W→W를 사용하여 C에 대한 좌표를 C~에 대한 좌표로 매핑한다. 따라서, 우리는 선형 매핑 ΦC~B~를 "이전" basis를 포함하는 선형 매핑들의 합성으로 표현할 수 있다:
ΦC~B~=ΞC~C∘ΦCB∘ΨBB~=ΞCC~−1∘ΦCB∘ΨBB~.
구체적으로, 우리는 ΨBB~=idV와 ΞCC~=idW를 사용한다. 즉, 벡터를 자기 자신으로 매핑하지만 다른 basis에 대한 identity mapping을 사용한다.
정의 2.21 (Equivalence). 두 행렬 A,A~∈Rm×n는 정칙 행렬 S∈Rn×n와 T∈Rm×m가 존재하여 A~=T−1AS를 만족할 때 equivalent하다고 한다.
정의 2.22 (Similarity). 두 행렬 A,A~∈Rn×n는 정칙 행렬 S∈Rn×n가 존재하여 A~=S−1AS를 만족할 때 similar하다고 한다.
비고. similar한 행렬은 항상 equivalent하다. 그러나 equivalent한 행렬이 반드시 similar한 것은 아니다.
비고. 벡터 공간 V,W,X를 고려해보자. 정리 2.17에 이어지는 비고에서 우리는 선형 매핑 Φ:V→W와 Ψ:W→X에 대해 매핑 Ψ∘Φ:V→X도 선형임을 이미 알고 있다. 해당 매핑들의 변환 행렬 AΦ와 AΨ를 사용하면, 전체 변환 행렬은 AΨ∘Φ=AΨAΦ이다.
이 비고에 비추어, 우리는 선형 매핑의 합성을 통해 basis 변경을 살펴볼 수 있다:
AΦ는 basis B,C에 대한 선형 매핑 ΦCB:V→W의 변환 행렬이다.
A~Φ는 basis B~,C~에 대한 선형 매핑 ΦC~B~:V→W의 변환 행렬이다.
S는 B의 관점에서 B~를 나타내는 선형 매핑 ΨBB~:V→V (automorphism)의 변환 행렬이다. 일반적으로 Ψ=idV는 V의 identity mapping이다.
T는 C의 관점에서 C~를 나타내는 선형 매핑 ΞCC~:W→W (automorphism)의 변환 행렬이다. 일반적으로 Ξ=idW는 W의 identity mapping이다.
만약 우리가 (비공식적으로) basis 관점에서 변환을 작성한다면, AΦ:B→C,A~Φ:B~→C~,S:B~→B,T:C~→C 그리고 T−1:C→C~ 이고,
B~→C~=B~→B→C→C~A~Φ=T−1AΦS
(2.116)에서 실행 순서는 오른쪽에서 왼쪽으로 진행된다는 점에 유의해야 한다. 이는 벡터가 오른쪽에 곱해지므로 x↦Sx↦AΦ(Sx)↦T−1(AΦ(Sx))=A~Φx가 되기 때문이다.
여기서 S의 i번째 열은 b~i의 기저 B에 대한 좌표 표현이다. B가 표준 기저이므로, 좌표 표현은 쉽게 찾을 수 있다. 일반적인 기저 B의 경우, ∑i=13λibi=b~j,j=1,…,3를 만족하는 λi를 찾기 위해 선형 방정식 시스템을 풀어야 할 것이다. 유사하게, T의 j번째 열은 c~j의 기저 C에 대한 좌표 표현이다.
4장에서는 기저 변환(basis change) 개념을 활용하여 endomorphism의 변환 행렬이 특히 간단한 (대각) 형태를 갖는 기저를 찾을 수 있을 것이다. 10장에서는 데이터 압축 문제를 살펴보고 압축 손실을 최소화하면서 데이터를 투영할 수 있는 편리한 기저를 찾을 것이다.
2.7.3 Image and Kernel
선형 매핑의 image와 kernel은 특정 중요한 속성을 가진 벡터 부분 공간이다. 다음에서는 이를 더 자세히 설명한다.
정의 2.23 (Image와 Kernel).
kernel null space
image range
domain codomain
Φ:V→W에 대해, kernel/null space는 다음과 같이 정의한다.
ker(Φ):=Φ−1(0W)={v∈V:Φ(v)=0W}
그리고 image/range는 다음과 같이 정의한다.
Im(Φ):=Φ(V)={w∈W∣∃v∈V:Φ(v)=w}.
또한 V와 W를 각각 Φ의 domain과 codomain이라고 부른다.
직관적으로, kernel은 Φ가 중립 원소 0W∈W로 매핑하는 벡터 v∈V의 집합이다. image는 V의 어떤 벡터로부터 Φ에 의해 "도달"할 수 있는 벡터 w∈W의 집합이다. 그림 2.12에 설명되어 있다.
참고. V,W가 벡터 공간인 선형 매핑 Φ:V→W를 고려하자.
항상 Φ(0V)=0W가 성립하며, 따라서 0V∈ker(Φ)이다. 특히, null space는 결코 비어 있지 않다.
Im(Φ)⊆W는 W의 부분 공간이고, ker(Φ)⊆V는 V의 부분 공간이다.
그림 2.12 선형 매핑 Φ:V→W의 kernel과 image.
Φ는 ker(Φ)={0}인 경우에만 **injective (one-to-one)**이다.
참고 (Null Space와 Column Space). A∈Rm×n와 선형 매핑 Φ:Rn→Rm,x↦Ax를 고려하자.
는 선형이다. Im(Φ)를 결정하기 위해, 변환 행렬의 열들의 span을 취하여 다음을 얻을 수 있다.
Im(Φ)=span[[11],[20],[−10],[01]]
Φ의 **kernel (null space)**을 계산하기 위해 Ax=0을 풀어야 한다. 즉, 동차 선형 방정식 시스템을 풀어야 한다. 이를 위해 가우스 소거법을 사용하여 A를 **기약 행사다리꼴(reduced row-echelon form)**로 변환한다.
[1120−1001]⇝⋯⇝[10010−211−21].
이 행렬은 기약 행사다리꼴이며, Minus1 Trick을 사용하여 kernel의 기저를 계산할 수 있다 (섹션 2.3.3 참조). 또는, 비피벗 열(non-pivot columns) (3열과 4열)을 피벗 열(pivot columns) (1열과 2열)의 선형 결합으로 표현할 수 있다. 세 번째 열 a3은 두 번째 열 a2의 −21배와 동일하다. 따라서 0=a3+21a2이다. 같은 방식으로 a4=a1−21a2이므로 0=a1−21a2−a4이다. 종합적으로, 이는 kernel (null space)을 다음과 같이 제공한다.
ker(Φ)=span02110,−12101
정리 2.24 (Rank-Nullity Theorem). 벡터 공간 V,W와 선형 매핑 Φ:V→W에 대해 다음이 성립한다.
dim(ker(Φ))+dim(Im(Φ))=dim(V)
rank-nullity theorem은 **선형 매핑의 기본 정리(fundamental theorem of linear mappings)**라고도 불린다 (Axler, 2015, 정리 3.22). 다음은 정리 2.24의 직접적인 결과이다.
만약 dim(Im(Φ))<dim(V)이면, ker(Φ)는 자명하지 않다(non-trivial). 즉, kernel은 0V보다 많은 원소를 포함하며 dim(ker(Φ))⩾1이다.
만약 AΦ가 정렬된 기저에 대한 Φ의 변환 행렬이고 dim(Im(Φ))<dim(V)이면, 선형 방정식 시스템 AΦx=0은 무한히 많은 해를 갖는다.
다음에서는 원점에서 오프셋된 공간, 즉 더 이상 **벡터 부분 공간(vector subspaces)**이 아닌 공간에 대해 자세히 살펴볼 것이다. 또한, 이러한 아핀 공간(affine spaces) 간의 매핑(mapping) 속성에 대해 간략하게 논의할 것인데, 이는 **선형 매핑(linear mappings)**과 유사하다.
참고: 머신러닝 문헌에서는 선형(linear)과 아핀(affine)의 구분이 명확하지 않은 경우가 있어, 아핀 공간/매핑을 선형 공간/매핑으로 언급하는 자료를 찾아볼 수 있다.
2.8.1 Affine Subspaces
정의 2.25 (Affine Subspace). V를 벡터 공간이라 하고, x0∈V 및 U⊆V를 부분 공간이라 하자. 이때 다음 부분집합은
L=x0+U:={x0+u:u∈U}={v∈V∣∃u∈U:v=x0+u}⊆V
V의 affine subspace 또는 linear manifold라고 불린다. U는 direction 또는 direction space라고 불리며, x0는 support point라고 불린다. 12장에서는 이러한 부분 공간을 hyperplane이라고 지칭한다.
affine subspace의 정의는 x0∈/U인 경우 0을 제외한다는 점에 유의해야 한다. 따라서 x0∈/U인 경우 affine subspace는 V의 (선형) 부분 공간(vector subspace)이 아니다.
affine subspace의 예시로는 R3의 점, 선, 평면이 있으며, 이들은 (반드시) 원점을 통과하지는 않는다.
비고. 벡터 공간 V의 두 affine subspace L=x0+U와 L~=x~0+U~를 고려하자. 그러면 L⊆L~은 U⊆U~이고 x0−x~0∈U~인 경우에만 성립한다.
affine subspace는 종종 매개변수로 설명된다: V의 k-차원 affine space L=x0+U를 고려하자. 만약 (b1,…,bk)가 U의 순서 기저(ordered basis)라면, L의 모든 원소 x∈L는 다음과 같이 고유하게 설명될 수 있다:
x=x0+λ1b1+…+λkbk
여기서 λ1,…,λk∈R이다. 이 표현을 parametric equation이라고 하며, directional vectorsb1,…,bk와 parametersλ1,…,λk를 갖는다.
Example 2.26 (Affine Subspaces)
1차원 affine subspace는 **직선(line)**이라고 불리며, y=x0+λb1으로 표현될 수 있다. 여기서 λ∈R이고 U=span[b1]⊆Rn는 Rn의 1차원 subspace이다. 이는 직선이 support pointx0와 **방향(direction)**을 정의하는 벡터 b1에 의해 정의됨을 의미한다. 그림 2.13에서 이를 확인할 수 있다.
Rn의 2차원 affine subspace는 **평면(plane)**이라고 불린다. 평면의 parametric equation은 y=x0+λ1b1+λ2b2이며, 여기서 λ1,λ2∈R이고 U=span[b1,b2]⊆Rn이다. 이는 평면이 support pointx0와 direction space를 span하는 두 개의 선형 독립 벡터 b1,b2에 의해 정의됨을 의미한다.
Rn에서 (n−1)차원 affine subspace는 **초평면(hyperplane)**이라고 불리며, 해당 parametric equation은 y=x0+∑i=1n−1λibi이다. 여기서 b1,…,bn−1은 Rn의 (n−1)차원 subspace U의 기저를 형성한다. 이는 초평면이 support pointx0와 direction space를 span하는 (n−1)개의 선형 독립 벡터 b1,…,bn−1에 의해 정의됨을 의미한다. R2에서는 직선이 초평면이기도 하다. R3에서는 평면이 초평면이기도 하다.
비고 (비동차 선형 방정식 시스템과 affine subspace). A∈Rm×n 및 x∈Rm에 대해, 선형 방정식 시스템 Aλ=x의 해는 공집합이거나 차원 n−rk(A)의 Rn의 affine subspace이다. 특히, (λ1,…,λn)=(0,…,0)인 선형 방정식 λ1b1+…+λnbn=x의 해는 Rn의 hyperplane이다.
Rn에서 모든 k차원 affine subspace는 비동차 선형 방정식 시스템 Ax=b의 해이다. 여기서 A∈Rm×n, b∈Rm이고 rk(A)=n−k이다. 동차 방정식 시스템 Ax=0의 해는 vector subspace였으며, 이는 support pointx0=0를 갖는 특수한 affine space로도 생각할 수 있다.
2.8.2 Affine Mappings
섹션 2.7에서 논의했던 벡터 공간 간의 선형 매핑과 유사하게, 우리는 두 아핀 공간 간의 **아핀 매핑(affine mapping)**을 정의할 수 있다. 선형 매핑과 아핀 매핑은 밀접하게 관련되어 있다. 따라서 선형 매핑에서 이미 알고 있는 많은 속성들, 예를 들어 선형 매핑의 합성(composition)이 선형 매핑이라는 속성은 아핀 매핑에도 적용된다.
정의 2.26 (아핀 매핑). 두 벡터 공간 V,W에 대해 선형 매핑 Φ:V→W와 a∈W가 주어졌을 때, 다음 매핑은
ϕ:Vx→W↦a+Φ(x)
V에서 W로의 아핀 매핑이다. 벡터 a는 ϕ의 **변환 벡터(translation vector)**라고 불린다.
모든 아핀 매핑 ϕ:V→W는 선형 매핑 Φ:V→W와 W에서의 변환 τ:W→W의 합성으로도 표현될 수 있으며, ϕ=τ∘Φ이다. 매핑 Φ와 τ는 유일하게 결정된다.
아핀 매핑 ϕ:V→W,ϕ′:W→X의 합성 ϕ′∘ϕ는 아핀 매핑이다.
아핀 매핑은 기하학적 구조를 불변으로 유지한다. 또한 차원과 평행성을 보존한다.
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},⋆)를 고려한다. 여기서
a⋆b:=ab+a+b,a,b∈R\{−1}
a. (R\{−1},⋆)가 **아벨 군(Abelian group)**임을 보여라.
b. 아벨 군(R\{−1},⋆)에서 다음을 풀어라. 여기서 ⋆는 (2.134)에 정의되어 있다.
3⋆x⋆x=15
2.2 n이 N\{0}에 속한다고 하자. k,x가 Z에 속한다고 하자. 정수 k의 합동류(congruence class)kˉ를 다음과 같이 정의한다.
kˉ={x∈Z∣x−k=0(modn)}={x∈Z∣∃a∈Z:(x−k=n⋅a)}.
이제 Z/nZ (때로는 Zn으로 표기)를 modulo n의 모든 합동류의 집합으로 정의한다. **유클리드 나눗셈(Euclidean division)**은 이 집합이 n개의 원소를 포함하는 유한 집합임을 의미한다.
Zn={0,1,…,n−1}
모든 aˉ,bˉ∈Zn에 대해 다음을 정의한다.
aˉ⊕bˉ:=a+b
a. (Zn,⊕)가 **군(group)**임을 보여라. 아벨 군인가?
b. 이제 Zn의 모든 aˉ와 bˉ에 대해 또 다른 연산 ⊗를 다음과 같이 정의한다.
aˉ⊗bˉ=a×b,
여기서 a×b는 Z에서의 일반적인 곱셈을 나타낸다.
n=5라고 하자. ⊗ 연산에 대한 Z5\{0} 원소들의 **곱셈표(times table)**를 그려라. 즉, Z5\{0}의 모든 aˉ와 bˉ에 대해 곱 aˉ⊗bˉ를 계산하라.
따라서 Z5\{0}가 ⊗에 대해 닫혀 있고(closed), ⊗에 대한 **항등원(neutral element)**을 가짐을 보여라. ⊗에 대한 Z5\{0}의 모든 원소의 **역원(inverse)**을 표시하라. (Z5\{0},⊗)가 아벨 군임을 결론지어라.
c. (Z8\{0},⊗)가 군이 아님을 보여라.
d. **베주 항등식(Bézout's identity)**은 두 정수 a와 b가 서로소(relatively prime)(즉, gcd(a,b)=1)인 것은 au+bv=1을 만족하는 두 정수 u와 v가 존재할 때 그리고 그 때에만 성립한다고 말한다. (Zn\{0},⊗)가 군인 것은 n∈N\{0}이 **소수(prime)**일 때 그리고 그 때에만 성립함을 보여라.
2.3 다음과 같이 정의된 3×3 행렬의 집합 G를 고려한다.
G=⎩⎨⎧100x10zy1∈R3×3x,y,z∈R⎭⎬⎫
⋅을 **표준 행렬 곱셈(standard matrix multiplication)**으로 정의한다.
(G,⋅)는 군인가? 그렇다면 아벨 군인가? 답을 정당화하라.
2.4 다음 행렬 곱을 가능하다면 계산하라:
a.
147258101110011
b.
147258369101110011
c.
101110011147258369
d.
[14211−12−4]01253−112
e.
01253−112[14211−12−4]
2.5 다음 비동차 선형 시스템(inhomogeneous linear systems)Ax=b의 모든 해 집합 S를 x에 대해 찾아라. 여기서 A와 b는 다음과 같이 정의된다.
a.
A=122515−12−1−71−4−1−532,b=1−246
b.
A=112−1−11−1200000−31−210−1−1,b=365−1
2.6 **가우스 소거법(Gaussian elimination)**을 사용하여 다음 비동차 방정식 시스템(inhomogeneous equation system)Ax=b의 모든 해를 찾아라.
A=000101000010110001,b=2−11.
2.7 방정식 시스템 Ax=12x의 x=x1x2x3∈R3에 대한 모든 해를 찾아라. 여기서
A=660408390
이고 ∑i=13xi=1이다.
2.8 가능하다면 다음 행렬의 **역행렬(inverses)**을 결정하라:
a.
A=234345456
b.
A=1011011111010010
2.9 다음 집합 중 R3의 **부분 공간(subspaces)**인 것은 무엇인가?
a. A={(λ,λ+μ3,λ−μ3)∣λ,μ∈R}
b. B={(λ2,−λ2,0)∣λ∈R}
c. γ가 R에 속한다고 하자.
C={(ξ1,ξ2,ξ3)∈R3∣ξ1−2ξ2+3ξ3=γ}
d. D={(ξ1,ξ2,ξ3)∈R3∣ξ2∈Z}
2.10 다음 벡터 집합은 **선형 독립(linearly independent)**인가?
a.
U1∩U2의 **기저(basis)**를 결정하라.
2.13 두 부분 공간U1과 U2를 고려한다. 여기서 U1은 동차 방정식 시스템(homogeneous equation system)A1x=0의 해 공간이고, U2는 동차 방정식 시스템A2x=0의 해 공간이다.
A1=11210−2101−131,A2=3173−32−5−10322
a. U1,U2의 **차원(dimension)**을 결정하라.
b. U1과 U2의 기저를 결정하라.
c. U1∩U2의 기저를 결정하라.
2.14 두 부분 공간U1과 U2를 고려한다. 여기서 U1은 A1의 열 벡터로 **생성(span)**되고, U2는 A2의 열 벡터로 생성된다.
A1=11210−2101−131,A2=3173−32−5−10322
a. U1,U2의 차원을 결정하라.
b. U1과 U2의 기저를 결정하라.
c. U1∩U2의 기저를 결정하라.
2.15 F={(x,y,z)∈R3∣x+y−z=0}이고 G={(a−b,a+b,a−3b)∣a,b∈R}라고 하자.
a. F와 G가 R3의 부분 공간임을 보여라.
b. **기저 벡터(basis vector)**를 사용하지 않고 F∩G를 계산하라.
c. F와 G에 대한 기저를 각각 하나씩 찾고, 이전에 찾은 기저 벡터를 사용하여 F∩G를 계산한 다음, 이전 질문의 결과와 비교하여 확인하라.
2.16 다음 **매핑(mappings)**은 **선형(linear)**인가?
a. a,b∈R이라고 하자.
Φ:L1([a,b])f→R↦Φ(f)=∫abf(x)dx
여기서 L1([a,b])는 [a,b]에서 **적분 가능한 함수(integrable functions)**의 집합을 나타낸다.
b.
Φ:C1f→C0↦Φ(f)=f′
여기서 k⩾1에 대해 Ck는 k번 **연속 미분 가능한 함수(continuously differentiable functions)**의 집합을 나타내고, C0는 **연속 함수(continuous functions)**의 집합을 나타낸다.
c.
Φ의 **핵(kernel)**과 **상(image)**을 계산하라. dim(ker(Φ))와 dim(Im(Φ))는 무엇인가?
2.18 E를 **벡터 공간(vector space)**이라고 하자. f∘g=idE (즉, f∘g는 항등 매핑(identity mapping)idE이다)를 만족하는 E의 두 자기 동형 사상(automorphisms)f와 g를 고려한다. ker(f)=ker(g∘f), Im(g)=Im(g∘f)이고 ker(f)∩Im(g)={0E}임을 보여라.
2.19 **표준 기저(standard basis)**에 대한 변환 행렬이 다음과 같은 자기 준동형 사상(endomorphism)Φ:R3→R3을 고려한다.
AΦ=1111−11001.
a. ker(Φ)와 Im(Φ)를 결정하라.
b. 다음 기저에 대한 변환 행렬A~Φ를 결정하라.
B=111,121,100,
즉, 새로운 기저B로 **기저 변환(basis change)**을 수행하라.
2.20 R2의 표준 기저로 표현된 R2의 4개 벡터 b1,b2,b1′,b2′를 고려한다.
b1=[21],b2=[−1−1],b1′=[2−2],b2′=[11]
그리고 R2의 두 순서 기저(ordered bases)B=(b1,b2)와 B′=(b1′,b2′)를 정의한다.
a. B와 B′가 R2의 두 기저임을 보이고, 이 기저 벡터들을 그려라.
b. B′에서 B로 기저 변환을 수행하는 행렬 P1을 계산하라.
c. R3의 표준 기저로 정의된 R3의 세 벡터 c1,c2,c3를 고려한다.
c1=12−1,c2=0−12,c3=10−1
그리고 C=(c1,c2,c3)를 정의한다.
(i) **행렬식(determinants)**을 사용하여 (4.1절 참조) C가 R3의 기저임을 보여라.
(ii) C′=(c1′,c2′,c3′)를 R3의 표준 기저라고 하자. C에서 C′로 기저 변환을 수행하는 행렬 P2를 결정하라.
d. 준동형 사상(homomorphism)Φ:R2⟶R3를 고려한다.
Φ(b1+b2)=c2+c3Φ(b1−b2)=2c1−c2+3c3
여기서 B=(b1,b2)와 C=(c1,c2,c3)는 각각 R2와 R3의 순서 기저이다.
순서 기저B와 C에 대한 Φ의 변환 행렬AΦ를 결정하라.
e. 기저B′와 C′에 대한 Φ의 변환 행렬A′를 결정하라.
f. B′에서 좌표가 [2,3]⊤인 R2의 벡터 x를 고려한다. 즉, x=2b1′+3b2′이다.
(i) B에서 x의 좌표를 계산하라.
(ii) 이를 바탕으로 C로 표현된 Φ(x)의 좌표를 계산하라.
(iii) 그런 다음 Φ(x)를 c1′,c2′,c3′로 작성하라.
(iv) B′에서 x의 표현과 행렬 A′를 사용하여 이 결과를 직접 찾아라.