250
PHƯƠNG PHÁP PHÂN TÍCH GIÁ TRỊ ĐƠN RÚT GỌN
VÀ ỨNG DỤNG TRONG NÉN ẢNH
Bùi Nguyễn Nhật Minh1, Nguyễn Thị Kim Ngân2
1. Lớp K212BV.TOAN01, Trường Đại học Thủ Dầu Một
2. Khoa Sư phạm, Trường Đại học Thủ Dầu Một
TÓM TT
Bài viết trình bày lại phương pháp phân tích giá trị đơn (singular value decomposition- viết tt
SVD) và phương pháp phân tích giá trị đơn rút gọn (truncated SVD) và ng dng trong nén nh.
T khóa: nén nh, SVD, truncated SVD.
1. GIỚI THIỆU
Vic tìm hiu và vn dng kiến thc Toán hc trong thc tin rt hu ích vi sinh viên ngành
Toán. Nó không những giúp sinh viên có động lc học môn Toán hơn mà quan trng giúp sinh viên
biết vn dng kiến thc, năng đã học trong chương trình để áp dng công vic thc tế khi làm trong
các cơ quan, công ty hay ở các cơ sở giáo dc.
Môn Đại s tuyến tính được ging dy năm nhất chương trình cử nhân Toán, cũng như các
chương trình khối ngành thuật và kinh tế. ng dng ca môn hc này rt nhiu trong các ngành,
nhất lĩnh vc công ngh thông tin, khi máy tính nhn d liệu dưới dng ma trận, vectơ. vậy,
chúng tôi chn nghiên cứu phương pháp phân tích giá tr đơn (singular value decomposition- viết tt
SVD) và phương pháp phân tích giá tr đơn rút gn (truncated SVD) ng dng trong nén ảnh đ
làm báo cáo tt nghip. Kiến thc tp trung phần Đại s tuyến tính và s dng phn mềm Matlab đã
học trong chương trình để x lí nén nh.
Bài viết này trình bày ngn gn ni dung ca báo cáo tt nghip gm lí thuyết v phương pháp
phân tích giá tr đơn phương pháp phân ch giá trị đơn rút gọn phn ng dng s s dng
phương pháp này để nén nh trong Matlab.
2. PHƯƠNG PHÁP PHÂN TÍCH GIÁ TRỊ ĐƠN PHƯƠNG PHÁP PHÂN TÍCH GIÁ TRỊ
ĐƠN RÚT GỌN
Nội dung này chúng tôi tham khảo tài liệu (D. Lay và nnk, 2016; Nguyễn Tiến Dũng, 2018)
2.1. Các giá tr đơn của mt ma trn
Cho 𝐴 là mt ma trn cp 𝑚×𝑛. Khi đó 𝐴𝑇𝐴 đối xứng và và do đó có thể chéo hóa trc giao
được (xem (Lay và nnk.,2016, Định lý 2, trang 398)).
Gi {𝑣1,...,𝑣𝑛} là một cơ sở trc chun ca 𝑛 bao gồm các vectơ riêng của 𝐴𝑇𝐴, và
𝜆1,...,𝜆𝑛là các giá tr riêng tương ứng ca 𝐴𝑇𝐴. Khi đó, với 1 𝑖𝑛,
𝐴𝑣𝑖2=(𝐴𝑣𝑖)𝑇𝐴𝑣𝑖=𝑣𝑖𝑇𝐴𝑇𝐴𝑣𝑖=𝑣𝑖𝑇𝜆𝑖𝑣𝑖=𝜆𝑖.
Do đó các giá trị riêng của 𝐴𝑇𝐴 là không âm. Tathể sắp xếp các giá trị riêng của 𝐴𝑇𝐴 như
sau 𝜆1 𝜆2≥... 𝜆𝑛0.
Các giá trị đơn của 𝐴 là căn bậc hai các giá trị riêng của 𝐴𝑇𝐴, kí hiệu bởi 𝜎1,...,𝜎𝑛, sắp xếp
theo thứ tự giảm dần
251
𝜎𝑖=𝜆𝑖,1𝑖𝑛.
2.2 Phương pháp phân tích giá trị đơn
Định lý (xem (Lay và nnk.,2016, Định lý 10, trang 419))
Cho 𝐴 là mt ma trn cp 𝑚×𝑛, có hng 𝑟. Khi đó tn ti ma trn Σ (xem (Lay và
nnk.,2016,(3), trang 419)) có dng
(Ngun hình tham kho tài liu (Lay và nnk.,2016,(3), trang 419))
đây, các phần t nằm trên đường chéo ca ma trân chéo 𝐷 là r giá tr đơn của 𝐴, 𝜎1≥...
𝜎𝑟>0, và tn ti các ma trn trc giao 𝑈 cp 𝑚×𝑚, ma trn trc giao 𝑉 cp 𝑛×𝑛, (nghĩa là
𝑈,𝑉 là các ma trn vuông kh nghich và 𝑈−1=𝑈𝑇,𝑉−1=𝑉𝑇 xem (Lay và nnk.,2016, trang 346)
sao cho 𝐴𝑚×𝑛=𝑈𝑚×𝑚Σ𝑚×𝑛(𝑉𝑛×𝑛)𝑇. (1)
Chứng minh. Giả sử {𝑣1,...,𝑣𝑟} là một cơ sở trực chuẩn ca 𝑟gồm các vectơ riêng của 𝐴𝑇𝐴,
tương ứng với các giá trị riêng 𝜆1 𝜆2≥... 𝜆𝑟>0 của 𝐴𝑇𝐴. Khi đó, {𝐴𝑣1,...,𝐴𝑣𝑟}một cơ sở
trực giao của không gian các vectơ cột của ma trận 𝐴 (xem (Lay và nnk.,2016, Định lý 9, trang 418)).
Chuẩn tắc hóa 𝐴𝑣𝑖, ta được một cơ sở trực chuẩn {𝑢1,...,𝑢𝑟}, với
𝑢𝑖=1
𝐴𝑣𝑖 𝐴𝑣𝑖=1
𝜎𝑖𝐴𝑣𝑖
𝑣à 𝐴𝑣𝑖=𝜎𝑖𝑢𝑖,(1𝑖𝑟)
Mở rộng {𝑢1,...,𝑢𝑟} thành một cơ sở trực chuẩn {𝑢1,...,𝑢𝑚} của 𝑚 và đặt
𝑈=[𝑢1𝑢2... 𝑢𝑚] 𝑣à 𝑉=[𝑣1𝑣2... 𝑣𝑟]
Theo cách xây dng trên, 𝑈,𝑉 là các ma trn trc giao và
𝐴𝑉=[𝐴𝑣1... 𝐴𝑣𝑟0 ... 0]=[𝜎1𝑣1... 𝜎2𝑣𝑟0 ... 0]
Gi 𝐷 là ma trn chéo vi các phn t nằm trên đường chéo là 𝜎1,...,𝜎𝑟 ma trn Σ như
trong phát biểu định lý. Khi đó
(Phép tính trích t (Lay và nnk.,2016, Định lý 10, trang 419))
𝑉 là ma trn trc giao nên 𝑈Σ𝑉𝑇=𝐴𝑉𝑉𝑇=𝐴.
Ví d. Xây dng mt phép phân tích giá tr đơn cho ma trận
𝐴=[411 14
8 7 −2]
252
Li gii.
c 1. Chéo hóa trc giao ma trn 𝑨𝑻𝑨
Ta có 𝐴𝑇𝐴=[4 8
11 7
14 −2][411 14
8 7 −2]=[80 100 40
100 170 140
40 140 200]
Xét đa thức đặc trưng của 𝐴𝑇𝐴
𝑝(𝜆)=𝑑𝑒𝑡(𝐴𝑇𝐴𝜆𝐼)=|80𝜆 100 40
100 170𝜆 140
40 140 200𝜆|
𝑝(𝜆)=0𝜆=0ℎ𝑜ặ𝑐 𝜆=90 ℎ𝑜ặ𝑐 𝜆=360.
Vi 𝜆1=360 thì vectơ riêng tương ứng là nghim của phương trình
(𝐴𝑇𝐴360𝐼)𝑣=0[280 100 40
100 190 140
40 140 160][𝑥1
𝑥2
𝑥3]=0𝑣1=(1
3,2
3,2
3)
Tương tự, vi 𝜆2=90 thì vectơ riêng đơn vị tương ứng là 𝑣2=(2
3,−1
3,2
3), với 𝜆3=
0 thì vectơ riêng đơn vị tương ứng 𝑣3=(2
3,−2
3,1
3).
c 2. Xây dng 𝑽 𝒗à 𝜮
Đăt 𝑉=[𝑣1𝑣2𝑣3]=
[
1
3−2
32
3
2
3−1
3−2
3
2
32
31
3
]
Ngoài ra,
𝐴𝑣1=[411 14
8 7 −2][1/3
2/3
2/3]=[18
6],𝐴𝑣2=[411 14
8 7 −2][−2/3
−1/3
2/3]=[3
−9]
Nên 𝜎1=𝜆1=∥𝐴𝑣1∥=610, 𝜎2=𝜆2=∥𝐴𝑣2∥=310.
Các giá tr đơn khác không là những phn t nằm trên đường chéo ca 𝐷. Đặt
𝐷=[610 0
0 310] 𝑣à Σ=[𝐷 0]=[610 0 0
0 310 0]
c 3. Xây dng 𝑼
𝐴 có hng 2 nên 2 cột đầu tiên ca 𝑈 là các vectơ chuẩn tc nhận được t 𝐴𝑣1,𝐴𝑣2.
Ta có, 𝑢1=1
𝜎1𝐴𝑣1=[3/10
1/10],𝑢2=1
𝜎2𝐴𝑣2=[1/10
−3/10]
Đặt 𝑈=[𝑢1𝑢2]=[3/10 1/10
1/10 −3/10]
Vy
𝑈Σ𝑉𝑇=[3/10 1/10
1/10 −3/10][610 0 0
0 310 0]
[
1
3−2
32
3
2
3−1
3−2
3
2
32
31
3
]
𝑇
=[411 14
8 7 −2]=𝐴.
2.3 Phương pháp phân tích giá trị đơn rút gn
(xem tài liu [5])
Khi nhân các hàng và các ct không ca ma trn 𝛴 thì các tha s đều là không nên ta có th
biu din ma trn 𝐴 như sau
253
𝐴=[𝑢1𝑢2... 𝑢𝑟][𝜎10... 0
0 𝜎2... 0
00
...
𝜎𝑟]
[
𝑣1𝑇
𝑣2𝑇
𝑣𝑟𝑇
]
(2)
Nếu ta nhân các ct và hàng ca các ma trn phương trình (2), ta được
𝐴=𝜎1𝑢1𝑣1𝑇+𝜎2𝑢2𝑣2𝑇+...+𝜎𝑟𝑢𝑟𝑣𝑟𝑇
Ví d. T phép phân tích giá tr đơn của ma trn ví d mc 2.2 ta có
[411 14
8 7 −2]=[3/10 1/10
1/10 −3/10][610 0
0 310][1/3 2/3
2/3 −1/3
2/3 2/3]𝑇.
[411 14
8 7 −2]=𝜎1𝑢1𝑣1𝑇+𝜎2𝑢2𝑣2𝑇
=610[3/10
1/10][1/3 2/3 2/3]
+310[1/10
−3/10][2/3 −1/3 2/3].
Trong ma trn 𝛴, các giá tr trên đường chéo là không âm và gim dn 𝜎1≥...𝜎𝑟0.
Thông thường, ch một lượng nh 𝜎𝑖mang giá tr ln, các giá tr còn lại thường nh và gn không.
Khi đó ta có thể xp x 𝐴 bng tng ca 𝑘<𝑟 ma trn có hng 1:
𝐴𝐴𝑘=𝜎1𝑢1𝑣1𝑇+𝜎2𝑢2𝑣2𝑇+...+𝜎𝑘𝑢𝑘𝑣𝑘𝑇.
Đây được gi là phép phân tích giá tr đơn rút gọn ca ma trân 𝐴.
Sai s ca cách xp x trên là Frobenius norm ca hiu hai ma trn
𝐴𝐴𝑘𝐹
2=𝑖=𝑘+1
𝑟𝜎𝑖2
Ví d. Trong ví d trên, ta gi li 2 giá tr đơn khác không 𝜎1,𝜎2. do đó
𝐴=𝐴2=𝜎1𝑢1𝑣1𝑇+𝜎2𝑢2𝑣2𝑇
=610[3/10
1/10][1/3 2/3 2/3]+310[1/10
−3/10][2/3 −1/3 2/3].
3. ỨNG DỤNG PHƯƠNG PHÁP PHÂN TÍCH GIÁ TRỊ ĐƠN RÚT GỌN TRONG NÉN ẢNH
Ngôn ng lp trình Matlab (xem [3]) đưc x dng nhiu trong khối ngành Kĩ thuật. Sinh viên
c nhân Toán đưc hc nhng kiến thức căn bản v Matlab h tr quá trình hc tp, ging dy Toán.
đây, chúng tôi tham khảo mt code v phép phân tích giá tr đơn rút gọn (xem [4]) và s dng mt
hình nh v trường Đại hc Th Du Một để nén nh
254
Ngun: https://ducnbb.blogspot.com/p/truong-ai-hoc-thu-dau-mot-tieng-anh-thu.html
và được kết qu sau:
- Vi 5 giá tr đơn, hình ảnh chưa rõ nét
- Với 30 giá trị đơn, hình ảnh đã có nét
- Vi 80 giá tr đơn, hình ảnh rõ nét hơn