Trong chương này, chúng ta sẽ học về ma trận trực giao (orthogonal matrices) và phân rã QR (QR decomposition) – một trong năm phép phân rã quan trọng trong Đại số tuyến tính, cùng với phân rã vector trực giao, phân rã LU, phân rã giá trị riêng (eigendecomposition), và phân rã giá trị kỳ dị (SVD). Đây là những công cụ thiết yếu cho khoa học dữ liệu và học máy.
Phân rã QR đặc biệt hữu ích vì nó hỗ trợ nhiều ứng dụng như tính nghịch đảo ma trận, giải bài toán bình phương tối thiểu (least squares), ước lượng mô hình hồi quy, và phân tích giá trị riêng. Do đó, việc nắm vững phân rã QR sẽ giúp bạn nâng cao kỹ năng Đại số tuyến tính.
Ma trận trực giao (Orthogonal Matrices)
Ma trận trực giao là loại ma trận đặc biệt đóng vai trò quan trọng trong nhiều phép phân rã, bao gồm QR, phân rã giá trị riêng và SVD. Thông thường, ký hiệu Q được dùng để chỉ ma trận trực giao.
Một ma trận trực giao có hai tính chất chính:
- Các cột trực giao
Mọi cột của ma trận đều trực giao từng đôi một. - Các cột có chuẩn đơn vị (unit-norm)
Chuẩn (độ dài hình học) của từng cột bằng đúng 1.
Điều này có thể được viết lại thành công thức toán học. Với là các cột trong ma trận , ta có:
undefined\frac{1}{\sqrt{2}}
\begin{bmatrix}
1 & -1 \\
1 & 1
\end{bmatrix},
\quad
\frac{1}{3}
\begin{bmatrix}
1 & 2 & 2 \\
2 & 1 & -2 \\
-2 & 2 & -1
\end{bmatrix}
$$
Mỗi cột trong những ma trận này đều có chuẩn bằng 1 và trực giao với các cột khác. **Kiểm tra bằng Python
Ta có thể kiểm chứng tính chất trực giao bằng Python:
import numpy as np
Q1 = np.array([[1, -1], [1, 1]]) / np.sqrt(2)
Q2 = np.array([[1, 2, 2], [2, 1, -2], [-2, 2, -1]]) / 3
print(Q1.T @ Q1) # Kết quả: ma trận đơn vị 2x2
print(Q2.T @ Q2) # Kết quả: ma trận đơn vị 3x3
Kết quả đều là ma trận đơn vị (sai số chỉ cỡ do tính toán số thực).
Ngoài các ma trận đơn vị và ma trận đặc biệt đã thấy, ta còn có những ví dụ quen thuộc khác:
-
Ma trận quay thuần túy (pure rotation matrices):
Bất kỳ ma trận quay nào (với góc quay xác định) đều là trực giao. Khi nhân ma trận quay với chuyển vị của nó, kết quả luôn là ma trận đơn vị, bất kể góc quay bao nhiêu (miễn là góc quay nhất quán trong các phần tử). -
Ma trận hoán vị (permutation matrices):
Đây là loại ma trận dùng để hoán đổi các hàng của ma trận khác. Chúng cũng là ma trận trực giao. Ma trận hoán vị sẽ được nghiên cứu kỹ hơn trong chương về phân rã LU.
**Tạo ra ma trận trực giao như thế nào?
Một câu hỏi tự nhiên là: làm thế nào để tạo được các ma trận trực giao từ ma trận thường?
Câu trả lời: thông qua phân rã QR.
- QR decomposition cho phép biến đổi một ma trận không trực giao thành ma trận trực giao.
- Phân rã này thực chất là một phiên bản tinh vi của quy trình Gram–Schmidt.
- Quy trình Gram–Schmidt chính là phân rã vectơ trực giao mà bạn đã học trong Phân rã vector trực giao.
Do đó, QR decomposition có thể xem như sự mở rộng tự nhiên của Gram–Schmidt, giúp chúng ta sinh ra một ma trận trực giao từ một ma trận bất kỳ.
Gram-Schmidt
Thuật toán Gram–Schmidt là cách để biến đổi một ma trận không trực giao thành ma trận trực giao.
- Về mặt học thuật, nó có giá trị giáo dục cao, vì minh họa rõ cách hình thành ma trận trực giao từ một tập vectơ.
- Tuy nhiên, trong thực tế, Gram–Schmidt ít được sử dụng trực tiếp do dễ gây ra mất ổn định số học (nhiều phép chia và nhân với số rất nhỏ).
- Thay vào đó, các thuật toán ổn định hơn (như Householder reflections) thường được dùng để triển khai QR decomposition trong các thư viện số học.
Dù vậy, việc học Gram–Schmidt rất quan trọng để hiểu bản chất tại sao và bằng cách nào phân rã QR hoạt động.
Ý tưởng của Gram–Schmidt
Giả sử ta có ma trận với các cột . Mục tiêu là xây dựng ma trận trực giao với các cột . Quy trình như sau: 1. Trực giao hóa với tất cả các cột trước đó trong : Loại bỏ thành phần của song song với . Véc-tơ kết quả gọi là (phiên bản trực giao). 2. Chuẩn hóa về độ dài đơn vị:Đây sẽ là cột trong ma trận . 💡 Lưu ý: Cột đầu tiên không cần trực giao hóa (vì chưa có cột nào trước đó), chỉ cần chuẩn hóa để thành . --- **Diễn giải
- Bước (1) giúp đảm bảo các cột độc lập tuyến tính và trực giao.
- Bước (2) giúp các cột có chuẩn bằng 1.
- Kết quả cuối cùng: là ma trận trực giao, và có thể dùng trong QR decomposition.
**Ví dụ cụ thể (kèm QR)
Giả sử ta có ma trận gồm 3 cột :
Mục tiêu: tạo ma trận trực giao (các cột trực giao, chuẩn 1) và ma trận tam giác trên sao cho . **Bước 1: Xử lý
- **Bước 2: Xử lý
- Chiếu lên :
- Trực giao hóa: .
- .
- .
Bước 3: Xử lý
-
Chiếu lên : .
-
Chiếu lên : .
-
Trực giao hóa: