SVM (support vector machines) và ứng dụng (2014)

51 131 2
SVM (support vector machines) và ứng dụng (2014)

Đ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

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA TOÁN ************* ĐỖ THỊ NGOÃN SVM (SUPPORT VECTOR MACHINES) VÀ ỨNG DỤNG KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC Chun ngành: Tốn ứng dụng HÀ NỘI – 2014 TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA TOÁN ************* ĐỖ THỊ NGỖN SVM (SUPPORT VECTOR MACHINES) VÀ ỨNG DỤNG KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Toán ứng dụng Người hướng dẫn khoa học Th.S TRẦN TUẤN VINH HÀ NỘI – 2014 LỜI CẢM ƠN Lời khóa luận cho phép em xin gửi lời cảm ơn sâu sắc tới thầy giáo hướng dẫn Th.S Trần Tuấn Vinh Thầy giao đề tài, tận tình hướng dẫn, giúp đỡ đóng góp ý kiến cho em suốt q trình thực đề tài khóa luận Em chân thành cảm ơn thầy khoa Tốn Trường Đại học Sư phạm Hà Nội 2, thầy tận tình giảng dạy truyền đạt cho em kiến thức quý báu trình học tập Cuối em xin cảm ơn gia đình, bạn bè thân yêu bên cạnh động viên em q trình học tập hồn thành khóa luận tốt nghiệp Hà Nội, ngày 10 tháng năm 2014 Sinh viên Đỗ Thị Ngoãn LỜI CAM ĐOAN Em xin cam đoan khóa luận kết sau q trình nghiên cứu độc lập thân Các kết số liệu trình bày khóa luận trung thực Những tư liệu trình bày khóa luận có nguồn gốc trích dẫn rõ ràng, đầy đủ MỤC LỤC LỜI NÓI ĐẦU Chương 1: TỔNG QUAN VỀ SVM 1.1 Những khái niệm SVM 1.1.1 Bài toán phân lớp 1.1.2 Phân lớp tuyến tính 1.1.3 SVM phân lớp với khoảng cách lớn 1.1.4 Khơng gian đặc trưng………………………………………….7 1.2 Bài tốn phân lớp với SVM 1.2.1 Bài toán phân hai lớp với SVM 1.2.2 Bài toán phân nhiều lớp với SVM 10 Chương 2: SVM TRONG KHAI PHÁ DỮ LIỆU 12 2.1 Trường hợp liệu phân lớp tuyến tính 12 2.2 Trường hợp liệu khơng thể phân lớp tuyến tính 17 2.3 Phân lớp đa lớp với SVM 20 Chương 3: ỨNG DỤNG CỦA SVM 22 3.1 Phân loại văn 22 3.1.1 Khái quát phân loại văn 22 3.1.2 Phân loại văn với SVM 22 3.1.3 Kết thực nghiệm 23 3.2 Lọc thư rác 26 3.2.1 Khái quát lọc thư rác 26 3.2.2 Lọc thư rác với SVM 26 3.2.3 Kết thực nghiệm 27 3.3 Nhận dạng chữ viết tay 28 3.3.1 Khái quát nhận dạng chữ viết tay 28 3.3.2 Nhận dạng chữ viết tay với SVM 29 3.3.3 Kết thực nghiệm 30 3.3.4 Đánh giá hiệu phân lớp SVM 30 Chương 4: MỘT SỐ VÍ DỤ MINH HỌA SVM TRÊN MATLAB 32 4.1 Ví dụ 32 4.2 Ví dụ 34 4.3 Ví dụ 36 KẾT LUẬN 40 TÀI LIỆU THAM KHẢO 41 LỜI NÓI ĐẦU Trong thời đại nay, phát triển công nghệ thông tin kéo theo phát triển nhiều lĩnh vực khác, làm tăng số lượng giao dịch thông tin Internet Thông tin ngày nhiều, tốc độ thay đổi chúng nhanh, hoạt động lĩnh vực đặt nhu cầu xử lý khối lượng thông tin đồ sộ Một yêu cầu lớn đặt làm để tổ chức, tìm kiếm phân loại thơng tin cách hiệu Nếu xử lý phân loại liệu thủ cơng điều khó khăn với số lượng liệu khổng lồ Giải pháp đặt sử dụng máy tính để tự động phân loại thông tin Kỹ thuật SVM đánh giá công cụ mạnh phổ biến cho toán phân lớp phi tuyến Nhiều ứng dụng xây dựng kỹ thuật SVM hiệu ví dụ như: phân loại văn bản, nhận dạng chữ viết tay, lọc thư rác,… Ở Việt Nam, cơng trình nghiên cứu mang tính thực nghiệm định hướng thu số kết ban đầu hạn chế Vì việc cập nhật kiến thức tiếp cận lĩnh vực mũi nhọn khoa học công nghệ việc giải toán cụ thể cần thiết Trong khóa luận em xin trình bày SVM số ứng dụng Khóa luận em gồm chương: Chương 1: Trình bày tổng quan SVM Chương 2: Trình bày SVM khai phá liệu, ba trường hợp SVM là: trường hợp liệu phân lớp tuyến tính, trường hợp liệu khơng thể phân lớp tuyến tính trường hợp phân lớp đa lớp với SVM Chương 3: Trình bày ba ứng dụng SVM là: phân loại văn bản, nhận dạng chữ viết tay lọc thư rác Chương 4: Một số ví dụ minh họa SVM Matlab Tuy có nhiều cố gắng thời gian khả có hạn nên vấn đề khóa luận chưa trình bày sâu sắc khơng thể tránh khỏi sai sót cách trình bày Em mong nhận đóng góp ý kiến thầy cô bạn Em xin chân thành cảm ơn ! Chương TỔNG QUAN VỀ SVM 1.1 Những khái niệm SVM [1] SVM phương pháp học có giám sát Vladimir N.Vapnik đề xuất vào năm 1995 ngày sử dụng phổ biến nhiều lĩnh vực đặc biệt lĩnh vực phân loại mẫu nhận dạng mẫu SVM xem công cụ mạnh cho toán phân lớp phi tuyến Phương pháp thực phân lớp dựa nguyên lý cực tiểu hóa rủi ro có cấu trúc SRM (Structural Risk Minimization), SVM xem phương pháp phân lớp giám sát không tham số tinh vi Các hàm công cụ đa dạng SVM cho phép tạo không gian chuyển đổi để xây dựng mặt phẳng phân lớp SVM dạng chuẩn lấy tập hợp liệu đầu vào, dự báo liệu đầu vào ứng với lớp (class) số hai lớp mà liệu có khả rơi vào Điều làm cho dạng chuẩn SVM trở nên khơng có tính xác suất mà cơng cụ nhị phân tuyến tính Bài tốn phân lớp sử dụng SVM nhằm mục đích tìm siêu phẳng biên cực đại lớp mẫu âm mẫu dương, đồng thời cực tiểu hóa mẫu khơng phân chia tập huấn luyện Tuy nhiên, việc huấn luyện mẫu sử dụng SVM đòi hỏi phải giải tốn tối ưu nhiều biến 1.1.1 Bài tốn phân lớp Phân lớp q trình nhóm đối tượng “giống” vào “một lớp” dựa đặc trưng liệu chúng Tuy nhiên, phân lớp hoạt động tiềm ẩn tư người nhận dạng giới thực, đóng vai trò quan trọng làm sở đưa dự báo, định Khi nghiên cứu đối tượng, dựa vào số hữu hạn đặc trưng chúng Nói cách khác, ta xem xét biểu diễn đối tượng không gian hữu hạn chiều, chiều ứng với đặc trưng lựa chọn Một cách hình thức, xem: X  (x , x , , không gian biểu x n ) diễn n-chiều đặc trưng đối tượng Khi đó, đối tượng X thuộc lớp Ck lớp Ck tạo thành phân hoạch X, gọi C(X ) : C(X )  C  k 1, K,Ck  C j   ,k  j k Vậy, việc phân lớp đối tượng xác định hàm f : X  C( X tốn phân lớp mơ tả cách hình ) thức sau:   Cho tập mẫu:   ( X ,C )   n ; C   m ; i 1, N X i i i i n m Tìm ánh xạ f :    f ( X )  0,(X , C ),i 1, N : Ci i i i Trong đó: N: số mẫu X i : mẫu liệu thứ i Ci : lớp mẫu liệu thứ i Như vậy, giải toán phân lớp q trình xây dựng mơ hình (các hàm, luật,…) để định đối tượng, vật thể thuộc vào lớp dựa đặc trưng liệu chúng Quá trình phân lớp trở nên khó khăn đối tượng có nhiều đặc trưng liệu trình phân lớp cần xác định đặc trưng cần thiết cho việc phân lớp, đặc trưng dư thừa -Tiền xử lý liệu Loại bỏ dấu gạch nối kí hiệu Dữ liệu huấn luyện Sửa lỗi tả Tập hợp liệu xử lý Trích chọn Đưa dạng chuẩn Phân tích từ Hình 3.1 Tiền xử lý liệu -Huấn luyện SVM Đầu vào bước túi từ đưa từ bước tiền xử lý liệu Kết bước đưa máy học phù hợp với liệu đầu vào Túi từ Thuật tốn SVM Mơ hình học máy Hình 3.2 Huấn luyện SVM 3.2.3 Kết thực nghiệm Dữ liệu thử nghiệm gồm hai tập liệu: Lingspam PU1 trình bày bảng 3.3: Bảng 3.3: Bộ liệu thử nghiệm T ập Li ng P U TT T h h ổ 24 Đối với SVM, hàm nhân sử dụng hàm tuyến tính tức việc phân loại tiến hành không gian gốc liệu Hiệu lọc thư đánh giá theo nhiều tiêu chí: độ nhạy (recall), độ xác (precision) độ xác phân loại chung tức phần trăm thư phân loại không phụ thuộc vào thư rác hay thư bình thường Trong đó: độ xác tỷ lệ số thư rác phát xác tổng số thư phân loại thư rác Kết thực nghiệm thể bảng 3.4: Bảng 3.4: Độ xác lọc thư rác SVM T ập Li ng P U S V 96 ,4 96 ,6 3.3 Nhận dạng chữ viết tay [5] 3.3.1 Khái quát nhận dạng chữ viết tay Nhận dạng chữ lĩnh vực nhiều nhà nghiên cứu quan tâm lĩnh vực đạt nhiều thành tựu lớn lao mặt lý thuyết ứng dụng thực tế Lĩnh vực nhận dạng chữ chia làm hai loại: nhận dạng chữ in nhận dạng chữ viết tay Đến thời điểm này, nhận dạng chữ in gần giải trọn vẹn Tuy nhiên, nhận dạng chữ viết tay vấn đề thách thức lớn nhà nghiên cứu Nhận dạng chữ viết tay phân làm hai loại: nhận dạng chữ viết tay on-line (trực tuyến) nhận dạng chữ viết tay off-line (ngoại tuyến) Các kiến thức cần thiết để nghiên cứu nhận dạng chữ viết tay tương đối rộng có liên quan đến nhiều lĩnh vực khác Sau số lĩnh vực liên quan đến nhận dạng chữ viết tay: -Xử lý ảnh (Image Processing) -Học máy (Machine Learning) -Lý thuyết nhận dạng (Pattern Recognition) -Xác suất thống kê tốn ứng dụng -Ngơn ngữ học ngơn ngữ học tính tốn (Linguistic and Computational Linguistic) 3.3.2 Nhận dạng chữ viết tay với SVM Tập liệu sau qua khâu tiền xử lý trích chọn đặc trưng đưa vào máy huấn luyện phân lớp SVM Sau kết thúc trình huấn luyện, hệ thống lưu lại giá trị tham số hàm định phân lớp để phục vụ cho việc nhận dạng sau Dựa vào giá trị tham số hàm định, mẫu x sau qua khâu tiền xử lý trích chọn đặc trưng đưa vào tính tốn thơng qua hàm định để xác định lớp mẫu x (hình 3.3) Hình 3.3: Mơ hình nhận dạng chữ viết tay: Dữ liệu huấn luyện Huấn luyện Tiền xử lý Dữ liệu nhận dạng Dữ liệu huấn luyện Trích chọn đặc trưng Nhận dạng Kết nhận dạng 3.3.3 Kết thực nghiệm Bộ liệu chữ viết tay tiếng Việt (Vietdata) xây dựng để phục vụ cho việc thực nghiệm bao gồm 89 lớp chữ in hoa, lớp chọn 200 mẫu, liệu Vietdata gồm 17800 mẫu Việc thực nghiệm chữ viết tay tiếng Việt tiến hành theo phương thức thẩm định chéo (Cross-Vadidation) Bộ liệu Vietdata chia thành k phần (ở k = 10), sau sử dụng k-1 phần để huấn luyện phần lại để nhận dạng, q trình lặp lặp lại k lần Các kết thực nghiệm thể bảng 3.5: Bảng 3.5: Kết thực nghiệm tập liệu chữ viết tay tiếng Việt C T T Đ h h h ộ O ~ ~ V p 2 O ~ ~ V p Chú thích: OVR (One-Versus-Rest): “một so với phần lại” OVO (One-Versus-One): “một so với một” 3.3.4 Đánh giá hiệu phân lớp SVM SVM phương pháp học máy tiên tiến có sở tốn học chặt chẽ đạt độ xác phân lớp cao Tuy nhiên, hạn chế lớn SVM tốc độ phân lớp chậm Bản chất nhị phân hạn chế SVM, việc mở rộng khả SVM để giải tốn phân loại nhiều lớp vấn đề khơng đơn giản Có nhiều chiến lược đề xuất để mở rộng SVM cho tốn phân loại nhiều lớp có điểm mạnh, yếu khác tùy thuộc vào loại liệu cụ thể Cho đến nay, việc lựa chọn chiến lược phân lớp thường tiến hành sở thực nghiệm 30 Bài toán huấn luyện SVM thực chất tốn quy hoạch tồn phương (QP) tập lồi Bản chất SVM việc phân lớp thực không gian đặc trưng với số chiều cao số chiều khơng gian đầu vào Do đó, hiệu phân lớp SVM phụ thuộc vào hai yếu tố: giải toán QP lựa chọn hàm nhân Việc giải tốn QP ln ln đạt giải pháp tối ưu nên cố gắng nghiên cứu lý thuyết SVM tập chung vào việc lựa chọn hàm nhân Tốc độ phân lớp SVM đánh giá chậm so với phương pháp phân lớp khác Vì vậy, có nhiều cơng trình tập trung nghiên cứu nhằm tăng tốc độ phân lớp SVM Chương MỘT SỐ VÍ DỤ MINH HỌA SVM TRÊN MATLAB 4.1 Ví dụ Các quy tắc học tập perceptron % function perceptrondemo pos = randn(10,1)*.5+2; neg = randn(10,1)*.4+5; xpos = [sin(pos) cos(pos) ones(size(pos))]; xneg = [sin(neg) cos(neg) ones(size(neg))]; xs = [xpos; xneg]; ys = [ones(size(pos)); -ones(size(neg))]; perm = randperm(20); xs = xs(perm,:); ys = ys(perm); w = -[1.3 1.95 5]'; for j = 1:100 for i = 1:length(xs) oldw = w; ex = xs(i,:); py = sign(ex*w) ty = ys(i) if (py ~= ty) w = w + ex'*ty; end subplot(1,2,1); plot(xpos(:,1),xpos(:,2),'go',xneg(:,1),xneg(:,2),'rx', 'LineWidth',2,'MarkerSize',10) hold on plot(ex(1),ex(2),'bs','MarkerSize',20); h = drawline(oldw,3); set(h,'LineWidth',3); h = drawline(w,3); axis equal axis([-1.1 1.1 -1.1 1.1]); plot(0,0,'k+', 'MarkerSize',3); hold off subplot(1,2,2); plot(oldw(1),oldw(2),'bo','LineWidth',2,'MarkerSize',10) hold on line([oldw(1) w(1)], [oldw(2) w(2)]); axis equal axis([-3 -3 3]); plot(0,0,'k+', 'MarkerSize',3); hold off pause end end function h = drawline(w, scale) x = w(1); y = w(2); c = w(3); len = sqrt(x*x+y*y+1e-6); k = -c / (len*len); nx = x/len; ny = y/len; h = line([k*x-ny*scale k*x+ny*scale], [k*y+nx*scale k*y-nx*scale]); Thu kết sau: ty = -1 py = -1 ty = -1 py = ty = py = 0.5 0 -1 -0.5 -2 -1 -1 -0.5 0.5 -3 -2 4.2 Ví dụ Phân lớp đa lớp với hàm d = param Với tập huấn luyện: % obselete function d = param(C,step,multiclass,method,gap,type,transfo,fid,span,verbose,we ighs,epoch); d.C = 100; d.step = 100; d.multiclass = ''; d.method = 'chol'; d.gap = 10^-5; d.type = 'none'; d.transformations = []; d.uncertainty = []; d.fid = 1; d.span = []; d.verbose = 1; d.weighs = []; d.epoch = 200; d.sizecache = 40; d.shrinkdelay = 4; Điều kiện phân lớp sau: if nargin>=1 d.C = C; end if nargin>=2 d.step = step; end if nargin>=3 d.multiclass = multiclass; end if nargin>=4 d.method = method; end if nargin>=5 d.gap = gap; end if nargin>=6 d.type = type; end if nargin>=7; d.transformations = transfo; end if nargin>=8 d.fid = fid; end if nargin==9 d.span = span; end if nargin==10 d.verbose = verbose; end if nargin==11 d.weighs = weighs; end if nargin==12 d.epoch = epoch; end if nargin>12 error('Too many input arguments'); end Kết thu là: C: 100 step: 100 multiclass: '' method: 'chol' gap: 1.0000e-005 type: 'none' transformations: [] uncertainty: [] fid: span: [] verbose: weighs: [] epoch: 200 sizecache: 40 shrinkdelay: 4.3 Ví dụ Một phương pháp đưa để so sánh với kết siêu phẳng hình thành SVM liệu tuyến tính để tách hai lớp (phân loại nhị phân), dựa phương pháp hồi quy tuyến tính điểm gần (Closest Pair) hình thành từ hai điểm lớp để có trung điểm Cơng thức hồi quy tuyến tính: y  a  b * x Công thức hồi quy: ( y  b  x ) n  xy  ( x )( a= b n y) n  x  ( x)2 Siêu phẳng liệu ngẫu nhiên sở hồi quy (closest pair) ban đầu: %% ploting data and give different label for each class imageHandle=figure('Units', 'points', 'Position', [250 60 475 450]); hold on; xlim([-1 2*upper_bound_random]) ylim([-1 2*upper_bound_random]) hTitle = title ('Hyperplane Data Random Base Regression (Closest Pair)'); hXLabel = xlabel('Feature (X1)'); hYLabel = ylabel('Feature (X2)'); %% value x_to_regression and y_to_regression merge xy_to_regression=[x_to_regression' y_to_regression'] %% create line regression n_reg=size(xy_to_regression,1); b_reg=double((((n_reg)*(sum(x_to_regression'.*y_to_regression')))((sum(x_to_regression'))*(sum(y_to_regression'))))/((n_reg*(sum(power (x_to_regression',2))))-(power(sum(x_to_regression'),2)))) a_reg=double(((sum(y_to_regression'))(b_reg*(sum(x_to_regression'))))/(n_reg)) ii=1; for i=1:100 x_point_reg(ii)=i; % method % y_hyperplane(ii)=(-b-(w(1)*x_hyperplane(ii)))/w(2); % method y_point_reg(ii)=double(a_reg+ (b_reg*x_point_reg(ii))); ii=ii+1; end hData_regression=line(x_point_reg', y_point_reg', 'LineWidth',2,'Color', [0 0]); Kết là: value_w1_w2_b = 0.0156 0.2500 -8.0000 w1_by_obe = 0.0156 w2_by_obe = 0.2500 b_by_obe = 0.2500 Hyperplane Data Random Base Regression (Closest Pair) 100 Class Positive (X+ ) - Class Negative (X ) 90 80 70 Feature (X2) 60 50 40 30 20 10 X2 = a + b*X1 a = -153.115028 , b = 2.785221 0 10 20 30 40 50 Feature (X1) 60 70 80 90 100 KẾT LUẬN Toán học thống kê đóng vai trò quan trọng lĩnh vực Thống kê giúp cho việc nắm bắt đánh giá tình hình trở nên trực quan dễ hiểu Hướng tiếp cận thống kê theo SVM đơn giản đem lại hiệu xác tương đối cao, mà ứng dụng phổ biến hầu hết lĩnh vực So với phương pháp khác, phương pháp SVM lập luận theo kinh nghiệm tích lũy áp dụng vào mơ hình linh hoạt hơn, phù hợp với đặc trưng tốn Khóa luận nghiên cứu SVM - phương pháp học máy có giám sát sử dụng phổ biến Trên sở đó, khóa luận triển khai số ứng dụng SVM Khóa luận đạt kết sau: - Nghiên cứu tổng quan SVM - Trình bày dạng SVM khai phá liệu: liệu phân lớp tuyến tính, liệu khơng thể phân lớp tuyến tính phân lớp đa lớp với SVM - Trình bày ba ứng dụng SVM: phân loại văn bản, lọc thư rác nhận dạng chữ viết tay - Đưa số ví dụ minh họa SVM Matlab Hướng phát triển đề tài: - Thông qua ứng dụng thực tiễn SVM thấy khả to lớn nó, đồng thời mở ứng dụng - Kết hợp SVM với phương pháp khác phù hợp với đối tượng cụ thể nhằm làm tăng hiệu phân lớp, tốc độ tính tốn độ xác cho SVM 40 TÀI LIỆU THAM KHẢO Thái Sơn (2006), Kỹ thuật Support Vector Machines ứng dụng, Luận văn Thạc sỹ khoa học ngành toán tin, Trường Đại học Bách Khoa Hà Nội, Hà Nội TS Đỗ Thanh Nghị (2008), Khai thác liệu, Trường Đại học Cần Thơ, Cần Thơ Nguyễn Linh Giang-Nguyễn Mạnh Hiển (2005), “Phân loại văn tiếng Việt với vectơ hỗ trợ SVM”, Tạp chí khoa học cơng nghệ, Hà Nội Nguyễn Thị Vân Trang (2012), Nghiên cứu số thuật tốn học máy có giám sát ứng dụng lọc thư rác, Luận văn Thạc sỹ Kỹ thuật, Học Viện Cơng Nghệ Bưu Chính Viễn Thơng, Hà Nội Phạm Anh Phương (2009), “Một số phương pháp trích trọn đặc trưng hiệu cho tốn nhận dạng chữ viết tay rời rạc”, Tạp chí khoa học, Trường Đại học Khoa học - Đại học Huế 41 ... SƯ PHẠM HÀ NỘI KHOA TOÁN ************* ĐỖ THỊ NGOÃN SVM (SUPPORT VECTOR MACHINES) VÀ ỨNG DỤNG KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC Chun ngành: Tốn ứng dụng Người hướng dẫn khoa học Th.S TRẦN TUẤN VINH... Trong khóa luận em xin trình bày SVM số ứng dụng Khóa luận em gồm chương: Chương 1: Trình bày tổng quan SVM Chương 2: Trình bày SVM khai phá liệu, ba trường hợp SVM là: trường hợp liệu phân lớp... VỀ SVM 1.1 Những khái niệm SVM [1] SVM phương pháp học có giám sát Vladimir N.Vapnik đề xuất vào năm 1995 ngày sử dụng phổ biến nhiều lĩnh vực đặc biệt lĩnh vực phân loại mẫu nhận dạng mẫu SVM

Ngày đăng: 29/12/2019, 11:50

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan