이 포스트는 숭실대학교 김창훈 교수님의 인공지능 수업을 정리한 포스트입니다.
SVD 간단 소개

다음과 같은 행렬 A가 있을 때, 이 행렬 A의 Column Space는 아래와 같다.

그러므로 이 행렬 A의 Rank는 1이다.
이를 SVD로 간단하게 표현해보면 아래와 같이 표현해볼 수 있다.

3*1 과 1*3의 행렬로 분해되었다.
CR 분해 간단 소개

다음과 같은 행렬 A가 있을 때, 이 행렬의 Column Space는 아래와 같다.

그러므로 이 행렬 A의 Rank는 2이다.
이를 CR 분해시키면 아래와 같이 결과가 나온다.

Rank와 Column space
- 행렬 A가 있을 때, Rank(A) = Rank(A^T)는 성립한다.
이는 전치를 시켜도 선형 독립 관계가 유지되기 때문이다!
- 그리고 Ax의 Column space를 C(A)라고 할 때, ABCx의 Column space도 여전히 C(A)이다.
이는 ABCx -> A(BCx) -> A * something 으로 변환시킬 수 있기 때문이다!
Projection Matrix
- 투영: 벡터를 다른 공간으로 그림자처럼 떨어뜨리는 선형변환
- 투영 행렬: 이 변환을 나타내는 특별한 행렬

<도출 과정>
1. 문제 설정
우리는 벡터 b를 벡터 a 방향으로 투영하고자 한다.

2. 직교 조건
벡터 p에서 벡터 a와 수직인 벡터 e가 있다고 하자.
이는 벡터 b와 연결된다.
e = b - p
a^T * e = 0

3. 계수 x 구하기

4. 투영벡터 구하기

5. 투영 행렬 도출


<도출 과정>
1. 문제 설정
벡터 b를 행렬 A의 열공간에 투영

2. 직교 조건
벡터 e는 열공간의 모든 벡터에 수직이다.
e = b - p

3. 계수 x 구하기

4. 투영 행렬 도출

이때 투영 행렬 P는
- P^2 = P
- P^T = P
두 성질이 성립한다. 이에 대한 증명도 꼭 알아보도록 하자.
관련 논문: SAFREE
CLIP 모델에 나쁜 이미지를 생성하는 프롬프트를 넣으려고 할 때,
문장의 각 단어 중 나쁜 단어의 토큰을 정사영시켜서 의미를 보존하면서도 안전한 이미지가 나오도록 한 논문.