Trong quá trình học máy và phân tích dữ liệu, PCA2 luôn được xem là một kỹ thuật nền tảng để rút gọn số chiều, làm nổi bật cấu trúc dữ liệu và hỗ trợ trực quan hóa. Ở phần tiếp theo này, chúng ta không dừng lại ở khái niệm cơ bản mà sẽ đi sâu hơn vào mối liên hệ giữa PCA và SVD, cách xác định số chiều cần giữ lại, những lưu ý khi triển khai trên dữ liệu thực tế và một số ứng dụng tiêu biểu. Nội dung phù hợp cho cả người mới học lẫn người đã có nền tảng và muốn hiểu rõ hơn về cách vận hành của phương pháp này trong môi trường thực hành.

Bài viết cũng mở rộng từ phần trước để làm rõ bản chất toán học của PCA, cách lựa chọn K trong không gian chiếu, cùng hai ví dụ được nhắc đến rất thường xuyên trong tài liệu chuyên ngành là Eigenface và phát hiện bất thường không giám sát. Ngoài ra, khi làm việc với phần mềm thống kê, người học cũng có thể liên hệ thêm với các chủ đề như Trích xuất điểm thành phần SPSS, Phân tích nhân tố thăm dò (EFA), hay cách đọc Phương sai giải thích bởi PC2 để hiểu sâu hơn ý nghĩa của từng thành phần giữ lại trong mô hình. Nếu cần thêm tài liệu hoặc tham khảo hướng dẫn chuyên sâu, bạn có thể xem tại chayspss.

Xem thêm: Hướng dẫn phân tích thành phần chính PCA – Phần 1

1. Mối liên hệ giữa PCA và SVD

1.1. SVD và xấp xỉ ma trận hạng thấp

Khi làm việc với một ma trận dữ liệu lớn, nhu cầu xấp xỉ nó bằng một biểu diễn gọn hơn nhưng vẫn giữ được phần lớn thông tin là rất phổ biến. Trong bối cảnh này, phân rã giá trị suy biến SVD là công cụ đặc biệt hiệu quả. Nếu ma trận dữ liệu ban đầu được biểu diễn dưới dạng tích của ba ma trận theo SVD, thì khi chỉ giữ lại k thành phần lớn nhất, ta thu được một xấp xỉ hạng thấp tối ưu theo nghĩa sai số Frobenius nhỏ nhất. Điều này giúp giảm dung lượng biểu diễn mà không làm mất quá nhiều nội dung quan trọng của dữ liệu gốc.

Nói ngắn gọn, nếu ma trận ban đầu được tách thành U, Σ và VT, thì bản xấp xỉ hạng-k sẽ được tạo ra bằng cách giữ lại k trị suy biến đầu tiên cùng các vector tương ứng. Đây là một trong những cơ sở toán học quan trọng để hiểu vì sao PCA hoạt động hiệu quả trong bài toán nén dữ liệu và khử nhiễu.

1.2. Ý tưởng PCA

Về bản chất, PCA tìm ra một hệ trục mới sao cho dữ liệu khi được chiếu lên các trục đó vẫn bảo toàn được nhiều phương sai nhất có thể. Có thể nhìn bài toán này như một quá trình tìm một không gian con trực giao có số chiều thấp hơn, đồng thời giảm tối đa sai số tái tạo khi dựng lại dữ liệu từ không gian con đó. Tức là thay vì lưu toàn bộ dữ liệu ở không gian gốc, ta chỉ lưu tọa độ của dữ liệu trên một số trục quan trọng nhất.

Trong cách diễn giải này, PCA đồng thời tìm ma trận cơ sở trực chuẩn và ma trận tọa độ thấp chiều sao cho khoảng cách giữa dữ liệu gốc và dữ liệu tái tạo là nhỏ nhất. Đây là lý do phương pháp này thường được dùng như bước tiền xử lý trước khi phân cụm, trực quan hóa hoặc đưa vào các mô hình học máy phức tạp hơn.

1.3. Kết luận

Khi dữ liệu đã được đưa về trung bình bằng 0, nghiệm của PCA có thể rút ra trực tiếp từ Truncated SVD. Nói cách khác, các trục chính của PCA chính là những hướng quan trọng nhất được lấy từ SVD sau khi rút gọn. Vì vậy, xét từ góc độ tính toán, PCA có thể được xem là một trường hợp đặc biệt của SVD áp dụng cho dữ liệu đã được chuẩn hóa. Hiểu được điểm này sẽ giúp người học dễ nối kết giữa trực giác hình học và nền tảng đại số tuyến tính của phương pháp.

2. Cách chọn số chiều K

pca2

Một câu hỏi rất thường gặp khi áp dụng pca2 là nên giữ lại bao nhiêu thành phần chính. Nếu giữ quá ít chiều, mô hình có thể bỏ lỡ những tín hiệu có ích. Nếu giữ quá nhiều, lợi ích của việc giảm chiều sẽ không còn rõ rệt. Trong thực tế, cách chọn K thường dựa trên tỷ lệ phương sai tích lũy mà các thành phần đầu tiên giải thích được.

Cụ thể, nếu sắp xếp các trị riêng theo thứ tự giảm dần, ta có thể tính phần phương sai được giữ lại sau K thành phần bằng cách lấy tổng K trị riêng đầu chia cho tổng toàn bộ trị riêng. Người ta thường chọn K nhỏ nhất sao cho tỷ lệ này đạt một ngưỡng mong muốn, chẳng hạn 95% hoặc 99%. Khi dữ liệu thực sự nằm gần một không gian con có số chiều thấp, vài thành phần đầu thường đã chiếm gần hết thông tin, nên K có thể nhỏ hơn rất nhiều so với số chiều ban đầu.

Trong quá trình diễn giải, Thành phần chính thứ hai cũng rất đáng chú ý. Thành phần này không chỉ hỗ trợ trực quan hóa trên mặt phẳng hai chiều mà còn giúp làm rõ phần biến thiên còn lại sau thành phần đầu tiên. Đây cũng là nơi người dùng thường liên hệ đến Phương sai giải thích bởi PC2 khi đọc kết quả từ các phần mềm thống kê hoặc thư viện máy học.

3. Lưu ý khi áp dụng PCA trong thực tế

3.1. Trường hợp D > N (số chiều nhiều hơn số mẫu)

Một tình huống rất phổ biến trong dữ liệu hiện đại là số đặc trưng lớn hơn nhiều so với số quan sát, ví dụ ảnh, gen hoặc văn bản. Khi đó, nếu trực tiếp tính ma trận hiệp phương sai có kích thước D×D thì chi phí tính toán và bộ nhớ đều rất lớn. Một hướng xử lý hiệu quả hơn là làm việc với ma trận có kích thước N×N, sau đó suy ngược trở lại các vector riêng trong không gian gốc. Cách này vừa tiết kiệm tài nguyên vừa giúp việc tính toán ổn định hơn.

Đây là mẹo thực hành quan trọng với các bài toán dữ liệu cao chiều, đặc biệt trong nhận dạng ảnh và sinh học tính toán.

3.2. Chuẩn hóa các vector riêng

Do ma trận hiệp phương sai là ma trận đối xứng, các vector riêng ứng với các trị riêng khác nhau sẽ trực giao với nhau. Tuy vậy, trong triển khai số học, người ta vẫn cần chuẩn hóa để nhận được hệ trực chuẩn đúng nghĩa trước khi dùng làm cơ sở chiếu cho dữ liệu. Các kỹ thuật như Gram–Schmidt thường được nhắc đến trong phần giải thích lý thuyết để đảm bảo rằng các trục chính có độ dài chuẩn và vuông góc từng đôi một.

Điều này đặc biệt quan trọng khi bạn muốn diễn giải kết quả hoặc so sánh giữa các thành phần. Trong một số tài liệu thực hành, các thao tác như Phương pháp xoay PCA còn được đưa ra để cải thiện khả năng diễn giải, nhất là khi người dùng quan tâm đến cấu trúc tải nhân tố gần với cách tiếp cận của Phân tích nhân tố thăm dò (EFA).

3.3. PCA quy mô lớn (Large-scale PCA)

Với tập dữ liệu có kích thước rất lớn, chẳng hạn hàng triệu quan sát hoặc hàng nghìn đặc trưng, việc tính trực tiếp toàn bộ trị riêng trở nên khó khả thi. Khi đó, các phương pháp xấp xỉ như Power Iteration hoặc những biến thể tăng tốc khác thường được sử dụng để truy tìm các trị riêng lớn nhất. Sau khi tìm được thành phần đầu, kỹ thuật deflation có thể giúp tiếp tục truy xuất các thành phần tiếp theo.

Những cách tiếp cận này rất hữu ích trong các hệ thống quy mô lớn, nơi tốc độ và bộ nhớ là hai ràng buộc quan trọng không thể bỏ qua.

4. Ví dụ minh họa

4.1. Eigenface — nén ảnh khuôn mặt bằng PCA

Eigenface là một trong những ứng dụng cổ điển nhất của PCA trong lĩnh vực thị giác máy tính. Ý tưởng cơ bản là xem mỗi ảnh khuôn mặt như một vector rất dài, sau đó chiếu các ảnh này vào một không gian thấp chiều hơn nhưng vẫn giữ lại những cấu trúc quan trọng nhất để nhận dạng. Nếu một ảnh gốc có hàng chục nghìn pixel, PCA có thể giúp nén nó xuống chỉ còn vài chục hoặc vài trăm chiều mà vẫn bảo toàn nhiều đặc điểm nhận diện có ích.

Trong quy trình này, mỗi ảnh được đưa về cùng kích thước, trải phẳng thành vector, rồi dùng PCA để học ra các hướng biến thiên mạnh nhất trên toàn bộ tập ảnh. Những hướng đó được gọi là eigenfaces vì chúng đại diện cho các mẫu khuôn mặt cơ bản được rút ra từ dữ liệu. Khi tái tạo ảnh từ một số lượng thành phần giới hạn, ảnh thu được có thể không còn sắc nét như bản gốc, nhưng nhiều nét nhận dạng quan trọng vẫn được giữ lại.

Dưới đây là đoạn mã Python minh họa với thư viện sklearn, lưu ý rằng thư viện này quy ước mỗi mẫu dữ liệu nằm trên một hàng, vì vậy nếu dữ liệu gốc được tổ chức theo cột thì cần chuyển vị trước khi huấn luyện:

import numpy as np
from scipy import misc
from sklearn.decomposition import PCA

path = 'unpadded/'
ids = range(1, 16)
states = ['centerlight','glasses','happy','leftlight','noglasses','normal',
          'rightlight','sad','sleepy','surprised','wink']
h, w, K = 116, 98, 100
D, N = h*w, len(states)*15

X = np.zeros((D, N))
cnt = 0
for i in ids:
    for s in states:
        fn = f"{path}subject{str(i).zfill(2)}.{s}.pgm"
        X[:, cnt] = misc.imread(fn).reshape(D)
        cnt += 1

pca = PCA(n_components=K)
pca.fit(X.T)
U = pca.components_.T

Sau khi huấn luyện, các eigenfaces có thể được dùng để biểu diễn lại ảnh gốc bằng số chiều thấp hơn. Đây là ví dụ rất trực quan cho thấy pca2 không chỉ là khái niệm toán học mà còn có giá trị ứng dụng rõ rệt trong xử lý ảnh và nhận dạng mẫu.

4.2. Phát hiện bất thường (Unsupervised Anomaly Detection) với PCA

Một ứng dụng đáng chú ý khác là phát hiện bất thường không giám sát. Ý tưởng nền tảng ở đây là các quan sát bình thường thường nằm gần một không gian con nào đó vì chúng tuân theo những quy luật chung. Ngược lại, các điểm bất thường thường lệch xa khỏi không gian con này. Nếu thực hiện PCA trên toàn bộ dữ liệu, không gian con tìm được thường bị chi phối bởi đa số điểm “bình thường”, từ đó tạo ra cơ sở để xác định những quan sát nằm quá xa.

Sau khi xác định các thành phần chính, ta có thể tính khoảng cách từ mỗi điểm dữ liệu đến không gian con sinh bởi các thành phần đó. Những điểm có sai số tái tạo lớn hoặc khoảng cách chiếu lớn thường được gắn cờ là bất thường. Đây là một chiến lược hữu ích trong giám sát hệ thống, phát hiện giao dịch lạ hoặc sàng lọc dữ liệu lỗi.

Điểm mạnh của cách tiếp cận này là không cần nhãn trước, rất phù hợp trong bối cảnh dữ liệu bất thường hiếm và khó thu thập mẫu huấn luyện. Tuy vậy, độ hiệu quả của nó phụ thuộc nhiều vào giả định rằng phần lớn dữ liệu là bình thường và thật sự nằm gần một cấu trúc con có số chiều thấp hơn.

5. Thảo luận và gợi ý mở rộng

PCA là một kỹ thuật không giám sát, vì thế nó không sử dụng thông tin nhãn lớp trong quá trình rút trích đặc trưng. Điều này rất hữu ích khi dữ liệu chưa được gán nhãn, nhưng cũng đồng nghĩa với việc các thành phần giữ lại chưa chắc là những hướng tốt nhất để phân biệt lớp. Nếu mục tiêu chính là phân loại, người học có thể cân nhắc những kỹ thuật supervised như LDA hoặc các mô hình học biểu diễn có giám sát.

Trong thực tế, với tập dữ liệu lớn, các biến thể như Incremental PCA hoặc Randomized SVD thường được lựa chọn để giảm mức tiêu thụ bộ nhớ và rút ngắn thời gian xử lý. Bên cạnh đó, còn có nhiều hướng mở rộng khác như Sparse PCA để tăng tính diễn giải, Kernel PCA cho dữ liệu phi tuyến, hay Robust PCA khi dữ liệu chứa nhiều nhiễu và ngoại lệ.

Tóm lại, pca2 không chỉ là bước nối tiếp của phần giới thiệu cơ bản mà còn là cánh cửa dẫn vào nhiều ứng dụng nâng cao trong khoa học dữ liệu. Khi hiểu rõ mối liên hệ với SVD, cách chọn số chiều, giới hạn tính toán và khả năng ứng dụng trong nhận dạng ảnh hay phát hiện bất thường, người học sẽ có nền tảng vững hơn để triển khai PCA trong các dự án thực tế.

Hỗ Trợ Chạy Phần Mềm: Hỗ trợ chạy phần mềm SPSS, AMOS, SMARTPLS, STATA/ EVIEWS

Bài viết này hữu ích với bạn?

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *