2.7 Transpose and Permutations
전치 행렬과 순열 행렬
전치 행렬 AT와 순열 행렬 P는 선형대수에서 매우 자주 등장하는 기본 행렬이다.
핵심 성질은 다음과 같다.
- Ax의 전치는 xTAT이다.
- AB의 전치는 BTAT이다.
- A−1의 전치는 (AT)−1이다.
- 내적은 x⋅y=xTy로 표현된다.
- 외적은 xyT로 표현된다.
- 대칭행렬은 ST=S를 만족한다.
- 직교행렬은 QT=Q−1을 만족한다.
- 순열행렬은 단위행렬 I의 행을 재배열한 행렬이다.
- 순열행렬은 PT=P−1을 만족한다.
전치(Transpose)
전치 행렬은 행과 열을 바꾼 행렬이다.
예를 들어 다음 행렬 A가 있다고 하자.
A=[102034]
그러면 전치 행렬 AT는 다음과 같다.
AT=123004
즉, A의 i행 j열 원소는 AT의 j행 i열 원소가 된다.
(AT)ij=Aji
전치 법칙
전치에는 다음 법칙들이 성립한다.
1. 합의 전치
(A+B)T=AT+BT
2. 곱의 전치
(AB)T=BTAT
곱의 전치에서는 순서가 뒤집힌다.
3. 역행렬의 전치
(A−1)T=(AT)−1
즉, 역행렬을 취한 뒤 전치해도 되고, 전치한 뒤 역행렬을 취해도 같다.
(Ax)T=xTAT
Ax는 A의 열벡터들의 선형결합이다.
행렬 A의 열벡터를 a1,a2,…,an이라고 하면 다음과 같이 쓸 수 있다.
A=[a1 a2 ⋯ an]
그리고
x=x1x2⋮xn
이면,
Ax=x1a1+x2a2+⋯+xnan
양변을 전치하면 다음과 같다.
(Ax)T=(x1a1+x2a2+⋯+xnan)T
전치는 덧셈에 대해 분배되므로,
(Ax)T=x1a1T+x2a2T+⋯+xnanT
한편 AT는 A의 열벡터들이 행벡터로 바뀐 행렬이다.
AT=a1Ta2T⋮anT
따라서 xTAT는 AT의 행들을 x1,x2,…,xn을 계수로 선형결합한 것이다.
xTAT=x1a1T+x2a2T+⋯+xnanT
따라서 다음이 성립한다.
(Ax)T=xTAT
내적과 외적
전치 기호 T가 곱 안쪽에 위치하면 내적이 된다.
x⋅y=xTy
이때 크기는 다음과 같다.
(1×n)(n×1)=(1×1)
즉, 결과는 스칼라이다.
반대로 전치 기호가 바깥쪽에 위치하면 외적이 된다.
xyT
이때 크기는 다음과 같다.
(n×1)(1×n)=(n×n)
즉, 결과는 행렬이다.
외적 xyT는 rank one product라고도 한다.
외적의 결과 행렬은 모든 열이 하나의 벡터 방향에 종속되므로 rank가 1 이하이다.
전치의 정의
전치 행렬 AT는 다음 식을 모든 x, y에 대해 만족시키는 유일한 행렬이다.
(Ax)Ty=xT(ATy)
즉, 행렬 A를 내적의 반대편으로 넘기면 전치가 발생한다.
A⟶AT
이 성질은 딥러닝의 역전파에서도 자주 나타난다.
예를 들어
z=Wx
라면, 역전파에서 x에 대한 기울기는 다음 형태로 나타난다.
∂x∂L=WT∂z∂L
즉, forward에서 W를 곱했다면 backward에서는 WT가 등장한다.
내적과 전치의 관계
내적은 순서를 바꾸어도 값이 같다.
uTv=vTu
즉,
⟨u,v⟩=⟨v,u⟩
이를 이용하면 다음 관계를 확인할 수 있다.
⟨Ax,y⟩=⟨x,ATy⟩
행렬 표기로 쓰면 다음과 같다.
(Ax)Ty=xT(ATy)
따라서 AT는 내적에서 A를 반대편으로 옮길 때 등장하는 행렬이라고 볼 수 있다.
대칭행렬
대칭행렬은 전치해도 자기 자신과 같은 행렬이다.
ST=S
성분으로 쓰면 다음을 의미한다.
sji=sij
즉, 주대각선을 기준으로 원소들이 대칭이다.
대칭행렬 S가 가역이면, 그 역행렬 S−1도 대칭행렬이다.
또한 임의의 행렬 A에 대해 ATA는 항상 대칭행렬이다.
(ATA)T=AT(AT)T=ATA
따라서
ATA=S
는 항상 대칭행렬이다.
단, 일반적으로 다음은 성립하지 않는다.
ATA=AAT
대칭행렬의 소거
대칭행렬 S를 행 교환 없이 소거하면 다음과 같이 분해할 수 있다.
S=LDU
예를 들어 다음 대칭행렬을 보자.
S=[1227]
먼저 LU 분해는 다음과 같다.
[1227]=[1201][1023]
이를 LDU 형태로 쓰면 다음과 같다.
[1227]=[1201][1003][1021]
대칭행렬에서는 이때 다음 관계가 성립한다.
U=LT
따라서 대칭행렬의 분해는 다음 형태로 볼 수 있다.
S=LDLT
직교행렬
직교행렬 Q는 다음을 만족하는 행렬이다.
QT=Q−1
즉,
QTQ=I
직교행렬의 열벡터들은 서로 직교하고, 각각의 길이가 1인 단위벡터이다.
따라서 직교행렬은 길이와 각도를 보존하는 변환으로 이해할 수 있다.
순열행렬
순열행렬 P는 단위행렬 I의 행을 임의의 순서로 재배열한 행렬이다.
예를 들어 단위행렬의 행을 바꾸면 다음과 같은 순열행렬이 된다.
P=010100001
n×n 단위행렬의 행을 재배열하는 방법은 총 n!개이다.
따라서 n×n 순열행렬도 총 n!개 존재한다.
순열행렬의 역행렬도 순열행렬이다.
순열을 적용한 뒤 그 역순으로 다시 배치하면 원래 상태로 돌아오기 때문이다.
P−1P=I
순열행렬에서는 다음이 성립한다.
PT=P−1
따라서
PPT=I
즉, 순열행렬은 직교행렬의 한 종류이다.
순열행렬과 소거
가우스 소거 과정에서 pivot이 0이면 행 교환이 필요하다.
이때 행 교환은 순열행렬 P를 왼쪽에서 곱해 표현할 수 있다.
행 교환이 필요한 경우에는 일반적인 A=LU 대신 다음 형태가 나타난다.
PA=LU
즉, A의 행을 먼저 재배열한 뒤 LU 분해를 수행하는 것이다.
A가 가역이면 적절한 행 교환 이후 0이 아닌 pivot n개를 얻을 수 있다.
정리
- 전치 행렬은 행과 열을 바꾼 행렬이다.
(AT)ij=Aji
- 곱의 전치에서는 순서가 뒤집힌다.
(AB)T=BTAT
- 역행렬의 전치는 전치의 역행렬과 같다.
(A−1)T=(AT)−1
- 내적은 다음처럼 쓴다.
x⋅y=xTy
- 외적은 다음처럼 쓴다.
xyT
- 행렬 A를 내적의 반대편으로 넘기면 전치가 붙는다.
(Ax)Ty=xT(ATy)
- 대칭행렬은 전치해도 자기 자신이다.
ST=S
- ATA는 항상 대칭행렬이다.
(ATA)T=ATA
- 직교행렬은 전치가 역행렬이다.
QT=Q−1
-
순열행렬은 단위행렬의 행을 재배열한 행렬이다.
-
순열행렬은 다음을 만족한다.
PT=P−1
- 행 교환이 있는 소거에서는 다음 형태가 나타난다.
PA=LU