1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Máy học và ứng dụng TÌM HIỂU PHÂN LOẠI ĐA LỚP VỚI PHƯƠNG PHÁP MÁY HỌC SVM

25 937 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 466,15 KB

Nội dung

Ví dụ như, quá trình nhận dạng ký tự quang học,trong đó các ký tự in được phân loại tự động dựa trên mẫu huấn luyện trước đó, là một ví dụ điển hình của máy học... Hình 1.1: Quy

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

1.1 Giới thiệu 4

1.2 Phạm vi thực hiện 5

1.3 Cấu trúc báo cáo 5

CHƯƠNG 2: PHƯƠNG PHÁP PHÂN LOẠI MÁY HỌC SVM 7

2.1 Máy học SVM 7

2.1.1 Phân chia tuyến tính 8

2.1.2 Phân tích không tuyến tính 10

2.2 Kernel function trong phân lớp phi tuyến 11

2.3 Multi-class Support Vector Machines 13

2.3.1 Chiến lược One-against-Rest (OAR) 13

2.3.2 Chiến lược One-against-One (OAO) 14

CHƯƠNG 3: ỨNG DỤNG NHẬN DẠNG MẪU HÌNH VẼ MULTI-CLASS SUPPORT VECTOR MACHINES 16

3.1 Quy trình hoạt động của ứng dụng 16

3.2 Giới thiệu các chức năng của ứng dụng 18

CHƯƠNG 4: KẾT LUẬN 23

TÀI LIỆU THAM KHẢO: 24

Trang 3

Hình 1.1: Quy trình phân lớp dùng máy học 5

Hình 2.1 Siêu phẳng tối ưu là một siêu phẳng phân tách dữ liệu với margin lớn nhất 8

Hình 2.2: Cách biển đội dùng kernel trick trong phân lớp phi tuyến 12

Hình 2.3: Biểu đồ phân loại OAO 15

Hình 3.1: Mô hình hoạt động phân loại mẫu hình vẽ Multi class SVM 16

Hình 3.2: Mô hình quá trình tạo ra các máy học SVM 17

Hình 3.3: Giao diện lúc bắt đầu chạy ứng dụng 18

Hình 3.4: Giao diện khởi tạo dữ liệu từ file XML 19

Hình 3.5: Giao diện dữ đoán mẫu hình mới sau khi tạo MSVM 20

Hình 3.6: Giao diện chỉ định phân lớp cho mẩu dữ liệu mới 21

Hình 3.7: Giao diện các thống số từng máy học SVM 22

Trang 4

CHƯƠNG 1: TỔNG QUAN

1.1 Giới thiệu

Máy học là một chi nhánh của trí tuệ nhân tạo, liên quan đến quá trình xây dựng hệ thống

có thể học từ dữ liệu Ví dụ, một hệ thống học máy có thể được huấn luyện về các tinnhắn email để học cách phân biệt giữa thư rác và thư bình thường Sau khi học, máy học

có thể được sử dụng để phân loại các tin nhắn email mới vào thư mục thư rác và thư bìnhthường

Máy học kiểm tra những ví dụ trước đó và kiểm tra luôn cả những kết quả của chúngkhi xuất và học làm cách nào để tái tạo lại những kết quả này và tạo nên những sự tổngquát hóa cho những trường hợp mới Nói chung, máy học sử dụng một tập hữu hạn dữliệu được gọi là tập huấn luyện Tập này chứa những mẫu dữ liệu mà nó được viết bằng

mã theo một cách nào đó để máy có thể đọc và hiểu được

Một số hệ thống máy học cố gắng để loại bỏ sự cần thiết của con người trong phântích dữ liệu, trong khi một số khác thông qua một cách tiếp cận hợp tác giữa con người vàmáy Các thuật toán máy học có thể được tổ chức thành nhóm phân loại dựa trên các kếtquả mong muốn của thuật toán hoặc các loại dữ liệu đầu vào

Máy học hiện nay đươc ứng dụng rộng rãi trong nhiều hệ thống minh minh, và mộttrong số đó là phân lớp dữ liệu tự động Ví dụ như, quá trình nhận dạng ký tự quang học,trong đó các ký tự in được phân loại tự động dựa trên mẫu huấn luyện trước đó, là một ví

dụ điển hình của máy học

Trang 5

Hình 1.1: Quy trình phân lớp dùng máy họcTrong các bài toán phân lớp dùng máy học, các mẫu dữ liệu được phân lớp được xem

là tập huấn luyện, và các thuật toán máy học sẽ phân tích dữ liệu và nhận ra sự mối quanhệ (có thể là phi tuyến hoặc tuyến tính) giữa các đối tượng dữ liệu Kết quả của việc học

có thể là: nhóm các đối tượng vào trong các lớp, tạo ra các luật, tiên đoán lớp cho các đốitượng mới

1.2 Phạm vi thực hiện

 Tìm hiểu, nghiên cứu lý thuyết và ứng dụng của Support Vector Machines

 Tìm hiểu Kernel Support Vector Machines trong bài toán phân loại phi tuyến tính, sửdụng phương pháp kernel trick

 Tìm hiểu và nghiên cứu phương pháp phân loại đa lớp Multi-class Support VectorMachines

 Xây dựng và phát triển ứng dụng minh họa phân loại các ký tự hình vẽ bằng class Support Vector Machines

Multi-1.3 Cấu trúc báo cáo

Chương 1: Trình bày tổng quan về máy học và phân lớp máy học; phạm vi thực hiện của

Trang 6

Chương 3: Trình bày ứng dụng demo phân loại các ký tự hình vẽ dùng Multi-classSupport Vector Machines

Chương 4: Tóm tắt nội dung báo cáo

Trang 7

CHƯƠNG 2: PHƯƠNG PHÁP PHÂN LOẠI MÁY HỌC

SVM

2.1 Máy học SVM

Support Vector Machines (SVMs) là một phương pháp phân loại máy học do VladimirVapnik và các cộng sự xây dựng nên từ những năm 70 của thế kỷ 20 SVMs là mộtphương pháp phân loại xuất phát từ lý thuyết học thống kê, dựa trên nguyên tắc tối thiểurủi ro cấu trúc (Structural Risk Minimisation)

SVM là một phương pháp phân loại tuyến tính nhị phân không xác suất, là mô hìnhhọc giám sát kết hợp với với các thuật toán học liên quan để phân tích dữ liệu, nhận racác mô hình, được sử dụng để phân loại và phân tích hồi quy Cho một tập các mẫu dữliệu huấn luyện, mỗi dữ liệu được đánh dấu là thuộc một trong hai loại, SVM sẽ xây dựngmột mô hình dự đoán thông qua tập huấn luyện để phân loại mẫu dữ liệu mới vào mộttrong hai phân lớp,

Dữ liệu huấn luyện của SVMs là tập các dữ liệu đã được gán nhãn trước D={(x1, y1),(x2, y2), …, (xn, yn)}, trong đó, xi là vector dữ liệu biểu diễn mẫu dữ liệu di (xi ∈ Rn), cặp(xi, yi) được hiểu là vector xi được gán nhãn là yi, yi∈{+1, -1} Ý tưởng của SVMs là tìmmột mặt hình học (siêu phẳng) f(x) “tốt nhất” trong không gian n-chiều để phân chia dữliệu sao cho tất cả các điểm x+ được gán nhãn 1 thuộc về phía dương của siêu phẳng(f(x+)>0), các điểm x- được gán nhãn –1 thuộc về phía âm của siêu phẳng (f(x-)<0) Vớibài toán phân loại SVMs, một siêu phẳng phân chia dữ liệu được gọi là “tốt nhất”, nếukhoảng cách từ điểm dữ liệu gần nhất đến siêu phẳng là lớn nhất Khi đó, việc xác địnhmột mẫu dữ liệu x D có thuộc phân loại c hay không, tương ứng với việc xét dấu củaf(x), nếu f(x)>0 thì x∈c, nếu f(x)≤0 thì x c

Khái niệm siêu phẳng là nói đến việc phân tách các mẫu dữ liệu được gán nhãn -1mẫu nhãn +1 với một khoảng cách giữa các lớp tối đa được gọi là lề giới hạn (margin)

Trang 8

Hình 2.1 Siêu phẳng tối ưu là một siêu phẳng phân tách dữ liệu với margin lớn nhất.

2.1.1 Phân chia tuyến tính

Bài toán có thể được chuyển thành một bài toán tối ưu Siêu phẳng SVM có để được biểudiễn bởi hàm f(x):

và lề là lớn nhất Có thể chỉ ra rằng lề là 2/||m|| Bởi vậy, bằng cách tối thiểu hoá số lượng

½(m m) đã đảm bảo tính tối ưu của siêu phẳng Bài toán kết quả là:

p=min m1

2∥m ∥2

đối với: yi(m • xi +b) ≥ 1 ∀i ∈ 1, ,n với: m ∈ Rd, b ∈ R

Trang 9

Nếu chúng ta chuyển thành công thức Lagrangian:

α i¿

(1− y i(m ' x i+b) )=0

Trang 10

Giải pháp siêu phẳng được quyết định bởi các điểm xi huấn luyện nằm trên các siêuphẳng song song đặt tại một khoảng cách bằng với lề

f ( x )=

i=1

nSV

α i¿y i K(x i , x)+b¿

Các điểm này được gọi là các vector đặc trưng (support vectors)

2.1.2 Phân tích không tuyến tính

Giải thuật trên, nếu áp dụng tới một tập huấn luyện phân tách không tuyến tính, sẽ khôngtìm được bất kỳ giải pháp nào hợp lý Bởi vậy cần mở rộng mô hình tới trường hợpkhông thể phân tách, các ràng buộc có thể được thả lỏng (công thức (1)) nhưng chỉ khicần Việc này có thể được thực hiện bằng đưa vào các biến dương không chặt ξi với i với ∀i ∈{1, ,n} với các ràng buộc:

f (x i ≥ 1−ξ i v ớ i y i=+1)

f(x i ≤1+ξ i v ớ i y i=−1)v ớ i ξ i ≥ 0 ∀ i

Bởi vậy, với một lỗi xảy ra, ξi với i tương ứng phải vượt quá 1 đơn vị (unity), ∑iξi với i là mộtgiới hạn trên số các lỗi huấn luyện Bởi vậy một cách tự nhiên để gán một giá trị thêm vớicác lỗi là để thay đổi hàm mục tiệu được tối thiểu hoá từ:

Trang 11

φ: Rd → H

Khi đó giải thuật huấn luyện có thể được áp dụng vào trong H sử dụng các hàm từφ(xi) φ(xj) Khi bài toán được diễn đạt chỉ trong các toán hạng của các tích trong như là⋅xj Bây giờ, giả sử đầu tiên chúng tacác giải pháp tốt Một vấn đề với các mẫu trong một không gian đặc trưng H khác có thểđược giải quyết xác định một tích trong thực hiện trong H Một tích trong có thể cũngđược gọi là một hàm nhân kernel function Bởi vậy, để giải quyết một bài toán SVM địnhnghĩa rõ ràng ánh xạ φ là không cần thiết

2.2 Kernel function trong phân lớp phi tuyến

Thuật toán siêu phẳng tối ưu ban đầu được Vladimir Vapnik đề xuất vào năm 1963 làmột phương pháp phân loại tuyến tính Tuy nhiên, vào năm 1992, Bernhard Boser,Isabelle Guyon và Vapnik đề nghị một cách để tạo ra phân loại phi tuyến tính bằng cách

áp dụng các kernel trick(ban đầu được đề xuất bởi Aizerman et al.) Các thuật toán là gầnnhư tương tự, ngoại trừ việc các dot product được thay thế bằng một hàm kernel phituyến tính Điều này cho phép thuật toán phù hợp với siêu phẳng tối ưu phù hợp trongmột không gian đặc trưng chuyển đổi

Trang 12

Hình 2.2: Cách biển đội dùng kernel trick trong phân lớp phi tuyến

Ba khung hình khác nhau biểu diễn việc phân chia hai lớp

 (a): phân chia tuyến tính không thể thực hiện được

 (b): phân chia phi tuyến với kernel trick

 (c): ánh xạ bề mặt phân chia phi tuyến sang bề mặt tuyến tính

Sử dụng kernels, công thức ban đầu cùa SVM với các vector đặc trưng z1, z2, … zn vàcác trọng số w1, w2, wn thành

f ( x )=

i=1

N

w i k(z i , x)+b

Các loại hàm kernel:

 Hàm kernel tuyến tính: là loại hàm đơn giản nhất:

Trang 13

 Hàm kernel mũ (exponential kernel): là một hàm gần với kernel Gaussian, nó cũng

là một dạng hàm RBF

 Hàm kernel tròn (Circular Kernel): thường được dùng trong các ứng dụng liênquan đến địa lý:

 Hàm kernel cầu (Spherical kernel): là một dạng của kernel tròn

Ngoài ra còn có một số hàm kernel khác như: hàm kernel Laplacian, hàm kernel ANOVA, hàm Hyperbolic Tangent (Sigmoid)…

2.3 Multi-class Support Vector Machines

Thuật toán SVM ban đầu chỉ có thể áp dụng cho bài toán phân loại nhị nhân Để có thểphân loại đa lớp, bài toán phân loại đa lớp là chuyển về bài toán phân loại hai lớp bằngcách xây dựng nhiều bộ phân loại hai lớp để giải quyết Các chiến lược phân loại đa lớpphổ biến này là One-against-One (OAO) và One-against-Rest (OAR)

2.3.1 Chiến lược One-against-Rest (OAR)

Trong chiến lược này ta sử dụng (n-1) bộ phân loại đối với n lớp Bài toán phân loại n lớpđược chuyển thành n bài toán phân loại hai lớp Trong đó bộ phân loại hai lớp thứ i đượcxây dựng trên lớp thứ i và tất cả các lớp còn lại Hàm quyết định thứ i dùng để phân lớpthứ i và những lớp còn lại có dạng: D i(X )=w i t x +b i

Trang 14

Siêu phẳng Di(x) = 0 hình thành siêu phẳng phân chia tối ưu, các support vectorthuộc lớp i thỏa Di(x) =1 và các support vector thuộc lớp còn lại thỏa Di(x)= −1 Nếuvector dữ liệu x thỏa mãn điều kiện Di(x) > 0 đối với duy nhất một i, x sẽ được phân vàolớp thứ i Tuy nhiên nếu điều kiện Di(x) > 0 thỏa mãn đối với nhiều i, hoặc không thỏađối với I nào thì trong trường hợp này ta không thể phân loại được vector x Để giảiquyết vấn đề này Chiến lược One-against-One được đề xuất.

2.3.2 Chiến lược One-against-One (OAO)

Trong chiến lược này ta sử dụng n(n-1)/2 bộ phân loại hai lớp được xây dựng bằng cáchbắt cặp từng hai lớp một và sử dụng phương pháp lựa chọn theo đa số để kết hợp các bộphân loại này để xác định được kết quả phân loại cuối cùng Số lượng các bộ phân loại làn(n-1)/2

So với chiến lược OAR thì chiến lược này ngoài ưu điểm giảm bớt vùng không thểphân loại mà còn làm tăng độ chính xác của việc phân loại Trong chiến lược OAR taphải xây dựng một siêu phẳng để tách một lớp ra khỏi các lớp còn lại, việc này đòi hỏi sựphức tạp và có thể không chính xác Tuy nhiên trong chiến lược OAO ta chỉ cần phântách một lớp ra khỏi một lớp khác mà thôi

Chiến lược OAR chỉ cần n-1 bộ phân loại cho n lớp Trong khi đó chiến lược OAOlại cần đến n(n-1)/2 bộ phân loại Nhưng số mẫu huấn luyện cho từng bộ phân loại trongOAO lại ít hơn và việc phân loại cũng đơn giản hơn Vì vậy chiến lược OAO có độ chínhxác cao hơn nhưng chi phí để xây dựng lại tương đương với chiến lược OAR

Hàm quyết định phân lớp của lớp i đối với lớp j trong chiến lược OAO là:

D ij(x )=w ij t x +b ij

D ij ( x )=−D ji ( x )

Trang 15

Đối với một vector x ta tính :

Và x được phân vào lớp i sao cho

arg max i=1 , …, n D i(x )

Ví dụ: Để phân bài toán thành 3 lớp A, B, C ta có các máy học sau:

Và kết quả phân loại là A = 1, B = 0, C = 2, thì lớp C sẽ được chọn là lớp của mẫu dữ liệu

Hình 2.3: Biểu đồ phân loại OAO

Trang 16

CHƯƠNG 3: ỨNG DỤNG NHẬN DẠNG MẪU HÌNH VẼ MULTI-CLASS SUPPORT VECTOR MACHINES

3.1 Quy trình hoạt động của ứng dụng

Hình 3.1: Mô hình hoạt động phân loại mẫu hình vẽ Multi class SVM

Quá trình phân loại mẫu hình vẽ bắt đầu quá trình rút trích các đặc tính đặc trưng củatừng phân lớp Sau đó tập dữ liệu này cùng với phân lớp tương ứng được huấn luyện quamáy học MSVM, để hình thành mô hình phân loại dữ liệu Sau đó các dữ liệu mới sẽđược dữ đoán phân lớp tương ứng từ mô hình phân loại MSVM

Bên cạnh, ta cũng có thể cập nhật các mẫu dữ liệu huấn luyện trong quá trình hoạtđộng của chương trình Số lượng mẫu hình vẽ huấn luyện của từng lớp càng nhiều thì khảnăng dự đoán trên các mẫu hình vẽ mới các chính xác

Huấn luyện dùng MSVM

Trang 17

Hình 3.2: Mô hình quá trình tạo ra các máy học SVM.

Để khởi động quá trình tạo các máy học SVM trong MSVM, tập các mẫu hỉnh vẽ vớicác phân lớp tương ứng và DynamicTimeWarping kernel là dữ liệu đầu vào của MSVM.Thuật toán SMO sẽ được dùng để huấn luyện trong quá trình tạo MSVM

Mỗi máy học tạo ra trong quá trình huấn luyên MSVM sẽ gồm ba loại thông tin đặctrưng:

Trang 18

3.2 Giới thiệu các chức năng của ứng dụng

Hình 3.3: Giao diện lúc bắt đầu chạy ứng dụng

Giao diện của chương trình gồm 3 phần chính:

 Khung vẽ các mẫu hình, dùng để cập nhật dữ liệu huấn luyện và để dữ đoán mẫumới

 Khung chứa các mẫu hình và phân lớp hiện tại của chương trình

các thông số của từng máy học SVM, và nút database đề lưu các mẫu dữ liệuthành file XML hay mở các tập hình vẽ mẫu đã được lưu thành file

Trang 19

Hình 3.4: Giao diện khởi tạo dữ liệu từ file XML.

Việc khơi tạo dữ liệu từ file XML được thực hiện qua menu database, ứng dụng sẽđọc file và tạo ra các mẫu hình vẽ và phân lớp tương ứng

Lúc này quá trình tạo MSVM có thể được thực hiện thông qua nút “Tạo MulticlassKernel Support Vector Machine” hoặc có thể cập nhật thêm mẫu hình mới qua khunghình

Trang 20

Hình 3.5: Giao diện dữ đoán mẫu hình mới sau khi tạo MSVM.

Sau khi quá trình tạo MSVM hoàn tất, khi thực hiện vẽ một mẫu hình mới, chươngtrình sẽ thực hiện việc dự đoán mẫu thuộc lớp nào

Chương trình sẽ đưa sẽ kết quả dự đoán và hỏi xác nhận Nếu việc dữ đoán đúng, tachọn “yes” để thêm vào tập huấn luyện trong tương lai Nếu chọn “No”, người dùng cóthể cập nhật lại mẫu dữ liệu và phân lớp tương ứng để làm dữ liệu huấn luyện

Trang 21

Hình 3.6: Giao diện chỉ định phân lớp cho mẩu dữ liệu mới.

Đối với một mẫu hình mới, người dùng có thể chỉ định phân lớp tương ứng và sau đóthêm vào tập huấn luyện để thực hiện tạo MSVM, hoặc có thể xóa mẫu hình để thực hiện

vẽ lại

Trang 22

Hình 3.7: Giao diện các thống số từng máy học SVM.

Chương trình sử dụng chiến lược “Chiến lược One-against-One” trong phân loại đalớp Do ta có tất cả là 4 phân lớp: 1, 2, 3, a và b nên sẽ gồm 10 máy học con SVM

Mỗi SVM gồm tập các vector đặc trưng và tập các trọng số tương ứng cùng với giátri threshold Tất cả các giá trị này được tính qua quá trình huấn luyện MSVM bằng thuấttoán SMO

Trang 23

SVM là một phương pháp phân loại nhị phân Do đó để ứng dụng để phân loại nhiềulớp, bài toán phân loại trở thành tập các SVM và một trong hai chiến lược được áp dụngtrong Multiclas SVM là chiến lược “Chiến lược One-against-Rest (OAR)” và “Chiếnlược One-against-One (OAO)” để xác định mẫu dữ liệu thuộc phân lớp nào.

Bên cạnh đó, báo cáo thực hiện ứng dụng demo để dự đoán các mẫu hình vẽ ứngdụng Multiclass SVM, thuật toán học SMO, hàm Dynamic Time Warping kernel mộtsequence kernel

Ngày đăng: 21/05/2015, 12:49

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] PGS.TS Vũ Thanh Nguyên (2013), Bài giảng Máy Học, Đại học CNTT, Đại học Quốc gia Tp.HCM Sách, tạp chí
Tiêu đề: Bài giảng Máy Học
Tác giả: PGS.TS Vũ Thanh Nguyên
Năm: 2013
[2] PGS. TS. Vũ Thanh Nguyên, ThS. Trang Nhật Quang (2009), Ứng dụng thuật toán rút trích thông tin văn bản FSVM trên Internet, Tạp chí phát triển KH&amp;CN, tập 12, số 05 Sách, tạp chí
Tiêu đề: Ứng dụng thuật toánrút trích thông tin văn bản FSVM trên Internet
Tác giả: PGS. TS. Vũ Thanh Nguyên, ThS. Trang Nhật Quang
Năm: 2009
[6] Shawkat Ali and Kate A. Smith. "Kernel Width Selection for SVM Classification: A Meta-Learning Approach." International Journal of Data Warehousing &amp; Mining, 1(4), 78-97, October-December 2005 Sách, tạp chí
Tiêu đề: Kernel Width Selection for SVM Classification: AMeta-Learning Approach
[3] LƯƠNG THỊ MINH HỒNG Luận văn thac sĩ, PHÂN LOẠI VĂN BẢN BẰNG PHƯƠNG PHÁP SUPPORT VECTOR MACHINE, Đại học bac1k khoa Hà Nội Khác
[4] V. Wan, J. Carmichael; Polynomial Dynamic Time Warping Kernel Support Vector Machines for Dysarthric Speech Recognition with Sparse Training Data.Interspeech'2005 - Eurospeech - 9th European Conference on Speech Communication and Technology. Lisboa, 2005 Khác
[5] Hofmann, T., B. Schửlkopf, and A. J. Smola. "Kernel methods in machine learning.&#34 Khác
[7] Gidudu Anthony, Hulley Gregg and Marwala Tshilidzi, Image Classification Using SVMs: One-against-One Vs One-against-All , 2007 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w