Thứ Hai, 14 tháng 4, 2014

Trị đặc trưng (eigenvalue) và véc tơ đặc trưng (eigenvector)

Eigenvalues và eigenvectors xuất hiện cực kỳ nhiều trong các ngành khoa học và kỹ thuật: Vật Lý, xác suất thống kê, KHMT, lý thuyết đồ thị, v.v. Để hiểu ý nghĩa của chúng, có hai hướng nhìn thông dụng, áp dụng được trong rất nhiều trường hợp.
1. Loại động cơ (motivation) thứ nhất.
Trong nhiều ứng dụng ta thường phải làm phép tính sau đây: cho trước một ma trận A và nhiều vectors x, tính A^kx với nhiều giá trị khác nhau của số mũ kVí dụ 1: nếu A là ma trận của một phép biến đổi tuyến tính (linear transformation) nào đó, như phép quay và co dãn trong computer graphics chẳng hạn, thì A^kx cho ra kết quả của phép BĐTT này áp dụng k lần vào x. Các games máy tính hay các annimations trong phim của Hollywood có vô vàn các phép biến đổi kiểu này. Mỗi một object trong computer graphics là một bộ rất nhiều các vector x. Quay một object nhiều lần là làm phép nhân A^kx với từng vectors x biểu diễn object đó. Khối lượng tính toán là khổng lồ, dù chỉ trong không gian 3 chiều. Ví dụ 2: nếu A là transition matrix của một chuỗi Markov rời rạc và x là distribution của trạng thái hiện tại, thì A^kx chính là distribution của chuỗi Markov sau k bước. Ví dụ 3: các phương trình sai phân (difference equation) như kiểu phương trình a_n = 4a_{n-1} + 3a_{n-2} - a_{n-3} cũng có thể được viết thành dạng A^kx để tính a_k với k tùy ý. Ví dụ 4: lũy thừa của một ma trận xuất hiện tự nhiên khi giải các phương trình vi phân, xuất hiện trong khai triển Taylor của ma trận e^{At} chẳng hạn.

Tóm lại, trong rất nhiều ứng dụng thì ta cần tính toán rất nhanh lũy thừa của một ma trận vuông, hoặc lũy thừa nhân một vector.
Mỗi ma trận vuông đại diện cho một phép BĐTT nào đó. Lũy thừa bậc k của ma trận đại diện cho phép biến đổi này áp dụng k lần. Ngược lại, bất kỳ phép BĐTT nào cũng có thể được đại diện bằng một ma trận. Có rất nhiều ma trận đại diện cho cùng một BĐTT, tùy theo ta chọn hệ cơ sở nào. Mỗi khi ta viết một vector dưới dạng x = (3, -2, 5)^T là ta đã ngầm định một hệ cơ sở nào đó, thường là hệ cơ sở trực chuẩn e_1 = (1,0,0)^Te_2 = (0,1,0)^T, và e_3 = (0,0,1)^T. Các tọa độ 3, -2, 5 của x là tương ứng với tọa độ của x trong hệ cơ sở ngầm định này.
Hệ cơ sở e_1, \dots, e_n như trên thường được dùng vì ta “dễ” hình dùng chúng trong không gian n chiều, chúng là sản phẩm phụ của hệ tọa đồ Descartes cổ điển hay dùng trong không gian 2 chiều. Tuy nhiên, khi áp dụng một phép BĐTT thì các vectors e_1, \dots, e_n thường cũng bị biến đổi theo luôn, rất bất tiện nếu ta phải tính A^kx cho nhiều giá trị k và x khác nhau.
Bây giờ, giả sử ta tìm được n hướng độc lập tuyến tính và bất biến qua phép BĐTT đại diện bởi A. (Đây là giả sử rất mạnh, may mà nó lại thường đúng trong các ứng dụng kể trên.) Dùng vector u_i để biểu diễn hướng thứ i. Bất biến có nghĩa là áp dụng A vào hướng nọ thì hướng không đổi. Cụ thể hơn, BĐTT A làm hướng u_i “bất biến” nếu Au_i = \lambda_i u_i với \lambda_i là một con số (scalar) thực hoặc phức nào đó (dù ta giả sử A là thực). Do các hướng này độc lập tuyến tính, một vector x bất kỳ đều viết được dưới dạng
x = x_1u_1 + x_2u_2 + \dots + x_nu_n
Nếu ta lấy u_1,\dots, u_n làm hệ cơ sở thì cái hay là có áp dụng A bao nhiêu lần thì cũng không đổi hướng của các vectors trong hệ cơ sở! Điều này rất tiện lợi, bởi vì
A^kx = x_1A^ku_1 + \dots + x_nA^ku_n = x_1\lambda_1^ku_1 + \dots + x_n\lambda_n^ku_n
Như vậy, thay vì tính lũy thừa bậc cao của một ma trận, ta chỉ cần tính lũy thừa của n con số và làm một phép cộng vectors đơn giản. Các giá trị \lambda_ilà các trị đặc trưng (eigenvalues) của A, và các vectors u_i là các vector đặc trưng (eigenvectors).

Tiếp tục với giả thiết rất mạnh là n eigenvectors độc lập tuyến tính với nhau. Nếu ta bỏ các vectors này vào các cột của một ma trận U, và các eigenvalues lên đường chéo của một ma trận \Lambda thì ta có \Lambda = U^{-1}AU. Trong trường hợp này ma trận A có tính diagonalizable (chéo hóa được). Diagonalizability và sự độc lập tuyến tính của n eigenvectors là hai thuộc tính tương đương của một ma trận. Ngược lại, ta cũng có A = U\Lambda U^{-1}, và vì thế lũy thừa của A rất dễ tính: A^k = U\Lambda^k U^{-1} do lũy thừa của một ma trận đường chéo rất dễ tính.
Cụm từ “khả năng đường chéo hóa được” (diagonalizability) nghe ghê răng quá, có bạn nào biết tiếng Việt là gì không?
Nếu ta biết được các eigenvectors và eigenvalues của một ma trận thì — ngoài việc tính lũy thừa của ma trận — ta còn dùng chúng vào rất nhiều việc khác, tùy theo ứng dụng ta đang xét. Ví dụ: tích các eigenvalues bằng với định thức, tổng bằng với trace, khoảng cách giữa eigenvalue lớn nhất và lớn nhì của transition matrix của một chuỗi Markov đo tốc độ hội tụ đến equilibrium (mixing rate) và eigenvector đầu tiên là steady state distribution, vân vân.
Quay lại với cái “giả thiết rất mạnh” ở trên. Có một loại ma trận mà giả thiết này đúng; và hơn thế nữa, ta có thể tìm được các eigenvectors vuông góc nhau, đó là các normal matrices. Rất nhiều ứng dụng trong khoa học và kỹ thuật cho ta các normal matrices. Các trường hợp đặc biệt thường thấy là các ma trận (thực) đối xứng và các ma trận Hermitian (đối xứng theo nghĩa phức).
Còn các ma trận không thỏa mãn “giả thiết rất mạnh” này, nghĩa là không diagonalizable, thì làm gì với chúng? Ta có thể tìm cách làm cho chúng rất “gần” với một ma trận đường chéo bằng cách viết chúng thành dạng chuẩn Jordan. Đề tài này nằm ngoài phạm vi bài đang viết.
2. Loại động cơ (motivation) thứ hai.
Trong rất nhiều ứng dụng, ta “được” làm việc với một ma trận đối xứng: nó có đủ bộ eigenvectors, do đó diagonalizable và vì thế có thể thiết kế các thuật toán hiệu quả cho các bài toán tương ứng. Không những đối xứng, chúng còn có một thuộc tính mạnh hơn nữa gọi là positive (semi) definite, nghĩa là các eigenvalues đều không âm. Ví dụ 1: bài toán least squares Ax \approx b có ứng dụng khắp nơi (linear regression trong statistics chẳng hạn) dẫn đến ma trận symmetric positive (semi) definite A^TAVí dụ 2: bài toán xác định xem một một điểm tới hạn của một hàm đa biến bất kỳ có phải là điểm cực tiểu hay không tương đương với xác định xem ma trận đối xứng Hessian của các đạo hàm bậc hai tại điểm này là positive definite. Ví dụ 3: ma trận covariance của một random vector (hoặc một tập hợp rất nhiều sample vectors) cũng là positive (semi) definite.
Nếu A là một ma trận symmetric positive definite thì ta có thể hiểu các eigenvectors và eigenvalues theo cách khác. Bất phương trình
x^TAx \leq c
trong đó c là một hằng số dương là một bất phương trình bậc 2 với n biến x_1, \dots, x_n (các tọa độ của vector x). Nghiệm của nó là các điểm nằm trong một hình e-líp trong không gian n chiều (Ellipsoid) mà n trục của ellipsoid chính là hướng của các eigenvectors của A, và chiều dài các trục tỉ lệ nghịch với eigenvalue tương ứng (tỉ lệ với nghịch đảo của căn của eigenvalue). Đây là trực quan hình học phổ biến thứ hai của eigenvectors và eigenvalues.

Trong trường hợp của Principal Component Analysis (PCA) như có bạn đã hỏi trong phần bình luận bài tư duy trừu tượng, thì ta có thể hiểu nôm na về sự xuất hiện của eigen-vectors/values như sau. Giả sử ta có một đống các sample vectors (data points) trên một không gian n chiều nào đó. Các tọa độ là exponentially distributed (Gaussian noise chẳng hạn). Thì đa số các vectors này tập trung trong một ellipsoid định nghĩa bởi covariance matrix (positive semi-definite). Trục dài nhất của ellipsoid là trục có variance cao nhất, nghĩa là SNR cao. Trục này chỉ cho ta hướng biến thiên quan trọng nhất của data. PCA lấy các trục của ellipsoid làm hệ cơ sở, sau đó lấy k trục dài nhất làm principal components để biểu diễn data. (Dĩ nhiên, ta phải shift cái mean về gốc tọa độ trước khi đổi hệ cơ sở.)

Không có nhận xét nào:

Đăng nhận xét