1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo BTL Đại số tuyến tính

19 8 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề Tài 7: Nêu Cơ Sở Lý Thuyết Của Phân Tích SVD. Ứng Dụng Của Phân Tích SVD Để Nén Dữ Liệu
Tác giả Nguyễn Minh Khánh, Nguyễn Đăng Khoa, Nguyễn Hoàng Kim, Trần Hồng Lam, Nguyễn Hữu Lâm, Lê Xuân Lĩnh, Dương Trọng Khôi
Người hướng dẫn ThS. Nguyễn Xuân Mỹ
Trường học Đại Học Quốc Gia Tp. Hồ Chí Minh
Chuyên ngành Đại Số Tuyến Tính
Thể loại báo cáo
Năm xuất bản 2022
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 19
Dung lượng 698,78 KB

Nội dung

NÊU CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD. ỨNG DỤNG CỦA PHÂN TÍCH SVD ĐỂ NÉN DỮ LIỆU Mục đích của việc nén ảnh số là mã hoá các dữ liệu ảnh về một dạng thu gọn, tối thiểu hoá cả số bit dùng để biểu diễn ảnh lẫn các sai khác do quá trình nén gây ra. Tầm quan trọng của vấn đề nén ảnh có thể thấy rõ qua các số liệu cụ thể: với một bức ảnh trắng đen kích thước 512x512 pixels, mỗi pixel được biểu diễn bởi 8 bits (biểu diễn một trong 256 giá trị mức xám), cần khoảng 256 Kbytes dữ liệu. Với ảnh màu cần gấp ba lần con số này. Với các dữ liệu video, cần 25 frames trên một giây, như vậy một đoạn video chỉ 30s phải cần đến 540MB dữ liệu, một con số quá lớn. Do đó vấn đề nén ảnh là hết sức cần thiết. Nói chung, các phương pháp nén ảnh chủ yếu được phân thành 2 nhóm: nhóm không tổn hao và nhóm có tổn hao. Các phương pháp nén ảnh không tổn hao cho phép biểu diễn ảnh với chất lượng hoàn toàn ngang bằng với ảnh gốc. Các phương pháp này dựa trên các giải thuật nén được áp dụng cho tất cả các đối tượng dữ liệu nói chung chứ có sự đánh đổi giữa dung lượng ảnh với chất lượng ảnh. không chỉ riêng dữ liệu ảnh, ví dụ mã Huffman, mã số học, mã Golomb, ... Tuy nhiên, các phương pháp này không lợi dụng được những đặc tính riêng của dữ liệu ảnh và tỷ lệ nén rất thấp. Do đó, trong thực tế, các phương pháp nén có tổn hao là các phương pháp được sử dụng chủ yếu. Với các phương pháp này, luôn có sự đánh đổi giữa dung lượng ảnh với chất lượng ảnh.

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CƠ KHÍ

- -

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

ĐỀ TÀI 7: NÊU CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD ỨNG DỤNG CỦA PHÂN

TÍCH SVD ĐỂ NÉN DỮ LIỆU

TP HỒ CHÍ MINH, NĂM 2022

GVHD:

Lớp:

Nhóm:

SVTH:

ThS Nguyễn Xuân Mỹ L11

07 Nguyễn Minh Khánh Nguyễn Đăng Khoa Dương Trọng Khôi Nguyễn Hoàng Kim Trần Hồng Lam Nguyễn Hữu Lâm

Lê Xuân Lĩnh

2111493

2113764

2113786

2111617

2110309

2113881

2113920

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CƠ KHÍ

- -

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

ĐỀ TÀI 7: NÊU CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD ỨNG DỤNG CỦA PHÂN

TÍCH SVD ĐỂ NÉN DỮ LIỆU

GVHD:

Lớp:

Nhóm:

SVTH:

ThS Nguyễn Xuân Mỹ L11

07 Nguyễn Minh Khánh Nguyễn Đăng Khoa Dương Trọng Khôi Nguyễn Hoàng Kim Trần Hồng Lam Nguyễn Hữu Lâm

Lê Xuân Lĩnh

2111493

2113764

2113786

2111617

2110309

2113881

2113920

TP HỒ CHÍ MINH, NĂM 2022

Trang 3

LỜI CẢM ƠN

Sau giai đoạn dịch Covid – 19 diễn biến khó khăn thì nhóm rất vui

vì đã được Cô hướng dẫn và đã hoàn thành Báo cáo cuối kỳ

Đầu tiên nhóm xin cám ơn Cô – ThS Nguyễn Xuân Mỹ trong suốt thời gian qua đã tận tình hướng dẫn, truyền đạt những kiến thức môn học đến với chúng em Và nhờ như vậy mà nhóm có thể hoàn thành được Báo cáo Bài tập lớn lần này Đây không chỉ là nền tảng vững chắc cho quá trình học tập, nghiên cứu mà còn là hành trang quý báu để nhóm ứng dụng vào thực tiễn khi làm việc

Trong quá trình làm bài, dù đã cố gắng và nỗ lực tìm hiểu rất nhiều nhưng cũng không thể nào tránh khỏi những sai sót, những thiếu hụt về mặt kỹ năng, kiến thức Do đó nhóm rất mong sẽ được đón nhận những ý kiến, góp ý từ Cô để bài làm được hoàn thiện hơn cả về nội dung lẫn hình thức

Lời cuối cùng, nhóm xin kính chúc Cô luôn có nhiều sức khỏe, hạnh phúc bên gia đình, thành công trong cuộc sống lẫn sự nghiệp của mình

Nhóm xin trân trọng cám ơn!

Trang 4

LỜI NÓI ĐẦU

Mục đích của việc nén ảnh số là mã hoá các dữ liệu ảnh về một dạng thu gọn, tối thiểu hoá cả số bit dùng để biểu diễn ảnh lẫn các sai khác do quá trình nén gây ra Tầm quan trọng của vấn đề nén ảnh có thể thấy rõ qua các số liệu cụ thể: với một bức ảnh trắng đen kích thước 512x512 pixels, mỗi pixel được biểu diễn bởi 8 bits (biểu diễn một trong 256 giá trị mức xám), cần khoảng 256 Kbytes dữ liệu Với ảnh màu cần gấp ba lần con số này Với các dữ liệu video, cần 25 frames trên một giây, như vậy một đoạn video chỉ 30s phải cần đến 540MB dữ liệu, một con số quá lớn

Do đó vấn đề nén ảnh là hết sức cần thiết

Nói chung, các phương pháp nén ảnh chủ yếu được phân thành 2 nhóm: nhóm không tổn hao và nhóm có tổn hao Các phương pháp nén ảnh không tổn hao cho phép biểu diễn ảnh với chất lượng hoàn toàn ngang bằng với ảnh gốc Các phương pháp này dựa trên các giải thuật nén được

áp dụng cho tất cả các đối tượng dữ liệu nói chung chứ có sự đánh đổi giữa dung lượng ảnh với chất lượng ảnh không chỉ riêng dữ liệu ảnh, ví

dụ mã Huffman, mã số học, mã Golomb, Tuy nhiên, các phương pháp này không lợi dụng được những đặc tính riêng của dữ liệu ảnh và tỷ lệ nén rất thấp Do đó, trong thực tế, các phương pháp nén có tổn hao là các phương pháp được sử dụng chủ yếu Với các phương pháp này, luôn có

sự đánh đổi giữa dung lượng ảnh với chất lượng ảnh

Trang 5

BẢNG PHÂN CHIA CÔNG VIỆC

• Nguyễn Hoàng Kim III ỨNG DỤNG CỦA PHÂN TÍCH SVD ĐỂ NÉN

DỮ LIỆU

• Lê Xuân Lĩnh

• Trần Hồng Lam

• Dương Trọng Khôi

* Tổng hợp: Trần Hồng Lam, Dương Trọng Khôi

Trang 7

DANH MỤC HÌNH ẢNH

Hình 4.1 Ảnh gốc và ảnh nén bằng giải thuật SVD………8 Hình 4.2 Độ nét của ảnh với các giá trị k khác nhau……… 9 Hình 4.3 Ví dụ về SVD cho ảnh……… 10

Trang 8

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 1 NHÓM 7

CHƯƠNG I: GIỚI THIỆU CHUNG

Phương pháp phân tích SVD là một trong những phương pháp thuộc

nhóm matrix factorization (ma trận phân loại) đượ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 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 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 và 1 ma trận đường chéo 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 chỉ 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 phí 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

Trang 9

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 2 NHÓM 7

CHƯƠNG II: CƠ SỞ LÝ THUYẾT

2.1 GIÁ TRỊ RIÊNG VÀ VECTOR RIÊNG CỦA MA TRẬN

2.1.1 Định nghĩa

Cho A là ma trận vuông cấp 𝑛, 𝑥 = (𝑥1, 𝑥2, … 𝑥𝑛) 𝑥 ∈ ℝn hoặc

𝑥 ∈ ℂn, 𝑥 ≠ (0,0, 0) Nếu có số 𝜆 (thực hoặc phức) thỏa mãn:

𝐴𝑥 = 𝜆𝑥, tức là 𝐴[𝑥] = 𝜆[𝑥]

với [𝑥] là ma trận đặt dọc của 𝑥, thì:

o 𝜆 được gọi là giá trị riêng của ma trận 𝐴

o x được gọi là ma trận riêng của ma trận 𝐴, tương ứng với giá trị riêng 𝜆

2.1.2 Tính chất

o Tính chất 1: Mỗi vector riêng có một giá trị riêng duy nhất

o Tính chất 2: Nếu 𝑥 là vector riêng ứng với giá trị riêng 𝜆 của

ma trận vuông 𝐴 thì𝑘𝑥 cũng là vector riêng ứng với 𝜆:

𝐴𝑥 = 𝜆𝑥 ⟺ 𝐴(𝑘𝑥) = 𝜆(𝑘𝑥)

o Tính chất 3: Nếu 𝜆 là giá trị riêng của ma trận vuông 𝐴 thì 𝜆n

là giá trị riêng của ma trận 𝐴𝑛

o Tính chất 4: Giá trị riêng của ma trận vuông 𝐴 là nghiệm của

phương trình:

𝑑𝑒𝑡(𝐴 − 𝜆𝐼) = 0

o Tính chất 5: Ma trận vuông A có giá trị riêng 𝜆 thì họ vector

riêng ứng với 𝜆 là nghiệm của:

(𝐴 − 𝜆𝐼)𝑥 = 0

o Tính chất 6: Một ma trận đối xứng thì vector riêng vuông góc

với nhau

2.2 CHÉO HÓA MA TRẬN

2.2.1 Định nghĩa

Cho ma trận vuông 𝐴, nếu tồn tại ma trận khả nghịch sao cho

𝑃−1𝐴𝑃 là ma trận đường chéo thì ta nói rằng ma trận 𝐴 chéo hóa được và

ma trận 𝑃 chéo hóa ma trận 𝐴 hay ma trận 𝐴 đưa về được dạng chéo hóa nhờ ma trận 𝑃

hóa được là nó có 𝑛 vectơ riêng độc lập tuyến tính

hóa 𝐵 thì các phần tử trên đường chéo chính của 𝐵 là các giá trị riêng của ma trận 𝐴

Trang 10

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 3 NHÓM 7

trận chéo 𝐵 như trong phương pháp trên : 𝐴 = 𝑃𝐵𝑃−1 Khi đó:

𝐴2 = 𝐴 𝐴 = (𝑃𝐵𝑃−1)(𝑃𝐵𝑃−1) = 𝑃𝐵(𝑃𝑃−1)𝐵𝑃−1 = 𝑃𝐵2𝑃−1

𝐴3 = 𝐴2 𝐴 = (𝑃𝐵2𝑃−1)(𝑃𝐵𝑃−1) = 𝑃𝐵2(𝑃𝑃−1)𝐵𝑃−1 = 𝑃𝐵3𝑃−1

𝐴𝑛 = 𝐴𝑛−1 𝐴 = (𝑃𝐵𝑛−1𝑃−1)(𝑃𝐵𝑃−1) = 𝑃𝐵𝑛−1(𝑃𝑃−1)𝐵𝑃−1 =

𝑃𝐵𝑛𝑃−1

2.2.2 Chéo hóa đa thức ma trận

Cho A là ma trận vuông cấp 𝑛, hàm số 𝑓(𝐴) là đa thức của ma trận

𝐴 Giả sử ma trận 𝐴 có các trị riêng 𝜆1, 𝜆2, … 𝜆𝑛, ma trận chéo hóa được và dạng chéo hóa của 𝐴 là:

Khi đó 𝑓(𝜆1), 𝑓(𝜆2), … 𝑓(𝜆𝑛), là các giá trị riêng của đa thức ma trận 𝑓(𝐴) và 𝑓(𝐴) cũng chéo hóa được như sau:

2.3 SINFULAR VALUE DECOMPOSITION (SVD)

2.3.1 Giới thiệu

Singular Value Decomposition là một phương pháp phân tích ma trận 𝐴 kích thước 𝑚 × 𝑛 thành dạng tích ma trận: 𝐴 = 𝑈𝑆𝑉𝑇 Trong đó:

thành một hệ trực chuẩn

• 𝑆 là ma trận đường chéo kích thước 𝑟 × 𝑟 (𝑟 là hạng của 𝐴)

• 𝑉 là ma trận kích thước 𝑛 × 𝑟 sao cho các vector cột tạo

thành một hệ trực chuẩn

Đặt 𝑈 = (𝜐1, 𝜐2 , , 𝜐𝑟), 𝑉 = (𝜈1, 𝜈2, , 𝜈𝑟), 𝑆 = 𝑑𝑖𝑎𝑔(𝜎1,

𝜎2, , 𝜎𝑟) thì ta có dạng tương đương của 𝐴 = 𝑈𝑆𝑉𝑇như sau:

Trang 11

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 4 NHÓM 7

• Các vector 𝜐1, 𝜐2 , , 𝜐𝑟 gọi là các left singular vector.

• Các vector ν 1 ,ν 2 , ,ν r gọi là các right singular vector

• Các số σ 1 ,σ 2 , ,σ r gọi là các singular value.

2.3.2 Tính chất

Giả sử ta có phân tích SVD của ma trận A như sau:

A=σ 1 υ 1 ν 1 T +σ 2 υ 2 ν 2 T +…+σ r υ r ν r T, trong đó 𝜎1 ≥ 𝜎2 ≥… ≥ 𝜎𝑟.Với 1 ≤

𝑘 ≤ 𝑟, đặt A =σ 1 υ 1 ν 1 T +σ 2 υ 2 ν 2 T +…+σ K υ K ν K T thì rõ ràng A k có hạng bằng k Có

thể thấy A k cũng tích của ba ma trận: k cột đầu của U, ma trận vuông k×k đầu

tiên của S và k hàng đầu của VT

Ta có các tính chất sau:

o Tính chất 1:

Ta có:

𝜈1 = 𝑎𝑟𝑔𝑚𝑎𝑥 ||𝐴𝑥|| (||𝑥|| = 1), 𝜈𝑖 = 𝑎𝑟𝑔𝑚𝑎𝑥||𝐴𝑥|| (||𝑥|| = 1, 𝑥 ꓕ 𝜈1,𝜈2, … ,𝜈𝑖−1) Giả sử 𝑥 = ∑𝑟𝑖=1𝛼𝑖𝑣𝑖 thì ‖𝐴𝑥‖ = ‖∑𝑟𝑖=1𝛼𝑖𝐴𝑣𝑖‖ = ‖∑𝑟𝑖=1𝛼𝑖𝜎𝑖𝑣𝑖‖ =

√∑𝑟 𝛼𝑖2𝜎𝑖2

𝑖=1

Khi đó để ||Ax|| lớn nhất thì √∑𝑟 𝛼𝑖2𝜎𝑖2

do ∑𝑟𝑖=1𝛼𝑖2 = 1 và 𝜎𝑗 ≤ 𝜎𝑖 nên ‖𝐴𝑥‖ ≤ 𝜎1 dấu bằng xảy ra khi và chỉ khi

Tiếp theo 𝑥 = ∑𝑟𝑖=1𝛼𝑖𝑣𝑖 mà 𝑥ꓕ𝑣1thì α 1 =0, do đó ‖𝐴𝑥‖ =

√∑𝑟 𝛼𝑖2𝜎𝑖2

thế và ta thu được kết quả

o Tính chất 2:

giá trị nhỏ nhất khi và chỉ khi X = Ak

của A - X

Các vector hàng của A - X đạt giá trị nhỏ nhất về độ dài khi và chỉ khi

vector hàng tương ứng ở X là hình chiếu của vector hàng tương ứng ở A trên

không gian sinh bởi các vector hàng của X.

Do đó ||A - X|| F nhỏ nhất khi và chỉ khi các vector hàng của X là hình

chiếu của các vector hàng của A.

ν 1 ,ν 2 , ,ν k

Trang 12

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 5 NHÓM 7

2.3.3 Nhận xét

• Phần định nghĩa giới thiệu về SVD là cách phân tích một

ma trận qua dạng SVD bằng cách tính các giá trị riêng và vector riêng

của A T A và AA T

• Theo tính chất 2, ta phần nào đó có thể nói rằng A k là ma trận xấp xỉ nhất với A trong tất cả các ma trận hạng bé hơn hoặc bằng

k, với k càng cao thì càng xấp xỉ

• Một cách hình học, V k =span({ν 1 ,ν 2 , ,ν k }) là không gian k

chiều khít A nhất Về bản chất, có lẽ định hướng về hình học này là

nguyên nhân sinh ra SVD

• Tuy nhiên thì đi từ hướng chưa có gì này nó hơi khó một chút nên mình đi theo hướng ngược lại để bài viết ngắn hơn

*Các hàm hỗ trợ tính SVD:

- Python, hàm tính SVD là U, s, V = np.linalg.svd( )

- Octave, Matlab là [U, s, V] = svd( )

Trang 13

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 6 NHÓM 7

CHƯƠNG III: ỨNG DỤNG CỦA PHÂN TÍCH SVD ĐỂ NÉN

DỮ LIỆU

3.1 NÉN ẢNH SỐ

Bằng cách phân tích ma trận ảnh A dưới dạng A=USVT , ta có thể biểu diễn xấp xỉ ma trận A bằng ít phần tử hơn Nếu hạng của ma trận A là r<m hoặc r<n, ta có thể giảm đi những thông tin thừa:

A=s 1 u 1 v T 1 + s 2 u 2 v T 2 + … + s r u r v T r + s r+1 u r+1 v T r+1 + …(4.2) Hơn nữa, các trị riêng được sắp xếp theo thứ tự giảm dần, do đó những

số hạng phía sau sẽ có ít ảnh hưởng đến ảnh và có thể bỏ đi các số hạng này

MATLAB có hàm svd để thực hiện nhân tử hoá ma trận A thành USVT

>> [U,S,V] = svd(A)

Chúng ta có thể sử dụng hàm này kết hợp với phương trình (4.2) để viết

một hàm nén ảnh dùng giải thuật SVD Ví dụ hàm svdcompr Cú pháp của nó

là:

>> im = svdcompr (infile,singvals,outfile)

Trong đó, infile và outfile là tên các file ảnh gốc và ảnh nén, singvals là

số các trị riêng lớn nhất được giữ lại

3.2 GIẢM CHIỀU DỮ LIỆU (PCA)

Giả sử ta có một tập dữ liệu nhiều ảnh có kích thước rất lớn Khả năng lưu trữ của server là có hạn Trong tình huống này làm thể nào để giảm kích thước của bộ ảnh vừa với dung lượng server mà thông tin của các bức ảnh vẫn giữ được một lượng lớn Câu trả lời sẽ có sau khi khi ta thực hành nén một bức ảnh bằng thuật toán truncate SVD

Để lưu ảnh với Truncated SVD, ta sẽ lưu các ma trận

Tổng số phần tử phải lưu là r(m+n+1) với chú ý rằng ta chỉ cần lưu

các giá trị trên đường chéo của S r Giả sử mỗi phần tử được lưu bởi một số

thực 4 byte, thế thì số byte cần lưu trữ là 4r(m+n+1) Nếu so giá trị này với

ảnh gốc có kích thước mn, mỗi giá trị là 1 số nguyên 1 byte, tỉ lệ nén là:

Khi r≪ m,n ta được một tỉ lệ nhỏ hơn 1

Chú ý rằng trong ma trận S, các giá trị trên đường chéo là không âm và

các mang giá trị lớn, các giá trị còn lại thường nhỏ và gần 0 Khi đó ta có

Trang 14

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 7 NHÓM 7

thể xấp xỉ ma trận A bằng tổng của ma trận có rank 1:

Dưới đây là một định lý thú vị Định lý này nói rằng sai số do cách xấp

xỉ trên chính là căn bậc hai của tổng bình phương của các singular values mà ta

đã bỏ qua ở phần cuối của S Ở đây sai số được định nghĩa là Frobineous norm

của hiệu hai ma trận:

Thay k=0 ta sẽ có:

Từ đó:

Như vậy, sai số do xấp xỉ càng nhỏ nếu phần singular values bị truncated

có giá trị càng nhỏ so với phần singular values được giữ lại Đây là một định lý quan trọng giúp xác định việc xấp xỉ ma trận dựa trên lượng thông tin muốn giữ lại

Ví dụ, nếu ta muốn giữ lại ít nhất 90% lương thông tin trong A, trước hết

ta tính , sau đó chọn k là số nhỏ nhất sao cho:

Trang 15

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 8 NHÓM 7

CHƯƠNG IV: CÁC VÍ DỤ CỦA ỨNG DỤNG SVD ĐỂ NÉN

DỮ LIỆU BẰNG MATLAB

4.1 VÍ DỤ 1

Thực hiện giải thuật nén SVD dùng hàm svdcompr: Trong ví dụ này ta chỉ giữ lại 30 số hạng đầu tiên trong phương trình (4.2)

in = imread('a2.jpg') ;

out=svdcompr('a2.jpg',30,'svd.jpg');

subplot(1,2,1)

imshow(in),title('hinh goc');

subplot(1,2,2)

imshow(out),title('k = 30');

Hình 4.4 Ảnh gốc và ảnh nén bằng giải thuật SVD

4.2 VÍ DỤ 2

in = imread('a1.jpg') ;

ranks=[5,10,20,60,100];

for i=1:length(ranks)

out=svdcompr('a1.jpg',ranks(i),sprintf('svd%d.jpg',ranks(i)));

pause(1);

imshow(out),title(sprintf('k = %d',ranks(i)));

pause(2);

end;

subplot(2,3,1)

imshow('a1.jpg'),title('anh goc')

subplot(2,3,2)

imshow('svd5.jpg'),title('k = 5')

subplot(2,3,3)

Trang 16

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

GVHD: THS NGUYỄN XUÂN MỸ TRANG 9 NHÓM 7

imshow('svd100.jpg'),title('k = 100')

imshow('svd10.jpg'),title('k = 10')

subplot(2,3,4)

imshow('svd20.jpg'),title('k = 20')

subplot(2,3,5)

imshow('svd60.jpg'),title('k = 60')

subplot(2,3,6)

Dưới đây là kết quả của đoạn chương trình trên với các giá trị k (số vòng lặp, cũng là số trị b riêng được giữ lại) khác nhau:

Hình 4.5 Độ nét của ảnh với các giá trị k khác nhau

Trong hình vẽ 4.2, hình b ứng với số trị riêng giữ lại là 5, ảnh này tiết kiệm được 99,9% dung lượng so với ảnh gốc nhưng chất lượng kém, chỉ thấy được dạng ảnh mà không thấy rõ các chi tiết Nếu giữ lại 60 trị riêng lớn nhất, chất lượng ảnh đã đạt gần với ảnh gốc (hình e) và ta tiết kiệm được khoảng 84% dung lượng Khi tăng số lần lặp lên 100, chất lượng ảnh rất tốt (hình f) mà vẫn tiết kiệm được 55% so với ảnh gốc

Ngày đăng: 21/02/2024, 06:29

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w