Máy véc-tơ tựa song sinh và áp dụng
Máy véc-tơ tựa (SVM) là một kĩ thuật phân lớp rất phổ biến và được vận dụng vào
rất nhiều các lĩnh vực khác nhau của đời sống. Nhận thấy đây là một vấn đề thiết
thực nên chúng tôi đã lựa chọn để nghiên cứu, nhằm mục tiêu tìm thêm các ứng
dụng thực tiễn của thuật toán và các cải tiến tốt hơn. Một vài các cải tiến tiêu biểu
như: máy véc-tơ tựa xấp xỉ (PSVM), máy véc-tơ tựa xấp xỉ thông qua trị riêng suy
rộng (GEPSVM), máy véc-tơ tựa song sinh (TWSVM). SVM và TWSVM đều được
giải dựa vào bài toán đối ngẫu Lagrange nhưng TWSVM dùng hai siêu phẳng để
tách hai lớp dữ liệu. Bài báo này nhằm trình bày cơ sở toán học của PSVM,
GEPSVM và TWSVM, bên cạnh đó chúng tôi đã cài đặt thuật toán TWSVM bằng
ngôn ngữ lập trình Python để đánh giá hiệu quả của TWSVM so với SVM tiêu
chuẩn.

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Máy véc-tơ tựa song sinh và áp dụng
+ 2 = . PSVM sẽ
tìm hai siêu phẳng song song với lề lớn nhất. GEPSVM [4] có cách tiếp cận khác là tìm
hai siêu phẳng không nhất thiết song song, mỗi siêu phẳng là gần nhất có thể với một
lớp và xa nhất có thể với lớp còn lại.
푤(1) + (1) = 0; 푤(2) + (2) = 0. (6)
Ở đây siêu phẳng 1 của (6) gần nhất với các điểm của lớp 1 và xa nhất với các
điểm thuộc lớp 2, điều tương tự xảy ra với siêu phẳng 2. Việc tìm siêu phẳng 1 tương
đương với bài toán tối ưu sau:
푤 2
‖ 푤 + 푒 ‖2/ ‖[ ]‖
1
min , (7)
(푤, )≠0 푤 2
‖ 푤 + 푒 ‖2/ ‖[ ]‖
2
1 2
với 푒1 ∈ ℝ , 푒2 ∈ ℝ là các véc-tơ gồm tất cả tọa độ bằng 1, ‖⋅‖ là chuẩn 퐿2. Ta thấy
rằng tử số chính là tổng của bình phương khoảng cách tất cả các điểm thuộc lớp 1 tới
siêu phẳng 1, mẫu số là tổng của bình phương khoảng cách tất cả các điểm thuộc lớp 2
tới siêu phẳng 1. Đơn giản hóa (7) cho ta:
2
‖ 푤 + 푒1 ‖
min 2 , (8)
(푤, )≠0 ‖ 푤 + 푒2 ‖
5
Máy véc-tơ tựa song sinh và áp dụng
Để chính quy hóa (8), ta thêm số hạng chính quy Tikhonov [9] vào tử số, bài
toán trở thành:
푤 2
‖ 푤 + 푒 ‖2 + 훿 ‖[ ]‖
1
min 2 , 훿 > 0 (9)
(푤, )≠0 ‖ 푤 + 푒2 ‖
Đặt
≔ [ 푒1] [ 푒1] + 훿 ,
{ 푤
≔ [ 푒 ] [ 푒 ], ≔ [ ] ,
2 2
bài toán tối ưu (9) trở thành:
min ( ) = , (10)
≠0
ở đây G, H là các ma trận đối xứng trong 푅(푛+1)×(푛+1). Ta có
( − ( ) )
∇ ( ) = 2 , (11)
hàm ( ) được gọi là thương Rayleigh [1, tr357]. Hàm này có tính chất (휆 ) =
( ), ∀ , ∀휆 ≠ 0 do đó (10) tương đương min ( ). Vì ( ) liên tục trên tập compact
∈푆(0, 1)
푆(0, 1) nên đạt cực tiểu và cực đại trên đó. Giả sử ( ) đạt cực tiểu và cực đại tương
ứng tại min, max. Lúc đó 훻 ( min) = 훻 ( max) = 0 ⇒ min − ( min) min = 0 và
max − ( max) max = 0. Như vậy, ( min), ( max) ∈ [휆1, 휆푛+1] ⇒ ( ) ∈ [휆1, 휆푛+1]
khi ∈ 푆(0, 1), ở đây 휆1, 휆푛+1 tương ứng là trị riêng nhỏ nhất và lớn nhất của bài toán
trị riêng suy rộng:
= 휆 , ≠ 0. (12)
Giả sử rằng các cột của ma trận [ 푒2] là độc lập tuyến tính, nghiệm toàn cục
của (10) là véc-tơ riêng của (12) tương ứng với trị riêng nhỏ nhất 휆1. Ký hiệu véc-tơ
riêng này là (1) thì [푤(1) (1)] = (1) xác định siêu phẳng 1 trong (6).
Bằng cách làm tương tự ta sẽ có được siêu phẳng 2.
5. MÁY VÉC-TƠ TỰA SONG SINH
5.1 Trường hợp hai lớp dữ liệu gần tách được tuyến tính
Với bài toán như trong mục 4. Ý tưởng của TWSVM cho bài toán phân loại nhị
phân cũng là đi tìm hai siêu phẳng không song song như GEPSVM, nhưng về mặt
công thức thì hoàn toàn khác.
6
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số 1 (2020)
Hình 3: SVM và TWSVM
Thực tế, mỗi bài toán QP trong TWSVM là tương tự như SVM, tuy nhiên không
phải tất cả các điểm dữ liệu đều xuất hiện trong ràng buộc cùng một lúc. Ta sẽ thu
được hai siêu phẳng trong TWSVM bằng cách giải hai bài toán QP sau:
1 (1) (1) (1) (1)
min ( 푤 + 푒1 ) ( 푤 + 푒1 ) + 1푒2 푞
( 푊푆 1) {푤(1), (1),푞 2 (13)
(1) (1)
−( 푤 + 푒2 ) + 푞 ≥ 푒2, 푞 ≥ 0,
và
1 (2) (2) (2) (2)
min ( 푤 + 푒2 ) ( 푤 + 푒2 ) + 2푒1 푞
( 푊푆 2) {푤(2), (2),푞 2 (14)
(2) (2)
−( 푤 + 푒1 ) + 푞 ≥ 푒1, 푞 ≥ 0.
Ở đây 1, 2 là các hệ số phạt để cân bằng sự vi phạm và tổng khoảng cách bình
1 2
phương trong mỗi bài toán, 푒1 ∈ 푅 , 푒2 ∈ 푅 là các vector toàn 1. Thuật toán đi tìm
hai siêu phẳng đại diện cho hai lớp.
Trước hết ta xét bài toán (13). Ta thấy rằng, biểu thức thứ nhất trong hàm mục
tiêu của (13) chính là tổng khoảng cách bình phương của các điểm thuộc lớp 1 tới siêu
phẳng 1. Ràng buộc là các điểm thuộc lớp -1 giữ khoảnh cách ít nhất bằng 1 đối với
siêu phẳng 1. Biến phụ 푞 > 0 tại các điểm vi phạm ràng buộc và bằng 0 tại các điểm
không vi phạm. Hàm Lagrange tương ứng với bài toán TWSVM1 (13) được cho bởi:
1
퐿(푤(1), (1), 푞, 훼, 훽) = ( 푤(1) + 푒 (1)) ( 푤(1) + 푒 (1)) + 푒 푞
2 1 1 1 2
(1) (1)
−훼 (−( 푤 + 푒2 ) + 푞 − 푒2) − 훽 푞, (15)
với 훼 = (훼1, . . . , 훼 2 ) , 훽 = (훽1, . . . , 훽 2) là vector nhân tử Lagrange. Giải hệ điều kiện
cần và đủ K.K.T của bài toán ta có:
0 ≤ 훼 ≤ 1푒2. (16)
và
(1)
[ ] 푤
[ ] 푒1 [ (1) ] + [ ] 훼 = 0. (17)
푒1 푒2
Đặt
7
Máy véc-tơ tựa song sinh và áp dụng
푤(1)
= [ 푒1], = [ 푒2], = [ ], (18)
(1)
(17) có thể viết lại thành
+ 훼 = 0,
tức là
= −( )−1 훼. (19)
Để đảm bảo tồn tại ma trận nghịch đảo ( )−1 ta thêm số hạng chính quy
휖 , 휖 > 0 như trong [2], với là ma trận đơn vị có số chiều thích hợp, (19) trở thành
= −( + 휖 )−1 훼. (20)
Tuy nhiên, trong phần sau của bài ta vẫn sử dụng (19) để thuận tiện cho quá
trình tìm hiểu bài toán, còn khi lập trình thuật toán ta sẽ sử dụng công thức (20). Thay
vào hàm Lagrange ta thu được bài toán đối ngẫu của TWSVM1 như sau:
1 −1
max 푒2 훼 − 훼 ( ) 훼
( 푊푆 1) { 훼 2 (21)
0 ≤ 훼 ≤ 1푒2.
Bằng cách tương tự, ta xét bài toán TWSVM2 và thu được bài toán đối ngẫu
sau:
1 −1
max 푒1 훾 − 훾 ( ) 훾
( 푊푆 2) { 훾 2 (22)
0 ≤ 훾 ≤ 2푒1.
푤(2)
và vector 푣 = [ ] được cho bởi
(2)
푣 = ( )−1 훾. (23)
Hai ma trận và cùng có cỡ (푛 + 1) × (푛 + 1), trong thực tế số chiều 푛
là nhỏ hơn nhiều so với số phần tử của hai lớp dữ liệu. Hai siêu phẳng tách đạt được
là:
푤(1) + (1) = 0, 푤(2) + (2) = 0. (24)
Với một điểm dữ liệu mới ∈ ℝ푛 ta tính khoảng cách vuông góc từ tới hai
siêu phẳng, gần siêu phẳng của lớp nào hơn thì thuộc về lớp đó.
Từ hệ điều kiện K.K.T ta thấy rằng, các điểm thuộc lớp -1 tương ứng với 0 < 훼푖 <
(1) (1)
1, (푖 = 1, . . . , 2) nằm trên siêu phẳng 푤 + = −1, những vector thuộc lớp -1
này là những vector tựa của lớp 1. Điều tương tự xảy ra với bài toán TWSVM2.
Đánh giá độ phức tạp: Quan sát hai bài toán đối ngẫu (21) và (22) thấy rằng các
ma trận vuông ( )−1 và ( )−1 có cỡ xấp xỉ . Trong bài toán đối ngẫu
2
của SVM [3], ma trận vuông có cỡ . Như vậy nếu ta coi độ phức tạp của SVM là 3
8
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số 1 (2020)
thì độ phức tạp của TWSVM là xấp xỉ 2( )3, qua đó thấy rằng tốc độ tính toán của
2
TWSVM là nhanh hơn SVM xấp xỉ 4 lần.
5.2 TRƯỜNG HỢP PHI TUYẾN
Khi hai lớp dữ liệu là không tách được tuyến tính, tương tự như SVM tiêu
chuẩn, ta sẽ sử dụng kỹ thuật kernel. Hai mặt phân loại sẽ có dạng:
퐾( , )푤(1) + (1) = 0, 퐾( , )푤(2) + (2) = 0, (25)
với = [ ] và 퐾 là một kernel nào đó. Bài toán tối ưu có dạng như sau:
1 (1) (1) 2
min ‖퐾( , )푤 + 푒1 ‖ + 1푒2 푞
(퐾 푊푆 1) {푤(1), (1),푞 2 (26)
(1) (1)
−(퐾( , )푤 + 푒2 ) + 푞 ≥ 푒2, 푞 ≥ 0.
Hàm Lagrange của bài toán:
1 2
퐿(푤(1), (1), 푞, 훼, 훽) = ‖퐾( , )푤(1) + 푒 (1)‖ + 푒 푞
2 1 1 2
(1) (1)
−훼 (−(퐾( , )푤 + 푒2 ) + 푞 − 푒2)
− 훽 푞, (27)
Dựa vào hệ điều kiện K.K.T của bài toán ta có:
퐾( , ) (1) 퐾( , )
[ ( ) ] 푤
[ ] 퐾 , 푒1 [ (1) ] + [ ] 훼 = 0. (28)
푒1 푒2
(1)
(1) 푤
Đặt 푆 = [퐾( , ) 푒1], 푅 = [퐾( , ) 푒2], = [ ],
(1)
biểu thức (28) có thể được viết lại thành
푆 푆 (1) + 푅 훼 = 0, hay (1) = −(푆 푆)−1푅 훼. (29)
Bài toán đối ngẫu của KTWSVM1 là:
1 −1
max 푒2 훼 − 훼 푅(푆 푆) 푅 훼
(퐾 푊푆 1) { 훼 2 (30)
0 ≤ 훼 ≤ 1푒2.
Tương tự ta có bài toán tối ưu KTWSVM2 và KDTWSVM2 cho mặt
퐾( , )푤(2) + (2) = 0 như sau:
1 (2) (2) 2
min ‖퐾( , )푤 + 푒2 ‖ + 2푒1 푞
(퐾 푊푆 2) {푤(2), (2),푞 2 (31)
(2) (2)
(퐾( , )푤 + 푒1 ) + 푞 ≥ 푒1, 푞 ≥ 0.
1 −1
max 푒1 훾 − 훾 푆(푅 푅) 푆 훾
(퐾 푊푆 2) { 훾 2 (32)
0 ≤ 훾 ≤ 2푒1.
9
Máy véc-tơ tựa song sinh và áp dụng
(2)
( ) 푤
Nghiệm 2 = [ ] = (푅 푅)−1푆 훾. Bằng cách sử dụng công thức Sherman-
(2)
Morrison-Woodbury [8] cho ma trận nghịch đảo, ta không phải tính nghịch đảo của
ma trận + 1 chiều như trên mà chỉ phải tính nghịch đảo của ma trận 1 chiều và 2
chiều.
6. CÀI ĐẶT THUẬT TOÁN MÁY VÉC-TƠ TỰA SONG SINH VÀ ÁP DỤNG
Thuật toán TWSVM: Cho điểm dữ liệu trong 푹풏 được biểu diễn bởi ma trận
×풏
푪 . Giả sử tập dữ liệu gồm hai lớp, lớp {+} gồm điểm và lớp {-} gồm điểm tương ứng
được biểu diễn bởi các ma trận ×풏 và ×풏. Với K là một kernel nào đó;
(1)
(1) 푤
i) Đặt 푆 = [퐾( , ) 푒1], 푅 = [퐾( , ) 푒2], = [ ], với 푒1 ∈
(1)
1×1 2×1
푅 , 푒2 ∈ 푅 là các vector toàn 1.
ii) Xác định 훼 thông qua (30).
iii) Xác định (1) thông qua (29).
iv) Phân loại một điểm x mới dựa vào (24).
Ngôn ngữ lập trình được sử dụng ở đây là Python 3.8.3. Trong các thư viện của
Python mới chỉ cài đặt thuật toán SVM mặc dù đã có khá nhiều cải tiến tốt hơn, tiêu
biểu là thuật toán TWSVM. Tôi đã cài đặt thuật toán TWSVM và đưa phần code lên
web, bạn đọc quan tâm có thể tìm thấy tại
https://github.com/makeho8/python/blob/master. Về cơ bản ta cần sử dụng một vài
thư viện của Python:
import numpy as np
from cvxopt import matrix, solvers
from sklearn.base import BaseEstimator
K = matrix(GB.dot(np.linalg.inv(HA.T.dot(HA) + 0.0001*I)).dot(GB.T))
q = matrix((-e_B))
G = matrix(np.vstack((-np.eye(m_B), np.eye(m_B))))
h = matrix(np.vstack((np.zeros((m_B,1)), self.c*np.ones((m_B,1)))))
solvers.options['show_progress'] = False
sol = solvers.qp(K, q, G, h)
alpha = np.array(sol['x'])
self.u = -np.linalg.inv(((HA.T).dot(HA) + 0.0001*I)).dot(GB.T).dot(alpha)
10
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số 1 (2020)
self.b_A = self.u[-1]
Dưới đây tôi đưa ra kết quả áp dụng thực tế để so sánh giữa TWSVM và SVM
tiêu chuẩn. Bạn đọc có thể thấy rằng TWSVM là tốt hơn SVM cả về tốc độ tính toán và
khả năng mô phỏng dữ liệu trong hầu hết các trường hợp. Dữ liệu được lấy từ bộ dữ
liệu sẵn có UCI [10]. Các hệ số phạt đều được cài đặt là 1. Sử dụng đánh giá chéo 10 lần
(10-fold cross validation) để đánh giá độ chính xác kiểm thử cho tất cả các tập dữ liệu.
Tập dữ liệu được chia theo tỉ lệ 80/20, Laptop sử dụng là MSI Bravo15.
Bảng 1: Độ chính xác (%)
Dữ liệu TWSVM SVM
CMC (1473x9) 68.253 +/- 3.065 66.977 +/- 3.921
Heart (920x13) 79.902 +/- 5.098 80.170 +/- 4.629
Image (2100x18) 84.345 +/- 2.306 76.905 +/- 2.564
Hepatitis (155x19) 82.821 +/- 8.107 78.013 +/- 9.178
Australian (689x14) 85.107 +/- 4.153 78.750 +/- 7.659
BUPA-liver (345x6) 66.283 +/- 7.592 68.016 +/- 10.710
Credit (690x16) 86.416 +/- 2.695 85.513 +/- 3.955
Diabetis (768x9) 77.205 +/- 4.605 74.923 +/- 5.606
Flare-solar (1066x13) 89.793 +/- 2.500 90.379 +/- 2.193
German (999x25) 76.475 +/- 4.446 75.228 +/- 5.326
Ionosphere (350x35) 89.643 +/- 5.858 86.786 +/- 4.532
Spect (265x23) 80.649 +/- 8.113 80.152 +/- 7.070
Bảng 2: Tốc độ chạy (ms)
Dữ liệu TWSVM SVM
CMC (1473x9) 269.06 3619.811
Heart (920x13) 78.017 1297.29
Image (2100x18) 1029.228 8343.87
Hepatitis (155x19) 6 34
Australian (689x14) 46.011 905.202
BUPA-liver (345x6) 14 161
Credit (690x16) 59.015 759.171
Diabetis (768x9) 64.014 846.189
Flare-solar (1066x13) 136.032 1659.375
German (999x25) 148.032 1480.331
Ionosphere (350x35) 14.002 167.037
Spect (265x23) 12.002 108.023
11
Máy véc-tơ tựa song sinh và áp dụng
7. KẾT LUẬN
Như vậy tư tưởng toán học của máy véc-tơ tựa song sinh thực chất là tìm cách
tách các lớp dữ liệu bởi hai siêu phẳng không nhất nhiết song song, trong đó mỗi siêu
phẳng là gần nhất với một lớp và xa nhất có thể với lớp còn lại. Bằng một phương
pháp nhất quán là sử dụng quy tắc nhân tử Lagrange để giải hai bài toán QP, chúng tôi
đã trình bày cơ sở toán học của máy véc-tơ tựa song sinh và các nghiên cứu liên quan
như, SVM tiêu chuẩn, PSVM, GEPSVM trong kĩ thuật phân lớp dữ liệu. Cùng với đó là
cách cài đặt thuật toán máy véc-tơ tựa song sinh bằng ngôn ngữ lập trình Python,
nhằm mục đính đánh giá về tốc độ và khả năng mô phỏng dữ liệu của TWSVM so với
SVM tiêu chuẩn, cho các trường hợp khác nhau, từ đơn giản đến phức tạp. Cánh tiếp
cận của TWSVM trong trường hợp phi tuyến có thể được giải quyết thông qua bài toán
quy hoạch nửa xác định dương và quy hoạch nón bậc hai, đây là hướng nghiên cứu
tiếp theo của chúng tôi nhằm mục đích cải tiến thuật toán.
TÀI LIỆU THAM KHẢO
[1]. B.N Parlett (1998), The symmetric eigenvalue problem. Philadelphia: SIAM.
[2]. C. Saunders, A. Gammerman, and V. Vovk (1998), Ridge regression learning algorithm in
dual variables, Proc. 15th Int’l Conf. Machine learning, pp.515-521.
[3]. B. Scholkopf and A. Smola (2002), Learning with kernel. Cambridge, Mass.: MIT Press.
[4]. O. L. Mangasarian and E. W. Wild (2006), “Multisurface proximal support vector
classification via generalized eigenvalues,” IEEE Trans. Pattern analysis and machine learning,
vol. 28, no. 1, pp. 69-74.
[5]. Jayadeva, R. Khemchandani and S. Chandra (2007), Twin support vector machines for
pattern classification. IEEE Transactions on Pattern Analysis and Machine intelligence, vol. 29,
no. 5.
[6]. G. Fung and O. L Mangasarian (2001), “Proximal support vector machine,” Proc. Seventh
Int’l Conf. Knowledge discovery and Data mining, pp. 77-86.
[7]. O. L. Mangasarian (1994), Nonlinear programming. SIAM, Philadelphia, PA.
[8]. G. H. Golub and C. F. Van Loan (1996), Matrix computations. The John Hopkins University
Press, Baltimore, Maryland, 3rd edition.
[9]. A.N. Tikhonov and V. Y. Arsen (1977), Solutions of Ill-Posed Problems. New York: John
Wiley and Sons.
[10]. C. L. and C.J. Merz (1998), “UCI Repository for Machine Learning Database,” Dept. of
information and computer sciences, Univ. of California, Irvine,
12
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số 1 (2020)
TWIN SUPPORT VECTOR MACHINE AND APPLICATION
Nguyen The Cuong
Department of Mathematics, Communications University Nha Trang, Khanh Hoa
Email: nckcbnckcb@gmail.com
ABSTRACT
The support vector machines are popular classification technique and has been
successfully applied to many different areas of the life. Because this is a pratical
problem, we chose to study, aiming to find more applications and better
improvings. There are some typical improvings such as Proximal Support Vector
Machine (PSVM), Proximal Support Vector Machine Via Generalized Eigenvalues
(GEPSVM) and Twin Support Vector Machine (TWSVM). SVM and TWSVM can
be solved by using Lagrange duality problem, but TWSVM used two nonparallel
hyperplanes to separate data classes. This paper airms to show mathematical
foundation of PSVM, GEPSVM and TWSVM, and we have setted up TWSVM
algorithm by using Python programming to evaluate effect of TWSVM compared
to standard SVM.
Keywords: Support vector machines, Twin support vector machines.
Nguyễn Thế Cường sinh ngày 09/12/1986 tại Sơn La. Năm 2009, ông tốt
nghiệp cử nhân ngành Toán Tin tại Trường Đại học Sư phạm Hà Nội.
Năm 2014, ông tốt nghiệp thạc sỹ ngành Toán Giải tích tại Trường Đại học
khoa học, ĐH Huế. Tháng 12/2018, ông bắt đầu làm NCS tại Trường Đại
học Khoa học, ĐH Huế. Hiện ông đang công tác tại Trường ĐH Thông tin
Liên lạc, Nha Trang, Khánh Hòa.
Lĩnh vực nghiên cứu: Khoa học máy tính.
13
Máy véc-tơ tựa song sinh và áp dụng
14 File đính kèm:
may_vec_to_tua_song_sinh_va_ap_dung.pdf

