Tai Lieu Chat Luong Machine Learning Cập nhật lần cuối: 20/01/2020 Bản quyền ©2016 – 2020: Vũ Hữu Tiệp Mọi hình thức chép, in ấn cần đồng ý tác giả Mọi chia sẻ cần dẫn nguồn tới https://github.com/tiepvupsu/ebookMLCB Mục lục Mục lục Lời nói đầu 15 0.1 Mục đích sách 16 0.2 Hướng tiếp cận sách 17 0.3 Đối tượng sách 17 0.4 Yêu cầu kiến thức 18 0.5 Mã nguồn kèm 19 0.6 Bố cục sách 19 0.7 Các lưu ý ký hiệu 19 0.8 Tham khảo thêm 20 0.9 Đóng góp ý kiến 21 0.10 Lời cảm ơn 21 0.11 Bảng ký hiệu 21 Phần I Kiến thức tốn Ơn tập Đại số tuyến tính 24 1.1 Lưu ý ký hiệu 24 1.2 Chuyển vị Hermitian 24 Machine Learning Mục lục 1.3 Phép nhân hai ma trận 25 1.4 Ma trận đơn vị ma trận nghịch đảo 27 1.5 Một vài ma trận đặc biệt khác 28 1.6 Định thức 29 1.7 Tổ hợp tuyến tính, khơng gian sinh 30 1.8 Hạng ma trận 32 1.9 Hệ trực chuẩn, ma trận trực giao 33 1.10 Biễu diễn vector hệ sở khác 34 1.11 Trị riêng vector riêng 35 1.12 Chéo hoá ma trận 36 1.13 Ma trận xác định dương 38 1.14 Chuẩn 40 1.15 Vết 42 Giải tích ma trận 43 2.1 Gradient hàm trả số vô hướng 43 2.2 Gradient hàm trả vector 45 2.3 Tính chất quan trọng gradient 46 2.4 Gradient hàm số thường gặp 46 2.5 Bảng gradient thường gặp 49 2.6 Kiểm tra gradient 49 Ôn tập Xác suất 54 3.1 Xác suất 54 3.2 Một vài phân phối thường gặp 62 Machine Learning Mục lục Ước lượng tham số mơ hình 67 4.1 Giới thiệu 67 4.2 Ước lượng hợp lý cực đại 68 4.3 Ước lượng hậu nghiệm cực đại 73 4.4 Tóm tắt 77 Phần II Tổng quan Các khái niệm 80 5.1 Nhiệm vụ, kinh nghiệm, phép đánh giá 80 5.2 Dữ liệu 81 5.3 Các toán machine learning 82 5.4 Phân nhóm thuật tốn machine learning 84 5.5 Hàm mát tham số mơ hình 86 Các kỹ thuật xây dựng đặc trưng 88 6.1 Giới thiệu 88 6.2 Mơ hình chung cho toán machine learning 89 6.3 Một số kỹ thuật trích chọn đặc trưng 91 6.4 Học chuyển tiếp cho toán phân loại ảnh 96 6.5 Chuẩn hoá vector đặc trưng 99 Hồi quy tuyến tính 100 7.1 Giới thiệu 100 7.2 Xây dựng tối ưu hàm mát 101 7.3 Ví dụ Python 103 Machine Learning Mục lục 7.4 Thảo luận 106 Quá khớp 108 8.1 Giới thiệu 108 8.2 Xác thực 111 8.3 Cơ chế kiểm soát 113 8.4 Đọc thêm 115 Phần III Khởi động K lân cận 118 9.1 Giới thiệu 118 9.2 Phân tích tốn học 119 9.3 Ví dụ sở liệu Iris 122 9.4 Thảo luận 126 10 Phân cụm K-means 128 10.1 Giới thiệu 128 10.2 Phân tích tốn học 129 10.3 Ví dụ Python 133 10.4 Phân cụm chữ số viết tay 136 10.5 Tách vật thể ảnh 139 10.6 Nén ảnh 140 10.7 Thảo luận 141 Machine Learning Mục lục 11 Bộ phân loại naive Bayes 145 11.1 Bộ phân loại naive Bayes 145 11.2 Các phân phối thường dùng NBC 147 11.3 Ví dụ 148 11.4 Thảo luận 155 Phần IV Mạng neuron nhân tạo 12 Gradient descent 158 12.1 Giới thiệu 158 12.2 Gradient descent cho hàm biến 159 12.3 Gradient descent cho hàm nhiều biến 164 12.4 Gradient descent với momentum 167 12.5 Nesterov accelerated gradient 170 12.6 Stochastic gradient descent 171 12.7 Thảo luận 173 13 Thuật toán học perceptron 175 13.1 Giới thiệu 175 13.2 Thuật toán học perceptron 176 13.3 Ví dụ minh hoạ Python 179 13.4 Mơ hình mạng neuron 180 13.5 Thảo Luận 183 Machine Learning Mục lục 14 Hồi quy logistic 185 14.1 Giới thiệu 185 14.2 Hàm mát phương pháp tối ưu 188 14.3 Triển khai thuật toán Python 190 14.4 Tính chất hồi quy logistic 193 14.5 Bài toán phân biệt hai chữ số viết tay 195 14.6 Bài toán phân loại đa lớp 196 14.7 Thảo luận 198 15 Hồi quy softmax 201 15.1 Giới thiệu 201 15.2 Hàm softmax 202 15.3 Hàm mát phương pháp tối ưu 205 15.4 Ví dụ Python 211 15.5 Thảo luận 213 16 Mạng neuron đa tầng lan truyền ngược 214 16.1 Giới thiệu 214 16.2 Các ký hiệu khái niệm 217 16.3 Hàm kích hoạt 218 16.4 Lan truyền ngược 220 16.5 Ví dụ Python 225 16.6 Suy giảm trọng số 230 16.7 Đọc thêm 232 Machine Learning Mục lục Phần V Hệ thống gợi ý 17 Hệ thống gợi ý dựa nội dung 234 17.1 Giới thiệu 234 17.2 Ma trận tiện ích 235 17.3 Hệ thống dựa nội dung 237 17.4 Bài toán MovieLens 100k 240 17.5 Thảo luận 244 18 Lọc cộng tác lân cận 245 18.1 Giới thiệu 245 18.2 Lọc cộng tác theo người dùng 246 18.3 Lọc cộng tác sản phẩm 251 18.4 Lập trình Python 253 18.5 Thảo luận 256 19 Lọc cộng tác phân tích ma trận 257 19.1 Giới thiệu 257 19.2 Xây dựng tối ưu hàm mát 259 19.3 Lập trình Python 261 19.4 Thảo luận 264 10 Machine Learning Chương 24 Bài tốn tối ưu lồi Hình 24.3 Biểu diễn hình học quy hoạch tuyến tính Quy hoạch tuyến tính x1 x0 −c tập khả thi X x = arg cT x x,s thoả mãn: Ax = b Gx + s = h s0 (24.14) Tiếp theo, ta biểu diễn x dạng hiệu hai vector với thành phần không âm: x = x+ − x− , với x+ , x− Ta tiếp tục viết lại (24.14) dạng: x = arg +min c T x+ − c T x − − x ,x ,s thoả mãn: Ax − Ax− = b Gx+ − Gx− + s = h x+ 0, x− 0, s + (24.15) Tới đây, bạn đọc thấy (24.15) có dạng (24.13) 24.4.3 Minh hoạ hình học tốn quy hoạch tuyến tính Các tốn quy hoạch tuyến tính minh hoạ Hình 24.3 với tập khả thi có dạng đa diện lồi Điểm x0 điểm cực tiểu toàn cục, điểm x1 điểm cực đại toàn cục Nghiệm tốn quy hoạch tuyến tính, tồn tại, điểm biên của tập khả thi 24.4.4 Giải toán quy hoạch tuyến tính CVXOPT Nhắc lại tốn canh tác: (x, y) = arg max 5x + 3y x,y thoả mãn: x + y ≤ 10 2x + y ≤ 16 x + 4y ≤ 32 x, y ≥ (24.16) Các điều kiện ràng buộc viết lại dạng Gx h, đó: 330 Machine Learning G= Chương 24 Bài toán tối ưu lồi 1 10 1 16 4 h = 32 0 −1 0 −1 Khi sử dụng CVXOPT, lập trình sau: from cvxopt import matrix, solvers c = matrix([-5., -3.]) # since we need to maximize the objective funtion G = matrix([[1., 2., 1., -1., 0.], [1., 1., 4., 0., -1.]]) h = matrix([10., 16., 32., 0., 0.]) solvers.options[’show_progress’] = False sol = solvers.lp(c, G, h) print(’Solution"’) print(sol[’x’]) Kết quả: Solution: [ 6.00e+00] [ 4.00e+00] Nghiệm nghiệm mà tìm phần đầu viết dựa biểu diễn hình học Một vài lưu ý: • Hàm solvers.lp cvxopt giải tốn (24.14) • Trong tốn này, phải tìm giá trị lớn nên hàm mục tiêu cần đổi dạng −5x − 3y Vì vậy, ta cần khai báo c = matrix([−5., −3.]) • Hàm matrix nhận đầu vào list Python, list thể vector cột Nếu muốn biểu diễn ma trận, đầu vào matrix phải list list, list bên thể vector cột • Các số toán phải dạng số thực Nếu chúng số nguyên, ta cần thêm dấu chấm (.) để chuyển chúng thành số thực • Với đẳng thức ràng buộc Ax = b, solvers.lp lấy giá trị mặc định A b None, tức không khai báo khơng có đẳng thức ràng buộc Với tuỳ chọn khác, bạn đọc tìm tài liệu CVXOPT(https: //goo.gl/q5CZmz) Việc giải Bài toán NXB CVXOPT xin nhường lại cho bạn đọc Machine Learning 331 Chương 24 Bài toán tối ưu lồi 24.5 Quy hoạch tồn phương 24.5.1 Bài tốn quy hoạch tồn phương Một dạng toán tối ưu lồi phổ biến khác quy hoạch toàn phương (quadratic programming, QP) Khác biệt quy hoạch toàn phương so với quy hoạch tuyến tính hàm mục tiêu có dạng toàn phương (quadratic form) Quy hoạch toàn phương x = arg xT Px + qT x + r x thoả mãn: Gx h Ax = b (24.17) Trong P ma trận vng nửa xác định dương bậc n, G ∈ Rm×n , A ∈ Rp×n Điều kiện nửa xác định dương P nhằm đảm bảo hàm mục tiêu lồi Trong quy hoạch toàn phương, dạng toàn phương tối thiểu đa diện lồi (Xem Hình 24.4) Quy hoạch tuyến tính trường hợp đặc biệt quy hoạch tồn phương với P = 24.5.2 Ví dụ Bài tốn: Một hịn đảo có dạng đa giác lồi Một thuyền biển cần theo hướng để tới đảo nhanh nhất, giả sử tốc độ sóng gió khơng Đây tốn tìm khoảng cách từ điểm tới đa diện Bài tốn tìm khoảng cách từ điểm tới đa diện: Cho đa diện tập hợp điểm thoả mãn Ax b điểm u, tìm điểm x thuộc đa diện cho khoảng cách Euclid x u nhỏ Đây tốn quy hoạch tồn phương có dạng: x = arg kx − uk22 x thoả mãn: Gx h Hàm mục tiêu đạt giá trị nhỏ u nằm polyheron nghiệm x = u Khi u không nằm polyhedron, ta viết: 1 1 kx − uk22 = (x − u)T (x − u) = xT x − uT x + uT u 2 2 Biểu thức có dạng hàm mục tiêu (24.17) với P = I, q = −u, r = T u u, I ma trận đơn vị 332 Machine Learning Chương 24 Bài toán tối ưu lồi Hình 24.4 Biểu diễn hình học quy hoạch toàn phương Quy hoạch toàn phương x0 −∇f0 (x0 ) tập khả thi X y x+4 Hình 24.5 Ví dụ khoảng cách điểm đa diện (10, 10) y=3 x + y = 10 + 2x x y= (0, 0) 16 24.5.3 Giải toán quy hoạch tồn phương CVXOPT Xét tốn cho Hình 24.5 Ta cần tìm khoảng cách từ điểm có toạ độ (10, 10) tới đa giác lồi màu xám Khoảng cách từ điểm tới tập hợp trường hợp định nghĩa khoảng cách từ điểm tới điểm gần tập hợp Bài toán viết dạng quy hoạch toàn phương sau: (x, y) = arg min(x − 10)2 + (y − 10)2 x,y 1 10 16 x 32 thoả mãn: −1 y 0 −1 Tập khả thi toán lấy từ Bài toán canh tác u = [10, 10]T Bài toán giải CVXOPT sau: Machine Learning 333 Chương 24 Bài toán tối ưu lồi from cvxopt import matrix, solvers P = matrix([[1., 0.], [0., 1.]]) q = matrix([-10., -10.]) G = matrix([[1., 2., 1., -1., 0.], [1., 1., 4., 0., -1.]]) h = matrix([10., 16., 32., 0., 0]) solvers.options[’show_progress’] = False sol = solvers.qp(P, q, G, h) print(’Solution:’) print(sol[’x’]) Kết quả: Solution: [ 5.00e+00] [ 5.00e+00] Như vậy, nghiệm toán tối ưu điểm có toạ độ (5, 5) 24.6 Quy hoạch hình học Trong mục này, thảo luận nhóm tốn khơng lồi, biến đổi dạng lồi Trước hết, ta làm quen với hai khái niệm đơn thức đa thức 24.6.1 Đơn thức đa thức Một hàm số f : Rn → R với tập xác định domf = Rn++ (tất phần tử dương) có dạng: f (x) = cxa11 xa22 xann (24.18) c > ∈ R, gọi đơn thức (monomial) (trong chương trình phổ thơng, đơn thức định nghĩa với c số tự nhiên) Tổng đơn thức: f (x) = K X ck xa11k xa22k xannk (24.19) k=1 ck > 0, gọi đa thức (posynomial) 334 Machine Learning Chương 24 Bài toán tối ưu lồi 24.6.2 Quy hoạch hình học Quy hoạch hình học x = arg f0 (x) x thoả mãn: fi (x) ≤ 1, i = 1, 2, , m hj (x) = 1, j = 1, 2, , p (24.20) f0 , f1 , , fm đa thức h1 , , hp đơn thức Điều kiện x ẩn Chú ý f đa thức, h đơn thức f /h đa thức Ví dụ, tốn tối ưu (x, y, z) = arg x/y x,y,z thoả mãn: 1≤x≤2 √ x3 + 2y/z ≤ y x/y = z (24.21) viết lại dạng quy hoạch hình học: (x, y, z) = arg xy −1 x,y,z thoả mãn: −1 x ≤1 (1/2)x ≤ x3 y −1/2 + 2y 1/2 z −1 ≤ xy −1 z −1 = (24.22) Bài tốn khơng tốn tối ưu lồi hàm mục tiêu điều kiện ràng buộc không lồi 24.6.3 Biến đổi quy hoạch hình học dạng tốn tối ưu lồi Quy hoạch hình học biến đổi dạng lồi cách sau Đặt yi = log(xi ), tức xi = exp(yi ) Nếu f đơn thức x thì: ! n X f (x) = c(exp(y1 ))a1 (exp(yn ))an = c exp yi = exp(aT y + b) i=1 với b = log(c) Lúc này, hàm số g(y) = exp(aT y + b) hàm lồi theo y (Bạn đọc chứng minh theo định nghĩa hợp hai hàm lồi hàm lồi Trong trường hợp này, hàm exp hàm affine hàm lồi.) Machine Learning 335 Chương 24 Bài toán tối ưu lồi Tương tự, đa thức đẳng thức (24.19) viết dạng: f (x) = K X exp(aTk y + bk ) k=1 ak = [a1k , , ank ]T , bk = log(ck ) yi = log(x) Lúc này, đa thức viết dạng tổng hàm exp hàm affine, hàm lồi theo y Lưu ý tổng hàm lồi hàm lồi Bài tốn quy hoạch hình học (24.20) viết lại dạng: y = arg y thoả mãn: Ki X k=1 K0 X exp(aT0k y + b0k ) k=1 exp(aTik y + bik ) ≤ 1, i = 1, , m (24.23) exp(gjT y + hj ) = 1, j = 1, , p với aik ∈ Rn , ∀i = 1, , p gj ∈ Rn , ∀j = 1, , p P Với ý hàm số log ( m i=1 exp(gi (z))) môt hàm lồi theo z gi hàm lồi (xin bỏ qua phần chứng minh), ta viết lại tốn (24.23) dạng toán tối ưu lồi cách lấy log hàm sau Quy hoạch hình học dạng toán tối ưu lồi ! K0 X miny f˜0 (y) = log exp(aT y + bi0 ) 0k thoả mãn: f˜i (y) = log k=1 Ki X k=1 exp(aTik y + bik ) ! ≤ 0, i = 1, , m (24.24) ˜ j (y) = gT y + hj = 0, j = 1, , p h j Lúc này, ta nói quy hoạch hình học tương đương với tốn tối ưu lồi hàm mục tiêu hàm bất phương trình ràng buộc (24.24) hàm lồi, đồng thời ràng buộc phương trình cuối có dạng affine 24.6.4 Giải quy hoạch hình học CVXOPT Quay lại ví dụ Bài tốn đóng thùng khơng ràng buộc hàm mục tiêu f (x, y, z) = 40x−1 y −1 z −1 + 2xy + 2yz + 2zx đa thức Vậy toán quy hoạch hình học Nghiệm tốn tìm CVXOPT sau: 336 Machine Learning Chương 24 Bài toán tối ưu lồi from cvxopt import matrix, solvers from math import log, exp# gp from numpy import array import numpy as np K = [4] # number of monomials F = matrix([[-1., 1., 1., 0.], [-1., 1., 0., 1.], [-1., 0., 1., 1.]]) g = matrix([log(40.), log(2.), log(2.), log(2.)]) solvers.options[’show_progress’] = False sol = solvers.gp(K, F, g) print(’Solution:’) print(np.exp(np.array(sol[’x’]))) print(’\nchecking sol^5’) print(np.exp(np.array(sol[’x’]))**5) Kết quả: Solution: [[ 1.58489319] [ 1.58489319] [ 1.58489319]] checking sol^5 [[ 9.9999998] [ 9.9999998] [ 9.9999998]] √ Nghiệm thu x = y = z = 10 Bạn đọc nên đọc thêm dẫn hàm solvers.gp (https://goo.gl/5FEBtn) để hiểu cách thiết lập giải tốn quy hoạch hình học 24.7 Tóm tắt • Các tốn tối ưu xuất nhiều thực tế, tối ưu lồi đóng vai trị quan trọng Trong tốn tối ưu lồi, tìm cực trị địa phương cực trị tồn cục • Có tốn tối ưu khơng viết dạng lồi biến đổi dạng lồi, ví dụ tốn quy hoạch hình học • Quy hoạch tuyến tính quy hoạch hình học đóng vai trị quan trọng tốn tối ưu, sử dụng nhiều thuật tốn machine learning • Thư viện CVXOPT dùng để giải nhiều toán tối ưu lồi, dễ sử dụng, phù hợp với mục đích học tập nghiên cứu Machine Learning 337 Chương 25 Đối ngẫu Chương 25 Đối ngẫu 25.1 Giới thiệu Trong Chương 23 Chương 24, thảo luận tập lồi, hàm lồi toán tối ưu lồi Trong chương này, tiếp tục tìm hiểu sâu scác điều kiện nghiệm toán tối ưu, lồi khơng lồi; tốn đối ngẫu (dual problem) điều kiện KKT Trước tiên xét tốn tối ưu có phương trình ràng buộc: x = arg f0 (x) x (25.1) thoả mãn: f1 (x) = Bài tốn khơng thiết toán tối ưu lồi Tức hàm mục tiêu hàm ràng buộc không thiết phải lồi Bài tốn giải phương pháp nhân tử Lagrange (xem Phụ Lục A) Cụ thể, xét hàm số: L(x, λ) = f0 (x) + λf1 (x) (25.2) Hàm số L(x, λ) gọi hàm Lagrange (the Lagrangian) toán tối ưu (25.1) Trong hàm số này, có thêm biến λ gọi nhân tử Lagrange (Lagrange multiplier) Người ta chứng minh rằng, điểm tối ưu toán (25.1) thoả mãn điều kiện ∇x,λ L(x, λ) = Tức là: ∇x L(x, λ) = ∇x f0 (x) + λ∇x f1 (x) = ∇λ L(x, λ) = f1 (x) = (25.3) (25.4) Để ý điều kiện thứ hai phương trình ràng buộc tốn (25.1) Trong nhiều trường hợp, việc giải hệ phương trình (25.3) - (25.4) đơn giản việc trực tiếp tìm optimal value tốn (25.1) Một số ví dụ phương pháp nhân tử Lagrange tìm thấy Phụ Lục A 338 Machine Learning Chương 25 Đối ngẫu 25.2 Hàm đối ngẫu Lagrange 25.2.1 Hàm Lagrange toán tối ưu Xét toán tối ưu tổng quát: x∗ = arg f0 (x) x (25.5) thoả mãn: fi (x) ≤ 0, i = 1, 2, , m hj (x) = 0, j = 1, 2, , p T Tp với tập xác định D = m i=0 domfi ) ∩ ( j=1 domhj Chú ý rằng, khơng có giả sử tính chất lồi hàm tối ưu hay hàm ràng buộc Giả sử tập xác định D 6= ∅ (tập rỗng) Bài tốn tối ưu cịn gọi tốn (primal problem) Hàm số Lagrange xây dựng tương tự với nhân tử Lagrange cho (bất) phương trình ràng buộc: L(x, λ, ν) = f0 (x) + m X λi fi (x) + i=1 p X νj hj (x) j=1 Trong đó, λ = [λ1 , λ2 , , λm ]; ν = [ν1 , ν2 , , νp ] vector gọi biến đối ngẫu (dual variable) vector nhân tử Lagrange (Lagrange multiplier vector) Nếu biến x ∈ Rn tổng số biến hàm số Lagrange n + m + p 25.2.2 Hàm đối ngẫu Lagrange Hàm đối ngẫu Lagrange (the Lagrange dual function) toán tối ưu (viết gọn hàm số đối ngẫu) (25.5) hàm biến đối ngẫu λ ν, định nghĩa infimum theo x hàm Lagrange: ! p m X X g(λ, ν) = inf L(x, λ, ν) = inf f0 (x) + λi fi (x) + νj hj (x) (25.6) x∈D x∈D i=1 j=1 Nếu hàm Lagrange không bị chặn dưới, hàm đối ngẫu λ, ν lấy giá trị −∞ Lưu ý : • inf lấy miền x ∈ D, tức tập xác định toán Tập xác định khác với tập khả thi – tập hợp điểm thoả mãn ràng buộc • Với x, hàm số đối ngẫu hàm affine (λ, ν), tức hàm vừa lồi, vừa lõm Hàm đối ngẫu infimum thành phần (có Machine Learning 339 Chương 25 Đối ngẫu thể vô hạn) hàm lõm, tức hàm lõm Như vậy, hàm đối ngẫu toán tối ưu hàm lõm, tốn tối ưu có tốn tối ưu lồi hay không Nhắc lại supremum thành phần hàm lồi hàm lồi; hàm lõm hàm đối hàm lồi (xem thêm Mục 23.3.2) 25.2.3 Chặn giá trị tối ưu Nếu p∗ giá trị tối ưu tốn (25.5) với biến đối ngẫu λi ≥ 0, ∀i ν bất kỳ, ta có g(λ, ν) ≤ p∗ (25.7) Tính chất chứng minh sau Giả sử x0 điểm khả thi toán (25.5), tức thoả mãn điều kiện ràng buộc fi (x0 ) ≤ 0, ∀i = 1, , m; hj (x0 ) = 0, ∀j = 1, , p, ta có L(x0 , λ, ν) = f0 (x0 ) + m X i=1 λ fi (x0 ) + } | i {z ≤0 p X j=1 νj hj (x0 ) ≤ f0 (x0 ) | {z } =0 Vì điều với điểm khả thi x0 , ta có tính chất quan trọng sau đây: g(λ, ν) = inf L(x, λ, ν) ≤ L(x0 , λ, ν) ≤ f0 (x0 ) x∈D Khi x0 = x∗ (điểm tối ưu), f0 (x0 ) = p∗ , ta suy bất đẳng thức (25.7) Bất đẳng thức quan trọng giá trị tối ưu hàm mục tiêu tốn (25.5) khơng nhỏ giá trị lớn hàm đối ngẫu Lagrange g(λ, ν) 25.2.4 Ví dụ Ví dụ 1: Xét tốn tối ưu: x = arg x2 + 10 sin(x) + 10 x thoả mãn: (x − 2) ≤ (25.8) Trong toán này, tập xác định D = R tập khả thi ≤ x ≤ Đồ thị hàm mục tiêu minh hoạ đường nét đậm Hình 25.1a Hàm số ràng buộc f1 (x) = (x − 2)2 − biểu diễn đường chấm gạch Có thể nhận giá trị tối ưu toán điểm đồ thị có hồnh độ (là điểm nhỏ đường nét đậm đoạn [0, 4]) Chú ý hàm mục tiêu hàm lồi nên tốn tối ưu khơng phải lồi, hàm bất phương trình ràng buộc f1 (x) lồi Hàm số Lagrange tồn có dạng L(x, λ) = x2 + 10 sin(x) + 10 + λ((x − 2)2 − 4) 340 Machine Learning Chương 25 Đối ngẫu 40 10.0 30 7.5 20 5.0 10 2.5 −20 −30 0.0 f0(x) −10 −4 f1(x) −2.5 f0(x) + λf1(x) −5.0 −2 −7.5 g(λ) p∗ x λ (a) (b) Hình 25.1 Ví dụ hàm số đối ngẫu (a) Đường nét liền đậm thể hàm mục tiêu Đường chấm gạch thể hàm số ràng buộc Các đường chấm chấm thể hàm Lagrange ứng với λ khác (b) Đường nét đứt nằm ngang thể giá trị tối ưu toán Đường nét liền thể hàm số đối ngẫu Với λ, giá trị hàm đối ngẫu nhỏ giá trị tối ưu tốn Các đường nét chấm Hình 25.1a đồ thị hàm Lagrange ứng với λ khác Vùng bị chặn hai đường thẳng đứng màu đen thể tập khả thi toán Với λ, hàm số đối ngẫu định nghĩa là: g(λ) = inf x2 + 10 sin(x) + 10 + λ((x − 2)2 − 4) , λ ≥ x Từ Hình 25.1a, thấy với λ khác nhau, hàm g(λ) đạt giá trị nhỏ điểm có hồnh độ đường nét liền điểm thấp điểm Trong Hình 25.1b, đường nét liền thể đồ thị hàm g(λ), đường nét đứt thể giá trị tối ưu toán tối ưu Ta thấy hai điều: • Đường nét liền ln nằm phía (hoặc có đoạn trùng) đường nét đứt • Hàm g(λ) hàm lõm Mã nguồn cho Hình 25.1 tìm thấy https://goo.gl/jZiRCp Ví dụ : Xét tốn quy hoạch tuyến tính: x = arg cT x x thoả mãn: Ax = b x0 Machine Learning (25.9) 341 Chương 25 Đối ngẫu Hàm ràng buộc cuối viết lại thành fi (x) = −xi , i = 1, , n Hàm Lagrange toán là: T L(x, λ, ν) = c x − n X i=1 λi xi + ν T (Ax − b) = −bT ν + (c + AT ν − λ)T x (đừng quên điều kiện λ 0) Hàm đối ngẫu g(λ, ν) = inf L(x, λ, ν) = −bT ν + inf (c + AT ν − λ)T x x x (25.10) Nhận thấy hàm tuyến tính dT x x bị chặn vào d = Vì có phần tử di d khác 0, cần chọn xi lớn ngược dấu với di , ta có giá trị nhỏ tuỳ ý Nói cách khác, g(λ, ν) = −∞ trừ c + AT ν − λ = Tóm lại, T −b ν c + AT ν − λ = g(λ, ν) = (25.11) −∞ o.w Trường hợp thứ hai g(λ, ν) = −∞ gặp nhiều sau Trường hợp khơng thú vị hiển nhiên g(λ, ν) ≤ p∗ Với mục đích tìm chặn p∗ , ta cần quan tâm tới giá trị λ ν cho g(λ, ν) lớn tốt Trong toán này, ta quan tâm tới λ ν cho c + AT ν − λ = 25.3 Bài toán đối ngẫu Lagrange Với cặp (λ, ν), hàm đối ngẫu Lagrange cho chặn cho giá trị tối ưu p∗ tốn (25.5) Câu hỏi đặt là: với cặp giá trị (λ, ν), có chặn tốt p∗ ? Nói cách khác, ta cần giải toán λ∗ , ν ∗ = arg max g(λ, ν) λ,ν (25.12) thoả mãn: λ Đây tốn tối ưu lồi ta cần tối đa hàm lõm tập khả thi lồi Trong nhiều trường hợp, lời giải cho tốn (25.12) dễ tìm tốn Bài toán tối ưu (25.12) gọi toán đối ngẫu Lagrange (Lagrange dual problem) (hoặc viết gọn tốn đối ngẫu) ứng với tốn (25.5) Tập khả thi toán đối ngẫu gọi tập khả thi đối ngẫu (dual feasible set) Ràng buộc toán đối ngẫu bao gồm điều kiện λ điều kiện ẩn g(λ, ν) > −∞ (điều kiện thêm vào ta quan tâm tới (λ, ν) cho hàm mục tiêu toán đối ngẫu lớn tốt) Nghiệm toán đối ngẫu (25.12) ký hiệu (λ∗ , ν ∗ ), gọi điểm tối ưu đối ngẫu (dual optimal point) 342 Machine Learning Chương 25 Đối ngẫu Trong nhiều trường hợp, điều kiện ẩn g(λ, ν) > −∞ viết cụ thể Quay lại với ví dụ phía trên, điệu kiện ẩn viết thành c+AT ν −λ = Đây hàm affine Vì vậy, có thêm ràng buộc này, ta thu toán lồi 25.3.1 Đối ngẫu yếu Ký hiệu giá trị tối ưu toán đối ngẫu (25.12) d∗ Theo (25.7), ta biết d∗ ≤ p∗ Tính chất quan trọng gọi đối ngẫu yếu (weak duality) Ta quan sát thấy hai điều: • Nếu giá trị tối ưu tốn p∗ = −∞, ta phải có d∗ = −∞ Điều tương đương với việc toán đối ngẫu bất khả thi (khơng có giá trị thỏa mãn ràng buộc) • Nếu hàm mục tiêu tốn đối ngẫu khơng bị chặn trên, nghĩa d∗ = +∞, ta phải có p∗ = +∞ Khi đó, tốn bất khả thi Giá trị p∗ − d∗ gọi cách biệt đối ngẫu tối ưu (optimal duality gap) Cách biệt số khơng âm Đơi có tốn tối ưu (lồi khơng) khó giải Tuy nhiên, tìm d∗ , ta biết chặn tốn Việc tìm d∗ thường đơn giản tốn đối ngẫu ln ln lồi 25.3.2 Đối ngẫu mạnh tiêu chuẩn ràng buộc Slater Nếu đẳng thức p∗ = d∗ thoả mãn, cách biệt đối ngẫu tối ưu khơng, ta nói đối ngẫu mạnh (strong duality) xảy Lúc này, việc giải tốn đối ngẫu giúp tìm xác giá trị tối ưu tốn gốc Thật không may, đối ngẫu mạnh không thường xuyên xảy toán tối ưu Tuy nhiên, tốn lồi, tức có dạng x = arg f0 (x) x thoả mãn: fi (x) ≤ 0, i = 1, 2, , m Ax = b (25.13) f0 , f1 , , fm hàm lồi, thường (khơng ln ln) có đối ngẫu mạnh Rất nhiều nghiên cứu thiết lập điều kiện tính chất lồi để đối ngẫu mạnh xảy Những điều kiện có tên tiêu chuẩn ràng buộc (constraint qualification) Một tiêu chuẩn ràng buộc phổ biến tiêu chuẩn ràng buộc Slater (Slater’s constraint qualification) Machine Learning 343 Chương 25 Đối ngẫu Trước thảo luận tiêu chuẩn ràng buộc Slatter, cần định nghĩa: Định nghĩa 25.1: Khả thi chặt Một điểm khả thi toán (25.13) gọi khả thi chặt (stricly feasible) nếu: fi (x) < 0, i = 1, 2, , m, Ax = b Khả thi chặt khác với khả thi việc dấu bất phương trình ràng buộc không xảy Định lý 25.1: Tiêu chuẩn ràng buộc Slater Nếu tồn toán tối ưu lồi tồn điểm khả thi chặt đối ngẫu mạnh xảy Điều kiện đơn giản giúp ích cho nhiều tốn tối ưu sau Chú ý: • Đối ngẫu mạnh khơng thường xun xảy Với tốn lồi, điều xảy thường xuyên Tồn tốn lồi mà đối ngẫu mạnh khơng đạt • Có tốn khơng lồi nhưngđối ngẫu mạnh xảy Bài tốn tối ưu Hình 25.1 ví dụ 25.4 Các điều kiện tối ưu 25.4.1 Sự lỏng lẻo bù trừ Giả sử đối ngẫu mạnh xảy Gọi x∗ điểm tối ưu tốn (λ∗ , ν ∗ ) cặp điểm tối ưu toán đối ngẫu Ta có f0 (x∗ ) = g(λ∗ , ν ∗ ) = inf x f0 (x) + ≤ f0 (x ) + ≤ f0 (x∗ ) m X i=1 ! p λ∗i fi (x) + i=1 ∗ 344 m X λ∗i fi (x∗ ) X νj∗ hj (x) j=1 + p X νj∗ hj (x∗ ) (25.14) (25.15) (25.16) j=1 (25.17) Machine Learning