Transcript ppt

패턴인식 개론
Ch.3 선형 대수학 - 벡터와 행렬
-1-
 벡터 이론
벡터 : 크기와 방향을 가지는 어떠한 물리량.
x2
x1
특징 벡터(feature vector) : 패턴 인식에서는 인식 대상이 되는 객체가 특징
으로 표현되고, 특징은 차원을 가진 벡터로 표현된다. 이러한 벡터를 특징벡
터라고 한다. 그리고 특징 벡터에 대한 대수학적인 계산을 위해서 특징 벡터
를 행렬로 표현하여 N-차원 공간 상의 한 점의 데이터로 특징을 다루게 된
다. 관례적으로 벡터 x  [ x1 , x2 ,  , x N ] 은 Nx1 행렬로 간주 한다.
T
 x1 
x 
x 2

 
 xN 
벡터의 전치(transpose) : 벡터의 전치란 Nx1행렬을 1xN 행렬로, 혹은 1xN 행렬을 Nx1행
렬로 행과 열을 바꾼 행렬을 의미한다.
xT  x1
x2  x N 
-2-
 벡터 이론
벡터의 크기(norm) : 벡터의 크기는 원점에서 벡터 공간 상의 한 점까지의 거리를 말하
며, 다음과 같이 정의한다.


2
2
2
2
x  xT x  x1  x2  x3    xN   xk xk 
 k 1

N
1/ 2
Ex) 벡터 x=[3 4]T 의 크기(norm)는?
단위 벡터 (unit vector): 벡터의 크기가 1인 벡터를 “단위(unit)”벡터라고 한다. 만약, 벡터
v가 0 이 아닌 벡터라면 v 방향의 단위벡터 u 는 다음과 같이 규정한다. 이렇게 주어진 벡
터와 방향이 같은 단위벡터를 구하는 과정을 벡터의 정규화(normalization) 라고 한다.
u
1
v
v
Ex) 벡터 v=[3 4]T 방향의 단위벡터는 u 는?
그리고 그 단위벡터 u의 크기(norm)는?
-3-
 벡터 이론
벡터의 곱셈
스칼라 곱: 임의의 벡터에 임의의 스칼라(실수)를 곱하는 것
을 말하며, 다음과 같이 성분 별로 스칼라를 곱해주면 된다.
Ex) 벡터 x=[3 4]T일 때 y = 5x 는?
 ax1 
 ax 
yax 2
  
 
axN 
내적 (inner product; dot product): 차원이 동일한 두 개의 벡터 x, y 에 대하여 대응되
는 성분 별로 곱하여 합하는 것을 두 벡터의 “내적”이라 한다.그러므로 벡터 내적의 결
과는 실수 스칼라이다.
N
c  x, y  x  y  x y   xi yi
T
i 1
두 벡터 사이의 각

가 주어질 경우, 내적 스칼라 c 는 다음과 같이 주어진다.
c  x y cos , where 0    
Ex) 벡터 x=[3 4]T 와 y=[5 6]T 의 내적 <x,y> 는?
벡터 x=[1 0]T 와 y=[0 1]T 의 내적 <x,y> 는?
-4-
 벡터 이론
수직사영 ( orthogonal projection ) : 벡터 y를 벡터 x로 사영(혹은 투영)을 취하면, 벡터
x 의 방향으로 어떠한 길이를 가지는 벡터가 만들어진다. 이 사영 벡터는 내적의 정의를
사용하여 다음과 같이 정의하는데, 여기서, ux 은 x 와 같은 방향의 단위 벡터이다.


yT ,u x u x  y cos  u x
Ex) 벡터 y=[2 4]T 와 x=[4 3]T 로의 사영은?
ux=(1/||x||)x =[4/5 3/5],
 ([2 4] [4/5 3/5]T) [4/5 3/5]T
=4*[4/5 3/5]T
벡터 y=[3 4]T 의 x=[1 0]T 로의 사영은?
벡터 y=[3 4]T 의 x=[0 1]T 로의 사영은?
두 벡터 x 와 y 가
• xTy = 0 이면, 두 벡터 x와 y는 수직/직교 ( orthogonal )이라고 한다.
• xTy = 0 이고, x  y  1 이면, 두 벡터 x와 y는 정규직교( orthonormal )한다.
-5-
 벡터 이론
선형결합: 벡터집합 x={x1,x2,…,xN} 와 스칼라 계수집합 {a1,a2,…,aN} 과의 곱의 합으로
표현된 벡터 y를 벡터 x의 “선형결합(linear combination)”이라고 한다.
 2
1 
0 
0 
 3   2   2   1   3  2   2 
 
 
 
 
5
3
1
1
y  a1x1  a2 x 2    aN x N
선형종속: 만약, 벡터집합 x={x1,x2,…,xN} 이 아래의 식을 만족하는 모두 0 이 아닌 스칼
라 계수집합 {a1,a2,…,aN} 이 존재한다면, 다시 말해서, 벡터 집합 중 적어도 하나를 다른
벡터들의 선형결합으로 표현할 수 있다면, 이 벡터 집합은 “선형종속(linearly dependent)”
이라고 한다.
0 
 2
 2
1
0  1 2  2  2  2  1
 
 
 

0
4
3
1
N
a1x1  a2 x 2    a N x N    i x i  0
i 1
선형독립: 만약, 위의 식을 만족하는 유일한 해가 a k= 0 (for all k) 이라면 {x1,x2,…,xN}는
“선형독립(linearly independent)” 이라고 한다.
0 
1
0 
0 
0  0  0  0  1  0  0
 
 
 
 
0
0
0
1
a1x1  a2 x 2    aN x N  0  ak  0, k
-6-
 벡터 이론
기저집합 (basis)
행렬 Nx1로 표현되는 모든 벡터를 표현할 수 있는 벡터의 집합을 “기저 벡터 집합”이라
고 한다. 이때 임의의 벡터는 기저 벡터 집합을 통하여 Nx1 벡터 공간에 펼쳐(span)진다
고 표현한다. 만약, v i 1i  N 이 기저 집합이라면, 임의의 Nx1벡터 x는 다음과 같이 표현
될 수 있다.
 3
1
0 
0 
6  3  0  6  1  9  0
 
 
 
 
9
0
0
1
N
x   ci v i
i 1
만약, 어떤 임의의 벡터 a가 {ui} 의 선형조합으로 표현이 되
어질 수 있다면, 벡터집합 { u1, u2, …, uN } 은 벡터 공간에 대
하여 기저( basis )를 형성한다고 말한다.
a  a 1u1  a 2u 2    a n u n
계수 {a1,a2,…,aN} 를 기저 {ui} 에 따른 벡터 x의 성분이라고
하고, 기저를 형성하기 위해서 {ui} 벡터들이 선형 독립인 것은
필요 충분한 조건이다.
 0 i  j
ui u j 
 0 i  j
T
직교(orthogonal)
1 i  j
ui u j 
 0 i  j
T
정규직교(orthonormal)
-7-
 벡터 이론
벡터 공간( vector space ) 혹은 유클리드 공간
• 모든 n차원 벡터들이 존재하는 n차원 공간을 “벡터 공간”이라고 한다.
• 벡터 공간은 실수에 의하여 벡터 덧셈과 벡터 곱셈에 대한 규칙에 닫혀있는 벡터 집합
이다. 그러므로 임의의 두 벡터에 대한 덧셈과 곱셈을 통하여 해당 공간 내에 있는 새로
운 벡터를 생성할 수 있다.
• n차원 공간 Rn 은 모두 선형독립인 n개의 n차원 벡터에 의해 생성될 수 있는데, 이때
n차원 공간 Rn 을“유클리드 n차원 공간”혹은“유클리드 공간”이라고 한다.
벡터간의 거리 : 벡터공간에 존재하는 두 점
사이의 거리(유클리디안 거리)는 두 점을 있는
벡터의 길이로 다음과 같이 정의 된다.
-8-
 행렬 대수
전치행렬 ( transposed matrix )
정방행렬 ( square matrix ): 행의 수와 열의 수가 동일한 행렬
대각행렬 ( diagonal matrix ):
행렬의 대각 성분을 제외하고는 모두 0인 행렬
3 0 0 
A  0 6 0 
0 0  2
5 0 0 
B  0 5 0
0 0 5
스칼라행렬 : 대각 성분이 모두 같고,
비대각 성분이 모두 0인 정방행렬
-9-
 행렬 대수
항등 행렬 혹은 단위 행렬 ( identity matrix )
대각 성분이 모두 1이고 그밖의 성분이 모두 0인 정방행렬
1 0 0
I  0 1 0
0 0 1
1 4 5
S  4 2 6
5 6 3
대칭 행렬 ( symmetry matrix )
대각선을 축으로 모든 성분이 대칭되는 행렬
영 행렬
모든 구성 성분이 0인 행렬
직교 행렬
주어진 행렬 A가 정방행렬일 떼,
를 만족하는 행렬
- 10 -
 행렬 대수
행렬의 곱셈
행렬의 트레이스 : 정방행렬에서 대각 성분의 합
행렬의 고유값 문제에서 고유근을 구할 때 매우 중요한 역할을 함
- 11 -
 행렬 대수
행렬식 ( determinant ) : 수들의 다차원적인 배열을 행렬이라고 한다면, 행렬식은 행렬을 어
떠한 하나의 실수 값으로 표현한 것을 말한다. d×d 정방 행렬 A에 대하여, 행렬식은 |A| 혹
은 det A 으로 표현하며 다음과 같이 계산된다.
여기에서 Aik 는 A에서 i 번째 행과 k 번째 열을 제거하여 만든 부행렬(sub-matrix)을 말한다.
•
•
•
•
행렬식은 오직 정방 행렬에서만 정의된다.
주어진 정방 행렬의 행렬식과 그 정방 행렬의 전치 행렬의 행렬식은 같다. |A|= |AT|
행렬식의 값은 하나의 상수 즉, 임의의 실수이다.
n차의 행렬식 |An×n|은 n개의 행과 열의 위치가 서로 다른 성분들의 곱의 합으로 표현된다.
- 12 -
 행렬 대수
역행렬 (Inverse Matrix): 대수 연산에서 임의의 수를 곱하여 1이 될 때, 이를 "역수"라고 한
다. 이를 행렬 대수에 적용하면, 가령 AX =I 가 되는 X 가 존재할 경우에 이 행렬 X 를 A 의
역행렬이라고 하며 A-1로 표현한다.
역행렬의 성질
정부호 (positive-definite) : 양의 실수(positive real number)와 유사한 성질을 갖는 행렬
의 성질을 말하며, 만약, 모든 영이 아닌 x 에 대하여 xTAx > 0 의 조건을 만족한다면, 행
렬 A는 정부호 행렬 (positive-definite matrix)이라고 한다. A > 0 은 A가 정부호임을 나
타낸다.
3 0 0 
A  0 1 0
0 0 2
만약 xTAx ≥ 0 라면, A는 반정부호(positive semidefinite)라고 한다. 공분산 행렬은 정부
호 행렬의 대표적인 예이다.
- 13 -
 행렬 대수
고유치와 고유벡터
행렬 A가 nxn의 정방행렬이고, x  0 인 벡터 x ∈ Rn 가 존재할 때, 다음 관계를 만족
하는 스칼라  를 행렬 A의 고유치(eigenvalue)라 하고 벡터 x 는  에 대응하는 A의
고유벡터(eigenvector)라고 한다.
Ax  x
고유치의 계산은 아래와 같이 하는데
Ax  x  Ax  x  0  (A  I)x  0  x  0 or (A  I)  0
동차일차 연립방정식 Ax=0 에서 x=0 이 아닌 해를 얻는 유일한 경우는 |A|=0 인 경우이
기 때문에 위의 식을 만족하려면 |A -  I |=0 일 때 x  0 인 해가 존재하게 된다.
이 때, |A -  I |=0 를 A의 특성방정식이라고 한다.
(A  I)  0  A  I  0  N  a1N 1    aN 1  aN  0
A 를 nxn 행렬이라 하고,  을 A의 고유값이라고 한다.  에 대응하는 모든 고유 벡터
의 집합은 영벡터와 함께 Rn 의 부분공간을 이룬다. 이 부분 공간을 A의 고유공간
( eigenspace )이라고 한다.
- 14 -
 행렬 대수 – 고유치와 고유벡터의 성질
고유치와 고유벡터의 성질
•
•
•
•
•
•
•
•
•
•
대각행렬의 고유치는 대각 성분 값이다.
삼각행렬의 고유치는 이 행렬 대각 성분 값이다.
벡터 x 가 행렬 A의 고유 벡터이면 벡터 x의 스칼라 곱인 kx도 고유 벡터이다.
전치하여도 고유치는 변하지 않는다. 즉, 행렬 A의 고유치와 전치행렬 AT의 고유치는
동일하다.
역행렬의 고유치는 원래 행렬의 고유치의 역수가 된다.
행렬 A의 모든 고유치의 곱은 A의 행렬식과 같다.
서로 다른 고유치와 관련된 고유 벡터는 선형독립이다.
실수 대칭 행렬의 고유 벡터는 서로 직교한다.
실수 대칭 행렬의 고유치 또한 실수이다.
만약 A가 양의 정부호 행렬이라면 모든 고유치는 양수이다.
- 15 -
 행렬 대수 - 선형변환
선형 변환이란 벡터공간 XN 으로부터 벡터공간 YM 상으로 매핑하는 것을 말하며, 행렬로
는 다음과 같이 표현된다. 벡터 x ∈ XN 가 주어질 때, YM 상에 대응되는 벡터 y 는 다음
과 같이 계산된다.
선형 변환이 이루어지는 두 벡터 공간의 차원을 같을 필요는 없다. 패턴인식에서는 선형
변환을 통하여 특징벡터의 차원을 축소하는데 이용한다. 선형변환 행렬이 정방 행렬 A이
고 AAT=ATA=I 일 때, 정규직교 한다고 말한다. 정규직교이면 AT = A-1 이다. 특히 정규직
교 변환하게 되면 아래와 같이 벡터의 크기를 보존하는 성질을 가짐을 알 수 있다.
이때, 정규직교 변환의 행 벡터
(a1,a2,…,aN)는 정규직교 기저벡터집합
을 형성한다.
- 16 -
 행렬 대수 - 선형변환
주어진 행렬 A가 선형 변환이라면, 고유벡터(eigenvector)는 벡터공간에서의 불변
( invariant ) 방향을 나타낸다.
A에 의한 변환 시에, 고유벡터(eigenvector) v 로 정의되는 방향에 놓인 어떤 점들도 그대
로 그 방향으로 놓이게 되며, 그 크기는 해당하는 고유치(eigenvalue)  로 곱해지게 된다.
예를 들어, Z 축에 대하여 3차원 벡터를 회전하는 변환은 벡터 [0 0 1]을 유일한 고유 벡터
로 같게 되며 해당하는 고유치는 1이 된다.
- 17 -
MATLAB exercise – Vectors
>>
>>
>>
>>
>>
>>
>>
>>
>>
A = [ 3; 2; 5; 4 ]
A’
norm(A)
B = 3*A
dot(A,B)
G1 = [1 2 3 4], G2=[5 6 7 8]
G1*G2’
H = [1;2;3;4], J=[5;6;7;8]
H’*J
Ex) 주어진 벡터 a=[1 9 3 7 5] 의 크기를 구하시오.
Ex) 주어진 벡터 b=[1 3 5]’ 와 c=[2 4 6]’의 내적을 구하시오.
- 18 -
MATLAB Examples – Matrices
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
A = [ 1 0 0; 0 1 0; 0 0 1]
trace(A)
det(A)
eye(4,4)
zeros(5,6)
ones(3,5)
v = [ 2 4 6 0 9 3 ]; diag(v)
A = [ 1 3 5; 2 4 7; 3 9 4 ]
B = [ A, zeros(3,2); zeros(2,3), eye(2)]
[U D] = eig(B)
Ex) 주어진 행렬 a=[ 1 2 3; 4 5 6; 7 8 9 ] 의 트레이스, 행렬식, 역행렬, 고유치 및 그에 해
당하는 고유벡터들을 구하시오. 그리고 b=a’에 대한 값들도 구해보시오.
Ex) 주어진 행렬 a=[ 1 0 0 0; 0 2 0 0; 0 0 3 0; 0 0 0 5] 의 트레이스, 행렬식, 역행렬, 고
유치 및 그에 해당하는 고유벡터들을 구하시오.
Ex) 주어진 행렬 a=[ 1 2 3; 2 1 2; 3 2 1 ] 의 트레이스, 행렬식, 역행렬, 고유치 및 그에 해
당하는 고유벡터들을 구하시오.
- 19 -