선형변환이 공간을 어떻게 바꾸는지 이해하고, 고유값·PCA로 차원을 압축하는 원리를 살핀다.
선형변환이란?
선형변환은 벡터 공간을 일정한 규칙에 따라 다른 공간으로 이동시키는 함수입니다. 핵심 특성은 두 가지입니다: ① 직선은 직선으로 유지된다, ② 원점은 원점으로 유지된다.
행렬 곱셈이 곧 선형변환입니다. A × v는 벡터 v를 행렬 A가 정의하는 방식으로 변환합니다.
# 2D 회전 변환 (90도 반시계 방향)
import numpy as np
A = np.array([[0, -1], [1, 0]])
v = np.array([1, 0])
print(A @ v) # [0, 1] — x축이 y축으로 회전
고유값과 고유벡터
선형변환 A를 적용해도 방향이 변하지 않는 특별한 벡터가 있습니다. 이것이 고유벡터(eigenvector)이고, 크기가 얼마나 변하는지가 고유값(eigenvalue)입니다.
A × v = λ × v
# v: 고유벡터 (방향 불변)
# λ: 고유값 (크기 변화율)
고유값이 클수록 그 방향으로 데이터가 많이 퍼져 있다는 의미입니다.
차원 축소: PCA의 원리
실제 데이터는 수백~수천 차원을 가집니다. 이를 다루기 쉽게 줄이는 것이 주성분 분석(PCA, Principal Component Analysis)입니다.
핵심 아이디어: 데이터가 가장 많이 변하는 방향(주성분)을 찾아, 그 방향으로 투영합니다. 이 주성분이 바로 고유벡터입니다!
# sklearn으로 PCA 적용
from sklearn.decomposition import PCA
pca = PCA(n_components=2) # 2차원으로 축소
X_2d = pca.fit_transform(X_1000d) # 1000차원 → 2차원
AI에서의 활용
신경망의 각 레이어 = 선형변환 + 비선형 활성화
# 레이어 1개의 전체 수식
출력 = activation(W × 입력 + b)
# W × 입력: 선형변환
# activation: 비선형 함수 (ReLU, Sigmoid 등)
# 비선형이 없으면 여러 레이어를 쌓아도 의미 없음!
어텐션 메커니즘
ChatGPT의 핵심인 Transformer의 어텐션도 쿼리·키·값 행렬을 이용한 선형변환의 조합입니다.
임베딩 레이어
단어를 벡터로 변환하는 임베딩 레이어도 본질적으로 선형변환입니다.
랭크(Rank)와 정보 손실
행렬의 랭크는 해당 선형변환이 "정보를 얼마나 보존하는가"를 나타냅니다. 랭크가 낮으면 차원이 압축되어 정보 손실이 발생합니다. LoRA(저랭크 적응) 같은 AI 파인튜닝 기법도 이 개념에서 출발합니다.
핵심: 선형변환은 공간을 이동시키는 도구입니다. 신경망은 수많은 선형변환과 비선형 함수를 쌓아 복잡한 패턴을 학습합니다.
관련 검색어 · 선형변환, 고유값 고유벡터, PCA 주성분분석, 차원 축소, 딥러닝 레이어 선형변환, LoRA 파인튜닝