1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo bài tập lớn môn đại số tuyến tính chủ đề 4 phương pháp phân tích singular value decomposition (SVD) và một số ứng dụng

21 6 0

Đ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 đề Phương pháp phân tích Singular Value Decomposition (SVD) và một số ứng dụng
Tác giả Nhóm: L05_ĐSTT_18
Người hướng dẫn TS. Nguyễn Hữu Hiệp
Trường học Trường Đại Học Bách Khoa – ĐHQG-HCM
Chuyên ngành Đại số tuyến tính
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 2,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Nếu x là vector riêng ứng với giá trị riêng λ của ma trận vuông A thì k.x cũng làvector riêng ứng với λ.. Giả sử ma trận đối xứng A có các vector riêng x,y ứng với các giá trị riêng ph

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG-HCM Khoa Kỹ thuật Hóa học & Khoa học ứng dụng 

BÁO CÁO BÀI TẬP LỚN Môn: Đại số tuyến tính

Chủ đề 4: Phương pháp phân tích Singular Value Decomposition (SVD) và một số ứng dụng

Giảng viên: TS Nguyễn Hữu Hiệp

Nhóm: L05_ĐSTT_18

TP Hồ Chí Minh, tháng 12 năm 2021

Trang 2

Danh sách thành viên:

Trang 3

MỤC LỤC

A Cơ sở lý thuyết 4

1 Hệ trực giao và hệ trực chuẩn: 4

Định nghĩa:Định Định nghĩa:nghĩa: 4

Định nghĩa:Tính Định nghĩa:chất: 4

1 Giá trị riêng, vector riêng của một ma trận: 4

Định nghĩa:Định Định nghĩa:nghĩa: 4

Định nghĩa:Tính Định nghĩa:chất: 4

Định nghĩa:Cách Định nghĩa:tìm Định nghĩa:trị Định nghĩa:riêng Định nghĩa:và Định nghĩa:vector Định nghĩa:riêng: 5

2 Chéo hóa ma trận: 5

Định nghĩa:Định Định nghĩa:Nghĩa: 5

Định nghĩa:Tính Định nghĩa:chất: 5

3 Singular Value Decomposition SVD): 6

5 Nguồn gốc tên gọi Singular Value Decomposition: 7

B Một số ứng dụng của SVD 9

1 Giảm chiều dữ liệu : 9

2 Nén ảnh : 9

3 PCA : 12

C Chương trình dùng để phân tích SVD của ma trận tùy ý và dùng để nén dữ liệu 12

1 Code: 12

2 Kết quả code: 13

*Đồ thị tính toán sai lệch khi nén ảnh: 19

D Nguồn tham khảo 19

Trang 4

A Cơ sở lý thuyết

1 Hệ trực giao và hệ trực chuẩn:

Định nghĩa :

 Vector x được gọi là vuông góc với vector y, ký hiệu x ⊥ y nếu (x,y) = 0

 Vector x được gọi là vuông góc với tập hợp con M, ký hiệu làx ⊥ M nếu ∀ y ∈ M

thì x ⊥ y

 Một tập hợp con M được gọi là họ trực giao nếu ∀ x , y ∈ Mx ≠ y thì x ⊥ y

 Một tập hợp con M được gọi là họ trực chuẩn, nếu M là họ trực giao và ∀ x ∈ M

thì ‖x‖=1

Tính chất:

 U-1 = UT : nghịch đảo của một ma trận trực giao chính là chuyển vị của nó

 Nếu U là ma trận trực giao thì chuyển vị của nó UT cũng là một ma trận trực giao

2 Giá trị riêng, vector riêng của một ma trận:

 Mỗi vector riêng có một giá trị duy nhất

 Nếu x là vector riêng ứng với giá trị riêng λ của ma trận vuông A thì k.x cũng làvector riêng ứng với λ

 Nếu λ là giá trị riêng của ma trận vuông A thì λn cũng là giá trị riêng của ma trận

An

 Một ma trận đối xứng: A = AT, thì các vector riêng vuông góc với nhau

Giả sử ma trận đối xứng A có các vector riêng x,y ứng với các giá trị riêng phân biệt

λ, γ Khi đó:

Trang 5

λ.xT.y = (λ.x)T.y = (A.x)T.y = xT.AT.y = xT.A.y = xT.γ.y=γ.xT.y

Ứng với mỗi λk, giải phương trình (A – λ0I).X = 0

¿>X ≠ 0là vector riêng của A ứng với λk

3 Chéo hóa ma trận:

Định Nghĩa :

 Ma trận vuông A gọi là đối xứng nếu: A T=A

 Ma trận vuông P gọi là trực giao nếu: P−1=P T

 Điều này tương đương: P P−1

 Ma trận vuông A được gọi là chéo hóa được nếu tồn tại ma trận chéo D và matrận khả nghịch P thỏa

Trang 6

 Ma trận vuông A chéo hóa được khi và chỉ khi bội hình học của mọi trị riêng

bằng với bội đại số của nó

 Nếu A là ma trận đối xứng, thì:

 Trị riêng của A là các số thực

 A luôn luôn chéo hóa trực giao được

 Hai vector riêng ứng với các trị riêng khác nhau vuông góc với nhau

4 Singular Value Decomposition (SVD):

 Phương pháp phân tích trị riêng (SVD- SingularValue Decomposition) là một đề

tài rất được quan tâm của đại số tuyến tính Phương pháp này có nhiều ứng dụng

thực tế Đặc điểm quan trọng của phương pháp này có thể áp dụng cho bất kỳ ma

trận thực m x n nào Nội dung của nó là:

A =USVT (1)

* Định nghĩa: Định nghĩa:Trong Định nghĩa:đó: Định nghĩa: Định nghĩa: U và V là các ma trận trực giao và S là ma trận đường chéo Ma trận U là

ma trận gồm các vector riêng trái của A, ma trận V là ma trận gồm các vector riêng phải

của A và ma trận S là ma trận đường chéo, mỗi phần tử đường chéo là một trị riêng của

A Các trị riêng được sắp trên đường chéo chính theo thứ tự sau:

s1 > s 2 > > s r > s r +1 = = s p = 0

Định nghĩa: Để tìm các ma trận S, U, V ta thực hiện các bước như sau:

Bước 1: Tìm ma trận V Nhân A T vào hai vế của (1), ta có:

A T A = (USV T ) T USV T = V.S T U T U.S.V T

= V.S T S.V T

= V.S 2 V T

Do UT.U=I Như vậy, để tìm ma trận S và V, ta chỉ cần tìm các trị riêng và các

vector riêng của AT.A vì từ (1) ta thấy các trị riêng của AT.A chính là bình phương

các phần tử của S còn các vector riêng của AT.A chính là các cột của V.

Bước 2: Tìm ma trận U Nhân hai vế của (1) với A T Định nghĩa:và sử dụng: VTV = I ta cũng có:

A A T = U.S 2 U T

Trang 7

Vậy các cột của U chính là các vector riêng của A AT Cuối cùng, ta phân tích ma trận A dưới dạng như sau:

Singular Value Decomposition:

Tạm bỏ qua chiều của mỗi ma trận, từ (1) ta có:

là một ma trận đường chéo với các phần tử trên đường chéo là

λ1, λ2, … , λ r.Vậy (*) chính là Eigen Decomposition (phương trình đặc trưng) của A A T.Thêm nữa λ1, λ2, … , λ rchính là các trị riêng của A A T Ma trận A A T luôn là ma trận nửaxác định dương nên các trị riêng của nó là không âm Các σ1 là căn bậc hai của các trịriêng của A A T

còn được gọi là Singular Values của A cái tên Singular ValueDecomposition xuất phát từ đây

Vd: Tìm phân tích SVD của ma trận sau A=(−1 1 21 2 1).

Lời Định nghĩa:giải:

Ta chéo hóa trực giao ma trận AA T=UM U T

Trang 8

Ta có AA T=(6 33 6)=B

Giải phương trình: det (B− λ I )=0=¿[λ1=3

λ2=9=¿M=(3 00 9)+ Ứng với λ1=3 ta được cơ sở E1=(1 ,1)T

+ Ứng với λ2=9 ta được cơ sởE2=(−1 , 1)T

Chia mỗi vector cho độ dài của nó và lập ma trận trực giao: U =( √12

−1

√21

+ Ứng với λ1=0 ta được cơ sở E1¿(2,1,−1)T

+ Ứng với λ2=3 ta được cơ sở E2¿(0,1, 1)T

+ Ứng với λ3=9 ta được cơ sở E3¿(−7,1,−1)T

Chia mỗi vector cho độ dài của nó và lập ma trận trực giao

¿>V =( √26 0

−7

√511

S=M=( √03 0 03 0)

Trang 9

B Một số ứng dụng của SVD

Ngoài các ứng dụng trong tối ưu cực trị rời rạc, lát cắt cực đại, K-means Clustering, Graph Partitioning,…SVD được sử dụng nhiều trong các lĩnh vực (nhất là Machine Learning) ứng dụng cơ bản nhất là trong nén và xử lý hình ảnh

1 Giảm chiều dữ liệu :

- Các ma trận Ak gần khít với A và có hạng bằng k nên ta có thể dùng SVD để giảmchiều dữ liệu

- Việc giảm chiều dữ liệu giúp ta có khả năng biễu diễn bộ dữ liệu đó một cách kháchính xác trên đồ thị Giả sử ta có một tập dữ liệu 4 chiều và ta muốn biểu diễn tập dữliệu này trên đồ thị thì ta có thể dùng SVD để giảm chiều dữ liệu về 3

- Việc giảm chiều dữ liệu nhưng vẫn giữ được đặc trưng của bộ dữ liệu còn giúp sốlượng tham số cần tính toán là ít hơn nên tính toán nhanh hơn

2 Nén ảnh :

Cách thức dùng phương pháp SVD để nén ảnh như sau:

- Cho A là ảnh xám, hoặc một trong 3 thành phần ảnh màu, được biểu diễn bởi ma trận

m×n Sử dụng biến đổi SVD của A chúng ta có thể biểu diễn ma trận ảnh

Biến đổi SVD thích hợp với điều này vì ta có thể xấp xỉ A bằng cách bỏ đi các thành

phần ảnh tương ứng với các trị đơn i có giá trị nhỏ, do đó ảnh sẽ không mất nhiềuthông tin khi thay chúng bằng 0 Từ đó, ảnh xấp xỉ được tạo ra như sau:

k

T

k i i i i

 u v

Trang 10

Điều đó có nghĩa là thay vì toàn bộ A, chúng ta có thể chỉ cần lưu trữ và truyền nhận

1 , 2 ,  , k, , 1 2 ,  , k

u u u v v v và  1   2   k

- Hình 1: Minh họa việc sử dụng SVD để nén ảnh Ảnh ban đầu kích thước m×n, có

thể sử dụng biến đổi SVD cho ảnh kích thước m×n ở trên ta thu được 3 thành phần U,

S, V , phần trắng của ma trận tượng trưng cho các phần tử không cần lưu trữ

Hình1 Mô tả cách thức SVD nén ảnh.

- Khi k đủ nhỏ, ta sẽ có tổng số cần lưu là k m n(  1)(m n ) và nén ảnh bằng SVD

trở nên hiệu quả Chú ý rằng nếu ảnh A có hạng r nhỏ khiến cho r m n(  1)(m n )

thì việc phân tích SVD sẽ làm giảm không gian lưu trữ mà không làm mất thông tinảnh

- Sử dụng phần mềm Matlab, thực hiện nén ảnh sử dụng biến đổi SVD với các giá trị k

khác nhau cho một tấm ảnh kích thước 1920 × 1080

- Kết quả thu được thể hiện ở Hình 2:

=

Trang 11

Hình gốc

k=1

k=301

Hình 2 Ảnh gốc (a) và kết quả giải nén với các giá trị k khác nhau

- Đồ thị mô tả sự sai số giữa ảnh gốc ban đầu và ảnh sau khi nén, cùng với đánh giá về

hiệu quả nén khi áp dụng SVD với các giá trị k khác nhau, thể hiện ở Hình 3.

k=61

Trang 12

Hình 3

Sai số giữaảnh nén vàảnh gốc với các giátrị k khác nhau

Rõ ràng là khigiá trị k cànglớn, ảnh khôiphục sau khi nén càng gần với ảnh gốc và ngược lại Điều này dễ hiểu vì khi k cànglớn, thông tin mất đi càng ít, sai biệt với ảnh gốc cũng giảm đi Do tỉ lệ nén bằng

k m n

mn

 

nên nó tỉ lệ thuận với k như minh họa trong Hình 3 Ở những hình có cấu

trúc đặc biệt hơn như là có hạng nhỏ thì hiệu quả nén càng cao

3 PCA :

- Ta thấy rằng, khi từ một tập điểm cho trước, việc giảm chiều cũng như là kẻ một siêuphẳng biểu diễn khít tập điểm đã cho Ta không thể dùng các ma trận Ak một cách trựctiếp được, vì các ma trận Ak biểu diễn một siêu phẳng đi qua góc tọa độ

- Ta có thể thấy rằng v1 biểu diễn phương mà tập điểm đó phân bố tập trung nhất khinhìn từ gốc tọa độ (‖A v1‖ đạt giá trị lớn nhất) Sau đó v2 lại biểu diễn phương vuônggóc với v1 mà phương đó tập điểm phân bố tập trung nhất cũng khi nhìn từ gốc tọa độ Vậy một cách đơn giản, ta chỉ cần dời nó về trọng tâm của tập điểm và dùng SVD giảmchiều xuống

Trang 13

C Chương trình dùng để phân tích SVD của ma trận

inImage=imread('L05_nhom18.png'); % doc file anh

inImage=rgb2gray(inImage); % chuyen anh mau sang 2 mau trang den

inImageD=double(inImage); % chuyen doi du lieu cua hinh anh

[U,S,V]=svd(inImageD); % phan tich hinh anh

% dung phuong phap SVD de phan tich va tao lai anh

dispEr = []; % tao ma tran rong dispEr

numSVals = []; % tao ma tran rong numSVals

for k=1:30:301 % cho k chay tu 1 den 301 voi buoc nhay la 30

C = S; % gan du lieu ma ta muon giu lai cua ma tran

S vao C

C(k+1:end,:)=0; % tu hang k+1 den het cho = 0

C(:,k+1:end)=0; % tu cot k+1 den het cho = 0

% => tao ma tran cheo C

D=U*C*V'; % dung lai anh bang viec phan tich anh

% xuat hinh anh ra man hinh va tinh toan loi

figure; % lam moi lai hinh anh

buffer = sprintf('Hinh anh moi xuat ra su dung %d

imshow(uint8(D)); % xuat hinh anh o 8bit

title(buffer); % xuat ten cua hinh anh duoc tao laivoi gia tri k tuong ung

error=sum(sum((inImageD-D).^2)); % tinh toan lai bang cong thuc (sai lech giua anh duoc tao lai va anh goc)

% luu gia tri de xuat len man hinh

dispEr = [dispEr; error]; %bieu dien gia tri lai thanh ma tran 1 cot nhieu hang

numSVals = [numSVals; k]; % bieu dien gia tri lai thanh ma tran 1 cot nhieu hang

end

% ve do thi tinh toan sai lech

Trang 14

figure; % lam moi do thi

title('Do thi tinh toan sai lech khi nen anh'); % dat ten

do thi

plot(numSVals, dispEr); % ve do thi

grid on % ke luoi toa do

xlabel('So luong Singular Value duoc su dung'); % tao truc

Trang 15

*Figure 3:

Trang 16

*Figure 5:

*Figure 6:

Trang 17

*Figure 7:

*Figure 8:

Trang 18

*Figure 9:

*Figure 10:

Trang 20

D Nguồn tham khảo

- Đại số tuyến tính – Đặng Văn Vinh

- Đại số tuyến tính nâng cao – Đặng Văn Vinh

- Singular Value Decomposition - Mathworks

- Matlab và ứng dụng trong viễn thông - TS Phạm Hồng Liên, Đặng Ngọc Khoa - Trần Thanh Phương

- Sử dụng Matlab trong đại số tuyến tính

- Giới thiệu về ứng dụng TF-IDF và SVD trong thu thập thông tin dữ liệu Website

- Tóm tắt luận văn thạc sĩ chuyên ngành Khoa học Máy tính – Phạm Hoàng Trương

- SVD trong nén ảnh (Khoa Điện – Điện tử, Đại học Duy Tân)

Ngày đăng: 06/05/2023, 15:36

HÌNH ẢNH LIÊN QUAN

Hình gốc - BÁO cáo bài tập lớn môn đại số tuyến tính chủ đề 4 phương pháp phân tích singular value decomposition (SVD) và một số ứng dụng
Hình g ốc (Trang 11)
Hình 2. Ảnh gốc (a) và kết quả giải nén với các giá trị  k  khác nhau. - BÁO cáo bài tập lớn môn đại số tuyến tính chủ đề 4 phương pháp phân tích singular value decomposition (SVD) và một số ứng dụng
Hình 2. Ảnh gốc (a) và kết quả giải nén với các giá trị k khác nhau (Trang 11)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w