Em xin bày tỏ lòng biết ơn tới các thầy cô giáo và các cán bộnhân viên của Viện Toán học, các thầy cô giáo ở Khoa Toán trường Đại học Sư phạm Hà Nội 2, đặc biệt là tổ Ứng dụng, đã tạo đi
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS LÊ HẢI YẾN
Hà Nội – Năm 2017
Trang 3LỜI CẢM ƠN
Khóa luận này được hoàn thành tại Viện Toán học, Viện hàn lâm Khoa Học vàCông nghệ Việt Nam Em xin bày tỏ lòng biết ơn tới các thầy cô giáo và các cán bộnhân viên của Viện Toán học, các thầy cô giáo ở Khoa Toán trường Đại học Sư phạm
Hà Nội 2, đặc biệt là tổ Ứng dụng, đã tạo điều kiện thuận lợi cho em trong quá trìnhthực hiện khóa luận này
Đặc biệt, em xin bày tỏ sự kính trọng và lòng biết ơn sâu sắc tới TS Lê HảiYến, người đã trực tiếp hướng dẫn, chỉ bảo tận tình giúp đỡ để em có thể hoàn thànhkhóa luận này
Do thời gian, năng lực và điều kiện bản thân còn hạn chế nên bản khóa luậnkhông thể tránh khỏi những sai sót Vì vậy, em rất mong nhận được những ý kiến góp
ý quý báu của các thầy cô và các bạn
Em xin chân thành cảm ơn!
Hà Nội, ngày 20 tháng 4 năm 2017
Sinh viênNguyễn Thị Thảo
Trang 4LỜI CAM ĐOAN
Khóa luận này là những nghiên cứu của em dưới sự hướng dẫn tận tình nghiêmkhắc của cô giáo TS Lê Hải Yến bên cạnh đó em được sự quan tâm, tạo điều kiệncủa các thầy cô trong khoa toán trường ĐHSP Hà Nội 2
Vì vậy em xin cam đoan nội dung đề tài "Ứng dụng khai triển giá trị kì
dị trong nén ảnh " không có sự trùng lặp với các đề tài khác
Trong khi thực hiện khóa luận này em đã sử dụng và tham khảo các thành tựucủa các nhà khoa học với lòng biết ơn trân trọng
Hà Nội, ngày 20 tháng 4 năm 2017
Sinh viênNguyễn Thị Thảo
Trang 5Mục lục
1.1 Ma trận 4
1.1.1 Tập ảnh, tập không điểm, hạng của một ma trận 4
1.1.2 Tính trực giao 5
1.2 Chuẩn vectơ 7
1.3 Chuẩn ma trận 8
1.4 Tính bất biến của chuẩn Frobenius và chuẩn hai 12
2 Khai triển giá trị kì dị (SVD) 14 2.1 Định lý về khai triển giá trị kì dị 14
2.2 Một số tính chất 17
2.3 Định lý Eckart - Young 24
Trang 6LỜI MỞ ĐẦU
Khai triển ma trận có vai trò quan trọng trong khoa học và công nghệ hiện đại.Trong đại số tuyến tính, khai triển ma trận là sự phân tích một ma trận thành tíchcác ma trận thừa số Có rất nhiều cách khai triển ma trận, nhưng ở khóa luận này,chúng tôi quan tâm đến khai triển thành giá trị kì dị (Singular Value Decomposition)của ma trận A như sau:
Cho A là ma trận thực cỡ m×n Khi đó, tồn tại các ma trận trực giao U ∈ Rm×m
và V ∈ Rn×n sao cho
UTAV = ΣA= diag(σ1(A), σ2(A), , σp(A)) ∈ Rm×n, p = min(m, n)
Trong đó σ1(A) ≥ σ2(A) ≥ ≥ σp(A) ≥ 0, σi(A) được gọi là các giá trị kì dị của A.Khai triển thành giá trị kì dị đưa ma trận ban đầu về dạng đường chéo sẽ làm giảmmức độ tính toán và có nhiều ứng dụng hữu ích trong xử lí tín hiệu và thống kê Trên
cơ sở khai triển giá trị kì dị (Singular Value Decomposition), vấn đề xấp xỉ một matrận bằng một ma trận hạng thấp hơn được hai nhà toán học Carl Eckart và GaleYoung đề cập tới vào năm 1936, đó là việc giải bài toán tìm ma trận có hạng nhỏ hơnhoặc bằng k gần ma trận cho trước: Nếu k < r = rank(A) và Ak =
Cấu trúc của khóa luận gồm có ba chương:
Chương 1 "Kiến thức chuẩn bị" hệ thống lại một số khái niệm của đại số tuyếntính như: Chuẩn vectơ, chuẩn ma trận, ma trận trực giao và một số tính chất quantrọng phục vụ cho các chương sau
Chương 2 "Khai triển giá trị kì dị " trình bày về khai triển giá trị kì dị (SingularValue Decomposition) của ma trận và định lý Eckart Young
Trang 7Chương 3 "Ứng dụng trong xử lí ảnh " trình bày về ứng dụng của khai triển giátrị kì dị (Singular Value Decomposition) trong xử lí ảnh bằng phần mềm Matlab.
Do thời gian thực hiện khóa luận không nhiều, kiến thức còn nhiều hạn chế nên khilàm khóa luận này em không tránh khỏi những hạn chế và sai sót Em mong nhậnđược sự góp ý và những ý kiến phản biện của thầy cô và các bạn
Em xin chân thành cảm ơn!
Trang 8span(v1, v2, , vn) Không gian sinh bởi n vectơ.
dim(S) Số chiều của không gian con (S)
rank(A) Hạng của ma trận A
det(A) Định thức của ma trận A
tr(A) Vết của ma trận A
diag(d1, , dp) Ma trận đường chéo cỡ m × n với p = min(m, n)
σi(A) Giá trị kì dị thứ i của ma trận A
Trang 9Chương 1
Kiến thức chuẩn bị
Chương này trình bày lại một số khái niệm của đại số tuyến tính như chuẩn vectơ,chuẩn ma trận, ma trận trực giao, và một số tính chất quan trọng phục vụ cho cácchương sau Nội dung của chương được tham khảo chủ yếu từ tài liệu [3]
ran(A) = span{a1, , an},
với span{a1, , an} là không gian con của Rm sinh bởi n vectơ a1, a2, , an
Trang 10Định nghĩa 1.2 Tập không điểm của ma trận A được định nghĩa bởi:
Định nghĩa 1.4 Tập các vectơ {x1, x2 , xp} trong Rn được gọi là trực giao nếu
xTi xj = 0 với mọi i 6= j và trực chuẩn nếu xTi xj = δij, ở đó
• A =
cosα −sinαsinα cosα
,
Trang 11Mệnh đề 1.1 Cho A là ma trận vuông cấp n với hệ số thực, khi đó
(i) A là ma trận trực giao khi và chỉ khi hệ vectơ cột của A lập thành một cơ sở trựcchuẩn của Rn với tích vô hướng chuẩn tắc của Rn
(ii) A là ma trận trực giao khi và chỉ khi hệ vectơ dòng của A lập thành cơ sở trựcchuẩn của Rn với tích vô hướng chuẩn tắc của Rn
Định lý 1.1 Mọi hệ gồm các vectơ khác không, đôi một trực giao đều là hệ độc lậptuyến tính
Chứng minh Ta xét hệ các vectơ trực giao (xi)i=1,2, ,m trong Rm Giả sử
m
P
i=1
kixi = 0với ki ∈ R Nhân vô hướng hai vế với vectơ xj( ∀j = 1, 2, , m) ta được
Trang 12Định lý 1.3 Nếu S = {v1, v2, , vn} là một họ vectơ trực chuẩn của không gian Rn
thì với mọi vectơ u trong Rn ta có
u = hu, v1iv1 + hu, v2iv2+ + hu, vnivn
Chứng minh Vì S là một cơ sở của Rn nên tồn tại các số thực c1, c2, , cn sao cho u
có dạng
u = c1v1+ c2v2+ + cnvn.Nhân vô hướng hai vế với vi(∀i = 1, 2, , n) ta được
hu, vii = h(c1v1+ c2v2+ + cnvn), vii
= c1hv1, vii + + cnhvn, vii
Vì S là cơ sở trực chuẩn nên hvj, vii = 0, ∀j 6= i và hvi, vii = 1
Do đó hu, vii = ci Ta được điều phải chứng minh
Kí hiệu : f (x) = kxk
Cho vectơ x = (x1, x2, , xn)T, các chuẩn vectơ thông dụng là :
• Chuẩn p
kxkp = (|x1|p+ + |xn|p)p1, p ≥ 1
Trang 132 = hQx, Qxi = (Qx)T(Qx)
= xTQTQx (do tính chất của ma trận chuyển vị)
= xTx (do Q là ma trận trực giao nên QTQ = I)
= kxk22
1.3 Chuẩn ma trận
Định nghĩa 1.7 Chuẩn ma trận trên Rm×n là hàm số f : Rm×n −→ R thỏa mãn cáctính chất sau:
Trang 14(i) f (A) ≥ 0, ∀A ∈ Rm×n;
Trang 15Ví dụ 1.3 Xét ma trận A ở Ví dụ 1.2 Khi đó chuẩn từng phần của ma trận A với
Trang 16Đặc biệt , khi p=2 ta được chuẩn Frobenius, kí hiệu là kAkF Chuẩn Frobenius
có nhiều định nghĩa khác nhau:
kAkF =
vuut
kAkF =ptr(ATA)
ở đó tr(ATA) là vết của ma trận (ATA)
Định lý 1.4 Nếu A ∈ Rm×n , thì tồn tại một vectơ đơn vị z (theo chuẩn 2) trong Rnsao cho ATAz = µ2z ở đây µ = kAk2
Chứng minh : Xét hàm g(x) = 1
2
kAxk22kxk22 =
12
xTATAx
xTx .Giả sử z ∈ Rn là một vectơ đơn vị sao cho kAzk2 = kAk2 Vì z là điểm mà hàm g(x)đạt giá trị cực đại, suy ra ∇g(z) = 0, ở đây ∇g là gradient của g Một phép lấy viphân chỉ ra rằng với mọi i = 1; n ta có:
Trang 17Định lý suy ra rằng
kAk2 =pλmax(ATA)
1.4 Tính bất biến của chuẩn Frobenius và chuẩn
hai
Chuẩn Frobenius và chuẩn hai của ma trận bất biến với phép nhân trái và phải với các
ma trận trực giao Tính chất này được thể hiện ở hai định lý sau đây:
Định lý 1.5 Cho A ∈ Rm×n, nếu hai ma trận Q ∈ Rm×m và Z ∈ Rn×n là các matrận trực giao thì
F ( do Z là ma trận trực giao nên ZT cũng là ma trận trực giao )
= kAk2F (do định nghĩa chuẩn Frobenius kATkF = kAkF)
Trang 18Định lý 1.6 Cho A ∈ Rm×n, nếu hai ma trận Q ∈ Rm×m và Z ∈ Rn×n là các matrận trực giao thì
x6=0
kQAxk2kxk2
2
=
sup
x6=0
kAxk2kxk2
Trang 19Chương 2
Khai triển giá trị kì dị (SVD)
Trong chương này, chúng ta sẽ tìm hiểu về khai triển giá trị kì dị (Singular ValueDecomposition) của ma trận, tức là sử dụng các ma trận trực giao để đưa ma trận banđầu về dạng đường chéo Khai triển thành giá trị kì dị (viết tắt là SVD ) có vai trò rấtquan trọng trong việc giải bài toán tìm ma trận gần nhất và xử lí dữ liệu
Nội dung của chương được chia làm ba phần Phần 2.1 trình bày Định lí về sự tồn tạicủa khai triển thành giá trị kì dị, phần 2.2 trình bày về một số tính chất và phần 2.3trình bày về Định lí Eckart-Young
2.1 Định lý về khai triển giá trị kì dị
Định lý 2.1 Nếu A là ma trận thực cỡ m × n thì tồn tại các ma trận trực giao
U = [u1, , um] ∈ Rm×m và V = [v1, , vn] ∈ Rn×n,
sao cho
UTAV = ΣA= diag(σ1(A), , σp(A)) ∈ Rm×n,trong đó p = min(m, n) , σ1(A) ≥ σ2(A) ≥ ≥ σp(A) ≥ 0, σi(A) được gọi là các giátrị kỳ dị của A
Trang 20Chứng minh Xét x ∈ Rn và y ∈ Rm là các vectơ đơn vị theo chuẩn 2 thỏa mãn:
Ax = σy với σ = kAk2 Từ Định lý 1.2 tồn tại V2 ∈ Rn×(n−1) và U2 ∈ Rm×(m−1) saocho V = [x, V2] ∈ Rn×n và U = [y, U2] ∈ Rm×m là các ma trận trực giao
Trang 212 =
sup
x6=0
kA1xk2kxk2
Từ đó ta có W=0 do đó
Trang 22UTAV =
σ 0
0 B
= diag(σ1, , σp) với p = min(m, n)
Chú ý Ở các phần tiếp theo chúng tôi dùng ký hiệu σmax(A) là giá trị kỳ dị lớn nhấtcủa A, σmin(A) là giá trị kỳ dị nhỏ nhất của ma trận A Theo đó chuẩn 2 và chuẩnFrobenius còn có cách tính khác nhau sau (Hệ quả 2.2 ở mục sau )
kAk2 = σmax(A)
kAkF =
vuut
Khai triển thành giá trị kì dị của A có thể được tính theo các bước sau:
• Tính ATA, AAT (ma trận nửa xác định dương);
• Tính giá trị riêng của ATA, AAT;
• Tính σi(A) =pλi(ATA) (với λi(ATA) là giá trị riêng thứ i của ma trận A)
2.2 Một số tính chất
Sau đây là một số hệ quả quan trọng liên quan đến khai triển thành giá trị kỳ dị Đểcho gọn các ký hiệu σi(A) được thay bằng σi
Hệ quả 2.1 Nếu UTAV =P là khai triển giá trị kỳ dị của A ∈ Rm×n và m ≥ n thì
Avi = σiui và ATui = σivi (∀i = 1, 2, , n) với ui, vi lần lượt là các vectơ cột của các
ma trận U và V ( ui, vi là các vectơ kì dị trái và các vectơ kì dị phải của A)
Chứng minh Ta sẽ so sánh các cột trong AV = UP và ATU = V (P)T Thật vậy,
vì UTAV =P nên AV = U P Ta có
AV = A[v1|v2| |vn] = [Av1|Av2| |Avn] (2.1)
Trang 230 0 σn
Avn= unσn;hay Avi = σiui, ∀ i = 1, 2, , n
Trang 25Chứng minh Các kết quả được suy ra ngay lập tức từ kUTAV k = kP k cho cả chuẩn
2 và chuẩn Frobenius Thật vậy, theo tính chất bất biến của chuẩn kAk2 ta có
Trang 26σmax(A + E) ≤ σmax(A) + kEk2;
σmin(A + E) ≥ σmin(A) − kEk2
Chứng minh Có σmax(A + E) = σ1(A + E) Theo Hệ quả 2.1, tồn tại hai vectơ v1, u1sao cho
(A + E)v1 = σ1(A + E)u1.Đồng thời σmax(A) = σ1(A) nên tồn tại hai vectơ v01 , u01 sao cho
Av01 = σ1(A)u1
Mặt khác, theo Hệ quả 2.2, σ1(A) = kAk2 = sup
x6=0
kAxk2kxk2 (theo Định nghĩa chuẩn 2 của
σmax(A)kxk2 ≥ kAxk2 ≥ σmin(A)kxk2
Trang 27kA + Ek2 ≤ σmax(A) + kEk2.
Mà kAk2 = σ1(A) (theo Hệ quả 2.2 ) nên
σ1(A + E) = σmax(A + E) ≤ σmax(A) + kEk2
Hệ quả 2.4 Nếu A có r giá trị kì dị khác không thì rank (A) = r và
null(A) = span(vr+1, , vn);
ran(A) = span(u1, , ur)
Chứng minh Hạng của ma trận chéo bằng số các phần tử trên đường chéo chính khác
0 nên rank (P) = rank(UTAV ) = r Mà rank (UTAV ) = rank(A) nên rank (A) = r
Vì A có r giá trị kì dị nghĩa là σ1(A) > σ2(A) > > σr(A) > 0 và σr+1 = σr+2 = =
σp = 0 nên theo Hệ quả 2.1, ta có
Avr+1 = σr+1ur+1 = 0
Do đó vr+1 ∈ null(A) Tương tự vr+2 ∈ null(A) , ,vn ∈ null(A) nên
null(A) = span(vr+1, , vn)
Trang 28vT n
v2T
Trang 29Lại có kUT(A − Ak)V k2 = kA − Akk2 ( tính bất biến đối với chuẩn 2 ).
Mà kUT(A − Ak)V k2 = σk+1 (theo Hệ quả 2.2 biết σk+1 ≥ σk+2 ≥ ≥ σp > 0)
Do vậy kA − Akk2 = σk+1
Bước 2 Giả sử B là ma trận bất kì với rank(B) = k ta có thể tìm được các vectơ
Trang 30trực chuẩn x1, , xn−k mà null(B) = span(x1, , xn−k).
Trang 31Do đó min
rank(B)=kkA − Bk2 = kA − Akk2 = σk+1
Trang 32Chương 3
Ứng dụng trong xử lí ảnh
Có hàng trăm cách khác nhau để nén ảnh, ở chương này chúng tôi giới thiệu một cáchnén ảnh cơ bản đó là sử dụng khai triển giá trị kì dị SVD Giả sử chúng ta có mộtbức ảnh đen trắng cỡ 3000 × 3000 pixel (bức ảnh này được biểu diễn bởi một ma trận
3000 × 3000), với mỗi pixel chúng ta có các mức độ màu đen và trắng cho bởi một sốcác số nguyên từ 0 đến 255 Mỗi một số nguyên này được xấp xỉ bởi một byte để lưutrữ, kết quả thu được là một ảnh xấp xỉ 8,6 Mb Một ảnh màu thường có 3 thành phần
đó là: màu đỏ, màu xanh lá cây và màu xanh nước biển Mỗi bức ảnh như vậy thườngđược lưu trữ bởi ba ma trận, do đó file lưu trữ ảnh màu sẽ chiếm 3 lần không gian (25,8 Mb)
Trong chương này, chúng ta sẽ cùng xem xét một cách nén ảnh bằng cách sử dụng khaitriển thành giá trị kì dị và Định lí Eckart-Young ( Chương 2) Ta xét một bức ảnh đentrắng và ma trận A cỡ m × n tương ứng Giả sử A có khai triển thành giá trị kì dị là
A = U ΣVT Như đã biết ở Định lí Eckart-Young trong Chương 2, với mỗi k, ta có thểxấp xỉ ma trận A bới ma trận Ak = U ΣkVT với k < r = rank(A) và Ak =
Trang 33khi giá trị k tăng lên ta sẽ thu được những bức ảnh gần giống với bức ảnh gốc Ở đây,chúng tôi sử dụng phần mềm Matlab để thực hiện quá trình nén ảnh này.
Ví dụ 1: Chúng ta có một bức ảnh cỡ 400 × 400 pixel
Hình 3.1: ảnh gốc 1
Trang 34Ta sử dụng dòng lệnh sau trong Matlab
Trang 35Khi đó chúng ta sẽ thu được các ảnh khác nhau, có độ nét tăng dần khi số giá trị kì dị ktăng lên và k càng lớn thì bức ảnh thu được càng giống với ảnh gốc ban đầu.
Trang 36Hình 3.2: 4 bức ảnh có độ nét tăng dần tương ứng với số giá trị kì dị k tăng dần : 5,
30, 55, 280
Trang 37Dưới đây là đồ thị vẽ sai số thay đổi khi k thay đổi.
Ví dụ 2: Chúng ta có 1 bức ảnh cỡ 250 × 600 pixel
Hình 3.3: ảnh gốc 2
Trang 38Sử dụng dòng lệnh trong Matlab tương tự dòng lệnh trang 29, 30 Thay câu lệnh số 6 bởicâu lệnh sau: inImage=imread(’bacu.jpg’).
Khi đó chúng ta sẽ thu được các ảnh khác nhau, có độ nét tăng dần khi số giá trị kì dị ktăng lên và k càng lớn thì bức ảnh thu được càng giống với ảnh gốc ban đầu
Hình 3.4: 4 bức ảnh có độ nét tăng dần tương ứng với số giá trị kì dị k tăng dần : 5,
30, 205, 280
Trang 39Dưới đây là đồ thị vẽ sai số thay đổi khi k thay đổi.
Ví dụ 3: Chúng ta có 1 bức ảnh cỡ màu cỡ 250 × 300 pixel
Hình 3.5: ảnh gốc 3
Trang 40Ta sử dụng dòng lệnh sau trong Matlab
Trang 41Hình 3.6:
Trang 42Khi đó chúng ta sẽ thu được các ảnh khác nhau, có độ nét tăng dần khi số giá trị
kì dị k tăng lên và k càng lớn thì bức ảnh thu được càng giống với ảnh gốc ban đầu
Hình 3.7: 4 bức ảnh có độ nét tăng dần tương ứng với số giá trị kì dị k tăng dần : 5,
55, 205, 280
Trang 43Dưới đây là đồ thị vẽ sai số thay đổi khi k thay đổi.
Trang 44Kết Luận
Khóa luận này đã trình bày một sô kiến thức của đại số tuyến tính như chuẩnvectơ, chuẩn ma trận, ma trận trực giao và quan tâm đến khai triển thành giá trị kì dịcủa một ma trận làm giảm độ phức tạp tính toán và các tính chất cần thiết để chứngminh Định lý Eckart - Young trong Chương 2
Chương 2 của khóa luận em đã phát biểu và chứng minh chi tiết hai định lí làĐịnh lí về khai triển giá trị kì dị và Định lí Eckart - Young
Chương 3 của khóa luận em giới thiệu về ứng dụng của khai triển giá trị kì dịtrong nén ảnh bằng phần mềm Matlab
Qua khóa luận này bản thân em đã lĩnh hội thêm nhiều tri thức mới của Đại sốtuyến tính, một môn học có tầm quan trọng đặc biệt đối với toán học cơ bản và toánhọc ứng dụng
Tuy nhiên do thời gian thực hiện không nhiều và kiến thức còn hạn chế nênkhông tránh những sai sót, em rất mong nhận được sự góp ý của thầy cô và các bạnsinh viên để khóa luận hoàn thiện hơn
Em xin chân thành cảm ơn!
Trang 45Tài liệu tham khảo
[1] Lê Tuấn Hoa (2005), Đại số tuyến tính qua các ví dụ và bài tập, NXB ĐHQG HàNội
[2] Ngô Việt Trung (2001), Đại số tuyến tính , NXB ĐHQG Hà Nội
[3] Nguyễn Thị Hoàng Khuyên(2015), Định lí Eckart-young dạng rời rạc cho ma trậnnguyên, Luận văn thạc sĩ, Viện Toán học, Viện Hàn lâm Khoa học và Công nghệViệt Nam
[4] Carl Eckart - Gale Young (1936), The approximation of one matrix by another oflower rank Psychometrika, 1(3), 211-218
[5] Gene Howard Golub, Charles Francis Van Loan (1996), Matrix computations(thirdedition) Johns Hopkins University Press Baltimore, MD, USA