LỜI CAM ĐOANTôi xin cam đoan: Luận văn thạc sỹ chuyên ngành Khoa học máy tính,tên đề tài “Nghiên cứu phương pháp phân tích ma trận SVD và một số ứngdụng trong học máy” là công trình nghi
Trang 1Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
Trang 2Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2019
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan: Luận văn thạc sỹ chuyên ngành Khoa học máy tính,tên đề tài “Nghiên cứu phương pháp phân tích ma trận SVD và một số ứngdụng trong học máy” là công trình nghiên cứu, tìm hiểu và trình bày do tôithực hiện dưới sự hướng dẫn khoa học của TS Đàm Thanh Phương, TrườngĐại học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên.Kết quả tìm hiểu, nghiên cứu trong luận văn là hoàn toàn trung thực,không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật ViệtNam Nếu sai, tôi hoàn toàn chịu trách nhiệm trước pháp luật
Tất cả các tài liệu, bài báo, khóa luận, công cụ phần mềm của các tác giảkhác được sử dụng lại trong luận văn này đều được chỉ dẫn tường minh vềtác giả và đều có trong danh mục tài liệu tham khảo
Thái Nguyên, ngày 18 tháng 7 năm 2019
Tác giả luận vănPinthip Anon
Trang 4LỜI CẢM ƠN
Tác giả xin chân thành cảm ơn TS Đàm Thanh Phương, trường Đại họcCông nghệ thông tin và truyền thông - Đại học Thái Nguyên, là giáo viênhướng dẫn khoa học đã hướng dẫn tác giả hoàn thành luận văn này, xin đượccảm ơn các thầy, cô giáo trường Đại học công nghệ thông tin và truyền thôngnơi tác giả theo học và hoàn thành chương trình cao học đã nhiệt tình giảngdạy và giúp đỡ
Xin cảm ơn nơi tác giả công tác đã tạo mọi điều kiện thuận lợi để tác giảhoàn thành chương trình học tập
Và cuối cùng xin cảm ơn gia đình, bạn bè, đồng nghiệp đã động viên, giúp
đỡ tác giả trong suốt thời gian học tập, nghiên cứu và hoàn thành luận vănnày
Xin chân thành cảm ơn
Thái Nguyên, ngày 18 tháng 7 năm 2019
Tác giả luận vănPinthip Anon
Trang 5DANH SÁCH HÌNH VẼ
2.1 Minh họa phân tích SVD 252.2 Biểu diễn SVD dạng thu gọn 283.1 Ví dụ về SVD cho nén ảnh 383.2 Ví dụ về utility matrix với hệ thống Gợi ý bài hát Các bài hát
được người dùng đánh giá theo mức độ từ 0 đến 5 sao Các
dấu ’ ?’ nền màu xám ứng với việc dữ liệu chưa tồn tại trong
cơ sở dữ liệu Recommendation Systems cần phải tự điền các
giá trị này 413.3 Giả sử feature vector cho mỗi item được cho trong cột cuối
cùng Với mỗi user, chúng ta cần tìm một mô hình θi tương
ứng sao cho mô hình thu được là tốt nhất 433.4 Ví dụ về utility matrix dựa trên số sao một user rate cho một
item Một cách trực quan, hành vi của u0 giống với u1 hơn là
u2, u3, u4, u5, u6 Từ đó có thể dự đoán rằng u0 sẽ quan tâm
đến i2 vì u1 cũng quan tâm đến item này 473.5 Ví dụ mô tả User-user Collaborative Filtering a) Utility Ma-
trix ban đầu b) Utility Matrix đã được chuẩn hoá c) User
similarity matrix d) Dự đoán các (normalized) ratings còn
thiếu e) Ví dụ về cách dự đoán normalized rating của u1 cho
i1 f) Dự đoán các (denormalized) ratings còn thiếu 493.6 Matrix Factorization Utility matrix Y được phân tích thành
tích của hai ma trận low-rank X và W 53
Trang 7MỤC LỤC
Lời cam đoan i
Lời cảm ơn ii
Danh sách hình vẽ ii
Danh mục ký hiệu, từ viết tắt iv
Mở đầu 1
Chương 1 MỘT SỐ KIẾN THỨC CHUẨN BỊ 4
1.1 Một số kiến thức về đại số tuyến tính 4
1.2 Giới thiệu về học máy 18
Chương 2 PHƯƠNG PHÁP PHÂN TÍCH MA TRẬN SVD 23
2.1 Phân tích ma trận SVD 23
2.2 Một số biến thể của SVD 27
Chương 3 MỘT SỐ ỨNG DỤNG CỦA SVD TRONG HỌC MÁY 37 3.1 Phân tích SVD ứng dụng trong nén ảnh 37
3.2 Ứng dụng SVD trong hệ gợi ý 39
Kết luận chung 63
Tài liệu tham khảo 63
Trang 8MỞ ĐẦU
Những năm gần đây, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụthể hơn là Machine Learning (Học Máy hoặc Máy Học) nổi lên như một bằngchứng của cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 -năng lượng điện, 3 - công nghệ thông tin) Trí Tuệ Nhân Tạo đang len lỏi vàomọi lĩnh vực trong đời sống mà có thể chúng ta không nhận ra Xe tự hànhcủa Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook,trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi
ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, ,chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning [1].Machine Learning là một tập con của AI Theo định nghĩa của Wikipedia,Machine learning is the subfield of computer science that “gives computersthe ability to learn without being explicitly programmed” Nói đơn giản,Machine Learning là một lĩnh vực nhỏ của Khoa Học Máy Tính, nó có khảnăng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình
cụ thể
Chính vì vậy, việc nghiên cứu phát triển các thuật toán Học máy cũng nhưxây dựng các ứng dụng đang là một đòi hỏi rất bức thiết của những ngườilàm Khoa học máy tính Nền tảng toán học của Machine Learning đòi hỏiphải có kiến thức cơ bản về Đại số tuyến tính, tối ưu, xác suất thống kê.Việc phân tích một ma trận ra thành tích của nhiều ma trận đặc biệtkhác (Matrix Factorization hoặc Matrix Decomposition) mang lại nhiều íchlợi quan trọng Đặc biệt là trong các thuật toán Học máy như giảm số chiều
dữ liệu, nén dữ liệu, tìm hiểu các đặc tính của dữ liệu, giải các hệ phươngtrình tuyến tính, clustering, và nhiều ứng dụng khác Recommendation Sys-tem cũng là một trong rất nhiều ứng dụng của Matrix Factorization SVD(singular value decomposition) là một dạng khai triển của ma trận có rất
Trang 9nhiều ứng dụng trong những vấn đề liên quan đến nghịch đảo và số hóa các
dữ liệu Hiện nay phân tích SVD của ma trận xuất hiện rất nhiều trong cácứng dụng thực tế như về tín hiệu số, tính các giá trị xấp xỉ trong kĩ thuật,công nghệ thông tin, học máy và được ứng dụng trong các công cụ tìm kiếmtrên các websites Tuy nhiên, nghiên cứu lý thuyết liên quan đến SVD đốivới học viên cao học là vấn đề mới, chưa gần gũi và chưa dễ hiểu cho họcviên cần nghiên cứu về mảng đề tài thú vị này Do đó em đã lựa chọn đề tài
“Nghiên cứu phương pháp phân tích ma trận SVD và một số ứng dụng tronghọc máy” thực hiện làm luận văn cao học nhằm mục đích đưa đến cho ngườiđọc cũng như bản thân những kiến thức cơ bản nhất về khai triển SVD vàtạo một cái nhìn tổng quan về cách khai triển cũng như một số tính chất, hệquả quan trọng liên quan đến dạng khai triển này.[2], [8], [11]
Đề tài luận văn này sẽ nghiên cứu một trong những phương pháp trix Factorization rất đẹp của Đại số tuyến tính Phương pháp đó có tên làSingular Value Decomposition (SVD) Ta sẽ thấy, mọi ma trận, không nhấtthiết là vuông, đều có thể được phân tích thành tích của ba ma trận đặcbiệt Sau đó các ứng dụng cụ thể của SVD về nén ảnh và hệ thống gợi ý sẽđược nghiên cứu và áp dụng
Ma-Nội dung của luận văn gồm 3 chương:
Chương 1 Các kiến thức cơ sở
Chương này trình bày các kiến thức chuẩn bị cho việc nghiên cứu Đó là cáckiến thức giới thiệu về học máy; Các kiến thức cơ sở về Image Compresstion
và Recommendation System cũng như các kiến thức cơ sở về Đại số tuyếntính và giải tích ma trận
1.1 Giới thiệu về học máy
1.2 Các kiến thức cơ sở về Image Compresstion và Recommendation System.1.3 Các kiến thức cơ sở về Đại số tuyến tính
Chương 2 Phương pháp phân tích ma trận SVD
Nội dung chương 2 tập trung vào vấn đề phân tích ma trận SVD và các
Trang 10kiến thức mở rộng về SVD Cụ thể như sau:
3.2 Recommendation System
3.3 Một số ứng dụng khác
Phần kết luận: Tóm tắt các kết quả đã đạt được và thảo luận hướng pháttriển tiếp theo của đề tài
Trang 11CHƯƠNG 1MỘT SỐ KIẾN THỨC CHUẨN BỊ
Chương này trình bày các kiến thức cơ sở về Đại số tuyến tính; Giới thiệu
về học máy Đây là những kiến thức giúp cho việc hiểu và ứng dụng của cácchương sau Các kiến thức trong chương này được tham khảo từ các tài liệu[1], [2], [8], [10], [11]
1.1.1 Chuyển vị và Hermitian
Cho A ∈ Rm×n, ta nói B ∈ Rn×m là chuyển vị (transpose) của A nếu
bij = aji, ∀1 ≤ i ≤ n, 1 ≤ j ≤ m Toán tử chuyển vị thường được ký hiệubởi chữ T Ví dụ
trans-Cho A ∈ Cm×n, ta nói B ∈ Cn×m là chuyển vị liên hợp của A nếu
bij = aji ∀1 ≤ i ≤ n, 1 ≤ j ≤ m, trong đó a là liên hợp phức của a Ví dụ:
Trang 12Cho hai ma trận A ∈ Rm×n, B ∈ Rn×p, tích của hai ma trận được ký hiệu
là C = AB ∈ Rm×p, trong đó phần tử ở hàng i cột j của ma trận C đượctính bởi
cij =
nX
1 Phép nhân ma trận không có tính chất giao hoán Thông thường AB 6=
BA, thậm chí không tồn tại vì không thỏa mãn điều kiện nhân
2 Phép nhân ma trận có tính chất kết hợp ABC = (AB)C = A(BC)
3 Phép nhân ma trận có tính chất phân phối đối với phép cộng.A(B+C) =
Trang 13xTy = yTx =
nX
i=1
Chú ý, xHy = yHxH = yHx Chúng bằng nhau khi và chỉ khi chúng làcác số thực Nếu tích vô hướng của hai véc tơ khác không mà bằng khôngthì chúng vuông góc với nhau
xHx ≥ 0, ∀x ∈ Cn vì tích của một số phức với liên hợp của nó luôn là một
Trang 141.1.3.2 Ma trận nghịch đảo
Cho một ma trận vuông A ∈ Rn×n, nếu tồn tại ma trận vuông B ∈Rn×n
sao cho AB = In, thì ta nói A là khả nghịch (invertible, nonsingular hoặcnondegenerate) và B được gọi là ma trận nghịch đảo (inverse matrix) của
mathbf A Nếu không tồn tại ma trận B thỏa mãn điều kiện trên, ta nóirằng ma trận A không khả nghịch (singular hoặc degenerate)
Nếu A là khả nghịch, ta ký hiệu ma trận nghịch đảo của nó là A−1 Ta có
Với các ma trận đường chéo vuông, thay vì viết cả ma trận, ta có thể chỉ liệt
kê các thành phần trên đường chéo Ví dụ, một ma trận đường chéo vuông
Trang 15A ∈ Rm×m được ký hiệu là diag (a11, a22, , amm) với aii là phần tử hàngthứ i, cột thứ i của ma trận A.
Tích, tổng của hai ma trận đường chéo vuông cùng bậc là một ma trậnđường chéo Một ma trận đường chéo vuông là khả nghịch nếu và chỉ nếumọi phần tử trên đường chéo chính là khác không Nghịch đảo của một
ma trận đường chéo khả nghịch cũng là một ma trận đường chéo Cụ thể,
Các hệ phương trình tuyến tính mà ma trận hệ số có dạng tam giácthường được quan tâm vì chúng có thể được giải với chi phí tính toán thấp(low computational cost) Đó là các phương pháp thế xuôi hoặc thế ngược
j=1
(−1)i+jaij det (Aij) (1.1.6)
Trong đó 1 ≤ i ≤ n bất kỳ và Aij là phần bù đại số của A ứng với phần tử
Trang 16A bằng cách xóa hàng thứ i và cột thứ j của nó Đây là cách tính định thứcdựa trên cách khai triển hàng thứ i của ma trận.
6 Ma trận khả nghịch khi và chỉ khi định thức của nó khác 0
7 Nếu một ma trận khả nghịch, định thức của ma trận nghịch đảo của nóbằng nghịch đảo định thức của nó
Không gian sinh (span space) của một hệ các véc tơ là tập hợp tất cả cácvéc tơ có thể biểu diễn được dưới dạng tổ hợp tuyến tính của hệ đó Ký hiệu
là span (a1, , an)
Nếu phương trình
0 = x1a1 + x2a2 + · · · + xnan (1.1.9)
Trang 17có nghiệm duy nhất x1 = x2 = · · · = xn = 0, ta nói rằng hệ {a1, a2, , an}
là một hệ độc lập tuyến tính (linear independence) Ngược lại, nếu tồn tại
xi 6= 0 sao cho phương trình trên thỏa mãn, ta nói rằng đó là một hệ phụthuộc tuyến tính (linear dependence)
1.1.6.2 Tính chất
1 Một hệ là phụ thuộc tuyến tính nếu và chỉ nếu tồn tại một véc tơ trong
hệ là tổ hợp tuyến tính của các véc tơ còn lại
2 Tập con khác rỗng của một hệ độc lập tuyến tính là một hệ độc lậptuyến tính
3 Tập hợp các cột của một ma trận khả nghịch tạo thành một hệ độc lậptuyến tính
4 Nếu A là một ma trận cao (số hàng lớn hơn số cột, m > n) thì tồn tạivéc tơ b sao cho Ax = b vô nghiệm
5 Nếu n > m thì hệ n véc tơ bất kỳ trong không gian m chiều luôn phụthuộc tuyến tính
1.1.6.3 Cơ sở của một không gian
Một hệ các véc tơ {a1, , an}trong không gian véc tơ m chiều V = Rm
được gọi là một cơ sở nếu hai điều kiện sau được thỏa mãn:
1 V ≡ span (a1, , an)
2 {a1, , an} là một hệ độc lập tuyến tính
Khi đó mọi véc tơ b ∈ V đều biểu diễn duy nhất qua cơ sở Chú ý rằng, ta
có m = n, nghĩa là số véc tơ trong cơ sở bằng số chiều của không gian.1.1.6.4 Range và Null space
Với mỗi ma trận A ∈Rm×n có hai không gian con quan trọng ứng với matrận này
Trang 181 Range của A, được định nghĩa là
Nói cách khác, R(A) là tập hợp các điểm là tổ hợp tuyến tính của cáccột của A, hay chính là không gian sinh của các cột của A R(A) làmột không gian con của Rm với số chiều chính bằng số lượng lớn nhấtcác cột của A độc lập tuyến tính
2 Null của A, ký hiệu là N (A), được định nghĩa là
Mỗi véc tơ trong N (A) chính là một bộ các hệ số làm cho tổ hợp tuyếntính các cột của A tạo thành véc tơ không
R(A) và N (A) là các không gian véc tơ con có số chiều thỏa mãn định lý:
3 Nếu A ∈Rm×n, thì rank(A) ≤ min(m, n)
4 rank(AB) ≤ min(rank(A), rank(B))
5 rank(A + B) ≤ rank(A) + rank(B) Điều này chỉ ra rằng một ma trận
có hạng bằng k không được biểu diễn dưới dạng ít hơn k ma trận cóhạng bằng 1 Trong SVD, chúng ta sẽ thấy rằng một ma trận có hạngbằng k có thể biểu diễn được dưới dạng đúng k ma trận có hạng bằng 1
Trang 196 Bất đẳng thức Sylvester về hạng: Nếu A ∈Rm×n, B ∈ Rn×k, thì
rank(A) + rank(B) − n ≤ rank(AB)
Các điều kiện dưới đây là tương đương, với A ∈Rn×n
Nếu một ma trận vuông phức Uthỏa mãn UUH = UHU = I, ta nói rằng
U là một ma trận Unitary
Trang 203 Định thức của ma trận trực giao bằng 1 hoặc −1.
4 Ma trận trực giao thể hiện cho phép xoay một véc tơ Giả sử có hai véc
tơ x, y ∈ Rm và một ma trận trực giao U ∈ Rm×m Dùng ma trận này
để xoay hai véc tơ trên ta được Ux, Uy Tích vô hướng của hai véc tơmới này là
Như vậy, phép xoay không làm thay đổi tích vô hướng của hai véc tơ
5 Giả sử U ∈ˆ Rm×r, r < m là một ma trận con của ma trận trực giao U
được tạo bởi r cột của U, ta sẽ có UˆTU = Iˆ r
1.1.9 Biểu diễn véc tơ trong các hệ cơ sở khác nhau
Trong không gian m chiều, tọa độ của mỗi điểm được xác định dựa trênmột hệ tọa độ nào đó Ở các hệ tọa độ khác nhau, tọa độ của điểm là khácnhau
Tập hợp các véc tơ e1, , em mà mỗi véc tơ ei có đúng một phần tử khác
0ở thành phần thứi và phần tử đó bằng 1, được gọi là hệ cơ sở đơn vị (hoặc
hệ chính tắc) trong không gianmchiều Nếu xếp các véc tơei, i = 1, 2, , m
theo đúng thứ tự đó, ta sẽ được ma trận đơn vị m chiều
Mỗi véc tơ cột x = [x1, x2, , xm] ∈ Rm có thể coi là một tổ hợp tuyếntính của các véc tơ trong hệ cơ sở chính tắc
x = x1e1 + x2e2 + · · · + xmem (1.1.17)
Giả sử có một hệ cơ sở khác u1, u2, , um (các véc tơ này độc lập tuyếntính), biểu diễn của véc tơ x trong hệ cơ sở mới này có dạng
Trang 21x = y1u1 + y2u2 + · · · + ymum = Uy (1.1.18)
với U = [u1 um] Lúc này, véc tơ y = [y1, y2, , ym]T chính là biểu diễncủa x trong hệ cơ sở mới Biểu diễn này là duy nhất vì y = U−1x
Trong các ma trận đóng vai trò như các hệ cơ sở, các ma trận trực giao
UTU = Iđược quan tâm nhiều hơn vì nghịch đảo của chúng chính là chuyển
vị của chúng U−1 = UT Khi đó y = UTx, hay yi = xTui = uTi x, i =
1, , m Trong không gian hai hay ba chiều, hệ trực giao tạo thành một hệtrục tọa độ Descarter vuông góc
Việc chuyển đổi hệ cơ sở sử dụng ma trận trực giao có thể được coi nhưmột phép xoay hệ trục tọa độ Nhìn theo một cách khác, đây cũng chính làmột phép xoay véc tơ dữ liệu theo chiều ngược lại, nếu ta coi các trục tọa độ
Cho một ma trận vuông A ∈ Rn×n, một véc tơ x ∈ Rn(x 6= 0) và một số
vô hướng (có thể thực hoặc phức)λ Nếu Ax = λx, thì ta nói λ và x là mộtcặp giá trị riêng, véc tơ riêng (eigenvalue, eigenvector) của ma trận A
Từ định nghĩa ta cũng có, (A − λI)x = 0, tức là x nằm trong không gianNull của A − λI Vì x 6= 0, nên A − λI là ma trận không khả nghịch Vậy
det(A − λI) = 0, hay λ là nghiệm của phương trình det(A − tI) = 0 Địnhthức này là một đa thức bậcn của t, gọi là đa thức đặc trưng (characteristicpolynomial) của A, ký hiệu là pA(t) Tập hợp tất cả các giá trị riêng của một
ma trận còn gọi là phổ (spectrum) của ma trận đó
Trang 221.1.10.2 Tính chất
1 Nếu x là một véc tơ riêng của A ứng với giá trị riêng λ thì với mọi
k ∈ R, k 6= 0, kx cũng là một véc tơ riêng của A ứng với giá trị riêng đó.Nếux1, x2 là hai véc tơ riêng ứng với cùng một giá trị riêngλthì tổng củachúng cũng là một véc tơ riêng ứng với giá trị riêng đó Từ đó suy ra tậpcác véc tơ riêng ứng với một giá trị riêng của ma trận vuông tạo thànhmột không gian véc tơ con, được gọi là không gian riêng (eigenspace )ứng với giá trị riêng đó
2 Mọi ma trận vuông bậc n đều có n giá trị riêng (kể cả lặp, phức)
3 Tích của tất cả các giá trị riêng của ma trận bằng định thức, tổng củatất cả các giá trị riêng của ma trận bằng tổng các phần tử trên đườngchéo của ma trận
4 Phổ của ma trận bằng phổ của ma trận chuyển vị của nó
5 Nếu A, B là các ma trận vuông, cùng bậc thì pAB(t) = pBA(t) Điềunày có nghĩa là, mặc dù tích của hai ma trận không có tính chất giaohoán, đa thức đặc trưng của AB và BA là như nhau, hay phổ của haitích này là trùng nhau
6 Ma trận đối xứng (tổng quát là Hermitian), tất cả các giá trị riêng của
Trang 23là một ma trận khả nghịch Khi đó ta có thể viết A dưới dạng tích của ba
ma trận
Các véc tơ riêng xi thường được chọn sao cho xTi xi = 1 Cách biểu diễn một
ma trận như (1.1.19) được gọi là eigendecomposition vì nó tách ra thành tíchcủa các ma trận đặc biệt dựa trên véc tơ riêng và trị riêng Ma trận các giátrị riêng Λ là một ma trận đường chéo Vì vậy cách khai triển này cũng cótên gọi là chéo hóa ma trận
Tính chất:
1 Khái niệm chéo hóa ma trận chỉ áp dụng với ma trận vuông Vì không
có định nghĩa giá trị riêng, véc tơ riêng cho ma trận không vuông
2 Không phải ma trận vuông nào cũng có thể chéo hóa được Ma trậnvuông bậc n chéo hóa được khi và chỉ khi nó có đủ n giá trị riêng độclập tuyến tính
3 Nếu một ma trận là chéo hóa được, có nhiều hơn một cách chéo hóa matrận đó Đổi vị trí của λi và vị trí tương ứng các cột của X ta có mộtcách chéo hóa mới
4 Nếu A có thể viết được dưới dạng (1.1.19), khi đó các lũy thừa của nócũng chéo hóa được
A2 = XΛX−1 XΛX−1 = XΛ2X−1; Ak = XΛkX−1, ∀k ∈ N
(1.1.20)Chú ý, nếu λ và x là một cặp trị riêng, véc tơ riêng của A thì λk và x làcặp trị riêng, véc tơ riêng của Ak
5 Nếu A là ma trận khả nghịch thì A−1 = XΛX−1−1 = XX−1X−1
Trang 24Mở rộng, một ma trận phức, Hecmitian A ∈ Cn×n được gọi là xác địnhdương nếu
= u2 + v2 − 2uv = (u − v)2 ≥ 0, ∀u, v ∈ R
(1.1.24)1.1.12.2 Tính chất
1 Mọi trị riêng của ma trận xác định dương đều là số thực dương
2 Mọi ma trận xác định dương là khả nghịch, định thức của nó là một sốdương
Trang 251.1.13 Chuẩn của véc tơ và ma trận
Định nghĩa 1.1.1 Một hàm số f :Rn → R được gọi là một norm (chuẩn)
nếu nó thỏa mãn ba điều kiện sau đây:
1 f (x) ≥ 0 với mọi x Dấu bằng xảy ra khi x = 0
2 f (αx) = αf (x), với mọi α ∈ R
3 f (x1) + f (x2) ≥ f (x1) + f (x2) với mọi x1, x2 ∈ R
Một số chuẩn thông thường:
Chuẩn Euclide hay `2 norm:
mX
i=1
nX
1.2.1 Khái niệm học máy
Khái niệm học có nghĩa rộng giống như sự thông minh, bao gồm cả quátrình và khó có một định nghĩa chính xác Theo nghĩa tự điển, học là quátrình thu nhận kiến thức, kỹ năng do người khác truyền lại hoặc đọc đi, đọclại, nghiềm ngẫm ghi nhớ ( học thuộc lòng) Rộng hơn, học bao gồm cả quátrình đúc rút tri thức từ các quan sát, trải nghiệm thực tiễn
Học máy ( machine learning) mang hai nghĩa thông dụng:
1 sử dụng máy tính để khám phá tri thức từ dữ liệu,
2 sự học trong máy (tác tử: agent) Về phương diện công nghệ, học máy
Trang 26xây dựng và phát triển các chương trình máy tính có thể thích nghi và
“học” từ các dữ liệu mẫu hoặc kinh nghiệm
Đến nay, đã có nhiều định nghĩa khái niệm này, tuy nhiên khó có một địnhnghĩa thỏa đáng được mọi người thừa nhận Định nghĩa sau phát triển từđịnh nghĩa của T Mitchell cho ta cách nhìn toán học của một chương trìnhhọc khi nghiên cứu, thiết kế
Định nghĩa 1.2.1 Một chương trình máy tính được gọi là học từ dữ liệu,kinh nghiệm E đối với lớp nhiệm vụ T và độ đo mức thực hiện P nếu việcthực hiện các nhiệm vụ T của nó khi đo bằng P được cải tiến nhờ dữ liệuhoặc kinh nghiệm E
Theo định nghĩa này, người ta cần tối ưu hóa độ đo thực hiện P dựa trênphân tích dữ liệu, kinh nghiệmE để tìm cách thực hiện nhiệm vụ T tốt nhất
Ví dụ 1: Phân tích dữ liệu bán lẻ của siêu thị
Hằng ngày các siêu thị bán ra một lượng lớn những mặt hàng phong phú
và lưu lại các hóa đơn thanh toán(bản sao giỏ hàng) Từ các dữ liệu bán lẻ
có được, ta có thể phân tích các giỏ hàng để tiên đoán được một khách hàngmua mặt hàng A thì sẽ mua mặt hàng B với xác suất bao nhiêu? Nếu xácsuất này là lớn thì ta nên xếp các mặt hàng này gần nhau, như thế tiện chokhách hàng và lượng hàng bán được cũng tăng lên so với việc để khách hàngphải tìm kiếm khắp nơi Rộng hơn, nếu có mô hình phân tích tốt, ta cũng
có thể dự đoán được lượng hàng cần đáp ứng trong thời gian tới, xu thế sởthích của khách hàng, trên cơ sở đó có được quyết sách thích ứng Trong ví
dụ này T là dự báo, E là dữ liệu bán lẻ lưu trữ và P là độ chính xác của kếtquả dự báo
Ví dụ 2: Đối sánh vân tay
Bài toán đối sánh vân tay bắt nguồn từ hai bài toán truy nguyên và xácthực vân tay Trong bài toán truy nguyên, người ta phải đối sánh một ảnhvân tay thu được khi điều tra với các ảnh vân tay trong kho lưu trữ để xácđịnh xem có vân tay nào trong kho lưu trữ là do cùng một ngón tay lăn ra
Trang 27với ảnh điều tra không Trong bài toán xác thực, người ta cần xác minh ảnhvân tay đăng nhập ( ta cũng sẽ gọi là điều tra) có đúng là cùng ngón sinh ravới ảnh đã đăng kí hay không? Cả hai bài toán này được đưa về bài toán đốisánh cặp ảnh vân tay điều tra với ảnh lưu trữ để trả lời xem chúng cùng haykhác ngón sinh ra Để xây dựng chương trình đối sánh vân tay, người ta cầnmột tập dữ liệu bao gồm các cặp ảnh do cùng ngón và khác ngón sinh ra.Dựa trên tập dữ liệu này, một thuật toán được áp dụng để xây dựng chươngtrình.
Ví dụ 3: Tìm đường đi ngắn nhất cho robot
Một mạng lưới gồm n trạm hoạt động tự động, khoảng cách giữa chúngkhác nhau, một robot cần đi kiểm tra các trạm này một lần Giả sử Robotghi nhớ được các trạm đã qua và độ dài đường đi giữa chúng, biết được cáctramh cần kiểm tra tiếp Khi đó qua từng trạm nó sẽ tìm đường đi tới trạmtiếp theo Nếu có chiến lược học tốt, càng ngày robot sẽ tìm được đường đingắn hơn, thậm chí là tối ưu Trong trường hợp nàyP và E tương ứng là độdài và các đường đi kiểm tra đã tìm được, T là đường đi kiểm tra
1.2.2 Tại sao cần nghiên cứu học máy?
Sự thâm nhập mạnh mẽ của công nghệ thông tin tinh tế, xã hội công nghệtri thức phát triển và tạo nên nhu cầu ứng dụng rộng rãi Sau đây là một sốphạm vi nghiên cứu, ứng dụng điển hình:
• Xây dựng các hệ nhận dạng mẫu dùng cho các thiết bị nghe nhìn chorobot và trong lĩnh vực tự động hóa, nhận dạng chữ viết tay, chuyển đổicác bài nói thành văn bản, phân tích ảnh tự động
• Tạo ra các chương trình máy tính có thể hoạt động thích nghi với môitrường thay đổi hay thực hiện các nhiệm vụ mà ban đầu chưa xác định
rõ, chẳng hạn, hệ lái tự động ( máy bay, ô tô, tàu thủy, ) , trò chơi haycác điều khiển robot đa năng
• Khám phá tri thức từ dữ liệu đặc biệt là các cơ sở dữ liệu lớn, để trợ
Trang 28giúp ra quyết định Chẳng hạn, phân tích thị trường, chẩn đoán bệnhcủa bệnh nhân và xác định phương án điều trị nhờ phân tích các bệnh
án lưu trữ
1.2.3 Một số lĩnh vực liên quan
Trong mấy chục năm qua, các nghiên cứu khoa học và ứng dụng của họcmáy phát triển nhanh, kết hợp các tiến bộ của nhiều lĩnh vực khác Sau đây
là các lĩnh vực góp phần quan trọng cho nghiên cứu học máy:
• Lý thuyết xác suất và thống kê: Là tiền thân của lĩnh vực học máy, trong
đó, cho phép suy luận (inference) từ quan sát cụ thể để có kết luận kháiquát nhờ thành tựu của giải tích ngẫu nhiên
• Mô hình thần kinh sinh học Việc nghiên cứu cơ chế hoạt động, xử lýphi tuyến và cấu tạo hệ thần kinh sinh học nói chung cho phép tạo nêncác mô hình và thuật toán phỏng sinh học, đặc biệt là các mạng nơron
• Lý thuyết độ phức tạp tính toán Cho phép ước lượng độ phức tạp củacác nhiệm vụ học đo qua các ví dụ đào tạo, só lỗi và các thủ tục tínhtoán
• Lý thuyết điều khiển thích nghi Các thủ tục học để điều khiển quá trìnhnhằm tối ưu hóa mục đích định trước hay học cách đoán các trạng tháitiếp theo của quá trìh điều khiển
• Tâm lý học: Cho phép mô phỏng các đáp ứng thực tế của con người, xâydựng các mô hình xử lý hiệu quả, chẳng hạn, học tăng cường
• Các mô hình tiến hóa Việc nghiên cứu các mô hình tiến hóa cho phépchúng ta đưa ra các thuật toán học mô phỏng tự nhiên như: Thuật toán
di truyền (GA), tối ưu đàn kiến (ACO), tối ưu bầy đàn( PSO), hệ miễndịch nhân tạo ( AIS)
Trang 291.2.4 Các bài toán học thiết lập đúng đắn
Bài toán học được cho là thiết lập đúng khi thực sự có thể cải tiến được
P qua kinh nghiệm E Thông thường mô hình toán học để xây dựng thuậttoán cho một bài toán học đòi hỏi phải đúng đắn theo Hadamard Trong cácbài toán thực tế,Hadamard cho rằng một mô hình toán học ứng dụng đượcxem là thiết lập đúng đắn (well-posed problem) nếu nó có các tính chất:
1 Luôn tồn tại lời giải
2 Chỉ có duy nhất một lời giải
3 Khi các điều kiện ban đầu thay đổi ít thì lời giải cũng thay đổi ít
Tuy nhiên, trong nhiều bài toán, điều kiện duy nhất một lời giải nhiều khikhó đáp ứng trong trường hợp đó người ta hay dùng phương pháp chính quyhóa (hiệu chỉnh hàm mục tiêu) để bài toán trở nên thiết lập đúng đắn.Bài toán học phải được xác định đúng đắn dựa trên việc xác định rõ nhiệm
vụ cụ thể, độ đo việc thực hiện và nguồn dữ liệu, kinh nghiệm
Phương pháp thông dụng nhất để đưa ra thuật toán cho các bài toán học
là xây dựng một mô hình toán học phụ thuộc các tham số và dùng dữ liệuhoặc kinh nghiệm đã có thể xác định giá trị thích hợp cho các tham số này
Trang 30CHƯƠNG 2PHƯƠNG PHÁP PHÂN TÍCH MA TRẬN SVD
Nội dung chương 2 tập trung vào nghiên cứu phương pháp phân tích matrận SVD và một số biến thể của nó Các kiến thức của chương này đượctham khảo từ các tài liệu [8], [1], [2]
2.1.1 Giới thiệu
Chúng ta đã biết bài toán chéo hóa ma trận đối với một ma trận vuông:Một ma trận vuông A được gọi là chéo hóa được nếu tồn tại ma trận đườngchéo D và ma trận khả nghịch P sao cho:
là một véc tơ riêng của A và mỗi véc tơ cột pi phải là một véc tơ riêng của
A ứng với trị riêng dii
Cách phân tích một ma trận vuông thành nhân tử như 2.1.1 còn đượcgọi là phân tích giá trị riêng (Eigen Decomposition) Cách phân tích này chỉđược áp dụng với ma trận vuông và không phải lúc nào cũng tồn tại Nó chỉ
Trang 31tồn tại nếu ma trận A có n véc tơ riêng độc lập tuyến tính, vì nếu không thìkhông tồn tại ma trận khả nghịch P Cách phân tích này cũng không duynhất vì nếu P, D thỏa mãn (2.1.1) thì kP, D cũng thỏa mãn với k 6= 0 làmột số thực bất kỳ.
Việc phân tích một ma trận thành tích của nhiều ma trận đặc biệt khác
có nhiều ứng dụng trong giảm chiều dữ liệu, nén dữ liệu, gom cụm, v.v.vPhần dưới đây sẽ trình bày phương pháp phân tích ma trận SV D, trong
đó mọi ma trận không nhất thiết là vuông đều có thể được phân tích thànhtích của ba ma trận đặc biệt
Số lượng các phần tử khác không trong P
Trang 32Hình 2.1: Minh họa phân tích SVD
đường chéo làσ12, σ22, Vậy (2.1.7) chính là Eigen Decomposition của AAT.Thêm nữa σ21, σ22, chính là các trị riêng của AAT
Ma trậnAAT luôn là ma trận nửa xác định dương nên các trị riêng của nó
là không âm Các σi là căn bậc hai của các trị riêng của AAT còn được gọi
là singular values của A Cái tên Singular Value Decomposition xuất phát
từ đây
Cũng theo đó, mỗi cột của U chính là một vector riêng của A Ta gọi mỗicột này là left-singular vectors của A Tương tự như thế, ATA = VΣTΣVT
và các cột của V còn được gọi là các right-singular vectors của A
Trong Python, để tính SVD của một ma trận, chúng ta sử dụng modulelinalg của numpy như sau:
from future import print_function
import numpy as np
from numpy import linalg as LA
m, n = 3, 4
A = np.random.rand(m, n)
U, S, V = LA.svd(A) # A = U*S*V (no V transpose here)
# checking if U, V are orthogonal and S is a diagonal matrix with
# nonnegative decreasing elements
print (Frobenius norm of (UU^T - I) =, LA.norm(U.dot(U.T) - np.eye(m)))
print (S = , S)
print (Frobenius norm of (VV^T - I) =, LA.norm(V.dot(V.T) - np.eye(n)))
Trang 33Kết quả là:
Frobenius norm of (UU^T - I) = 4.09460889695e-16
S = [ 1.76321041 0.59018069 0.3878011 ]
Frobenius norm of (VV^T - I) = 5.00370755311e-16
Lưu ý rằng biến S được trả về chỉ bao gồm các phần tử trên đường chéocủaΣ Biến V trả về là VT trong (2.1.4)
Ví dụ: Tìm khai triển SVD của ma trận A =
Với mỗi giá trị riêng λi, giải phương trình (A − λiI) x = 0 ta được các vec
tơ riêng tương ứng là:
Trang 34
u2 = 11
A là nửa xác định dương, ta phải có λ ≥ 0 Ta có
với chú ý rằng mỗi u1vTi , 1 ≤ i ≤ r là một ma trận có rank bằng 1
Rõ ràng trong cách biểu diễn này, ma trận A chỉ phụ thuộc vào r cột đầutiên của U, V và r giá trị khác 0 trên đường chéo của ma trận Σ Vì vậy ta
có một cách phân tích gọn hơn và gọi là compact SVD:
Trang 35Hình 2.2: Biểu diễn SVD dạng thu gọn.
Với Ur, Vr lần lượt là ma trận được tạo bởi r cột đầu tiên của U và V Σr
là ma trận con được tạo bởi r hàng đầu tiên và r cột đầu tiên của Σ Nếu
ma trận A có rank nhỏ hơn rất nhiều so với số hàng và số cột r m, n, ta
sẽ được lợi nhiều về việc lưu trữ
Hình dưới đây là ví dụ minh hoạ với m = 4, n = 6, r = 2
Truncated SVD Chú ý rằng trong ma trận Σ, các giá trị trên đườngchéo là không âm và giảm dần σ1 ≥ σ2 ≥ , ≥ σr ≥ 0 = 0 = · · · = 0
Thông thường, chỉ một lượng nhỏ các δi mang giá trị lớn, các giá trị cònlại thường nhỏ và gần 0 Khi đó ta có thể xấp xỉ ma trận A bằng tổng của
k < n ma trận có rank 1:
A ≈ Ak = UkΣk(Vk)T = σ1u1v1T + σ2u2v22 + · · · + σkukvkT (7) (2.2.4)
Ta có định lý sau, nói về nói rằng sai số do cách xấp xỉ trên chính là căn bậchai của tổng bình phương của các singular values mà ta đã bỏ qua ở phầncuối của Σ Ở đây sai số được định nghĩa là Frobineous norm của hiệu hai
Trang 36rX
=
rX
i=k+1
σ2i (2.2.12)
Dấu bằng ở (2.2.9) là vì V là ma trận trực giao Dấu bằng ở (2.2.10) là vìhàm trace có tính chất giao hoán Dấu bằng ở (2.2.12) là vì biểu thức trongdấu ngoặc của (2.2.11)
Thay k = 0 ta sẽ có
||A||2F =
rX
=
rX
i=k+1
σi2
rX