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 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 21.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 3Hì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 4CHƯƠ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 5Hì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 6Chươ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 7CHƯƠ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 8Hì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 9Nếu chúng ta chuyển thành công thức Lagrangian:
α i¿
(1− y i(m ' x i+b) )=0
Trang 10Giả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 12Hì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 14Siê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 16CHƯƠ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 17Hì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 183.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 19Hì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 20Hì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 21Hì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 22Hì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 23SVM 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