기저: 같은 정보를 다른 축으로 다시 적기
자주 하는 실수와 요약
자주 하는 실수
| 실수 |
바른 생각 |
나온 문제 |
| 좌표가 음수면 그 축으로는 적을 수 없다 |
기저면 어떤 신호든 하나뿐인 좌표로 적힌다. 좌표가 음수인 것은 그 축을 빼는 것일 뿐이다 |
문제 1 |
| 칸 수만큼 축을 고르면 기저다 |
어느 축도 나머지 축을 섞어 만들어지지 않아야(일차 독립) 기저다. 한 평면에 누운 세 축으로는 적을 수 없는 신호가 생긴다 |
문제 2 |
| 임베딩의 칸 하나에 뜻이 있다 |
기저를 돌려도 무게를 함께 돌리면 모델의 점수는 같다. 뜻은 칸이 아니라 방향에 있다 |
문제 3, 6 |
| 직각인 두 성분을 더하면 전체 크기다 |
직각인 성분은 제곱해서 더한다(피타고라스) |
문제 4, 7 |
| 축마다 내적으로 계수를 구하면 늘 맞다 |
축들이 서로 직교할 때만 맞다. 직교하지 않으면 다른 축의 성분까지 함께 센다 |
문제 5, 8 |
| 탐침은 표현의 모든 칸을 본다 |
탐침은 방향 하나로 사영한 좌표만 읽고 그 방향에 직각인 부분은 버린다 |
문제 6 |
| 좌표의 제곱합은 늘 신호의 제곱합이다 |
서로 직교하고 길이가 1인 축일 때만 같다. 길이가 1이 아니면 축 길이의 제곱을 곱하고, 직교가 아니면 엇갈린 곱 항이 남는다 |
문제 8 |
| 칸이 많아도 내적은 양수 음수가 지워져 작게 머문다 |
내적의 표준편차는 √d 로 자란다. 그래서 어텐션 점수를 √d 로 나눈다 |
문제 9 |
| 한쪽으로만 빠져나가면 결국 바닥난다 |
오가는 대수가 같아지는 배치(고윳값 1인 고유벡터)로 모인다 |
문제 10 |
| n×n 행렬에는 방향이 그대로인 축이 n개 있다 |
돌리기는 실수 축이 없고 밀기는 모자랄 수 있다. 대칭 행렬이면 서로 직교하는 축 n개가 있다 |
문제 11 |
| 고윳값이 1보다 조금 크거나 작으면 몇 스텝 뒤에도 비슷하다 |
거듭제곱이라 1.15²⁰ = 16.4배, 0.85²⁰ = 0.039배로 벌어진다 |
문제 12 |
요약
- 기저: 어떤 신호든 하나뿐인 계수로 적게 해 주는 축의 묶음. 칸 세 개짜리 (3, 1, 2)는 칸 축으로 (3, 1, 2), 평균·기울기·굽음 축으로 (2, −0.5, 0.5)다. 축은 일차 독립이어야 한다.
- 직교 사영: 축들이 서로 직교하면 계수는 내적 하나로 구한다. cⱼ = x·eⱼ / eⱼ·eⱼ. 축을 더해도 앞의 계수가 바뀌지 않는다.
- 파스발 등식: 서로 직교하고 길이가 1인 축에서는 좌표의 제곱합이 신호의 제곱합과 같다. 14 = 12 + 0.5 + 1.5. 축을 함께 돌려도 그대로이고, 비틀면 깨진다.
- 고유벡터: 변환을 걸어도 방향이 그대로이고 길이만 고윳값 λ배가 되는 축. 고유벡터를 기저로 쓰면 변환을 거듭 거는 일이 축마다 λ를 거듭 곱하는 일이 된다. 대칭 행렬의 고유벡터는 서로 직교한다.
- ML에서는 임베딩의 뜻이 칸이 아니라 방향에 있고, 선형 탐침은 방향 하나로의 사영이며, 어텐션 점수는 직교 변환에 변하지 않는 내적이고 √d 로 크기를 맞춘다. 순환 신경망의 그래디언트 폭발과 소실은 고윳값의 거듭제곱이다.
flowchart LR
A["기저<br/>같은 신호를 다른 축으로"] --> B["직교 사영<br/>계수 = 내적"]
B --> C["파스발 등식<br/>제곱합이 그대로"]
A --> D["고유벡터<br/>변환이 섞지 않는 축"]
C --> D
막힌 곳
- 평균·기울기·굽음은 칸 세 개에서 손으로 고른 축이었다. 칸이 1000개인 소리 파일에는 어떤 축 1000개를 고르면 좋을까? 「잘게 출렁이는 모양」을 축으로 늘려 가는 방법이 있을까?
- 칸이 끝없이 많아지면 신호는 함수가 되고 제곱합은 적분이 되었다. 함수에도 서로 직교하는 축이 있다면, 그 축들은 어떤 모양일까?
- 흐림 변환의 고유벡터가 하필 평균·기울기·굽음처럼 「출렁임의 정도」로 나뉜 것은 흐림이 칸의 자리와 상관없이 같은 규칙으로 이웃을 섞기 때문일까? 그렇다면 변환이 지키는 규칙이 고유벡터의 모양을 정해 주는 걸까?