Báo cáo môn máy học support vectors machine

39 432 2
Báo cáo môn máy học support vectors machine

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo môn máy học support vectors machine

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN Chuyên ngành Khoa học Máy tính Lớp Cao học Khóa 22 BÁO CÁO MÔN MÁY HỌC SUPPORT VECTORS MACHINE TP.HCM, 2012 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN Chuyên ngành Khoa học Máy tính Lớp Cao học Khóa 22 BÁO CÁO MÔN MÁY HỌC SUPPORT VECTORS MACHINE TÔ GIA DIỆU 1211013 ĐỖ NGUYÊN KHA 1211030 HUỲNH DUY KHOA 1211031 LÊ ANH TÚ 1211078 TRẦN THIỆN VĂN 1211084 GIẢNG VIÊN HƯỚNG DẪN TS.TRẦN THÁI SƠN MỤC LỤC MỤC LỤC DANH MỤC CÁC HÌNH DANH MỤC CÁC BẢNG Phần Support Vectors Classifier 1.1 Tuyến tính .1 1.1.1 Bài toán 1.1.2 Giải 1.1.3 Nhân tử Largrange(Lagrange multiplier) .6 1.1.4 Soft Margin 1.2 SVC phi tuyến .8 1.2.1 Bài toán 1.2.2 Ví dụ minh họa 10 1.2.3 Thủ thuật Kernel 11 1.2.4 Một số ví dụ hàm kernel .13 1.3 Multiple Classification 14 1.3.1 One Versus the Rest: 14 1.3.2 Pairwise Support Vector Machines 17 1.3.3 Error-Correcting Output Coding (Thomas G.Dietterich, Ghumlum Bakiri) 19 1.4 Sequential Minimal Optimization (SMO) 21 1.4.1 Tìm kiếm theo hướng (Direction Search) 22 1.4.2 Thuật toán [6] .23 i Phần Support Vectors Regression 24 2.1 Bài toán hồi quy (Regression) 24 2.2 Hàm lỗi 24 2.3 𝜺 – SVR .25 Phần Thư viện hỗ trợ lập trình hướng phát triển .28 3.1 Các thư viện hỗ trợ lập trình SVM .28 3.2 Một số hướng nghiên cứu 29 a Hiệu tính toán .29 b Lựa chọn hàm kernel 29 c Học SVM có cấu trúc 30 Tài liệu tham khảo .32 ii DANH MỤC CÁC HÌNH Hình 1-1 Các dãy chia tập liệu [1] Hình 1-2 Sơ lược hyperlane [1] Hình 1-3 Minh hoạ Largrange Multiflier Hình 1-4 Vài điểm nhiễu liệu Hình 1-5 (a) SVC tuyến tính với Soft Margin (b) SVC phi tuyến Hình 1-6 Một mặt phân tách phi tuyến không gian giả thuyết trở thành siêu phẳng không gian đặc trưng .9 Hình 1-7 Ví dụ minh họa SVM phi tuyến (a)Không gian giả thuyết (b)Không gian 10 Hình 1-8 Siêu phẳng phân lớp không gian đặc trưng 11 Hình 1-9 Dữ liệu phân bổ dạng đường cong .14 Hình 1-10 Các classifiers OVR 15 Hình 1-11 Trường hợp có nhiều fi(x) > (chấm hỏi đỏ) f(i)>0 (chấm hỏi xanh) .15 Hình 1-12 : Minh họa fuzzy 16 Hình 1-13 Các đường đen kết sử dụng fuzzy .16 Hình 1-14 Các classifiers Pairwise 17 Hình 1-15 Trường hợp có nhiều i thỏa mãn điều kiện chọn lớp .18 Hình 1-16 Cây DDAG 18 Hình 1-17 Kết DDAG 19 Hình 1-18 Kết fsvm .19 Hình 1-19 Kết codewords 20 Hình 1-20 Hamming decoding 21 iii Hình 1-21 Cho điểm bắt đầu đại hóa hàm hướng u khả thi, tìm kiếm theo hướng cực , với với thỏa điều kiện KKT [6] 22 Hình 2-1 Đường hồi quy tập điểm cho trước 24 Hình 2-2 Nhận thấy đặt trưng cho ngưỡng lỗi, có hàm trải đều, có hàm phải đến ngưỡng tính lỗi, có hàm tuyến tính, có hàm phi tuyến 25 Hình 2-3 Hàm lỗi 𝜺 26 Hình 3-1 Phân lớp LibSVM .28 iv DANH MỤC CÁC BẢNG Bảng 1-1 Một số thuật toán tối ưu để tìm [6] 21 v Phần Support Vectors Classifier - SVM – Support Vectors Machine mô hình học có giám sát, lĩnh vực máy học - SVM thường sử dụng để phân lớp liệu (classification), phân ích hồi quy (regression annalysis) Là tảng cho nhiều thuật toán khai thác liệu - SVM giới thiệu vời Vladimir Vapnik đồng vào năm 1979 Paper công bố thức vào năm 1995 - Ý tưởng phương pháp SVM phân chia liệu vào phân lớp siêu phẳng (hyperlane) Từ ý tưởng chính, nhiều phương pháp cải tiến tuỳ biến từ phương pháp nguyên thuỷ, cho nhiều trường hợp sử dụng khác 1.1 Tuyến tính Với liệu chia thành lớp cách tuyến tính (two-class linearly separable data), SVC tìm siêu phẳng (hyperlane) để chia liệu cách cực đại hoá biên (Maximal Margin) 1.1.1 Bài toán - Cho tập điểm D = {(xi, yi)} , D tập phân lớp tuyến tính (separable data set) Trong đó, i ,với - đánh nhãn vector đại diện cho phần tử thứ { } Bài toán đặt tìm dãy rộng để phân chia tập liệu ban đầu thành lớp Hình 1-1 Các dãy chia tập liệu [1] 1.1.2 Giải - Trong không gian chiều, dãy phân cách biểu diển đường thẳng (là đường thẳng dãy - hyperlane) Hình 1-2 Sơ lược hyperlane [1] - Hyperlane biểu diễn phương trình   ⃗⃗ vector pháp tuyến hyperlane -  khoảng cách lề dãy phân cách Như vậy, dãy phân cách rộng dãy có số  lớn -  tính lần khoảng cách ngắn từ điểm tập liệu đến hyperlane (xem hình Error! Reference source not found.) Các điểm gần hyperlane điểm nằm lề, có ý nghĩa cho việc tính khoảng cách  , gọi Support Vector Để thiết lập công thức tính  trước hết, cần tính khoảng cách từ điểm tập liệu đến hyperlane - Ta có unit vector : ⃗ - ⃗⃗⃗ ⃗⃗⃗ Gọi x’ điểm nằm hyperlane, x điểm tập liệu, ta có biểu thức sau :  ⃗⃗⃗  suy ⃗⃗ ⃗⃗⃗⃗⃗⃗ ⃗⃗⃗ - Vì x’ nằm hyperlane, nên ⃗⃗ ) ⃗⃗⃗⃗⃗⃗ ⃗⃗ (  suy ⃗⃗ ⃗⃗⃗⃗⃗⃗ - r khoảng cách từ điểm x tập liệu đến hyperlane (còn gọi geometric margin) Hình 1-15 Trường hợp có nhiều i thỏa mãn điều kiện chọn lớp Có nhiều phương pháp xử lí trường hợp này:  Decision Directed Acyclic Graph (Platt, Cristianini, and J Shawe-Taylor) Phương pháp xây dựng định để định dựa phủ định i Như không gặp trường hợp phân lớp Hình 1-16 Cây DDAG Kết DDAG : 18 Hình 1-17 Kết DDAG  Fuzzy SVM Tương tự trường hợp OVR Hình 1-18 Kết fsvm 1.3.3 Error-Correcting Output Coding (Thomas G.Dietterich, Ghumlum Bakiri)  Huân luyện Ý tưởng phương pháp tạo cho lớp m class chuỗi nhi phân gọi "codewords" từ n hàm phân lớp f Mỗi hàm phân lớp f xác định dựa vào sở liệu Ví dụ: toán phân lớp chữ số từ 0-9 Ta có hàm f sau: f1: phân lớp 1,4,5 f2: phân lớp 1,3,5,7,9 Sau xác định hàm phân lớp f dựa vào liệu, ta tiến hành tạo codewords cho lớp Ví dụ kết codewords: 19 Hình 1-19 Kết codewords Lưu ý: trường hợp codewords có khoảng cách khác biệt nhỏ, thông thường định nghĩa thêm cột (hàm phân lớp f) để tăng khoảng cách codeword  Nhận diện Với giá trị x cần nhận diện, ta xác định codeword x với hàm f xác định Sau có codeword x ta so với codewords liệu để xác định codeword x gần với lớp i x thuộc lớp i Để so sánh codeword x với codewords lớp ta dùng khoảng cách Hamming (đếm số lượng các bit khác nhau) 1.3.3.1 Một cải tiến EOCO (Erin L Allwein, Robert E Schapire, Yoram Singer): Thay sử dụng codeword 0,1 tác giả sử dụng giá trị codeword -1,0,+1 Trong giá trị biểu diễn ta không quan tâm đến hàm phần lớp f lớp Để xác định giá trị codeword gần với giá trị codewords lớp tác giả sử dụng phương pháp Hamming decoding: dH(M(r), f (x)) = 1/2 ∑ 𝑖 𝑛 Bên ví dụ tính Hamming decoding: 20 Hình 1-20 Hamming decoding 1.4 Sequential Minimal Optimization (SMO) Nếu giải hệ phương trình theo phương pháp tốn chi phí điểm Support Vector có giá trị xấp xỉ Cần có thuật toán với chi phí thấp để tối ưu hóa toán với hệ số 𝛼 Bảng 1-1 Một số thuật toán tối ưu để tìm [6] Ra đời năm 1999, thuật toán hiệu dùng để huấn luyện tập liệu, tối ưu hệ số 𝛼 (Trước có thuật toán Chunk Vapnik Chervonenkis) Bài toán ban đầu : Trước tìm hiểu thuật toán, ta vào khái niệm : 21 1.4.1 Tìm kiếm theo hướng (Direction Search) Giả sử ta có 𝛼 thỏa mãn điều kiện tối ưu hàm đối ngẫu D(𝛼) Ta gọi u={u1, u2, …, un} hướng khả thi ta thêm vào 𝛼 đoạn 𝜆 𝛼 thõa mãn D(𝛼) (𝜆 ) Gọi Λ tất các hệ số 𝜆 thỏa điều kiện trên, [ 𝜆 ] Như vậy, ta có toán tối ưu 𝜆 𝜆 Hình 1-21 Cho điểm bắt đầu đại hóa hàm 𝑎 ma 𝛼 𝜆 hướng u khả thi, tìm kiếm theo hướng cực , với với thỏa điều kiện KKT [6] Xét hàm D(α+λ ) hàm lồi Như vậy, theo công thức Newton, với số 𝜆 thay đổi nhỏ, ta tính 𝜆 sau [6] : 22 1.4.2 Thuật toán [6] Tóm tắt sơ lược :  Đầu tiên khởi tạo trị số 𝛼 , gk  Ứng với bước lập, tìm hai số 𝛼 cho chúng xa Sau tiến hành tìm kiếm có hướng hai giá trị 𝛼 đó, tiến hành cập nhật lại trọng số đạo hàm 23 Phần Support Vectors Regression 2.1 Bài toán hồi quy (Regression) Bài toán hồi quy toán phổ biến, mục tiêu tìm hàm đặc trưng cho tập điểm rời rạc ban đầu Hình 2-1 Đường hồi quy tập điểm cho trước Cho tập điểm : Hàm hồi quy có dạng : [7] Mục tiêu xây dựng hàm f với độ lỗi thấp 2.2 Hàm lỗi Để đánh giá lỗi cho hồi quy, người ta đưa hàm lỗi Dạng tổng quát : [7] Trong :  P độ đo xác suất tổng quan toàn tập liệu 24  c(f,x,y)=(f(x) – y2) Một số hàm lỗi thường dùng : Hình 2-2 Nhận thấy đặt trưng cho ngưỡng lỗi, có hàm trải đều, có hàm phải đến ngưỡng tính lỗi, có hàm tuyến tính, có hàm phi tuyến 2.3 𝜺 – SVR Hàm mục tiêu tối ưu : 25 Hình 2-3 Hàm lỗi 𝜺 [7] Hàm Lagrange [7] Điều kiện Thay điều kiện vào ta hàm đối ngẫu [7] 26 Giá trị thay biến ta có Điều kiện KKT [7] Áp dụng điều kiện trên, ta giải hệ phương trình 𝛼 𝛼 * b tính theo công thức 27 * Phần Thư viện hỗ trợ lập trình hướng phát triển 3.1 Các thư viện hỗ trợ lập trình SVM  Hai thư viện phổ biến cài đặt thuật toán SVM LibSVM SVMlight  Trong LibSVM hỗ trợ nhiều tảng hệ điều hành khác nhau, nhiều ngôn ngữ lập trình khác (C++, Java…) dễ dàng cải tiến ứng dụng Đặc biệt LibSVM cho phép tinh chỉnh nhiều tham số số phần mềm thư viên khác hỗ trợ tham số mặc định hỗ trợ giải nhiều vấn đề thực tế cách hiệu Hình 3-1 Phân lớp LibSVM  SVMlight cài đặt khác SVM ngôn ngữ C SVMlight thông qua kỹ thuật chọn lựa hiệu khả thi hai phương pháp tính toán hiệu “nén” “cache” đánh giá kernel SVMlight gồm hai chương trình C chính: SVM_learn sử dùng để huấn luyện phân lớp SVM_classify để kiểm chứng 28  Ngoài số công cụ có giao diện đồ hoạc trực quan hỗ trợ thuật toán SVM Torch (C++), Spider (MATLAB) hay Weka (Java) 3.2 Một số hướng nghiên cứu Trong thập kỷ qua SVM phát triển nhanh lý thuyết lẫn ứng dụng nhiều hướng nghiên cứu triển vọng Sau số hướng a Hiệu tính toán Một nhược điểm từ đầu SVM chi phí tính toán cho bước huấn luyện lớn, dẫn đến khó áp dụng cho liệu lớn Tuy nhiên, vấn đề giải thành công Một cách tiếp cận chia nhỏ toàn tối ưu hóa thành toán nhỏ mà toán liên quan đến số biến chọn lọc tối ưu hóa giải cách hiệu Tiến trình lặp lại toán nhỏ giải hoàn tất Một vấn đề gần máy học SVM tìm mặt cầu tối tiểu bao quanh thực thể Những thực thể ánh xạ vào không gian Nchiều thể lõi dùng để xây dựng mặt cầu tối tiểu bao quanh Giải toán SVM tập lõi cho giải pháp tốt gần với tốc độ nhanh b Lựa chọn hàm kernel Khi sử dụng hàm kernel SVM, việc lựa chọn hàm kernel cách tổng quát phải thỏa định lý Mercer Do đó, hàm kernel phổ biến thường thuộc ba loại: hàm sigmoid, hàm đa thức hàm bán kính sở Gần Pekalska cộng đưa quan điểm việc thiết kế hàm kernel dựa ánh xạ mối liên quan gần Những hàm kernel không thỏa điều kiện Mercer đưa không giới hạn không gian đặc trưng thực nghiệm ban đầu cho thấy 29 hiệu qua tốt hàm kernel Mercer Tuy nhiên, tảng lý thuyết hệ hàm kernel cần nghiên cứu sâu Ngoài ra, cách tiếp cận khác sử dụng nhiều kernel Thông qua kết hợp đạt kết tốt Bằng việc xác lập hàm mục tiêu, việc lựa chọn tham số cho kernel thực cho phép sử dụng nhiều kernel c Học SVM có cấu trúc Cực đại hóa biên lớp động lực ban đầu SVM Điều dẫn đến SVM tập trung vào việc phân tách lớp mẫu học không quan tâm đến phân bố liệu lớp Định lý “Không có bữa ăn trưa miễn phí” phát biểu không tồn phương pháp phân lớp mẫu tuyệt đối ưu phương pháp khác chí so với việc đoán mò cách ngẫu nhiên Thực tế cho thấy, tùy vào toán, lớp khác có cấu trúc khác Bộ phân lớp phải cân chỉnh đường biên cho khớp với cấu trúc chúng, đặc biệt cho vấn đề tổng quát hoát phân lớp Tuy nhiên, SVM ban đầu không quan tâm đến cấu trúc, dẫn đến việc xác định siêu phẳng phân cách cách cứng nhắc support vector, dẫn đến phân lớp không tối ưu hóa cho vấn đề thực tế Gần đây, số thuật toán phát triển quan tâm đến cấu trúc thông tin SVM ban đầu Chúng mang lại quan điểm phân lớp, mà “cảm” cấu trước phân bố liệu Những thuật toán chia thành hai cách tiếp cận Cách tiếp cận thứ manifold learning Giả thiết liệu thực tế nằm submanifold không gian đầu vào, thông thường thuật toán liên quan đến Laplacian Support Vector Machine (LapSVM) Xây dựng LapSVM thông qua đồ Laplacian lớp Sau đó, 30 tạo cấu trúc manifold liệu tương ứng với ma trận Laplacian SVM truyền thống Cách tiếp cận thứ hai khai thác thuật toán phân cụm với giả định liệu có chưa nhiều cụm với thông tin phân phối Giả định dường tổng quát giả định manifold Một cách tiếp cận gần biết đến Structureed Large Margin Machine (SLMM) SLMM ứng dụng kỹ thuật gom cụm để lấy thông tin cấu trúc vào ràng buộc Một số Large Margin Machines phổ biến Minimax Probibility Machine (MPM), Maxi-min Margin Machine (M4) xem dạng đặc biệt SLMM Thực nghiệm cho thấy SLMM có khả phân lớp tốt Tuy nhiên toán tối ưu hóa SLMM Second Order Cone Programming (SOCP) thay SP SVM, SLMM có chi phí tính toán cao bước huân luyện so sánh với SVM truyền thống Hơn không đơn giản để tổng quát hóa hay toán nhiều lớp Từ đó, SVM có cấu trúc (SSVM) phát triển Kết toán tối ưu hóa giả với QP SVM, dễ dàng mở rộng Hơn nữa, SSVM cho thấy mặt lý thuyết thực nghiệm tốt SVM SLMM vấn đề tổng quát hóa 31 Tài liệu tham khảo [1] Prabhakar Raghavan & Hinrich Schütze Christopher D Manning Standford [Online] http://nlp.stanford.edu/IR-book/html/htmledition/support-vector- machines-the-linearly-separable-case-1.html [2] Jeff Knisley Multivariable Calculus Online [Online] http://math.etsu.edu/multicalc/prealpha/Chap2/Chap2-9/index.htm [3] Yan-Bin Jia, "Lagrange Multipliers," Nov 27, 2012 [4] Hui Xue, Qiang Yang, and Songcan Chen Chapter 3: Support Vector Machines [5] http://www.encyclopediaofmath.org/index.php/Gram_matrix [6] Lin, L´eon Bottou, Chih-Jen, "Support Vector Machine Solvers" [7] Bernhard Schlkopf, Alexander J Smola, Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond., 2001 32 [...]... đầu: Sau khi giải bài toán phi tuyến, ta có được siêu phẳng phân lớp trong không gian đặc trưng Dựa vào phương trình siêu phẳng ta xác định được các điểm support vector Sau đó, ánh xạ các support vector này về không gian giả thuyết Cuối cùng, từ các điểm support vector ta xác định được đường phân lớp trong không gian ban đầu Vấn đề quan trọng là tìm hàm kernel K(x,y) như thế nào: Rõ ràng đây là một vấn... hoặc không có Di(x) >0, ta sử dụng cách tính: Nghĩa là x thuộc lớp i với Di(x) lớn nhất Hình 1-11 Trường hợp có nhiều fi(x) > 0 (chấm hỏi đỏ) và không có f(i)>0 (chấm hỏi xanh) 15 1.3.1.2 Fuzzy Support Vector Machines (FSVM): Sử dụng fuzzy để giải quyết trường hợp không nhận diện được khi có nhiều hơn một Di(x) > 0 hoặc không có Di(x) >0 Sử dùng 2 fuzzy: 1 For i = j: mii(x)= { 2 For i = j: mij(x)= {... lớp: mi(x) = min mij(x) , j =1, ,n arg max mi(x), i=1, ,n Hình 1-13 Các đường đen là kết quả của sử dụng fuzzy 16 ==> FSVM và SVMs with Continuous Decision Functions là tương đương 1.3.2 Pairwise Support Vector Machines  Huấn luyện Với một tập m class, xây dựng một tập classifier D1, , Dn(n-1)/2 Mỗi một fi sẽ phân biệt 1 lớp với 1 lớp khác trong tập Hình 1-14 Các classifiers của Pairwise Như vậy sau... , và gk  Ứng với mỗi bước lập, tìm hai chỉ số của 𝛼 sao cho chúng xa nhau nhất Sau đó tiến hành tìm kiếm có hướng trên hai giá trị 𝛼 đó, rồi tiến hành cập nhật lại trọng số của đạo hàm 23 Phần 2 Support Vectors Regression 2.1 Bài toán hồi quy (Regression) Bài toán hồi quy là bài toán khá phổ biến, mục tiêu là tìm hàm đặc trưng cho một tập điểm rời rạc ban đầu Hình 2-1 Đường hồi quy của tập điểm cho... chỉ liên quan đến một số biến được chọn lọc vì thế tối ưu hóa được giải quyết một cách hiệu quá Tiến trình lặp lại cho đến khi những bài toán nhỏ được giải quyết hoàn tất Một vấn đề gần đây hơn của máy học SVM là tìm một mặt cầu tối tiểu bao quanh các thực thể Những thực thể khi ánh xạ vào không gian Nchiều thể hiện một lõi có thể dùng để xây dựng một mặt cầu tối tiểu bao quanh Giải quyết bài toán... Optimization (SMO) để tìm bộ ∝ Từ đó, tìm được w,b bằng các biểu thức phía trên *** Sau khi giải xong bài toán tối ưu hoá, ta tìm được bộ 𝛼 , thì chỉ có những giá trị α tương ứng với những điểm nằm trên 2 biên (Support Vector) mới có giá trị khác 0, còn giá trị α những điểm còn lại điều bằng 0 1.1.3 Nhân tử Largrange(Lagrange multiplier) - Giả thiết : { - 𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒 𝑣ớ𝑖 ℎ Xét ràng buộc ℎ  Vector pháp tuyến ℎ ... ví dụ tính Hamming decoding: 20 Hình 1-20 Hamming decoding 1.4 Sequential Minimal Optimization (SMO) Nếu như giải hệ phương trình theo phương pháp trên thì sẽ rất tốn chi phí vì các điểm không phải là Support Vector sẽ có giá trị xấp xỉ 0 Cần có thuật toán với chi phí thấp hơn để tối ưu hóa bài toán cùng với các hệ số 𝛼 Bảng 1-1 Một số thuật toán tối ưu để tìm [6] Ra đời năm 1999, là thuật toán hiệu ...TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN Chuyên ngành Khoa học Máy tính Lớp Cao học Khóa 22 BÁO CÁO MÔN MÁY HỌC SUPPORT VECTORS MACHINE TÔ GIA DIỆU 1211013 ĐỖ... số thuật toán tối ưu để tìm [6] 21 v Phần Support Vectors Classifier - SVM – Support Vectors Machine mô hình học có giám sát, lĩnh vực máy học - SVM thường sử dụng để phân lớp liệu (classification),... Large Margin Machine (SLMM) SLMM ứng dụng kỹ thuật gom cụm để lấy thông tin cấu trúc vào ràng buộc Một số Large Margin Machines phổ biến Minimax Probibility Machine (MPM), Maxi-min Margin Machine

Ngày đăng: 03/11/2015, 13:01

Tài liệu cùng người dùng

Tài liệu liên quan