Tải bản đầy đủ (.doc) (51 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (497.75 KB, 51 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
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
Chuyên ngành: Toán ứng dụng

HÀ NỘI – 2014

1


TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
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
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 đầu tiên của khóa luận này 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 đỡ và đóng góp ý kiến cho em trong suốt quá
trình thực hiện đề tài khóa luận này.
Em chân thành cảm ơn các thầy cô khoa Toán Trường Đại học Sư
phạm Hà Nội 2, các thầy cô đã tận tình giảng dạy và truyền đạt cho em
những kiến thức quý báu trong quá trình học tập.
Cuối cùng em xin cảm ơn gia đình, bạn bè thân yêu luôn bên cạnh
động viên em trong quá trình học tập và hoàn thành khóa luận tốt nghiệp.
Hà Nội, ngày 10 tháng 5 năm 2014
Sinh viên
Đỗ Thị Ngoãn


LỜI CAM ĐOAN
Em xin cam đoan khóa luận này là kết quả sau quá trình nghiên cứu
độc lập của bản thân. Các kết quả và số liệu trình bày trong khóa luận là
trung thực. Những tư liệu trình bày trong khóa luận có nguồn gốc và
trích dẫn rõ ràng, đầy đủ.


MỤC LỤC
LỜI NÓI ĐẦU ...................................................................................... 1

Chương 1: TỔNG QUAN VỀ SVM .................................................... 3
1.1 Những khái niệm cơ bản về SVM ................................................. 3
1.1.1 Bài toán phân lớp ..................................................................... 3
1.1.2 Phân lớp tuyến tính.................................................................. 5
1.1.3 SVM và phân lớp với khoảng cách lớn nhất............................ 5
1.1.4 Không gian đặc trưng………………………………………….7
1.2 Bài toán phân lớp với SVM ........................................................... 8
1.2.1 Bài toán phân hai lớp với SVM ............................................... 8
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 dữ liệu có thể phân lớp tuyến tính ........................... 12
2.2 Trường hợp dữ 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 bản ........................................................................ 22
3.1.1 Khái quát về phân loại văn bản............................................. 22
3.1.2 Phân loại văn bản với SVM................................................... 22
3.1.3 Kết quả thực nghiệm ............................................................. 23
3.2 Lọc thư rác ................................................................................. 26
3.2.1 Khái quát về lọc thư rác......................................................... 26
3.2.2 Lọc thư rác với SVM............................................................. 26
3.2.3 Kết quả thực nghiệm ............................................................. 27
3.3 Nhận dạng chữ viết tay ............................................................... 28
3.3.1 Khái quát về 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 quả thực nghiệm ............................................................. 30
3.3.4 Đánh giá hiệu quả 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ụ 1 ........................................................................................ 32
4.2 Ví dụ 2 ........................................................................................ 34
4.3 Ví dụ 3 ........................................................................................ 36
KẾT LUẬN......................................................................................... 40
TÀI LIỆU THAM KHẢO.................................................................. 41


LỜI NÓI ĐẦU
Trong thời đại hiện nay, sự phát triển của công nghệ thông tin kéo
theo sự phát triển của nhiều lĩnh vực khác, làm tăng số lượng giao dịch
thông tin trên Internet. Thông tin ngày một nhiều, tốc độ thay đổi của
chúng cũng cực kỳ nhanh, hoạt động của các lĩnh vực cũng đặt ra nhu
cầu xử lý một khối lượng thông tin đồ sộ. Một yêu cầu lớn đặt ra là làm
thế nào để tổ chức, tìm kiếm và phân loại thông tin một cách hiệu quả.
Nếu xử lý và phân loại dữ liệu thủ công là điều khó khăn với số lượng dữ
liệu khổng lồ như vậy. Giải pháp được đặt ra là sử dụng máy tính để tự
động phân loại các thông tin. Kỹ thuật SVM được đánh giá là công cụ
mạnh và phổ biến nhất hiện nay cho những bài toán phân lớp phi tuyến.
Nhiều ứng dụng đã và đang được xây dựng trên kỹ thuật SVM rất hiệu
quả 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, những công trình nghiên cứu mang tính thực nghiệm
cũng đang được định hướng và thu được một số kết quả ban đầu tuy còn
hạn chế. Vì vậy việc cập nhật kiến thức và tiếp cận một lĩnh vực mũi
nhọn của khoa học công nghệ trong việc giải quyết một bài toán cụ thể là
rất cần thiết.
Trong khóa luận này em xin trình bày về SVM và một số ứng dụng của
nó. Khóa luận của em gồm 4 chương:
Chương 1: Trình bày tổng quan về SVM.
Chương 2: Trình bày SVM trong khai phá dữ liệu, trong đó chỉ ra ba
trường hợp của SVM là: trường hợp dữ liệu có thể phân lớp tuyến tính,

trường hợp dữ liệu không thể phân lớp tuyến tính và 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 của SVM đó là: phân loại văn bản,
nhận dạng chữ viết tay và lọc thư rác.
1


Chương 4: Một số ví dụ minh họa SVM trên Matlab.
Tuy đã có nhiều cố gắng nhưng do thời gian và khả năng có hạn
nên các vấn đề trong khóa luận vẫn chưa được trình bày sâu sắc và
không thể tránh khỏi những sai sót trong cách trình bày. Em rất mong
nhận được sự đóng góp ý kiến của thầy cô và các bạn. Em xin chân
thành cảm ơn !

2


Chương 1
TỔNG QUAN VỀ SVM
1.1 Những khái niệm cơ bản về SVM [1]
SVM là phương pháp học có giám sát do Vladimir N.Vapnik đề
xuất vào năm 1995 và ngày càng được sử dụng phổ biến trong nhiều
lĩnh vực đặc biệt là lĩnh vực phân loại mẫu và nhận dạng mẫu.
SVM được xem là công cụ mạnh cho những bài toán phân lớp phi
tuyến. Phương pháp này thực hiện phân lớp dựa trên nguyên lý cực tiểu
hóa rủi ro có cấu trúc SRM (Structural Risk Minimization), SVM được
xem là một trong các phương pháp phân lớp giám sát không tham số tinh
vi nhất cho đến nay. Các hàm công cụ đa dạng của 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 một tập hợp các dữ liệu đầu vào, dự báo mỗi

dữ liệu đầu vào ứng với một lớp (class) trong số hai lớp mà dữ liệu ấy có
khả năng rơi vào. Điều này làm cho dạng chuẩn SVM trở nên không có
tính xác suất mà là một công cụ nhị phân tuyến tính.
Bài toán phân lớp sử dụng SVM nhằm mục đích tìm một siêu
phẳng biên cực đại giữa lớp mẫu âm và mẫu dương, đồng thời cực tiểu
hóa các mẫu không phân chia được trong 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 bài toán tối ưu nhiều
biến.
1.1.1 Bài toán phân lớp
Phân lớp là quá trình nhóm các đối tượng “giống” nhau vào “một lớp”
dựa trên các đặc trưng dữ liệu của chúng. Tuy nhiên, phân lớp là một
hoạt động tiềm ẩn trong tư duy con người khi nhận dạng thế giới thực,
đóng vai trò quan trọng làm cơ sở đưa ra các dự báo, các quyết định.

3


Khi nghiên cứu một đối tượng, chúng ta chỉ có thể dựa vào một số
hữu hạn các đặc trưng của chúng. Nói cách khác, ta chỉ xem xét biểu diễn
đối tượng trong không gian hữu hạn chiều, mỗi chiều ứng với một đặc
trưng được lựa chọn.
Một cách hình thức, xem: X 

(x , x ,...,
1

2

là không gian biểu


x n )
diễn n-chiều các đặc trưng của đối tượng. Khi đó, mỗi đối tượng của X
sẽ thuộc về một lớp Ck nào đó và các lớp Ck tạo thành một phân hoạch
trên X, gọi là C(X ) : C(X ) 

C



k 1, K,Ck  C j   ,k  j

k

Vậy, việc phân lớp các đối tượng là xác định một hàm
f : X  C( X và bài toán phân lớp có thể được mô tả một cách hình
)
thức như 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 dữ liệu thứ i
Ci : lớp của mẫu dữ liệu thứ i

Như vậy, giải bài toán phân lớp là quá trình xây dựng một mô hình
(các hàm, các luật,…) để quyết định mỗi đối tượng, vật thể thuộc vào lớp
nào dựa trên các đặc trưng dữ liệu của chúng. Quá trình phân lớp sẽ trở
nên khó khăn hơn khi đối tượng có nhiều đặc trưng dữ liệu và quá trình
phân lớp cũng cần xác định đặc trưng nào cần thiết cho việc phân lớp,
đặc trưng nào dư thừa.
4


1.1.2 Phân lớp tuyến tính
Việc phân lớp nhị phân được thực hiện bằng cách sử dụng hàm
giá trị thực: f :   n  
Với f là hàm tuyến tính, tương ứng với đầu ra y  1,1 được phát
biểu như sau:
Đầu vào x  (x1 , x2 ,..., xn sẽ được gán vào lớp có nhãn +1 nếu
)
f (x)  0 , trường hợp còn lại được gán vào lớp có nhãn -1. Trường hợp


f (x) là hàm tuyến tính của x X ta có thể viết như sau:
n

f (x)  w.x  b   w i xi  b
i1

Trong đó <.> biểu thị tích vô hướng.
Về mặt hình học, các phần tử của không gian đầu vào X sẽ được rơi
vào một trong hai phần được phân tách bởi siêu phẳng xác định bằng
 w.x  b  0

biểu thức :

Trong đó: w là vectơ pháp tuyến của siêu phẳng, giá trị của ngưỡng b
thay đổi tạo ra các siêu phẳng song song với nhau.
1.1.3 SVM và phân lớp với khoảng cách lớn nhất
Support Vector Machines (SVM) là kỹ thuật mới đối với việc phân
lớp dữ liệu, là phương pháp học sử dụng không gian giả thuyết các hàm
tuyến tính trên không gian đặc trưng nhiều chiều, dựa trên lý thuyết tối
ưu và lý thuyết thống kê.
Trong kỹ thuật SVM không gian dữ liệu nhập ban đầu sẽ được ánh
xạ vào không gian đặc trưng và trong không gian đặc trưng này mặt siêu
phẳng phân chia tối ưu sẽ được xác định.
Ta có tập S gồm l các mẫu học:
S

2
l
l
l

, y2 ),...,
(x1, y1 ), (xY
) (x , y )  (X


n

Với một vectơ đầu vào n-chiều xi   thuộc lớp I hoặc lớp II
(tương ứng nhãn yi  1 đối với lớp I và yi  1 đối với lớp II). Một tập
mẫu học được gọi là tầm thường nếu tất cả các nhãn là bằng nhau.
Đối với các dữ liệu phân lớp tuyến tính chúng ta có thể xác định
siêu phẳng f (x) mà nó có thể chia tập dữ liệu. Khi đó, với một siêu
phẳng nhận được ta có: f (x)  0 nếu x thuộc lớp dương và f ( x)  0 nếu
x thuộc lớp âm.

f (x)  w.x  b  n j1 w j .x j 
b
yi f (xi )  yi (w.xi  b)  0, i
1,l

(1.1)
(1.2)

Trong đó: w là vectơ pháp tuyến n-chiều và b là giá trị
ngưỡng .
Vectơ pháp tuyến w xác định chiều của siêu phẳng f (x) , còn giá
trị ngưỡng b xác định khoảng cách giữa siêu phẳng và góc.
xi
w
b

xj

Hình 1.1:Phân tách theo siêu phẳng (w,b) trong không gian hai chiều của
tập mẫu.
Siêu phẳng có khoảng cách với dữ liệu gần nhất là lớn nhất (tức có
biên lớn nhất) được gọi là siêu phẳng tối ưu. Một ví dụ về siêu phẳng tối
ưu phân chia dữ liệu được mô tả trong hình 1.2 sau đây:


Biên lớn nhất

Lớp I


Siêu phẳng tối ưu

Lớp II

Một siêu phẳng

Hình 1.2: Siêu phẳng tối ưu
Mục đích đặt ra ở đây là tìm được một ngưỡng (w,b) phân chia tập mẫu
vào các lớp có nhãn 1 (lớp I) và -1 (lớp II) nêu ở trên với khoảng cách là
lớn nhất.
1.1.4 Không gian đặc trưng
SVM là một công cụ phân lớp phi tuyến dựa trên hàm nhân, nó
chuyển đổi dữ liệu được phân chia x sang một không gian mới, mà tại đó
các mẫu dữ liệu này có thể phân chia một cách tuyến tính. Không gian
này
gọi là không gian đặc trưng. Bằng việc sử dụng các hàm vectơ phi

tuyến:

(x)  (1
(x),...,l (x))

đã chuyển vectơ đầu vào n-chiều x sang một

không gian đặc trưng l chiều, hàm tuyến tính ở cả hai miền sẽ là:
l

f (x)    i yi (xi
). (x)

(1.3)

i1

Và các mẫu dữ liệu không xác định được phân chia thành: x thuộc
lớp I nếu f (x)  1, x thuộc lớp II nếu f (x)  1.
Sự phức tạp của hàm mục tiêu dẫn đến quá trình học phụ thuộc vào
cách nó được diễn tả dữ liệu một cách phù hợp, vấn đề học sẽ trở nên dễ
dàng.


Vì vậy, một việc làm phổ biến trong học máy là chuyển đổi dữ liệu từ
không gian đầu vào X sang không gian đặc trưng:

x  (x1 , x 2 ,...., x n )   (x)  (1 (x), 2 (x),..., N (x))
Trong đó: n là số chiều của không gian đầu vào (số thuộc tính)
và N là số chiều của không gian đặc trưng. Dữ liệu sẽ được chuyển vào

không gian đặc trưng N  n .
Không gian đặc trưng kí hiệu là F: F 

 (x) x X 

x



Φ(x)

x

Φ(x)

x



Φ(○)

x



Φ(x)

Φ(x)

Φ(○)

x

Φ(○)

X

Φ(x)

Φ(○)
F

Hình 1.3: Ánh xạ  từ không gian dữ liệu X sang không gian
đặc trưng F
Hình trên là ví dụ về ánh xạ từ không gian đầu vào hai chiều sang
không gian đặc trưng hai chiều, trong đó dữ liệu không thể phân lớp bởi
hàm tuyến tính trong không gian đầu vào, nhưng có thể phân lớp tuyến
tính khi chuyển sang không gian đặc trưng.
1.2 Bài toán phân lớp với SVM
1.2.1 Bài toán phân hai lớp với SVM
Bài toán đặt ra là: xác định hàm phân lớp để phân lớp các mẫu dữ
liệu, nghĩa là với một dữ liệu mới x thì cần phải xác định x được
t

t

phân vào lớp +1 hay lớp -1 ?
Nếu dữ liệu phân chia tuyến tính, hàm quyết định được xác định:
f (x)  w l .x 
b


(1.4)


Với w là vectơ pháp tuyến của siêu phẳng và b là vectơ vô hướng.
Siêu phẳng phân chia thỏa mãn: yi (w l x  b) 1, i 1,l
(1.5)
i

Siêu phẳng phân chia tối ưu là siêu phẳng chia hai lớp với khoảng
cách giữa hai lớp là lớn nhất.
Mặt phân chia tối ưu
Lớp II
Các điểm có nhãn +1(lớp I)
Lớp I

Các điểm có nhãn -1(lớp II)

Biên có độ rộng tối đa
Hình 1.4: Minh họa cho bài toán phân hai lớp
Siêu phẳng tối ưu có thể xác định được bằng việc giải bài toán tối ưu
bậc hai:
Cực tiểu

1
2

w

2


(1.6)

Với ràng buộc: yi (w.xi  b)  1
Nếu số thuộc tính của các mẫu dữ liệu là lớn, chúng ta có thể đơn
giản hóa phép tính bằng cách chuyển bài toán với điều kiện KKT
(Karush-Kuhn-Tucker) tương đương với phương trình Lagrange kép.
Với bài toán trên, điều kiện KKT (Karush-Kuhn-Tucker) là :

L
w
w

  i yi i xiv  0

(w,b,  ) 
v

L (w,b, )   y   0
i
i i
b

yi (xi w  b) 1 0, i 1,...,l
 i ( yi (wxi  b) 1)  0,i


Phương trình Lagrange cho (1.6) được mô tả như sau:
1
L(w,b, )  (w.w)  i   i  y ((w
i i .x )  b) 1

2

(1.7)

Với   (1 ,...,  M là bội số Lagrange .
)

Phương trình kép trên trở thành: cực tiểu L(w,b,
)
Với ràng buộc:  i  0, i 1, M

(1,8)

Trong trường hợp các mẫu huấn luyện không thể phân lớp tuyến
tính, chúng ta đưa thêm một biến phụ không âm i vào (1.5), cộng thêm
vào (1.8) và tổng các biến phụ được nhân với tham số C. Trong cả hai
trường hợp trên, hàm ra quyết định như nhau và được tính bằng:
M

f (x)   i * iy x .x 
bi*
i1

Để xác định hàm phân lớp dựa trên phương pháp SVM, ta sẽ tiến hành
tìm hai siêu phẳng song song sao cho khoảng cách  giữa chúng là lớn
nhất có thể để phân tách hai lớp này ra làm hai phía. Các điểm nằm trên
hai siêu phẳng phân tách được gọi là các support vector. Các điểm này
quyết định đến hàm phân tách dữ liệu.
Trong thực tế, để thuận tiện cho quá trình tính toán, dữ liệu mẫu
được ánh xạ vào không gian đặc trưng bằng cách sử dụng các hàm hạt

nhân, cách làm này sẽ làm tăng tốc độ tính toán và đảm bảo rằng dữ liệu
sẽ gần như được phân lớp tuyến tính.
1.2.2 Bài toán phân nhiều lớp với SVM
Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không
gian dữ liệu thành hai phần và quá trình này lặp lại nhiều lần. Khi đó hàm
quyết định phân dữ liệu vào lớp thứ I của tập n gồm 2-lớp sẽ là:
f (x)
 w lix  b
i
i

10


Những phần tử x là support vector sẽ thỏa điều kiện: f i (x)  1 nếu
thuộc lớp I, f i (x)  1 nếu thuộc phần còn lại.
Như vậy, bài toán phân nhiều lớp sử dụng phương pháp SVM hoàn
toàn có thể thực hiện giống như bài toán hai lớp. Bằng cách sử dụng
chiến lược “một đối một” (one-against-one).
Giả sử bài toán cần phân loại có k lớp (k>1), chiến lược “ một đối
một” sẽ tiến hành

k (k
 1)
2

lần phân lớp nhị phân sử dụng phương pháp

SVM. Mỗi lớp sẽ tiến hành phân tách với k 1 lớp còn lại để xác định
k 1 hàm phân tách dựa vào bài toán phân hai lớp bằng phương pháp

SVM.


Chương 2
SVM TRONG KHAI PHÁ DỮ LIỆU

Thuật toán máy vectơ hỗ trợ (Support Vector Machine-SVM) là một
giải thuật thuộc phân lớp thống kê. Nó có khả năng xử lý tất cả dữ liệu
tuyến tính và dữ liệu không tuyến tính. Bản chất của giải thuật này là nó
xây dựng một siêu phẳng để phân chia dữ liệu thành hai nửa. Trong
trường hợp nếu dữ liệu là không tuyến tính thì nó sẽ sử dụng một hàm
nhân (kernel function) để chuyển đổi tập dữ liệu ban đầu sang một không
gian mới có số chiều lớn hơn để xử lý.
2.1 Trường hợp dữ liệu có thể phân lớp tuyến tính [2]
Để làm quen với thuật toán phân lớp SVM ta xét trường hợp đơn
giản là tập dữ liệu huấn luyện chỉ có hai lớp và nó phân bố ở dạng mà ta
có thể phân tách chúng một cách tuyến tính. Gọi D là tập dữ liệu huấn
luyện: ( X1 , y1 ),( X 2 , y2 ),...(X D , y D ) , trong X i là các phần tử dữ liệu và
đó
yi là nhãn tương ứng của nó. Giá trị của yi có thể nhận là một trong hai
giá trị 1,
1

giống như tập dữ liệu trong bảng 1.1 là có 2 lớp cho

trường mua máy tính là yes hay no.
Bảng 1.1 : Bảng dữ liệu khách hàng:
I
D


TT
hu
nh
1
Yập
Hi
ogh
2
YHi
ogh
3 m Hi
id gh

Si Đ M
n á u
h n a
vi N hF N
o
o
N E N
o x o
N F Y
o
e


4

SM
eed


N F Y
o
e


5

SL
eo
6
SL
eo
7 M L
id o
8
YM
oed
9
YL
oo
1
SM
0
eed
1
YM
1
oed
1 M M

2 id ed
1 M Hi
3 id gh
1
SM
4
eed
Chú thích:

Y
e
Y
e
Y
e
N
o
Y
e
N
o
Y
e
N
o
Y
e
N
o


F Y
e
E N
x o
E Y
x e
F N
o
F Y
e
F Y
e
E Y
x e
E Y
x e
F Y
e
E N
x o

Youth: trẻ
Middle-age: trung niên

Senior: già

Để có thể hiện thị được dữ liệu ta lấy trường hợp dữ liệu được biểu
diễn bằng 2 thuộc tính A1 và A2, các phần tử dữ liệu của tập D được minh
họa bằng hình 2.1:
A1


Dữ liệu lớp +1
Dữ liệu lớp -1

Các đường phân tách dữ liệu
A2
Hình 2.1 Minh họa dữ liệu có thể phân lớp tuyến tính
Từ hình vẽ cho chúng ta thấy dữ liệu có thể phân lớp thành hai nửa
bằng một đường thẳng. Tuy nhiên, số lượng các đường thẳng có thể
dùng để phân lớp tập dữ liệu trên thành hai nửa là vô hạn (hình 2.1 minh


họa một số đường thẳng vẽ bằng đường đứt nét dùng để phân tách tập dữ
liệu trên thành hai lớp riêng biệt). Trong trường hợp dữ liệu được biểu
diễn bằng ba thuộc tính (ba chiều) thì đường thẳng sẽ được thay thế bằng
mặt phẳng (plane) và trường hợp tổng quát n-chiều thì ta dùng siêu
phẳng (hyperplane) để thay thế đường thẳng.
Để tìm ra siêu phẳng tốt nhất, giải thuật SVM tìm siêu phẳng có lề
lớn nhất MMH (maximum marginal hyperplane). Khái niệm lề có thể
được minh họa trên hình 2.2, lề của siêu phẳng h là tổng khoảng cách từ
h đến hai siêu phẳng, là tiếp tuyến với hai miền dữ liệu (ở hai bên siêu
phẳng) và song song với siêu phẳng h.
A1
Dữ liệu lớp +1
Lề nhỏ

Dữ liệu lớp -1

A2
Hình 2.2 Lề của một siêu phẳng

Hình 2.3 minh họa một siêu phẳng khác có lề lớn hơn so với lề của
siêu phẳng trong hình 2.2.
A1
Dữ liệu lớp +1
Dữ liệu lớp -1
Lề lớn
A2
Hình 2.3: Siêu phẳng có lề lớn


Lý do của việc tìm siêu phẳng có lề lớn nhất là ta hy vọng nó sẽ có
thể phân lớp tốt nhất. Nó cho chúng ta tỉ lệ lỗi phân lớp thấp nhất. Một
siêu phẳng phân lớp có thể biểu diễn bằng công thức: W.X  b 
0
(2.1)
Trong đó: W là vectơ trọng số W  w 1 , w 2 ,..., w n  và n là số lượng
các thuộc tính mô tả tập dữ liệu D; b là một số thực được gọi là độ lệch.
Trong trường hợp đơn giản nhất, ta xét số lượng thuộc tính là hai kí hiệu
A1 và A2. Khi đó phần tử dữ liệu X được biểu diễn bằng X   x1, x2 với



x1, x 2 là giá trị tương ứng của thuộc tính A1 và A2. Nếu coi b cũng là một
trọng số công thức (2.1) có dạng: w 0  w1.x1  w 2 .x2 
0

(2.2)

Khi đó các điểm nằm phía trên siêu phẳng sẽ thỏa mãn mãn điều
kiện: w 0  w 1 x1  w 2 x2 

0

(2.3)

Các điểm nằm phía dưới siêu phẳng sẽ thỏa mãn điều kiện :
w 0  w1 x1  w 2 x2 
0

(2.4)

Hai siêu phẳng tiếp tuyến với dữ liệu và song song với siêu phẳng
phân lớp h có thể được biểu diễn bằng công thức:
H1: w 0  w1 x1  w 2 x2  1,
với

yi 
1

(2.5)

và H2: w 0  w1 x1  w 2 x2  1,
với

yi 
1

(2.6)

Do đó, nói một cách chính xác hơn thì các điểm ở trên siêu phẳng
H 1 sẽ được phân vào lớp +1 và các điểm ở dưới siêu phẳng H 2 sẽ được

phân vào lớp -1. Nhân cả hai vế của hai bất đẳng thức (2.5) và (2.6) với
yi được bất đẳng thức chung: yi (w 0  w1 x1  w 2 x2 ) 1 ,
i

(2.7)


Để xác định hai siêu phẳng H1 và H2 ta chỉ cần dựa vào các phần tử
dữ liệu huấn luyện nằm trên hai siêu phẳng (các phần tử dữ liệu thỏa
mãn: yi (w 0  w1 x1  w 2 x2 ) 1 ).


Các phần tử dữ liệu này được gọi là các vectơ hỗ trợ (support
vector). Chúng cũng chính là các phần tử dữ liệu nằm gần siêu phẳng
phân chia h nhất. Hình 2.4 minh họa các vectơ hỗ trợ (chúng là các hình
được bôi đen).
A1

Dữ liệu lớp +1
Dữ liệu lớp -1

A2
Hình 2.4 Minh họa vectơ hỗ trợ
Trong trường hợp tổng quát thì các vectơ hỗ trợ chính là các phần
tử khó phân lớp nhất nhưng lại cung cấp nhiều thông tin nhất cho việc
phân lớp (giúp xác định các siêu phẳng tiếp tuyến). Từ công thức (2.7) ở
trên chúng ta có thể suy ra công thức tính độ lớn của lề. Khoảng cách từ
1
,
w

w 2  w 2  ... w 2

một điểm bất kỳ từ siêu phẳng H1 đến siêu phẳng phân lớp h là
trong đó w là Euclidean của W: W  W  W


1

2

n

(2.8)
Tương tự khoảng cách từ một điểm bất kỳ từ siêu phẳng H2 đến phân
lớp h cũng là

1
2
và độ lớn của lề sẽ là
. Việc tìm ra siêu phẳng có
w
w

lề lớn nhất người ta dựa vào việc giải công thức (2.7), việc này có thể
giải quyết bằng bài toán tối ưu toàn phương lồi (convex quadratic
optimization).


×