Bình phương tối thiểu tuyến tính
Bình phương tối thiểu tuyến tính là một kỹ thuật trong ngành tối ưu toán học để tìm một nghiệm gần đúng cho một hệ phương trình tuyến tính không có nghiệm chính xác. Điều này thường xảy ra khi số phương trình là (m) lớn hơn số biến (n). (Xem thêm linear regression.)
Định nghĩa
sửaTheo từ ngữ toán học, chúng ta muốn tìm nghiệm của "phương trình"
- ,
với A là một ma trận cỡ m-nhân-n (với m > n) và x và b theo thứ tự đó là vectơ cột với n- và m-hàng. Một cách chính xác hơn, ta muốn làm tối thiểu chuẩn Euclidean bình phương của phần dư Ax − b, nghĩa là, đại lượng
với [Ax]i ký hiệu phần tử thứ i của vectơ Ax. Do đó mà có cái tên "bình phương tối thiểu".
Sử dụng sự kiện bình phương chuẩn của v là vTv, với vT ký hiệu cho ma trận chuyển của v, ta viết lại biểu thức trên như là
Hai hạng tử ở giữa là như nhau, do đó giá trị tối thiểu có thể được tìm tại zero của đạo hàm theo biến x,
Do vậy là tối thiểu x là nghiệm của phương trình normal sau đây
Để ý rằng điều này tương đương với một hệ phương trình tuyến tính. Ma trận ATA ở phía bên trái là một ma trận vuông, và khả nghịch nếu như A có đầy rank theo cột (nghĩa là, nếu như rank của A là n). Trong trường hợp đó, nghiệm của hệ phương trình tuyến tính là duy nhất và được cho bởi
Ma trận gọi là ma trận giả nghịch đảo của A. Chúng ta không thể sử dụng ma trận nghịch đảo thật sự của A (nghĩa là, ), vì nó không tồn tại do A không phải là một ma trận vuông (m ≠ n).
Tính toán
sửaNếu ma trận ATA đầy rank và ổn định (well-conditioned), phương trình normal có thể được giải trực tiếp bằng phân tích Cholesky ATA = RTR, cho ta:
với R là một ma trận tam giác trên (ma trận mà các số phía dưới đường chéo đều bằng 0,upper triangular matrix).
Một phương pháp chậm hơn nhưng ổn định hơn, vẫn làm việc nếu A không đầy rank, có thể đạt được bằng cách tính phân tích QR A = Q R. Sau đó ta có thể giải
với Q là một ma trận trực giao và R là một ma trận tam giác trên.
Một cách thứ ba là sử dụng singular value decomposition (SVD). Nếu là singular value decomposition của A, thì ma trận giả nghịch đảo của A là V Σ+ U*, so
với Σ+ là ma trận chuyển của Σ với mọi phần tử khác 0 được thay bằng phần tử nghịch đảo. Phương pháp này cần dùng nhiều sức máy nhất, nhưng rất hữu ích nếu như ma trận A rất không ổn định (i.e. nếu như số điều kiện của nó nhân với sai số của máy khá lớn). Trong trường hợp đó, thêm vào những giá trị nhỏ nhất của các giá trị singular trong ma trận nghịch đảo chỉ cộng thêm nhiễu vào đáp số. Điều này có thể được chữa bằng tiếp cận sử dụng SVD, cho ra một lời giải chính xác hơn và ổn định hơn, bằng cách đặt bằng zero tất cả các giá trị singular dưới một ngưỡng nào đó và mặc kệ chúng, trước khi tính toán ma trận giả nghịch đảo.
Áp dụng
sửaPhương pháp bình phương tối thiểu tuyến tính có thể được sử dụng để tìm một hàm affine Rn → R khớp nhất với một tập hợp dữ liệu cho trước (xem phương pháp bình phương tối thiểu).
Ví dụ
là một mô hình regression tuyến tính, với phần phải là một tổ hợp tuyến tính của các tham số α, β, và γ; hơn nữa, các đánh giá bình phương tối thiểu của các tham số này là tuyến tính trong vector của các giá trị quan sát y.
Chúng ta viết hàm tuyến tính cần tìm như là một ma trận 1-nhân-n xT (do đó x thật ra là 1 vectơ cột, xem thêm biến đổi tuyến tính).
Tập dữ liệu gồm có m (n + 1)-bộ số (x1,..., xn, y). Những giá trị này được viết vào một ma trận m-nhân-n A và một vector b, với mỗi bộ tương ứng với một hàng của A, và y trở thành các phần tử tương ứng trong b.
Sau đó,
- Ax ≈ b
cho ta hàm số x cần tìm.
Ví dụ
sửaCho các điểm (0, 3), (2, 3), (4, 4), (−1, 2). Chúng ta tìm một lời giải có dạng αx + β = y, nghĩa là,
Chúng ta sau đó có thể lập ma trận A:
và vectơ b
và sau đó
Do đó, phương trình normal là
Sau đó,
and
và đường thẳng tốt nhất là (20/59)x + 152/59 = y.