Phương pháp SVD đã được phát triển dựa trên những tính chất của ma trận trực giao và ma trận đường chéo để tìm ra một ma trận xấp xỉ với ma trận gốc.. Người ta đã chứng minh được rằng ma
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN MÔN ĐẠI SỐ TUYẾN TÍNH
ĐỀ TÀI 10:
NÊU CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD
ỨNG DỤNG PHÂN TÍCH SVD ĐỂ KHỬ NHIỂU HÌNH ẢNH
Giảng viên lý thuyết: Nguyễn Anh Thi
Lớp: L07
Trang 2MỤC LỤC
LỜI CẢM ƠN………1
LỜI MỞ ĐẦU……….………… 2
CƠ SỞ LÝ THUYẾT……….3
*Mục tiêu:………3
I.1 Trị riêng và vectơ riêng của ma trận…………3
I.1.1 Cơ sở lí thuyết……3
I.1.2.Các bước tìm trị riêng và vectơ riêng của ma trận….4 I.2 Chéo hoá trực giao:……… 4
I.2.1 Cơ sở lí thuyết……4
Ví dụ……… 5
I.2.2 Chéo hoá trực giao ma trận đối xứng A… 5
I.3 Phân tích SVD ( Singular Value Decomposition )…7 I.3.1 Cơ sở lý thuyết….7 -Định nghĩa -Phân tích SVD của ma trận I.3.2 Bài toán ví dụ……8
-Giải toán bằng Matlab….10 II.PHÂN TÍCH SVD TRONG KHỬ NHIỄU ẢNH…10 II.1 Bài toán SVD trong khử nhiễu hình ảnh…10 II.2: Code MATLAB… 12
III.3.MỘT SỐ VÍ DỤ MINH HỌA KHÁC… 13
-Trong lĩnh vực y tế….13 - Trong lĩnh vực trí tuệ nhân tạo….14 - Trong lĩnh vực giám sát giao thông….15 III.KẾT LUẬN…… 15
Tài liệu tham khảo….16
Trang 3LỜI CẢM ƠN
Trong suốt quá trình học bộ môn Đại số tuyến tính, nhóm chúng em đã nhận được rất nhiều sự quan tâm, giúp đỡ và kiến thức từ thầy/cô, anh/chị khóa
trên và các bạn cùng khóa
Ngoài ra nhóm em xin gửi lời cảm ơn chân thành nhất đến cô Nguyễn Anh Thi là giảng viên giảng dạy bộ môn Đại số tuyến tính và cũng là người hướng dẫn nhóm em thực hiện đề tài này Nhờ có hướng dẫn và giải đáp những thắc mắc, khó khăn nhóm gặp vướng mắc trong quá trình làm bài vô cùng kịp thời và kết quả là nhóm đã làm thành bài đúng tiến độ Sự hướng dẫn của cô là kim chỉ nam giúp nhóm chúng em làm việc hiệu quả hơn dù thành viên ít do quá trình liên lạc khó khăn, gắn kết mối quan hệ tốt giữa
các thành viên trong nhóm và giữa sinh viên với giảng viên
Lời cuối, xin một lần nữa gửi lời biết ơn sâu sắc đến các cá nhân, các thầy/cô đã dành thời gian chỉ dẫn cho nhóm Đây chính là niềm tin, nguồn
động lực to lớn để nhóm có thể đạt được kết quả này Nhóm
chúng em xin chân thành cảm ơn ạ!
Trang 4LỜI MỞ ĐẦU
Đại số tuyến tính nói chung có rất nhiều ứng dụng trong hầu hết các lĩnh vực trong khoa học: kinh tế, môi trường, công nghệ máy tính, xử lí tín hiệu,
đồ họa, Một phần nhỏ trong số đó phải nhắc đến là phương pháp phân
tích SVD trong nhiều bài toán khác nhau Phương pháp phân tích suy biến
(singular value decomposition) được viết tắt là SVD là một trong những phương pháp thuộc nhóm matrix factorization (Ma trận thừa số hóa) được phát triển lần đầu bởi những nhà hình học vi phân Ban đầu mục đích của phương pháp này là tìm ra một phép xoay không gian sao cho tích vô hướng của các vector không thay đổiTừ mối liên hệ này khái niệm về ma trận trực giao đã hình thành để tạo ra các phép xoay đặc biệt Phương pháp SVD đã được phát triển dựa trên những tính chất của ma trận trực giao và ma trận đường chéo để tìm ra một ma trận xấp xỉ với ma trận gốc Phương pháp này sau đó đã được ứng dụng rộng rãi trong các lĩnh vực như hình học vi phân, hồi qui tuyến tính, xử lý hình ảnh, cluaxstering, các thuật toán nèn và giảm chiều dữ liệu, khử nhiễu âm thanh, khử nhiễu hình ảnh
Trang 5I CƠ SỞ LÍ THUYẾT
*Mục tiêu:
Phương pháp SVD sẽ tìm ra một lớp các ma trận xấp xỉ tốt nhất với một ma trận cho trước dựa trên khoảng cách norm Frobenios giữa 2 ma trận Người ta đã chứng minh được rằng ma trận xấp xỉ tốt nhất được biểu diễn dưới dạng tích của
3 ma trận rất đặc biệt bao gồm 2 ma trận trực giao (orthogonal matrix) và 1 ma trận đường chéo (diagonal matrix) Quá trình nhân ma trận thực chất là quá trình biến đổi các điểm dữ liệu của ma trận gốc thông qua những phép xoay trục (rotation) và phép thay đổi độ lớn (scaling) và từ đó tạo ra những điểm dữ liệu mới trong không gian mới.Điều đặc biệt của ma trận đường chéo đó là các phần
tử của nó chính là những giá trị riêng của ma trận gốc Những điểm dữ liệu trong không gian mới có thể giữ được 100% thông tin ban đầu hoặc chi giữ một phần lớn thông tin của dữ liệu ban đầu thông qua các phép truncate SVD Bằng cách sắp xếp các trị riêng theo thứ tự giảm dần trên đường chéo chính thuật toán SVD
có thể thu được ma trận xấp xỉ tốt nhất mà vẫn đảm bảo giảm được hạng của ma trận sau biến đổi và kích thước các ma trận nhân tử nằm trong giới hạn cho phép
Do đó nó tiết kiệm được thời gian và chi phi tính toán và đồng thời cũng tìm ra được một giá trị dự báo cho ma trận gốc với mức độ chính xác cao
Do đó, để tiếp cận được thuật toán phân tích SVD, chúng ta cần phải nắm những kiến thức cơ bản về cơ sở tạo nên nó gọi tắt là Cơ sở lí thuyết của việc phân tích SVD
-Trị riêng của vecto riêng
-Khái niệm về họ trực giao và trực chuẩn Trực giao hóa Gram- Schmidt
- Chéo hóa ma trận, chéo hóa trực giao và những tính chất của chúng I.1 Trị riêng và vectơ riêng của ma trận
I.1.1 Cơ sở lí thuyết
Định nghĩa: Cho A𝑀𝑛(K) Số λ0K được gọi là giá trị riêng của ma trận A, nếu tồn tại vectơ giá trị X0≠0 sao cho AX0= λ0X0 Vectơ X0 được gọi là vectơ riêng của ma trận A tương ứng với giá trị riêng X0
Tính chất 1
Mỗi vectơ riêng có một giá trị riêng duy nhất Giả sử ma trận vuông A có vectơ riêng x ứng với hai giá trị riêng λ1, λ2 thì Ax= λ1x= λ2x ⟺ ( λ1- λ2)x=0 ⟺ λ1=
λ2
Tính chất 2
Nếu x là vectơ riêng ứng với giá trị riêng λ của ma trận vuông A thì kx cũng là vectơ riêng với λ: Ax = λx =>A(kx) = λ(kx)
Tính chất 3
Nếu λ là trị riêng của ma trận vuông A thì λn là trị riêng của ma trận An
Tính chất 4
Giá trị riêng của ma trận vuông A là nghiệm của phương trình
( A-λI ) = 0
Giả sử λ là giá trị riêng của ma trận A, khi đã tồn tại x ≠ 0 mà Ax = λx ⟺ ( A-
λI )x = 0
Đây là một hệ phương trình tuyến tính, hệ này có nghiệm x ≠ 0 khi và chỉ khi det ( A- λI )= 0
Trang 6Tính chất 5
Ma trận vuông A có giá trị riêng λ thì họ vectơ riêng ứng với λ là nghiệm của ( A- λI )x = 0
I.1.2.Các bước tìm trị riêng và vectơ riêng của ma trận
Bước 1: Tìm giá trị riêng
+ Lập phương trình det ( A- λI ) = 0
+ Tính định thức, giải phương trình
+Tất cả các nghiệm của phương trình là tất cả các trị riêng của A
Bước 2: Tìm vectơ riêng
+ Tương ứng với trị riêng λ1 Giải hệ phương trình ( A- λ1I )x = 0
+ Tất cả các nghiệm khác 0 của hệ là tất cả các vectơ riêng của A ứng với trị riêng λ1
+ Tương tự tìm vectơ riêng của A ứng với các trị riêng còn lại
Ví dụ: Hãy tìm vector riêng của ma trận
4 −2)
- Trước hết cần xác định trị riêng của ma trận A Xét phương trình đặc trưng của
A:
|10 − 𝜆 −9
4 −2 − 𝜆|= 0
𝜆2- 8λ+16 = 0 (𝜆 − 4)2= 0 λ = 4
Vậy, A có một trị riêng (bội 2) λ=4
- Tiếp theo, ta tìm vector riêng của A ứng trị riêng λ=4
Giả sử, x =[𝑥𝑥1
2] là vectơ riêng của A ứng trị riêng λ thì x là nghiệm không tầm thường của hệ:
{(10 − 𝜆)𝑥1− 9𝑥2 = 0 4𝑥1+ (−2 − 𝜆)𝑥2 = 0 Với λ = 4 ta có hệ {6𝑥4𝑥1− 9𝑥2 = 0
1− 6𝑥2 = 0 => {
𝑥1 =3
2 𝑥2
𝑥2 ∈ 𝑅 Vậy, vector riêng của A ứng trị riêng λ = 4 là:
X = [𝑥𝑥1
2] = [
3
2 𝑥2
𝑥2 ] = t⌈3
2⌉ ; 0 ≠ t ∈ R
I.2 Chéo hoá trực giao:
I.2.1 Cơ sở lí thuyết
Định nghĩa 1 Ma trận A∈ 𝑀𝑛(R) gọi là ma trận đối xứng thực, nếu 𝐴𝑇=A
Định nghĩa 2 Ma trận A∈ 𝑀𝑛(R) gọi là ma trận trực giao, nếu 𝐴−1 = AT Từ định nghĩa ta có A.𝐴−1 = A.AT ⟺ A.AT = I Như vậy nếu tích của A và AT là
ma trận đơn vị I, thì A là ma trận trực giao
Mệnh đề 1: Ma trận A là ma trận trực giao khi và chỉ khi họ vectơ cột (hoặc họ
vectơ hàng) của A là họ trực chuẩn
Chứng minh
Trang 7Cho A là ma trận trực giao Tức là AAT = I Để ý phép nhân hai ma trận với nhau,
ta thấy :hàng i của A nhân với cột j của ma trận AT là hàng j của A
Họ vectơ hàng của A là họ trực chuẩn
Hoàn toàn tương tự, xét ATA = I ta cơ sở họ vectơ cột của A là họ trực chuẩn
Sử dụng mệnh đề này để tìm một ma trận trực giao A cấp n tuỳ ý như sau : a) Trong Rn, chọn một cơ sở E
b) Dùng quá trình Gram-Schmidt (nếu cần), trực giao hoá E để được cơ sở trực giao F
c) Chia một vectơ hàng trong F cho độ dài cả nó ta có cơ sở trực chuẩn Q
Khi đó A là ma trận trực giao
Ví dụ : Trong R3, chọn cơ sở E={x=(1,1,1),y=(1,0,-1),z=(0,1,-1)}
Dùng quá trình trực giao hoá Gram-Schmidt, ta được họ trực giao:
F={𝑣1 = (1,1,1); 𝑣2 = (1,0, −1); 𝑣3 = (−1
2 ; 1;−1
2)}
Chia mỗi vectơ cho độ dài của nó, ta có họ trực chuẩn:
Q={𝑞1 = (√3
3 ;√3
3 ;√3
3) ; 𝑞2 = (√2
2 ; 0;−√2
2 ) ; 𝑞3 = (−√6
6 ;√6
3 ;√6
6)}
Lập ma trận trực giao có họ vectơ cột (hoặc họ vectơ hàng) là
A=
(
√3
3
√2
2
−√6 6
√3
3
√3
3
−√2
2
−√6
6 )
Định nghĩa 3 Ma trận vuông, thực A gọi là chéo hoá trực giao được, nếu
A = PD𝑃−1= PDPT, với D là ma trận chéo và P là ma trận trực giao
Định lí 1 Cho A là ma trận đối xứng thực
Các khẳng định sau đây là đúng :
1) Trị riêng của A là các số thực
2) A luông chéo hoá trực giao được
3) Hai vectơ riêng ứng với các giá trị riêng khác nhau vuông góc với nhau
Mệnh đề 2 Nếu ma trận A chéo hoá trực giao được, thì A là ma trrận đối xướng
Chứng minh
Giả sử A chéo hoá được khi đó A = PDPT Suy ra, AT = (PDP)T = (PT)T.DT.PT
= P.D.PT = A
Hay A là ma trận đối xứng
Như vậy chỉ có ma trận đối xứng thực mới chéo hoá trực giao được
I.2.2 Chéo hoá trực giao ma trận đối xứng A
Bước 1 Tìm trị riêng của A
Bước 2 Tìm một cơ sở của trực chuẩn của từng không gian con riêng
Để tìm cơ sở trực chuẩn của không gian con riêng Eλk, ta theo các bước sau: a) Chọn cơ sở Ek tuỳ ý của Eλk
b) Dùng quá trình Gram-Schmidt (nếu cần) để tìm cơ sở trực giao Fk
c) Chia mỗi vectơ trong Fk cho độ dài của nó ta có cơ sở trực chuẩn Qk của Eλk.
Bước 3 Kết luận
Ma trận A luôn chéo hoá trực giao được Tức là A=PDPT, trong đó ma trận chéo
D có các phần tử trên dường chéo là các giá trị riêng của A, họ vectơ cột của a trận trực giao P Từ các vectơ riêng trong các cơ sở trực chuẩn ở bước 2
Trang 8Ví dụ Chéo hoá trực giao ma trận đối xứng thực:
A=[
5 −2 4
−2 6 2
4 2 3
]
Lời giải:
Bước 1 Tìm các giá trị riêng
A có hai trị riêng λ1= -2, λ2 = 7
Bước 2 Tìm cơ sở trực chuẩn của các không gian con riêng
Ứng với λ1= -2
Cơ sở của Eλ1 là 𝑣1 = (
2 1
−2 )
Cơ sở trực chuẩn của Eλ1 là 𝑓1 =
(
2 3 1 3
−2
3) Ứng với λ2 = 7
Cơ sở của Eλ2 là 𝑣2 = (
1 0 1 ) , 𝑣3 = (
−1 2 0 ) Tìm cơ sở trực chuẩn bằng Gram-Schmidt:
𝑒2 = 𝑣2 = (
−1 0 1 )→𝑓2 =
(
1
√2 0 1
√2)
𝑒3 = 𝑣3−(𝑣3𝑒2)
(𝑒2𝑒2)𝑒2 = (
−1 2 0
) −−1
2 (
1 0 1
) =1
2(
−1 4 1 )→𝑓3 =
(
−1
√18 4
√18 1
√18)
Cơ sở trực chuẩn của Eλ2 là{ 𝑓2, 𝑓3}
Bước 3 Kết luận
Ma trận A chéo hoá trực giao được và A = PDPT , trong đó :
D = (
−2 0 0
0 7 0
0 0 7
) và P=
(
2 3
1
√2
−1
√18 1
√18
−2 3
1
√2
1
√18)
Lưu ý: Khi số chiều của không gian con riêng không lớn, ta có thể không dùng
quá trình Gram-schmidt để tìm cở trục giao
I.3 Phân tích SVD ( Singular Value Decomposition )
I.3.1 Cơ sở lý thuyết
Trang 9Định nghĩa
Cho A là một ma trận thực cỡ m*n(không nhất thiết ma trận vuông) Ta chứng minh rằng tập hợp các trị riêng khác không của AAT và ATA là trùng nhau Thật vậy, giả sử λ0 là một trị riêng khác 0 của AAT và là vectơ riêng của AAT tương ứng Khi đó:
AATX0 = λ0X0 Suy ra ATAATX0 = AT λ0X0
Điều này tương đương với ATA ( ATX0 ) = λ0( ATX0 ), vì λ0 0 nên ATX0 0 Suy
ra λ0 là trị riêng của ATA
Ma trận AAT và ma trận AAT và ma trận ATA là hai ma trận đối xứng, nên chéo hoá trực giao được
Phân tích SVD của ma trận A
Cho ma trận [ R ], r( A ) = r Ma trận A có thể phân tích thành dạng A= Q ΣPT trong đó Q và
P là hai ma trận đều có họ vectơ cột là họ trực chuẩn, Q được gọi là left singular vectors P được gọi là right singular vectors, Σ= là ma trận cỡ m*n, D là ma trận chéo, có các phần tử trên đường chéo δ1 ; δ2 ; … ; δr là những số thực dương và được gọi là các singular values của A
Khi đó ta thu được :
AAT= QΣPT(QΣPT)T=QΣPT.PΣTQT (vì 𝑃𝑇.P=I)=QTQT
ATA= (QΣPT)TQΣPT=PΣTQTQΣPT(vì 𝑄𝑇 𝑄 = 𝐼) =PΣTΣPT
Các cột của Q là các vectơ riêng của ATA và δ1 ; δ2 ;… ; δr2 là các trị riêng khác
0 không AAT
Các cột của P là các vectơ riêng của ATA và δ1 ; δ2 ;… ; δr2 cũng là các trị riêng khác 0 không AAT
Trong D, ta sắp xếp các singular values của A theo tứ tự giảm dần:
δ1≥ δ2≥…≥ δr
Gọi Q=(q1|q2|…|qn) và P=(p1|p2|…|pn), D =
Từ đó ma trận A có thể ghi dưới dạng
A=δ1q1p1T + δ2q2p2T với mọi qipiT là một ma trận có hạng bằng 1
Hình 1 Biểu diễn SVD dạng thu gọn và ma trận dưới dạng bằng các ma trận
có hạng bằng 1 Lưu ý : qipiT là một ma trận chứ không phải là một vô hướng, ta tính ra được ma trận của qipiT bằng cách lấy hàng đầu tiên vectơ qi nhân với các phần tử của vectơ
pi, ta được hàng thứ nhất của ma trận Tiếp tục lấy hàng thứ hai của vectơ qi nhân với các phần tử của vectơ pi, ta được hàng thứ hai của ma trận Cứ như thế cho đến hàng cuối cùng của qi, ta sẽ thu được một ma trận có hạng luôn bằng 1 bởi
vì số vectơ độc lập tuyến tính cực đại bằng 1
Trang 10Rõ ràng với cách phân tích này, ta nhận thấy rằng ma trận A phụ thuộc vào r cột dầu tiên của Q, P và r phần tử khác không trên đường chéo Ʃ Ta có phân tích gọn hơn của A gọi là Compact SVD :
𝐴 = 𝑄𝑟Ʃ𝑟(𝑃𝑟)𝑇 Với 𝑄𝑟 và 𝑃𝑟 là các ma trận được tạo nên từ các cột của Q và P tương ứng Ʃ𝑟 là
ma trận con được tạo bởi ở hàng đầu tiên và ở cột đầu tiên của Ʃ Nếu ma trận A
có rank nhỏ hơn rất nhiều so với số hàng và số cột r<<m, n, ta sẽ được lợi nhiều
về việc lưu trữ
Hình 1 là ví dụ minh hoạ với m =4,n=6,r=2
Trong lưu trữ hình ảnh, thông thường chỉ có một vài δm có giá trị cao và δn còn lại xấp xĩ bằng không nên có thể bỏ qua Khi đó ta có xấp xỉ
A Ak = δ1q1p1T + δ2q2p2T + … + δkqkpkT
và sai số trong xấp xĩ trên được xác định bởi công thức sau :
||A-Ak|| = δk+12 + δk+22 + … + δk+r2
I.3.2 Bài toán ví dụ
Tìm phân tích SVD của ma trận A=( 3 1 1
−1 3 1) Lời giải :
A =( 3 1 1
−1 3 1)
𝑨𝑻 = (
𝟑 −𝟏
𝟏 𝟑
𝟏 𝟏
) +Ta có:
𝑨 𝑨𝑻 = (𝟏𝟏 𝟏
𝟏 𝟏𝟏)
Det (A AT – λI ) = 0
|(11 − 𝜆) 1
1 (11 − 𝜆)| = 0
⟺ (11 -λ )2 – 1 = 0
⟺ λ2 - 22 + 120 = 0 ⟺ λ1 = 12; λ2 = 10
Vậy D1 = (1 1
1 −1);Gram-Schmidt ta tìm được trực chuẩn Q =(
1
√2
1
√2 1
√2
−1
√2
) + Ta có
𝑨𝑻𝑨 = (
𝟏𝟎 𝟎 𝟐
𝟎 𝟏𝟎 𝟒
𝟐 𝟒 𝟐
)
Det( ATA – λI ) = 0
|
(10 − 𝜆) 0 2
0 (10 − 𝜆) 4
2 4 (2 − 𝜆)
|=0
⟺ λ3 - 22λ2 + 120λ = 0 ⟺ λ1 = 12; λ2 = 10; λ3 = 0
Trang 11𝐺𝑖ả𝑖 ( ATA – λI )X = 0
λ1 = 12
(−20 −20 24
2 4 −10
) (
𝑥1
𝑥2
𝑥3) = 0
Áp dụng Cramer:
𝑥1
4 =
−𝑥2
8 =
𝑥3 4 [𝑢1, 𝑢2, 𝑢3] = [1,2,1]
λ2 = 10
(
0 0 2
0 0 4
2 4 −8
) (
𝑥1
𝑥2
𝑥3) = 0
Áp dụng Cramer:
𝑥1
−16 =
−𝑥2
−8 =
𝑥3 0 [𝑢1, 𝑢2, 𝑢3] = [2,1,0]
λ3 = 0
(100 00 24
2 4 2
) (
𝑥1
𝑥2
𝑥3) = 0
Áp dụng Cramer:
𝑥1
4 =
−𝑥2
−8 =
𝑥3
−20 [𝑢1, 𝑢2, 𝑢3] = [1,2, −5]
Trực giao𝐷2=(
1 2 1
2 1 2
1 0 −5
) →𝐷2𝑇 = (
1 2 1
2 1 0
1 0 −5
)
Gram-Schmidt ta tìm được trực chuẩn 𝑃𝑇 =
(
1
√6
2
√6
1
√6 2
√5
1
1
√30
2
√30
−5
√30)
Vậy phân tích SVD của A là A = QΣ𝑃𝑇 ; với Q, P ở trên và Σ = (√12 0 0
0 √10 0)
A = QΣPT = ( 3 3 1
−1 1 1) Nhận xét: Để tìm phân tích SVD của ma trận , chúng ta phải thực hiện tiến hành chéo hóa trực giao hai ma trận và Trong khi ma trận là ma trận vuông bậc bốn, còn là ma trận vuông bậc năm, việc giải bài toán chéo hoá trực giao hai bài toán này tốn rất nhiều thời gian nếu không có công cụ hỗ trợ máy tính Để tiết kiệm thời gian tính toán, chúng ta có thể sử dụng một công cụ hỗ trợ toán học rất hữu ích đó là MATLAB
Giải toán bằng MATLAB
Bước 1: Nhập vào ma trận A ( hay ma trận nào mà ta muốn phân tích SVD