Phương pháp SVD cho phép phân tích và tái cấu trúc dữ liệu bằng cách phân tíchmột dữ liệu thành các thành phần cơ bản, nhờ vào phân rã 3 ma trận đặc biệt từ 2 ma trận trực giao orthogona
Trang 1KHOA KHOA HỌC ỨNG DỤNG
BÁO CÁO BÀI TẬP LỚNMôn: Đại số tuyến tính
(Nhóm 14)
Đề tài 6 Khử nhiễu hình ảnh âm thanh sử dụng SVD
(singular value decomposition)
Giảng viên hướng dẫn: HUỲNH THÁI DUY PHƯƠNG
Sinh viên thực hiện: NGUYỄN LƯU KHÁNH TRÌNH 2313638
Trang 2Mục lục
1 Đối tượng và mục tiêu 2
2 Cơ sở lí thuyết 3
2.1 Giới thiệu SVD 3
2.2 Đặc điểm của SVD 3
2.3 Trị riêng, vecto riêng 3
2.3.1 Định nghĩa 3
2.3.2 Tính chất 4
2.4 Khái niệm họ trực giao và trực chuẩn Trực giao hóa Gram-Schmidt 4 2.4.1 Họ trực giao và trực chuẩn 4
2.4.2 Quá trình Gram-Schmidt: 5
2.5 Chéo hóa ma trận, chéo hóa trực giao và những ứng dụng của chúng: 5 2.5.1 Chéo hóa ma trận: 6
2.5.2 Chéo hóa trực giao ma trận: 6
2.5.3 Một số ứng dụng phổ biến của ma trận đường chéo: 7
3 Sơ lược về phân tích SVD 8
3.2 Giới thiệu SVD 8
3.3 Nguồn gốc SVD 9
3.4 Phương pháp COMPACT SVD 9
3.5 Xét ví dụ về phân tích SVD của một ma trận bất kì 10
4 Ứng dụng của phân tích SVD trong việc khử nhiễu âm thanh 11
4.1 Cách SVD (Singular Value Decomposition) vận hành 12
4.2 Định nghĩa âm thanh nhiễu 13
4.2 Cách áp dụng SVD vào khử nhiễu âm thanh 13
5 Quá trình khử nhiễu âm thanh bằng SVD thông qua Matlab 15
5.1 Các bước thực hiện 15
5.2 Chương trình Matlab 17
6 Tài liệu tham khảo 20
Trang 31 Đối tượng và mục tiêu
Trong cuộc sống hiện nay, chúng ta bắt gặp những hình ảnh, âm thanh mà chúng
ta muốn ghi lại những khoảng khắc ấy Nhưng điều không thể tránh khỏi là trongcác tập tin chứa đầy những hình ảnh, âm thanh kém chất lượng như nhiễu hìnhảnh (thiếu ánh sáng, hình mờ, lệch màu sắc, ) và tạp âm (tiếng gió, tiếng ồn, ) Như vậy, chúng ta cần thực hiện quá trình khử nhiễu Phương pháp hiệuquả để khử nhiễu là phương pháp phân tích suy biến - SVD
Phương pháp SVD cho phép phân tích và tái cấu trúc dữ liệu bằng cách phân tíchmột dữ liệu thành các thành phần cơ bản, nhờ vào phân rã 3 ma trận đặc biệt từ 2
ma trận trực giao (orthogonal matrix) và 1 ma trận đường chéo (diagonal matrix)
trọng, ta có thể tạo ra một phiên bản tái cấu trúc của dữ liệu gốc mà đã được làmsạch nhiễu Cùng với đó SVD còn làm giảm nhiễu và nâng cao chất lượng là loại
bỏ các giá trị nhỏ trong ma trận chéo hóa (Σ), để giảm nhiễu và chỉ giữ lại cácthành phần quan trọng Điều này dẫn đến một phiên bản tái cấu trúc của hìnhảnh hoặc âm thanh mà có chất lượng cao hơn, với mức độ nhiễu giảm đáng kể.Một ưu điểm quan trọng của SVD là nó giữ lại thông tin quan trọng nhất bằngcách chỉ giữ lại một số thành phần chính, ta có thể loại bỏ nhiễu mà vẫn giữ đượcthông tin quan trọng và cấu trúc tổng thể của hình ảnh hoặc âm thanh
Do đó, việc sử dụng phương pháp SDV để khử nhiễu hình ảnh và âm thanh có thểmang lại sự cải thiện đáng kể về chất lượng và độ chính xác Đồng thời, phươngpháp này giúp tiết kiệm thời gian và chi phí trong việc phân tích xử lý Điều này
mở ra nhiều cơ hội và ứng dụng trong các lĩnh vực liên quan Đặc biệt là lĩnh vựctruyền thông đa phương tiện, trong quá trình tạo ra video cần xử lý tốt hình ảnh
và âm thanh một cách chỉnh chu và chuyên nghiệp sẽ hấp dẫn thu hút nhiều đốitượng khách hàng với trải nghiệm tuyệt vời Từ đó, các hãng công nghệ, tập đoànlớn chạy đua nhau về phát triển công nghệ thiết bị tối ưu nhất để tăng cường lợinhuận Đồng thời, đáp ứng được nhu cầu, phục vụ đam mê của khách hàng, cảithiện chất lượng cuộc sống
Trang 42 Cơ sở lí thuyết
2.1 Giới thiệu SVD
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 đượcphá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ươngphá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 vectorkhô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ênnhữ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ộngrã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.2 Đặc điểm của SVD
SVD là một phương pháp phân tích ma trận rất quan trọng trong toán học vàkhoa học máy tính SVD đã có sự ứng dụng rộng rãi trong các lĩnh vực như xử lýảnh, âm thanh, nhận dạng khuôn mặt, nén ảnh và video và nhiều lĩnh vực khác.Các ứng dụng của SVD như:
⋄ Trong lĩnh vực toán học: SVD được sử dụng để giải quyết các bài toán nhưphân tích thành phần chính, phân tích chuỗi thời gian và giải phương trìnhtuyến tính
⋄ Trong khoa học máy tính: Nó được sử dụng để giảm chiều dữ liệu, tìm kiếmthông tin tiềm ẩn và phân tích ngữ liệu Ví dụ, Google đã sử dụng SVDtrong thuật toán PageRank để đánh giá tầm quan trọng của các trang web
âm thanh để giảm kích thước của dữ liệu và tăng độ chính xác của chúng Nócũng được sử dụng để nén ảnh và video, giúp tiết kiệm không gian lưu trữ
và tăng tốc độ truyền tả Ngoài ra, SVD còn được sử dụng trong nhận dạngkhuôn mặt và giọng nói Như vậy, SVD là một công cụ quan trọng trongnhiều lĩnh vực khác nhau và có thể giúp giải quyết nhiều bài toán phức tạp.Những lợi ích này giúp cho việc phân tích dữ liệu trở nên dễ dàng và hiệuquả hơn
2.3 Trị riêng, vecto riêng
2.3.1 Định nghĩa
Giả sử A, x lần lược là một ma trận vuông cấp n trên trường K Giả sử có số
λ ∈ K thỏa mãn tồn tại vector x ∈ Kn mà x ̸= 0 thỏa mãn Ax = λx, thì λ được
Trang 5gọi là giá trị riêng của A, x được gọi là vector riêng tương ứng với giá trị riêng λ.
2.3.2 Tính chất
• Tính chất 1: Mỗi vector riêng có một giá trị riêng duy nhất: Giả sử ma trậnvuông A có vector riêng x ứng với hai giá trị riêng λ1, λ2 thì Ax = λ1x =
λ2x ⇔ (λ1 − λ2)x = 0 ⇔ λ1 = λ2
vuông A thì kx cũng là vector riêng ứng với λ: Ax = λx ⇔ A(kx) = λ(kx)
• Tính chất 3: Nếu λ là giá trị riêng của ma trận vuông A thì λn là giá trịriêng của ma trận An: Giả sử x là vector riêng ứng với giá trị riêng λ của
ma trận A, khi đó Anx = An−1(Ax) = An−1λx = λAn−1x = = λnx
trình det(A − λI) = 0 Giả sử λ là giá trị riêng của ma trận A, khi đó tồntại x ̸= 0 mà Ax = λx ⇔ (A − λI)x = 0 Đây là một hệ phương trình tuyếntính, 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ọ vector riêng ứngvới λ là nghiệm của (A − λI)x = 0
giá trị riêng phân biệt λ, γ Khi đó: λxTy = (λx)Ty = (Ax)Ty = xTATy =
Trang 62.4.2 Quá trình Gram-Schmidt:
Trong toán học, đặc biệt là trong lĩnh vực đại số tuyến tính, quá trình Gram–Schmidt
là một phương pháp trực chuẩn hóa một tập hợp các vectơ trong một không giantích trong, thường là không gian Euclid Rn được trang bị tích vô hướng
hướng, xét hệ vector {u1, u2, , un} ⊂ V \{0} Hãy trực giao hóa hệ này,nghĩa là tìm hệ vector {v1, v2, , vn} sao cho vi ⊥ vj với mọi i ̸= j Ta còngọi {v1, v2, , vn} là hệ vector trực giao Dưới đây là các bước thực hiện:
⋄ Bước 3: Kết luận {v1, v2, , vn} là một vector trực giao
hướng, xét hệ vector {u1, u2, , un} ⊂ V \ {0} Hãy trực chuẩn hóa hệnày, nghĩa là tìm hệ vector {v1′, v2′, , v′n} sao cho vi′ ⊥ vj′ với mọi i ̸= j và
|vi′| = 1 với mọi i = 1, 2, , n Ta còn gọi {v1′, v2′, , vn′} là hệ vector trựcchuẩn Dưới đây là các bước thực hiện:
⋄ Bước 4: Kết luận {v1′, v2′, , vn′} là hệ vector trực chuẩn
2.5 Chéo hóa ma trận, chéo hóa trực giao và những ứng dụng của chúng:
AT = A
• Định nghĩa 2: Ma trậnA ∈ Mn(R)gọi là ma trận trực giao, nếuA−1 = AT
Từ định nghĩa ta có AA−1 = AAT ⇔ AAT = 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
P DP−1 = P DPT, với D là ma trận chéo và P là ma trận trực giao
Trang 72.5.1 Chéo hóa ma trận:
Trong đại số tuyến tính, chéo hoá ma trận là quá trình tìm ma trận nghịch đảo T
và ma trận chéo B Các ma trận chéo hóa rất dễ tính toán, sau khi đã tìm đượccác giá trị riêng và vector riêng của chúng
• Điều kiện: Ma trận A chéo hoá được khi và chỉ khi thoả mãn các tính chấtsau:
⋄ Điều kiện cần và đủ để ma trậnA chéo hóa được là nó có n vector riêngđộc lập tuyến tính
1
⋄ Nếu ma trận A có n trị riêng đôi một khác nhau thì A chéo hóa được
• Các bước chéo hóa ma trận:
⋄ Bước 1: Giải phương trình det(A − λI) = 0 để tìm các trị riêng
⋄ Bước 2: Giải hệ(A − λI)X = 0 Nếu có đủ nvector riêng độc lập tuyếntính thì ma trận A chéo hóa được
• Bước 1: Giải phương trình đặc trưng det(A − λI) = 0, tìm trị riêng của A
tìm cơ sở trực chuẩn của không gian con riêng Eλk thì:
– Chọn cơ sở Ek tuỳ ý của Eλk
– Dùng quá trình Gram-Schmidt (nếu cần) để tìm cơ sở trực giao Fk.– 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: Vậy ma trận A luôn chéo hoá trực giao được Tức là A = P DPT,trong đó ma trận chéo D có các phần tử trên đường chéo là các giá trị riêngcủa A, và P là ma trận trực giao có các cột là các vectơ riêng từ các cơ sởtrực chuẩn ở bước 2
Trang 82.5.3 Một số ứng dụng phổ biến của ma trận đường chéo:
các hệ phương trình tuyến tính trong tính toán đa biến Thay vì làm việcvới các ma trận thực tế có kích thước lớn, ta có thể sử dụng ma trận đườngchéo để giảm bớt độ phức tạp tính toán
việc tính toán các tích chất của ma trận, như tích hai ma trận, tích vô hướng,tích Hadamard và nhiều tích chất khác Do các phần tử nằm ngoài đườngchéo đều bằng 0, việc tính toán các tích chất này trở nên dễ dàng và hiệuquả
đổi ma trận trong đại số tuyến tính Đặc biệt, ma trận đường chéo là mộtdạng ma trận đặc biệt, ta có thể dễ dàng tính toán các phép cộng, trừ, nhân
ma trận và thực hiện các phép biến đổi khác trên ma trận đường chéo
Trang 93 Sơ lược về phân tích SVD
3.1 Quá trình phân tích SVD của một ma trận dựa trên cơ
⋄ SVD cho ma trận A khi:m < n (hình trên), vàm > n (hình dưới) Σ là một
ma trận đường chéo với các phần tử trên đó giảm dần và không âm Màu đỏcàng đậm thể hiện giá trị càng cao Các ô màu trắng trên ma trận này thểhiện giá trị 0
Trang 103.3 Nguồn gốc SVD
khác không của ATA và AAT là trùng nhau
Thật vậy, giả sử λ0 là một trị riêng khác 0 của AAT và X0 là vector riêng tươngứng Khi đó:
AATX0 = λ0X0
Điều này tương đương với:
ATA(ATX0) = AT(λ0X0)
Vì λ0 khác 0 nên ATX0 khác 0 Suy ra λ0 là trị riêng của ATA
Tương tự, chúng ta có ATA và AAT là 2 ma trận đối xứng, nên chúng chéo hóatrực giao được Khi đó:
Các cột của ma trận Q là những cơ sở của các không gian con riêng của ma trận
AAT sau khi trực giao Gram-Schmidt và các σ12, σ22, , σr2 là các trị riêng khác 0
của AAT Các cột của ma trậnP là những cơ sở của các không gian con riêng của
ma trận ATAsau khi trực giao Gram-Schmidt và các σ21, σ22, , σr2 là các trị riêngkhác 0 của ATA D1 và D2 là ma trận chéo với trị riêng tương ứng của AAT và
ATA là σ12, σ22, , σr2 Ta sắp xếp các σ12, σ22, , σr2 sao cho σ21 > σ22 > > σr2.3.4 Phương pháp COMPACT SVD
Ta có thể biểu diễn ma trận A dưới dạng tổng của các tích vector cột ui ∈ Rmcủa Um×m và vector dòng vi ∈ Rn của Vn×nT như sau:
A =
nX
i=1
uiσivi
Trang 11Các vector ui và vi là các hệ cơ sở độc lập tuyến tính Thông thường trong matrận đường chéo Σn×n chỉ một lượng lớn các trị riêng có lớn hơn 0 Các trị riêngcòn lại đều xấp xỉ 0 Do đó, chỉ tại r vị trí dòng và cột tương ứng với các trị riêng
đủ lớn ta mới thực hiện tính toán SVD Biểu diễn ma trận A dưới dạng compactSVD như sau:
A = UrΣrVrT
Trong đó các ma trận Ur, Σr, VrT lần lượt là các ma trận sau khi đã rút gọn cácdòng và cột để chỉ giữ lại các vị trí tương ứng với σi đủ lớn Nếu r ≪ n thì cáchtính này tiết kiệm được nhiều số lượng tính toán và lưu trữ hơn so với phươngpháp làm mỏng SVD
3.5 Xét ví dụ về phân tích SVD của một ma trận bất kì:
• Bước 2: Thực hiện chéo hóa trực giao: AAT = QD1QT
tính được các giá trị riêng của AAT Viết được ma trận đường chéo D1
có các phần tử là những giá trị riêng ta vừa tìm được (Lưu ý phải sắpxếp nó theo thứ tự giảm dần)
– Bước 2.2: Tìm vector riêng của AAT Sau đó trực giao Gram-Schmidtnhững cơ sở của không gian con riêng đó Từ đó ta tính được ma trận
Q, các cột của Q là các vector riêng của AAT
• Bước 3: Thực hiện chéo hóa trực giao AAT = P D2PT
– Tương tự các bước 2.1, 2.2 ta tính được P và D2
D1 hay D2 Sau đó lấy căn bậc 2 của tất cả những phần tử trên đường chéo
• Bước 5: Vậy phân tích SVD của ma trậnAlà:A(m×n) = Q(m×m)Σ(m×n)(P(n×n))T
Nhận xét: Như vậy từ dữ liệu ban đầu, chúng ta có thể viết nó dưới dạng một
ma trận Quá trình chéo hóa trực giao ma trận và ma trận chuyển vị của nó,chúng ta được phân tích SVD Trên cơ sở đó, ta có thể dễ dàng ứng dụng chúngvào nhiều lĩnh vực khác nhau trong khoa học
Trang 124 Ứng dụng của phân tích SVD trong việc khử nhiễu âm thanh
Đặt vấn đề:
một môi trường cụ thể Nó có thể xuất hiện từ nhiều nguồn khác nhau vàgây ra sự giao thoa và chồng chéo với âm thanh chính, làm mất đi sự rõràng và chất lượng của âm thanh mong muốn Nguyên nhân gây ra nhiễu
âm thanh có thể là do con người hoặc các nguồn âm thanh tự nhiên Ví dụnhư: tiếng ồn của một công trình xây dựng, âm thanh trong một buổi hòanhạc, tiếng trẻ con nô đùa với nhau, tiếng còi của xe cộ
• Đôi khi chúng ta muốn ghi lại những âm thanh, những khoảng khắc bất chợtnào đó, ta có thể sử dụng nhiều phương tiện khác như điện thoại, máy ghi
âm Nhưng một điều chắc chắn không thể tránh khỏi đó là những tập tin
âm thanh đó luôn chứa đầy tạp âm ( tiếng ồn, tiếng gió hú ríu rít, ) khiếncho chất lượng âm thanh giảm đáng kể gây khó chịu cho người nghe
• Như vậy, một vấn đề cần đặt ra rằng làm sao để khử nhiễu được một tập tin
âm thanh mà chúng ta mong muốn
Ý nghĩa của việc khử nhiễu:
• Nếu như chúng ta có thể xử lí tốt một tập tin âm thanh theo các tiêu chí (trọng tâm, chính xác, hiệu quả và tiết kiệm thời gian ) thì việc đó sẽ giúpích cho ta rất nhiều
• Trong nghiên cứu về âm thanh, sẽ giúp ta tiết kiệm thời gian hơn Còn trongdoanh nghiệp chuyên về lĩnh vực truyền thông đa phương tiện, nếu xử lí tốtfile âm thanh, sẽ tiết kiệm được rất nhiều chi phí trong việc thiết kế mộtphần mềm nào đó, hay chỉ đơn giản là tăng chất lượng âm thanh trong quátrình edit video chuyên nghiệp Từ đó nó sẽ hướng đến nhiều đối tượng kháchhàng hơn với một trải nghiệm về chất lượng âm thanh tuyệt vời, chân thật
và đặc biệt không còn tạp âm nữa
• Điều này mở ra cơ hội cho các hãng công nghệ, các tập đoàn công nghệ hàngđầu lớn trên thế giới luôn chạy đua, cạnh tranh gay gắt với nhau về việc thu
và phát âm thanh trên các thiết bị điện thoại thông minh, tivi thông minh làm sao cho tối ưu và hiệu quả nhất Điều này đồng nghĩa với việc tạođiều kiện mở rộng việc làm trong lĩnh vực âm thanh nói chung và công nghệ
số nói riêng Nắm bắt được xu thế, nắm bắt được công nghệ chính là nắmlấy thành công
Trang 13Những ứng dụng tiêu biểu của SVD: SVD đã có sự ứng dụng rất rộng rãi trongnhiều lĩnh vực khác nhau Dưới đây là một số ứng dụng tiêu biểu của SVD.
1 Google PageRank:
• Google PageRank là một thuật toán được sử dụng để xếp hạng các trangweb trên kết quả tìm kiếm của Google SVD đã được sử dụng để phântích mối liên quan giữa các trang web và đưa ra kết quả xếp hạng chínhxác hơn
2 Nhận dạng khuôn mặt:
dụng SVD vào các hình ảnh khuôn mặt, ta có thể phân tích được cácđặc trưng của khuôn mặt như kích thước, hình dáng, vị trí các đặc trưngtrên khuôn mặt, từ đó nhận dạng được người đang sử dụng
3 Nén ảnh và video:
thể giảm kích thước của ảnh và video mà không làm mất đi nhiều thôngtin quan trọng Việc nén này giúp cho việc lưu trữ và truyền tải ảnh vàvideo trở nên nhanh chóng và tiết kiệm hơn
Tuy nhiên, đây chỉ là một số ứng dụng tiêu biểu của SVD, thực tế SVD còn córất nhiều ứng dụng khác và đang được nghiên cứu và phát triển
4.1 Cách SVD (Singular Value Decomposition) vận hành
Ví dụ khi ta cho một ma trận Am×n bất kì, ta có thể phân tích thành dạng:
Am×n = Um×mΣm×n(Vn×n)T(1)Trong đó, U và V là các ma trận trực giao, Σ là ma trận đường chéo không vuôngvới các phần tử trên đường chéo σ1 ≥ σ2 ≥ · · · ≥ σr ≥ 0 = 0 = · · · = 0 Về cơbản, SVD sẽ có 2 dạng vận hành:
1 Compact hay còn gọi là phân tích gọn Khi viết lại biểu thức (1) dưới dạngtổng của các ma trận rank 1 ta sẽ được:
A = σ1u1vT1 + σ2u2v2T + · · · + σrurvTr
Với mỗi ma trận uiviT, 1 ≤ i ≤ r là một ma trận có hạng bằng 1
Nhưng ta cũng sẽ thấy rằng với phương trình trên, ma trận A chỉ phụ thuộcvào r cột đầu tiên củaU,V và r trên đường chéo của ma trận Σ, do đó ta có