[Handbook] Singular Values Decomposition và một số ứng dụng
Bài đăng này đã không được cập nhật trong 5 năm
Cơ sở lý thuyết.
1. Giá trị riêng, vector riêng của một ma trận.
1. Định nghĩa.
Giả sử lần lược là một ma trận vuông cấp trên trường . Giả sử có số thỏa mãn tồn tại vector mà thỏa mãn thì được gọi là giá trị riêng của , được gọi là vector riêng tương ứng với giá trị riêng .
2. Tính chất.
Tính chất 1.
Mỗi vector riêng có một giá trị riêng duy nhất:
Giả sử ma trận vuông có vector riêng ứng với hai giá trị riêng thì
Tính chất 2.
Nếu là vector riêng ứng với giá trị riêng của ma trận vuông thì cũng là vector riêng ứng với :
Tính chất 3.
Nếu là giá trị riêng của ma trận vuông thì là giá trị riêng của ma trận
Giả sử là vector riêng ứng với giá trị riêng của ma trận , khi đó
Tính chất 4.
Giá trị riêng của ma trận vuông là nghiệm của phương trình
Giả sử là giá trị riêng của ma trận , khi đó tồn tại mà
Đây là một hệ phương trình tuyến tính, hệ này có nghiệm khi và chỉ khi
Tính chất 5.
Ma trận vuông có giá trị riêng thì họ vector riêng ứng với là nghiệm của
Tính chất 6.
Một ma trận đối xứng thì các vector riêng vuông góc với nhau.
Giả sử ma trận đối xứng có các vector riêng ứng với các giá trị riêng phân biệt . Khi đó:
2. Chéo hóa ma trận.
1. Định nghĩa.
Ma trận vuông được gọi là chéo hóa được khi và chỉ khi tồn tại ma trận vuông không suy biến và ma trận đường chéo thỏa mãn
2. Diagonalication Theorem.
Phát biểu:
Ma trận vuông kích thước chéo hóa được khi và chỉ khi nó có vector riêng độc lập tuyến tính.
Chứng minh.
Giả sử có vector riêng độc lập tuyến tính là ứng với các giá trị riêng , khi đó xét và
Khi đó dễ thấy , do có các vector độc lập tuyến tính nên không suy biến, do đó nên chéo hóa được.
Ngược lại nếu chéo hóa được, nghĩa là .
Giả sử và . Khi đó
Do đó là các vector riêng của ma trận ứng với các giá trị riêng
Ngoài ra theo định nghĩa, không suy biến, nghĩa là gồm các vector độc lập tuyến tính, nói cách khác, các vector riêng là độc lập tuyến tính.
3. Singular Value Decomposition.
1. Giới thiệu.
Singular Value Decomposition là một phương pháp phân tích ma trận kích thước thành dạng tích ba ma trận: . Trong đó
• là ma trận kích thước sao cho các vector cột tạo thành một hệ trực chuẩn.
• là ma trận đường chéo kích thước ( là hạng của )
• là ma trận kích thước sao cho các vector cột tạo thành một hệ trực chuẩn.
Thấy rằng nên , nhân bên phải cả hai vế cho , ta được
Do đó ta có thể thấy rằng chứa các trị riêng của và chứa các vector riêng tương ứng với trị riêng ở vị trí tương ứng.
Tương tự nên nên chứa các vector riêng của tương ứng với các trị riêng ở ma trận
Ta thấy rằng nếu là một giá trị riêng của ma trận , tương ứng với đó là vector thì thì
Tương đương với , mà do nên
Do đó là các trị riêng của thì quy ước
• Đặt thì ta có dạng tương đương của như sau:
• Các vector gọi là các left singular vector.
• Các vector gọi là các right singular vector.
• Các số gọi là các singular value.
2. Các tính chất.
Giả sử ta có phân tích SVD của ma trận như sau: , trong đó
Với , đặt thì rõ ràng có hạng bằng .
Và cũng dễ thấy rằng cũng là tích của ba ma trận: cột đầu của , ma trận vuông đầu tiên của và hàng đầu của .
Ta có các tính chất sau:
Tính chất 1.
Ta có:
Giả sử thì
Khi đó để lớn nhất thì lớn nhất, mà do và nên
Dấu bằng xảy ra khi và chỉ khi
Tiếp theo mà thì , do đó
Dấu bằng xảy ra khi và chỉ khi . Cứ tiếp tục như thế và ta thu được kết quả.
Tính chất 2.
Trong tất cả các ma trận có hạng bé hơn hoặc bằng thì đạt giá trị nhỏ nhất khi và chỉ khi
Ta thấy rằng là tổng của bình phương độ dài các vector hàng của .
Các vector hàng của đạt giá trị nhỏ nhất về độ dài khi và chỉ khi vector hàng tương ứng ở là hình chiếu của vector hàng tương ứng ở trên không gian sinh bởi các vector hàng của
Do đó nhỏ nhất khi và chỉ khi các vector hàng của là hình chiếu của các vector hàng của
Để ý rằng nếu không gian sinh bởi các vector hàng của có cơ sở là một hệ trực chuẩn thì (Định lý Pythagoras)
Do đó ý tưởng ta sẽ quy nạp và công việc này thực sự được chứng minh nhẹ nhàng nhờ tính chất 1.
Cuối cùng, nhận xét rằng là hình chiếu của các vector hàng của lên không gian được sinh bởi các vector hàng của , và hiển nhiên cơ sở của nó là .
3. Nhận xét.
Phần định nghĩa giới thiệu về SVD là cách phân tích một ma trận qua dạng SVD bằng cách tính các giá trị riêng và vector riêng của và
Theo tính chất 2, ta phần nào đó có thể nói rằng là ma trận xấp xỉ nhất với trong tất cả các ma trận hạng bé hơn hoặc bằng , với càng cao thì càng xấp xỉ.
Một cách hình học, là không gian chiều khít nhất. Về bản chất, có lẽ định hướng về hình học này là nguyên nhân sinh ra SVD.
Tuy nhiên thì đi từ hướng chưa có gì này nó hơi khó một chút nên mình đi theo hướng ngược lại để bài viết ngắn hơn.
4. Các hàm hỗ trợ tính SVD.
Trong thực tế, người ta thường chọn là các ma trận vuông kích thước và có kích thước (Dù dư một số vector nằm trong )
Trong Python
, hàm tính SVD là U, s, V = np.linalg.svd(...)
, trong Octave, Matlab
là [U, s, V] = svd(...)
Ứng dụng cơ bản.
1. Giảm chiều dữ liệu.
Các ma trận gần khít với và có hạng bằng nên ta có thể dùng SVD để giảm chiều dữ liệu.
Việc giảm chiều dữ liệu giúp ta có khả năng biễu diễn bộ dữ liệu đó một cách khá chính xác trên đồ thị. Giả sử ta có một tập dữ liệu 4 chiều và ta muốn biểu diễn tập dữ liệu này trên đồ thị thì ta có thể dùng SVD để giảm chiều dữ liệu về 3.
Việc giảm chiều dữ liệu nhưng vẫn giữ được đặc trưng của bộ dữ liệu còn giúp số lượng tham số cần tính toán là ít hơn nên tính toán nhanh hơn.
2. Nén ảnh.
Với tính chất 2, ta thấy rằng nếu ảnh grayscale là kích thước thì kích thước sẽ khá khít với khi càng lớn.
Do đó ta có ý tưởng lưu các ma trận SVD của để thay thế, như thế ta cần lưu phần tử (Chỉ cần lưu các singular values ở ) so với phần tử của
Ta cần là được. Và để ảnh có thể biểu diễn tốt nhất thì ta cần chấp nhận được.
Tương tự với ảnh màu, ta làm tương tự cho từng ma trận của từng kênh màu.
3. Hồi quy tuyến tính.
Với bài toán hồi quy tuyến tính, với và cho trước, ta phải tìm sao cho là bé nhất.
Khi đó phân tích SVD , trong đó là các ma trận trực giao. (Cách lấy thứ 2, không phải cách lấy được giới thiệu đầu bài)
Ta có là một phép quay và nên
Với thì nên
Dấu bằng xảy ra khi và chỉ khi hay
4. PCA.
Ta thấy rằng, khi từ một tập điểm cho trước, việc giảm chiều cũng như là kẻ một siêu phẳng biểu diễn khít tập điểm đã cho. Ta không thể dùng các ma trận một cách trực tiếp được, vì các ma trận biểu diễn một siêu phẳng đi qua góc tọa độ.
Ta có thể thấy rằng biểu diễn phương mà tập điểm đó phân bố tập trung nhất khi nhìn từ gốc tọa độ ( đạt giá trị lớn nhất). Sau đó lại biểu diễn phương vuông góc với mà phương đó tập điểm phân bố tập trung nhất cũng khi nhìn từ gốc tọa độ... Vậy một cách đơn giản, ta chỉ cần dời nó về trọng tâm của tập điểm và dùng SVD giảm chiều xuống.
Kết luận.
Ngoài các ứng dụng trên, SVD còn có các ứng dụng trong tối ưu cực trị rời rạc, lát cắt cực đại, K-means Clustering, Graph Partitioning, ... với một performance tính toán tương đối, rất thích hợp cho lượng dữ liệu lớn nhưng công dụng chính nhất vẫn là giảm chiều dữ liệu. Trong đó các vector lần lượt biểu diễn các phương mà dữ liệu phân bố tập trung nhất khi nhìn từ gốc tọa độ. Mong bài biết nhỏ này có thể giúp các bạn hiểu hơn về mô hình dữ liệu, cách sử dụng, tính toán SVD bằng tay hoặc bằng hàm viết sẵn. Việc dẫn nguồn rất khó vì mình đọc từ rất nhiều tài liệu pdf trên mạng và viết bài này mà không có kinh nghiệm dẫn nguồn, ngoài ra bài viết có thể có nhiều sai sót nên mong các bạn góp ý, thông cảm.
All rights reserved