Tính chất của ma trận¶
Ma trận là các cấu trúc dữ liệu lưu trữ tập dữ liệu, mã hóa các phép biến đổi, và định nghĩa mọi tầng mạng nơ-ron. File này bao quát kích thước ma trận, phần tử, chuyển vị, trace, định thức, nghịch đảo, hạng, và không gian rỗng — những tính chất nền tảng được dùng xuyên suốt đại số tuyến tính và ML.
- Về bản chất, một ma trận là một lưới hình chữ nhật các số được sắp xếp theo hàng và cột. Nếu một vector là một danh sách đơn lẻ các số, thì ma trận là một chồng các vector.
- Nếu một người được mô tả bởi vector \([\text{tuổi}, \text{chiều cao}, \text{cân nặng}]\), thì ba người tạo thành một ma trận với mỗi hàng là một người:
-
Ma trận này có 3 hàng và 3 cột, nên ta gọi nó là ma trận \(3 \times 3\).
-
Mỗi số trong lưới được gọi là một phần tử hay mục (entry), được xác định bởi hàng và cột của nó: \(A_{ij}\) là phần tử ở hàng \(i\), cột \(j\).
-
Chuyển vị (transpose) của một ma trận lật nó dọc theo đường chéo, biến hàng thành cột và cột thành hàng. Nếu \(A\) là \(m \times n\), thì \(A^T\) là \(n \times m\).
-
Nhân một ma trận với chuyển vị của nó luôn cho một ma trận vuông: \(AA^T\) có kích thước \(m \times m\) và \(A^TA\) có kích thước \(n \times n\).
-
Trace (vết) của một ma trận vuông là tổng các phần tử trên đường chéo: \(\text{tr}(A) = A_{11} + A_{22} + \cdots + A_{nn}\). Trace bằng tổng các trị riêng (mà ta sẽ thấy sau).
-
Với ma trận trên, \(\text{tr}(A) = 1 + 4 + 9 = 14\). Chỉ đường chéo được tô sáng là có giá trị.
-
Nếu hai ma trận biểu diễn cùng một phép biến đổi tuyến tính dưới các cơ sở khác nhau, trace của chúng sẽ giống nhau. Trace là "bất biến theo cơ sở."
-
Hạng (rank) của một ma trận là số lượng hàng độc lập tuyến tính (hoặc tương đương, cột). Nó cho bạn biết ma trận mang bao nhiêu "thông tin hữu ích".
-
Ví dụ, ma trận sau có hạng 2 vì không hàng nào là bội của hàng kia:
- Nhưng ma trận này có hạng 1 vì hàng thứ hai chỉ gấp đôi hàng thứ nhất, nên nó không thêm thông tin mới:
- Một ma trận \(5 \times 3\) có thể có hạng tối đa là 3. Nếu một số hàng chỉ là bản sao được co giãn hoặc tổ hợp của các hàng khác, hạng giảm đi. Một ma trận có hạng tối đa có thể có được gọi là hạng đầy đủ (full rank).
-
Một ma trận vuông là khả nghịch (có nghịch đảo) khi và chỉ khi nó có hạng đầy đủ.
-
Hạng được kết nối với không gian rỗng (null space) (tập các vector mà ma trận ánh xạ thành không) thông qua định lý hạng-số khuyết (rank-nullity theorem): \(\text{rank}(A) + \text{nullity}(A) = \text{số cột của } A\). Những gì ma trận giữ lại (hạng) cộng với những gì nó phá hủy (số khuyết) bằng tổng số chiều.
-
Không gian cột của một ma trận là tập hợp tất cả các đầu ra có thể có khi bạn nhân ma trận với một vector bất kỳ. Nó được sinh bởi các cột của ma trận. Nếu một ma trận có 3 cột nhưng chỉ có 2 cột độc lập, không gian cột là một mặt phẳng 2D, không phải toàn bộ không gian 3D.
-
Không gian hàng cũng là ý tưởng tương tự từ góc nhìn của các hàng. Hạng bằng số chiều của cả không gian cột và không gian hàng, nên chúng luôn đồng nhất.
-
Cùng nhau, không gian cột cho bạn biết "ma trận này có thể tạo ra những đầu ra nào?" và không gian rỗng cho bạn biết "những đầu vào nào bị ánh xạ thành không?" Hai không gian này hoàn toàn mô tả những gì ma trận làm.
-
Định thức (determinant) của một ma trận vuông là một số duy nhất nắm bắt cách ma trận co giãn không gian. Hãy tưởng tượng một ma trận \(2 \times 2\) như là biến đổi một hình vuông đơn vị thành một hình bình hành. Định thức là diện tích của hình bình hành đó (kèm dấu).
- Ví dụ:
-
Phép biến đổi kéo giãn hình vuông đơn vị thành một hình bình hành với diện tích 6.
-
Nếu định thức dương, phép biến đổi bảo toàn hướng (mọi thứ không bị "đảo lộn"). Nếu âm, nó đảo ngược hướng (như phản chiếu gương). Nếu bằng không, ma trận đè bẹp không gian xuống một chiều thấp hơn, hình bình hành sụp đổ thành một đường hoặc một điểm.
-
Một ma trận với định thức bằng không được gọi là suy biến (singular). Nó không có nghịch đảo và đã mất thông tin vĩnh viễn.
-
Với các ma trận lớn hơn \(2 \times 2\), định thức được tính dùng các minor (định thức con) và cofactor (phần phụ đại số). Minor \(M_{ij}\) là định thức của ma trận nhỏ hơn mà bạn có được bằng cách xóa hàng \(i\) và cột \(j\).
-
Cofactor \(C_{ij} = (-1)^{i+j} M_{ij}\) gán dấu cho mỗi minor (xen kẽ như bàn cờ: \(+, -, +, \ldots\)). Định thức của ma trận đầy đủ sau đó là tổng dọc theo bất kỳ hàng hoặc cột nào: \(\det(A) = \sum_j A_{1j} \cdot C_{1j}\). Đây được gọi là khai triển cofactor.
-
Nghịch đảo của một ma trận vuông \(A\), được viết \(A^{-1}\), là ma trận hủy tác dụng của \(A\): \(AA^{-1} = A^{-1}A = I\) (ma trận đơn vị). Chỉ những ma trận không suy biến mới có nghịch đảo.
-
Với ma trận \(2 \times 2\), nghịch đảo có một công thức trực tiếp:
-
Để ý định thức ở mẫu số, đó là lý do ma trận suy biến (định thức không) không có nghịch đảo.
-
Số điều kiện (condition number) đo mức độ nhạy cảm của một ma trận với những thay đổi nhỏ trong đầu vào của nó. Nó được định nghĩa là \(\kappa(A) = \|A\| \cdot \|A^{-1}\|\).
-
Số điều kiện gần 1 có nghĩa là ma trận điều kiện tốt (well-conditioned): thay đổi nhỏ đầu vào tạo ra thay đổi nhỏ đầu ra. Số điều kiện lớn có nghĩa là điều kiện xấu (ill-conditioned): các lỗi nhỏ bị khuếch đại rất lớn. Ma trận trực giao và ma trận đơn vị có số điều kiện là 1, trong khi ma trận suy biến có số điều kiện vô hạn.
-
Ví dụ, ma trận sau có số điều kiện \(10^8\). Một hướng được co giãn bình thường trong khi hướng kia gần như bị ép về không, nên các nhiễu loạn nhỏ dọc theo hướng đó bị bóp méo điên cuồng:
- Cũng như vector có chuẩn (độ dài), ma trận có chuẩn đo "kích thước" của chúng. Phổ biến nhất là chuẩn Frobenius, coi ma trận như một vector dài và tính độ dài của nó:
- Ví dụ:
-
Chuẩn phổ \(\|A\|_2\) là giá trị singular lớn nhất của \(A\). Nó đo mức kéo giãn tối đa ma trận có thể tác động lên bất kỳ vector đơn vị nào. Trong ML, chuẩn ma trận được dùng cho chính quy hóa trọng số (phạt các trọng số lớn) và theo dõi độ ổn định huấn luyện.
-
Một ma trận đối xứng \(A\) là xác định dương (positive definite) nếu với mọi vector khác không \(\mathbf{x}\): \(\mathbf{x}^T A \mathbf{x} > 0\). Dạng toàn phương này luôn tạo ra một số dương.
-
Ví dụ, ma trận sau là xác định dương:
-
Hãy chọn bất kỳ vector, nói \(\mathbf{x} = [1, -1]^T\): \(\mathbf{x}^T A \mathbf{x} = 2 - 1 - 1 + 3 = 3 > 0\). Cho dù bạn thử bất kỳ \(\mathbf{x}\) khác không nào, bạn luôn nhận được một kết quả dương.
-
Ma trận xác định dương quan trọng vì chúng đảm bảo rằng các bài toán tối ưu có một điểm cực tiểu duy nhất.
-
Nếu điều kiện được nới lỏng thành \(\mathbf{x}^T A \mathbf{x} \geq 0\) (cho phép bằng không), ma trận là xác định bán dương (PSD). Ma trận PSD xuất hiện liên tục: ma trận hiệp phương sai, ma trận hạt nhân trong SVM, và ma trận Hessian tại các cực tiểu địa phương đều là PSD. Sự khác biệt là PSD cho phép một số hướng "bằng phẳng" (độ cong không) thay vì luôn cong lên trên.
Bài tập lập trình (dùng CoLab hoặc notebook)¶
-
Tính trace, hạng, và định thức của một ma trận. Thử làm một hàng trở thành bội của hàng khác và xem hạng cùng định thức thay đổi như thế nào.
-
Tính nghịch đảo của một ma trận, nhân nó với ma trận gốc, và xác minh bạn nhận được ma trận đơn vị. Sau đó thử với một ma trận suy biến và quan sát điều gì xảy ra.