Bài 6 Slide Máy hỗ trợ Vecto (machine learning). Máy vectơ hỗ trợ (Support vector machine) Máy vectơ hỗ trợ (Support vector machine) 1 Máy vectơ hỗ trợ Giới thiệu (1) Máy vectơ hỗ trợ (Support vector machine SVM) được đề cử bởi V Vapnik và các đồng.
Máy vectơ hỗ trợ (Support vector machine) Máy vectơ hỗ trợ: Giới thiệu (1) Máy vectơ hỗ trợ (Support vector machine - SVM) đề cử V Vapnik đồng nghiệp ông vào năm 1970s Nga, sau trở nên tiếng phổ biến vào năm 1990s SVM phương pháp phân lớp tuyến tính (linear classifier), với mục đích xác định siêu phẳng (hyperplane) để phân tách hai lớp liệu Ví dụ: lớp có nhãn dương (positive) lớp có nhãn âm (negative) Các hàm nhân (kernel functions), gọi hàm biến đổi (transformation functions), dùng cho trường hợp phân lớp phi tuyến Máy vectơ hỗ trợ: Giới thiệu (2) SVM có tảng lý thuyết chặt chẽ SVM phương pháp tốt (phù hợp) toán phân lớp có khơng gian nhiều chiều (các đối tượng cần phân lớp biểu diễn tập lớn thuộc tính) SVM biết đến số phương pháp phân lớp tốt toán phân lớp văn (text classification) Máy vectơ hỗ trợ: Giới thiệu (3) Các vectơ ký hiệu chữ đậm nét! Biểu diễn tập r quan sát {(x1, y1), (x2, y2), …, (xr, yr)}, xi vectơ đầu vào biểu diễn không gian X Rn yi nhãn lớp (giá trị đầu ra), yi {1,-1} yi=1: lớp dương (positive); yi=-1: lớp âm (negative) SVM xác định hàm phân tách tuyến tính f(x) = w x + b w vectơ trọng số thuộc tính; số thực Sao cho với xi: [Eq.1] b giá trị yi if 01 if w xi b w xi [Eq.2] Siêu phẳng phân tách Siêu phẳng phân tách quan sát thuộc lớp dương quan sát thuộc lớp âm: w x + b = Còn gọi ranh giới (bề mặt) định Tồn nhiều siêu phẳng phân tách Chọn nào? [Liu, 2006] Mặt siêu phẳng có lề cực đại SVM lựa chọn mặt siêu phẳng phân tách có lề (margin) lớn Lý thuyết học máy mặt siêu phẳng phân tách tối thiểu hóa giới hạn lỗi (phân lớp) mắc phải (so với siêu phẳng khác) [Liu, 2006] Phân tách tuyến tính (linear separability) Giả sử tập liệu huấn luyện phân tách cách tuyến tính Xét quan sát lớp dương (x+,1) quan sát lớp âm (x-,-1) gần siêu phẳng phân tách H0 (< � , � > +� = 0) Định nghĩa siêu phẳng lề song song với H+ qua x+, song song với H0 H- qua x-, song song với H0 H+: +b = [Eq.3] H-: +b = -1 cho: 1, +b ≥ yi = +b ≤ -1, yi = -1 Tính tốn mức lề (1) Mức lề (margin) khoảng cách siêu phẳng lề H+ H- Trong hình vẽ nêu trên: d+ khoảng cách H+ H0 d- khoảng cách H- H0 (d+ + d) mức lề Trong không gian vectơ, khoảng cách từ điểm xi đến siêu phẳng (w x + b = 0) là: | w xi ||w|| độ dài w: || w || w w b | || w || w w1 w [Eq.4] [Eq.5] Tính tốn mức lề (2) Tính tốn d+: khoảng cách từ x+ đến (w x + b = 0) | w x b | |1| Áp dụng biểu thức [Eq.3-4]: d || w || || w || || w || Tính tốn d-: khoảng cách từ x- đến (w x + b = 0) | w x b | | 1| Áp dụng biểu thức [Eq.3-4]: d || w || || w || || w Tính tốn mức lề || margin d d || w || [Eq.6] [Eq.7] [Eq.8] Học SVM: cực đại hóa mức lề (1) Định nghĩa (Linear SVM – Trường hợp phân tách được) Tập gồm r ví dụ huấn luyện phân tách tuyến tính D = {(x1,y1), (x2,y2), …, (xr,yr)} SVM học phân lớp (classifier) mà có mức lề cực đại Tương đương với việc giải toán tối ưu bậc hai sauw Tìm đạt cực đại b cho: margin w Với điều kiện: w x i b 1, if y i i 1 i w x b 1, if y với -1 ví dụ huấn luyện xi (i=1 r) 10 Linear SVM: Tổng kết Sự phân lớp dựa vào siêu phẳng phân tách Siêu phẳng phân tách xác định dựa tập vectơ hỗ trợ Chỉ vectơ hỗ trợ, hệ số nhân Lagrange chúng khác Đối với ví dụ huấn luyện khác (khơng phải vectơ hỗ trợ), hệ số nhân Lagrange chúng Việc xác định vectơ hỗ trợ (trong số ví dụ huấn luyện) địi hỏi phải giải tốn tối ưu bậc hai Trong biểu thức đối ngẫu (LD) biểu thức biểu diễn siêu phẳng phân tách, ví dụ huấn luyện xuất bên tích vô hướng (inner/dot-products) vectơ 34 Non-linear SVM Lưu ý: Các cơng thức phương pháp SVM địi hỏi tập liệu phải phân lớp tuyến tính (có/khơng nhiễu) Trong nhiều tốn thực tế, tập liệu phân lớp phi tuyến (non-linearly separable) Phương pháp phân loại SVM phi tuyến (Non-linear SVM): Bước Chuyển đổi không gian biểu diễn đầu vào ban đầu sang không gian khác (thường có số chiều lớn nhiều) → Dữ liệu biểu diễn không gian (đã chuyển đổi) phân lớp tuyến tính (linearly separable) Bước Áp dụng lại công thức bước phương pháp phân lớp SVM tuyến tính Khơng gian biểu diễn ban đầu: Khơng gian đầu vào (input space) Không gian biểu diễn sau chuyển đổi: Không gian đặc trưng (feature space) 35 Chuyển đổi không gian biểu diễn (1) Ý tưởng việc ánh xạ (chuyển đổi) biểu diễn liệu từ không gian ban đầu X sang không gian khác F cách áp dụng hàm ánh xạ phi tuyến :XF x ! (x) Trong khơng gian chuyển đổi, tập ví dụ học ban đầu {(��, �1), (��, �2), … , (��, ��)} biểu diễn (ánh xạ) tương ứng: {((x1), y1), ((x2), y2), …, ((xr), yr)} 36 Chuyển đổi không gian biểu diễn (2) [Liu, 2006] • Trong ví dụ này, khơng gian sau chuyển đổi có số chiều khơng gian ban đầu (2 chiều) • Nhưng thơng thường, số chiều không gian sau chuyển đổi (feature space) lớn (nhiều) số chiều không gian ban đầu (input space) 37 Non-linear SVM: Bài toán tối ưu Sau q trình chuyển đổi khơng gian biểu diễn, toán tối ưu: r LP w w i Cực tiểu hóa: [Eq.34] i1 w (x i ) b 1 i yi C Với điều kiện: r i i, i r 0, Bài toán (tối ưu) đối ngẫu: r r i j yi y j (xi ) (xj ) i LD Cực đại hóa: i, j [Eq.35] 1 r Với điều kiện: i yi 0 i1 i1 0 i C, i Ranh giới định1 r phân lớp siêu phẳng phân tách: r f (z) w * (z) b* i1 i yi (x i ) (z) b *) 0 [Eq.36] 38 Chuyển đổi khơng gian: Ví dụ Xét khơng gian biểu diễn ban đầu có chiều, chọn hàm ánh xạ từ không gian ban đầu (2-D) sang không gian (3-D) sau: �E, � J ↦ (�E, �J, 2�E�J) Xét ví dụ học ( � = (2, 3), � = −1) không gian ban đầu (2-D) Trong khơng gian sau chuyển đổi (3-D), ví dụ học biểu diễn sau: (( �) = (4, 9, 8.49), � = −1) 39 Chuyển đổi không gian: Trở ngại Việc chuyển đổi không gian cách trực tiếp gặp vấn đề số chiều không gian lớn (curse of dimensionality) Ngay với khơng gian ban đầu có số chiều khơng lớn, hàm chuyển đổi (ánh xạ) thích hợp trả khơng gian có số chiều lớn → “thích hợp” mang ý nghĩa hàm chuyển đổi cho phép xác định không gian mà tập liệu phân lớp tuyến tính Vấn đề: Chi phí tính tốn lớn việc chuyển đổi không gian trực tiếp Rất may, việc chuyển đổi không gian trực tiếp không cần thiết… 40 Các hàm nhân (Kernel functions) Trong biểu thức đối ngẫu ([Eq.35]) biểu thức siêu phẳng phân tách ([Eq.36]): Việc xác định trực tiếp (cụ thể) giá trị (x) (z) khơng cần thiết Chỉ cần tính giá trị tích vơ hướng vectơ (x)(z) → Việc chuyển đổi khơng gian trực tiếp không cần thiết! Nếu tính tích vơ hướng vectơ (x)(z) trực tiếp từ vectơ x z, khơng cần phải xác định (không cần biết): vectơ đặc trưng (trong không gian sau chuyển đổi) (x), hàm chuyển đổi (ánh xạ) Trong phương pháp SVM, mục tiêu đạt thông qua việc sử dụng K K(x,z) = hàm nhân (kernel functions), ký hiệu [Eq.37] (x)(z) 41 Hàm nhân: Ví dụ Hàm nhân đa thức [Eq.38] K(x,z) = xzd Xét hàm nhân đa thức với bậc d=2, vectơ biểu diễn không gian chiều: x=(x1,x2) z=(z1,z2) x z (x1 1z x2 z ) x12 z12 2x 1z 1x z 2 z 2 x (x1 , x2 , 2x1 x ) (z , 2z 2z z (x) )(z) K (x, z) , Ví dụ thể hàm nhân xz2 tích vơ hướng vectơ (x) (z) không gian sau chuyển đổi 42 Kernel trick Diễn giải chi tiết bước tính tốn ví dụ mang mục đích giải thích (minh họa) Trong thực tế, ta không cần phải tìm (xác định) hàm ánh xạ Bởi vì: tiếp Ta áp dụng hàm nhân cách trực →Thay tất giá trị tích vơ hướng vectơ (x)(z) [Eq.35-36] hàm nhân chọn K(x,z) (ví dụ: hàm nhân đa thức xzd [Eq.38]) Chiến lược gọi kernel trick! 43 Kernel function: How to know? Làm để biết hàm hàm nhân hay không – mà khơng cần thực bước suy diễn (phân tích) cụ thể ví dụ minh họa? → Làm để biết hàm có phải tích vơ hướng vectơ khơng gian đó? Câu hỏi trả lời định lý Mercer (Mercer’s theorem) →Nằm phạm vi giảng này! 44 Các hàm nhân thường dùng Đa thức: K(x,z) x z θ d ; R,d N : θ xz Gaussian RBF (Gaussian radial basis function) K(x,z) e 2σ ; : σ Xích-ma (Sigmoidal) K(x,z) ( x z ; : β,λ λ) 1 e xz λ R 45 Phân lớp SVM: Các vấn đề SVM làm việc với không gian đầu vào số thực → Đối với thuộc tính định danh (nominal), cần chuyển giá trị định danh thành giá trị số SVM làm việc (thực phân lớp) với lớp → Đối với toán phân lớp gồm nhiều lớp, cần chuyển thành tập toán phân lớp gồm lớp, sau giải riêng rẽ tốn lớp → Ví dụ: chiến lược “one-against-rest” Siêu phẳng phân tách (ranh giới định phân lớp) xác định SVM thường khó hiểu người dùng Vấn đề (khó giải thích định phân lớp) nghiêm trọng, hàm nhân (kernel functions) sử dụng SVM thường dùng toán ứng dụng mà việc giải thích hoạt động (quyết định) hệ thống cho người dùng yêu cầu quan trọng 46 SVM: thư viện mở LibSVM: • http://www.csie.ntu.edu.tw/~cjlin/libsvm/ Linear SVM for large datasets: • http://www.csie.ntu.edu.tw/~cjlin/liblinear/ • http://www.cs.cornell.edu/people/tj/svm_light/svm_perf.html Scikit-learn in python: • http://scikit-learn.org/stable/modules/svm.html SVMlight: • http://www.cs.cornell.edu/people/tj/svm_light/index.html 47 Tài liệu tham khảo • • B Liu Web Data Mining: Exploring Hyperlinks, Contents, and Usage Data Springer, 2006 C J C Burges A Tutorial on Support Vector Machines for Pattern Recognition Data Mining and Knowledge Discovery, 2(2): 121167, 1998 48 ... dựa tập vectơ hỗ trợ Chỉ vectơ hỗ trợ, hệ số nhân Lagrange chúng khác Đối với ví dụ huấn luyện khác (khơng phải vectơ hỗ trợ) , hệ số nhân Lagrange chúng Việc xác định vectơ hỗ trợ (trong số.. .Máy vectơ hỗ trợ: Giới thiệu (1) Máy vectơ hỗ trợ (Support vector machine - SVM) đề cử V Vapnik đồng nghiệp ông vào năm 1970s... vi giảng! 18 Tính giá trịw* b* Gọi SV tập vectơ hỗ trợ SV tập tập �các ví dụ huấn luyện ban đầu →� > vectơ hỗ trợ �� →� = vectơ vectơ hỗ trợ �� Sử dụng biểu thức [Eq.12], ta tính giá trị