Giờ mình tổng hợp note
Các bước của PCA qua eigen (còn kiểu qua SVD nữa)
- Trải phẳng n ảnh cùng độ phân giải thành các vector cột H[i] với kích cỡ (size*1)
- Chuẩn hóa (centered): avgH = 1/n*sigma_all(H), i=1…n: H[i] <- H[i] - avgH
- H = [H[1] H[2] … H[n]] kích cỡ (size*n)
- M = T(H) * H với n < size (Gram matrix)
- Trích eigvec(M) ứng với eigval(M) cao nhất lập thành V = [v[1] | v[2] | … | v[k]]
- Chuẩn hóa (Euclidean) norm trên V để lập thành cơ sở trực chuẩn (do spectral theorem) cho subspace S có k chiều: v[i] <- v[i] / norm2(v[i])^2
- Chiếu tất cả các vector H[i] xuống subspace này thành H’[i]: H’[i] = T(H[i]) * V
- Lưu H’[1…n], avgH, và v[1…k] ứng với
lambda[1..k]
(eigval)
Cơ sở:
- Vì sao để cực tiểu MSE phải cực đại phương sai theo principal axis? https://stats.stackexchange.com/a/136072 (từ khóa: Frobenius norm).
- Một phần của spectral theorem: ma trận đối xứng luôn có đủ vector riêng với giá trị riêng thực & chúng đôi một trực giao.
- Gram matrix: ta có cov(H) = H*T(H) là ma trận đx nên có eigenvalue thực. Với v là một eigenvector của cov(H) ta có
H*T(H)*v = lambda*v <=> T(H)*H*T(H)*v = lambda*T(H)*v <=> T(H)*H * (T(H)*v) = lambda * (T(H)*v)
vậy theo đn T(H)*v là eigenvector của Gram matrix với cùng eigenvalue.
- Phép chiếu: Cho một subspace S với orthonormal basis {u[1…k]}. Một vector v trong R^n luôn tách được thành: v = hình chiếu trên S + vector trực giao (?pháp tuyến?) với S.
Với j trong [1…k]: (phép .
là tích vô hướng)
v.u[j] = (sigma(i=1..k) c[i]*u[i]).u[j] + 0
= sigma(i=1..k && i != j) c[i]*(u[i].u[j]) + c[j]*(u[j].u[j])
= 0 + c[j]*1 = c[j].
Hay Proj(v) = [v.u[1] | v.u[2] | … | v.u[k]], tức là bằng T(v) * U.
Chắc còn thiếu mong mọi người góp ý bổ sung Nhưng nhìn qua thì thấy một nhịp còn thiếu là phương sai theo trục cực đại (Cov(x, x), Cov(y, y), Cov(z, z) max) -> ? -> chọn eigenvalue của cov (hay Gram) cực đại.