Professional Documents
Culture Documents
BTLĐSTT10
BTLĐSTT10
BTLĐSTT10
HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
KHOA KHOA HỌC & ỨNG DỤNG
BỘ MÔN TOÁN ỨNG DỤNG
BÁO CÁO
BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH
CHỦ ĐỀ 10:
ỨNG DỤNG SVD
ĐỂ KHỬ NHIỄU HÌNH ẢNH
BÁO CÁO
BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH
CHỦ ĐỀ 10:
ỨNG DỤNG SVD ĐỂ KHỬ NHIỄU HÌNH ẢNH
Đại số tuyến tính là môn học có tầm quan trọng không chỉ đối với sinh
viên trường đại học Bách Khoa Thành phố Hồ Chí Minh nói riêng mà
còn đối với sinh viên ngành khoa học kỹ thuật, công nghệ nói chung.
Đạ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 đượ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 đổi. Từ 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….
2
I. CƠ SỞ LÍ THUYẾT
I.1 Trị riêng và vectơ riêng của ma trận
1.1 Cơ sở lí thuyết
Định nghĩa: Cho AMn(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 vươ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 tunhs, hệ này có nghiệm x ≠ 0 khi và chỉ khi
det ( A- λI )= 0.
Tí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
3
I.1.2.Các bước tìm trị riêng và vectơ riêng của ma trận
Bước1: 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.
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
Chẳng hạn như ta có thể tìm cơ sở trực giao của Eλ1 như
Chọn một vectơ riêng x1 = ( 1 ;-2 ;0 )T và tìm vectơ riêng thứ hai x2 = ( α; -2α + 2β; β )T
sao
cho x2x1
Suy ra ( x2,x1 ) = α + (-2) (-2α + 2β ) + 0 = 0
⟺ 5α - 4β = 0
Cho α = 4 ta được p = 5. Vậy vectơ riêng x2= (4 ;2 ;5)T ứng với λ2 = -2
Giải hệ ( A - λ2I )x = 0 ⟺ x = ( 2α; α; -2α )T
=α( 2; 1; -2 )T
Cơ sở trực giao của Eλ2 là (2 ; 1 ; -2)T
Do đó, cơ sở trực chuẩn của Eλ2 là (2 ; 1 ; -2 )T
Bước 3. Kết luận : ma trận A chéo hoá trực giao được và A= PDPT, trong đó D= và P=
I.3 Phân tích SVD ( Singular Value Decomposition )
I.3.1 Cơ sở lý thuyết
Định nghĩa
Cho A là một ma trận thực cỡ m*n. 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
6
Đ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
- SVD (Singular Value Decomposition) là một phương pháp phân tích ma trận. Điểm đặc
biệt của SVD là nó có thể áp dụng được trên bất kỳ ma trận thực nào
- Với một ma trận A bất kì có m hàng và n cột (với n < m), có hạng là r và r < n < m,
phép biến đổi SVD sẽ phân tích ma trận A thành ba ma trận U, ∑ V như sau :
A=U∑ VT
- Trong đó Q và P là hai ma trận đều có họ vectơ cột là họ trực chuẩn, U được gọi là left
singular vectors(vector riêng trái) V được gọi là right singular vectors (vector riêng
phải),
𝐷0
Σ= 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 ;
00
… ; δ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= UΣVT(UΣVT)T =UΣVT.VΣTUT=UTΣΣTUT⁞
ATA= (UΣVT)TUΣVT=VΣTUTUΣVT=VΣΣTVT
- Các cột của Q là các vectơ riêng của ATA và δ12; δ22;… ; δr2là 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
δ1 0 . . . 0
0 δ2 . . . 0
Gọi U=(u1|u2|…|un) và V=(V1|V2|…|Vn), D =( )
. . . ⁞ . . .0
0 0 . . . δr
Từ đó ma trận A có thể ghi dưới dạng
A=δ1u1v1T + δ2u2v2T +…. δkukvkT với mọi ukvkT là một ma trận có hạng bằng 1
Hình 1
7
Như vậy ma trận A chỉ phụ thuộc vào r cột đầu tiên của U,V và r phần tử khác không
đầu tiên đường chéo của . Ta có phân tích gọn hơn của A gọi là compact SVD : A =
UrDVr với Ur,Vr là các ma trận tạo nên từ các cột của U và V tương ứng.
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ằng0 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|| = δ2k+1+ δ2k+2 + … + δ2r
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)
Hình 2
Hình 3
8
II. Ứng dụng của phân t ích SVD trong việc khử nhiễu
âm thanh
1 Đặt vấn đề
-Trong đời sống chúng ta hiện nay, hình ảnh vốn rất quen thuộc và ta có
thể bắt gặp vô số hình ảnh mang chứa trong nó vô số nội dung khác nhau
.Chẳng hạn như : hình ảnh gia đình , ảnh chụp bạn bè , ảnh phong cảnh ,
ảnh seflie hay là một tấm ảnh chứa đựng đầy nghệ thuật của các nhiếp
ảnh gia ,… Hình ảnh đóng một vai trò quan trọng trong cuộc sống của chúng
ta bởi vốn dĩ nó có thể lưu giữ lại những thông tin vô cùng ý nghĩa đối với
mỗi người: giúp ta hình dung những sự vật sự việc đã xảy ra , lưu giữ những
kỉ niệm với bạn bè thời học sinh, có thể chiêm ngưỡng được vẻ đẹp ở bất
kì đâu mà không cần đặt chân tới đó ,…Để có được một tấm ảnh ta có thể
sử dụng nhiều những phương tiện khác nhau như điên thoại, máy ảnh ,…
Nhưng đôi khi những tệp hình ảnh có thể bị nhòe
đi, bị nhiễu khiến cho chất lượng hình ảnh giảm đi
và đó được gọi là hiện tượng “Noise” ảnh hay còn
gọi là nhiễu ảnh .Noise được hiểu cơ bản là các
đốm lấm chấm hạt nhỏ phân bố trên hình
ảnh nó khá giống như Grain trên film. Noise có thể
làm biến dạng các chi tiết trong ảnh khiến cho chất
lượng ảnh thấp và điều này chắc chắn không một
ai trong chúng ta mong muốn nó xảy ra với ảnh của
mình ,nguyên nhân xảy ra tình trạng này khá đa
dạng và những yếu tố xảy ra tình trạng noise có thể
kể đến như : thời gian phơi sáng quá lâu, nhiệt độ
môi trường hoặc do máy ảnh của bạn đã qua thời
gian sử dụng dài.
- Vậy vấn đề cần đặt ra làm thể nào chúng ta có thể
khử nhiễu được một tấm ảnh mà ta mong muôn ?
Hình 4
Có lẽ chức năng hữu ích nhất của phân tích SVD đó chính là cung cấp một xấp xỉ hạng
bậc thấp tối ưu cho ma trận ban đầu (giả sử ma trận là X). Chức năng này được thực
hiện bằng cách chỉ giữ lại r singular value đầu tiên của X và r vector đầu tiên của trong
các ma trận singular vectors, đồng thời lược bỏ đi những phần tử còn lại. Phương pháp
này gọi là Truncate SVD
* Gây nhiễu ảnh bằng công cụ matlab
Hình 5 : ảnh phải là ảnh gốc , ảnh trái là ảnh đã bị gây nhiễu
1
KẾT LUẬN
Tóm lại, với sự phát triển của công nghệ thì SVD trở thành một phần không thể
thiếu đối với các khối ngành kỹ thuật. Nhóm của tụi em đã giải quyết được phần
SVD trong khử nhiễu ảnh. Theo nhóm đã trình bày, SVD ngoài ứng dụng để khử
nhiễu ảnh trong lĩnh vực y tế, trí tuệ nhân tạo, học máy, iám sát giao thông nằm ở
phần III) ở trên thì cũng còn có những ứng dụng tuyệt vời khác như:
Bên cạnh đó, ngoài SVD chúng ta cũng có một số phương pháp khác được ứng
dụng trong khử nhiễu ảnh như:
• Non-negative matrix factorization (NMF of NNMF)
• Principal component analysis (PCA)
• Median Filter
• Non-local mean filter
• Gaussian filter
• Total variation filter
TÀI LIỆU THAM KHẢO
[1] Data-Driven Science and Engineering: Machine Learning, Dynamical Systems,
and Control, Steven L’Brunton & J’ Nathan Kutz
[2] The Optimal Hard Threshold for Singular Values is, Mathan Gavish & David
Donoho
[3] Tài liệu báo cáo của các anh chị sinh viên các khóa trước và sự hỗ trợ của các anh
chị
[4]https://sti.vista.gov.vn/tw/Lists/TaiLieuKHCN/Attachments/323837/CVb12S6202114
9.pdf
[5]Image Denoising with Singular Value Decompositon and Principal Component Analysis
LỜI CẢM ƠN
Để hoàn thành đề tài bài tập lớn lần này, trước hết nhóm chúng em xin chân
thành cảm ơn sự hướng dẫn, giúp đỡ, quan tâm từ quý thầy cô, bạn bè trong
lớp.
Đặc biệt, nhóm xin gửi đến cô Nguyễn Xuân Mỹ đã ra sức truyền đạt, chỉ dẫn
chúng em đề tài báo cáo lần này lời cảm ơn sâu sắc nhất.Không thể không nhắc
tới sự hợp tác, đoàn kết của các thành viên trong nhóm, xin cảm ơn mọi người
đã cùng góp sức, góp lực để hoàn thành bài báo cáo này.Vì còn tồn tại những
hạn chế về mặt kiến thức, trong quá trình trao đổi, hoàn thành bài project cuối
kì , chúng em không tránh khỏi những sai sót, kính mong nhận được sự đóng
góp từ quý thầy, cô. Những góp ý từ thầy cô sẽ là động lực để chúng em hoàn
thiện hơn. Một lần nữa, nhóm 10_ L12 xin gửi lời biết ơn chân thành đến
thầy,cô vì đã giúp chúng em đạt được kết quả này.
1
Nhóm thực hiện đề tài
Nhóm 10 - Lớp L12