Tải bản đầy đủ (.pdf) (74 trang)

Máy vectơ tựa (support vector machine-SVM) và ứng dụng trong việc xác định tham số độ thấm trong ngành địa chất

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 (1 MB, 74 trang )


ðẠI HỌC QUỐC GIA HÀ
NỘI

TRƯỜNG ðẠI HỌC CÔNG
NGHỆ









NGUYỄN HOÀNG DƯƠNG








MÁY VECTƠ TỰA
(SUPPORT VECTOR MACHINE - SVM)
VÀ ỨNG DỤNG TRONG VIỆC XÁC ðỊNH
THAM SỐ ðỘ THẤM TRONG NGÀNH ðỊA CHẤT















LUẬN VĂN THẠC
SĨ CÔNG NGHỆ THÔNG TIN
























Hà Nội -
2012
ðẠI HỌC
QUỐ
C GIA HÀ NỘI
TRƯỜNG ðẠI HỌC CÔNG
NGHỆ







NGUYỄN HOÀNG DƯƠNG











MÁY VECTƠ TỰA
(SUPPORT VECTOR MACHINE - SVM)
VÀ ỨNG DỤNG TRONG VIỆC XÁC ðỊNH
THAM SỐ ðỘ THẤM TRONG NGÀNH ðỊA CHẤT






Ngành: Công nghệ Thông tin
Chuyên ngành: Công nghệ Phần mềm
M
ã số:

60 48 10




LUẬN VĂN THẠC
SĨ CÔNG NGHỆ THÔNG TIN








NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TSKH. Phạm Huy ðiển












Hà Nội –
2012


III
MỤC LỤC
Lời cam ñoan I
Lời cảm ơn II
MỤC LỤC III
Danh mục các ký hiệu, các chữ viết tắt V
Danh mục các hình vẽ VI
MỞ ðẦU 1
Chương 1. TỔNG QUAN VỀ MÁY VECTƠ TỰA SVM 4
1.1 ðặt vấn ñề 4
1.2 Số chiều Vapnik Chervonenkis 5
1.2.1 Chiều VC của một họ hàm [14, trang 80-83] 5
1.2.2 Shatter (nuốt) [19] các ñiểm bằng siêu phẳng ñịnh hướng trong

n

5
1.2.3 Số chiều VC và số lượng tham số 9
1.3 Máy SVM tuyến tính 10
1.3.1 Siêu phẳng tách tối ưu [14, trang 133-135] 11
1.3.2 Một ví dụ tìm siêu phẳng tách tối ưu 16
1.3.3 Siêu phẳng tối ưu tổng quát [14, trang 136-138] 20
1.4 Máy SVM phi tuyến 23
1.4.1 Nguyên lý thực hiện [14, trang 140-146] 23
1.4.2 Ví dụ về hàm hạch 25
1.4.3 Một số hàm hạch hay dùng [14, trang 190-193] 26
1.5 Bài toán phân loại ña lớp 27
1.5.1 Chiến lược một chọi phần còn lại (OVR: One – Versus – Rest) 27
1.5.2 Chiến lược một chọi một (OVO: One – Versus – One) 28
1.6 Hồi quy SVM (Support Vector Regression) 29
1.6.1 Hồi quy SVM tuyến tính [14, trang 183-190] 30
1.6.2 Hồi quy SVM phi tuyến 33
1.7 Một số ứng dụng của SVM trong bài toán phân lớp 34
1.7.1 Chẩn ñoán bệnh ung thư vú bằng SVM phân loại hai lớp 34
1.7.2 Nhận dạng số viết tay bằng SVM phân loại nhiều lớp 38
1.8 Kết luận 41
Chương 2. TRIỂN KHAI TÍNH TOÁN ðỘ THẤM TRONG NGÀNH ðỊA CHẤT 43
2.1 Dẫn nhập 43
2.2 Bài toán mô phỏng vỉa chứa dầu khí [9,11] 44
2.2.1 Khái niệm chung về mô phỏng 44
2.2.2 Các ñịnh nghĩa và ký hiệu toán học 45
2.2.3 Các thuộc tính của ñá chứa 46
2.2.4 Mô hình bài toán 3 pha [9] 48
2.3 Vấn ñề tính ñộ thấm 50

2.3.1 Phương pháp xác ñịnh ñộ thấm mẫu 50
2.3.2 Các ñặc trưng liên quan ñến ñộ thấm [9,11] 51
IV
2.4 Dự báo ñộ thấm sử dụng hồi quy SVM 53
2.4.1 Xác ñịnh ñộ thấm tại giếng khoan chưa có tài liệu khảo sát thử vỉa 53
2.4.2 Xác ñịnh ñộ thấm tại các ñiểm khác (chỉ có tài liệu ñịa chấn) 54
2.5 Triển khai trên MatLab 54
2.5.1 Cách cài ñặt gói công cụ 54
2.5.2 Chương trình thực hiện 54
2.6 So sánh kết quả thực nghiệm 57
2.6.1 Quá trình huấn luyện 58
2.6.2 Dự ñoán ñộ thấm 59
2.7 Kết luận 60
KẾT LUẬN 61
TÀI LIỆU THAM KHẢO 63
PHỤ LỤC 65

V
Danh mục các ký hiệu, các chữ viết tắt
Thuật ngữ, chữ viết tắt Giải thích
ANN
Artificial Neural Network
Mạng nơron nhân tạo
Emp
Empirical Risk
Sai số thực nghiệm
KKT Karush-Kuhn-Tucker
OCR
Optical Character Recognition
Nhận dạng ký tự quang

QP
Quadratic Programing
Quy hoạch toàn phương
RBF
Radial Basis Function
Hàm bán kính căn bản
SVM
Support Vector Machine
Máy vectơ tựa
SVR
Support Vector Regression
Hồi quy SVM
VC Vapnik Chervonenkis

VI
Danh mục các hình vẽ
Hình 0-1. Siêu phẳng phân hoạch tập mẫu trong không gian
d

2
Hình 1-1. Ba ñiểm thẳng hàng không bị nuốt trong
2

8
Hình 1-2. Với 3 ñiểm không thẳng hàng trong
2

luôn tồn tại siêu phẳng tách 8
Hình 1-3. Siêu phẳng phân hoạch ñôi tập mẫu trong không gian
n


11
Hình 1-4. Siêu phẳng tối ưu phân lớp 2 tập mẫu 12
Hình 1-5. Tập mẫu không tách ñược bằng siêu phẳng tối ưu 20
Hình 1-6. Siêu phẳng tối ưu tổng quát phân hoạch tập mẫu 23
Hình 1-7. Mặt phân hoạch phi tuyến trong không gian
n

24
Hình 1-8. Mặt phẳng trong
2

thành mặt cong trong
3

26
Hình 1-9. SVM loại trừ trong phân lớp một chọi một 28
Hình 1-10. Chiến lược một chọi một loại trừ trong mọi trường hợp xảy ra 29
Hình 1-11. Sai số trong hồi quy SVM tuyến tính 33
Hình 1-12. Màn hình hiển thị cấu trúc của biến svmStruct 37
Hình 1-13. Kết quả kiểm tra chéo SVM chẩn ñoán ung thư với
0.1
λ
=
(lần 1) 37
Hình 1-14. Kết quả kiểm tra chéo SVM chẩn ñoán ung thư với
0.1
λ
=
(lần 2) 38

Hình 1-15. Ảnh mẫu biểu diễn số cần nhận dạng 41
Hình 1-16. Kết quả nhận dạng sử dụng SVM phân loại 10 lớp 41
Hình 2-1. Sơ ñồ hệ thống mô phỏng mỏ 44
Hình 2-2. Kết quả huấn luyện sử dụng ANN với 70 mẫu luyện 58
Hình 2-3. Kết quả huấn luyện sử dụng hồi quy SVM với 70 mẫu luyện 58
Hình 2-4. Kết quả sử dụng ANN dự báo ñộ thấm 59
Hình 2-5. Kết quả sử dụng SVR dự báo ñộ thấm 59

MỞ ðẦU
Với tốc ñộ phát triển như vũ bão của thông tin hiện nay, việc khai thác, sử dụng
thông tin và dựa trên ñó ñể ñưa ra các dự báo là một bài toán có ứng dụng rộng rãi và
ñược rất nhiều người quan tâm nghiên cứu.
Nhiều kỹ thuật mô hình hóa dự báo, gồm các mạng thần kinh, phận cụm, cây
quyết ñịnh, suy luận quy nạp, mạng Beyesian, máy vectơ tựa SVM (Support Vector
Machine), ra ñời giúp cho việc dự báo (prediction), phân loại (classification) thông
tin ngày một tốt và chính xác hơn.
Các mô hình dự báo ñược sinh ra bất cứ khi nào sử dụng dữ liệu ñể huấn luyện
một kỹ thuật mô hình hóa dự báo hay nói cách khác: dữ liệu + kỹ thuật mô hình hóa
dự báo = mô hình.
Do ñó mô hình dự báo là kết quả của việc kết hợp dữ liệu và toán học, trong ñó
việc huấn luyện có thể coi là việc xác ñịnh một ánh xạ từ tập hợp các mẫu luyện (hay
còn gọi là ñầu vào) vào một hoặc nhiều biến ñích (hay còn gọi là biến ñầu ra).
Trong các kỹ thuật ñó, máy vectơ tựa SVM ñược Vapnik ñề xuất vào năm 1995
là một phương pháp học có sự giám sát dựa trên lý thuyết tối ưu hóa, thống kê, giải
tích dùng trong bài toán phân loại và mở rộng của nó (còn gọi là hồi quy SVM) ñược
dùng trong bài toán dự báo ñã ñược ứng dụng ở nhiều lĩnh vực và ñược coi là công cụ
mạnh, phổ biến ñặc biệt thích hợp cho bài toán với dữ liệu lớn và nhiều chiều.
Phân lớp (classification) là một tiến trình xử lý nhằm xếp các mẫu dữ liệu hay các
ñối tượng vào một trong các lớp ñã ñược ñịnh nghĩa trước. Các mẫu dữ liệu hay các
ñối tượng ñược xếp vào các lớp dựa vào giá trị của các thuộc tính (attributes) cho một

mẫu dữ liệu hay ñối tượng. Sau khi ñã xếp tất cả các ñối tượng ñã biết trước vào các
lớp tương ứng thì mỗi lớp ñược ñặc trưng bởi tập các thuộc tính của các ñối tượng
chứa trong lớp ñó.
Quá trình phân lớp còn ñược gọi là quá trình gán nhãn cho các tập dữ liệu. Nhiệm
vụ của bài toán phân lớp dữ liệu là cần xây dựng mô hình (bộ) phân lớp ñể khi có một
dữ liệu mới vào thì mô hình phân lớp sẽ cho biết dữ liệu ñó thuộc lớp nào.
Bài toán phân lớp này ñược mô tả như sau: Xét một tập hợp gồm
N
ñối tượng,
trong ñó mỗi ñối tượng ñược ñặc trưng bởi một bộ các thuộc tính (có thể ñược mô tả
như một vectơ trong không gian
n
chiều). Theo một nguyên tắc “chuyên gia” nào ñó,
người ta có thể chỉ ñịnh (một cách thủ công) cho mỗi ñối tượng thuộc vào một lớp nào
ñó trong
k
lớp xác ñịnh trước. Nói chung, nguyên tắc phân lớp này không mô tả ñược
một cách tường minh dưới dạng quy tắc, công thức hay thuật toán xác ñịnh.
Vấn ñề ñặt ra: Khi số
N
là rất lớn, khiến cho việc phân lớp bằng thủ công là
không thể thực hiện ñược, thì có hay không một công cụ thực hiện việc phân lớp một
2
cách tự ñộng, với khả năng sai sót có thể xảy ra là không vượt quá một chỉ tiêu xác
ñịnh nào ñó cho trước?
Mô hình toán học cho bài toán: Ta giả thiết, mỗi ñối tượng có thể ñược xem là
một vectơ
1 2
( , , , )
n

n
A a a a
= ∈

, trong ñó mỗi tọa ñộ
j
a
là ñặc trưng cho thuộc
tính thứ
j
của ñối tượng này. Ta ký hiệu lớp ñối tượng thứ
i

( 1,2, , )
i
L i k
=

ký hiệu
{
}
| 1, ,
i
L L i k
= =
là tập tất cả các lớp này. Như vậy, mỗi phép phân lớp
có thể ñược xem như một ánh xạ từ tập tất cả các ñối tượng
{
}
: | 1, , ;

i
D A i l l N
= = ≤
vào tập
L
, và vấn ñề ñặt ra là thiết lập ánh xạ
F

thực hiện việc phân lớp sao cho các sai sót (nếu có) là không vượt quá một chỉ tiêu xác
ñịnh cho trước.
ðể xây dựng thuật toán phân lớp ñối tượng theo phương pháp máy vectơ tựa
SVM, người ta cũng sử dụng một tập con các ñối tượng ñã ñược phân lớp sẵn, ñể làm
cơ sở cho việc thiết lập ra các bài toán tối ưu ñã nói ở trên.
Ý tưởng chính của SVM là chuyển tập mẫu từ không gian biểu diễn
n

sang
một không gian
d

(
d n
>
). Trong không gian mới này, tìm một siêu mặt tối ưu ñể
tách tập mẫu dựa trên phân lớp của chúng ñể từ ñó xác ñịnh ñược phân lớp của mẫu
cần nhận dạng (trong không gian
n

).


Hình 0-1. Siêu phẳng phân hoạch tập mẫu trong không gian
d


Phương pháp máy vectơ tựa SVM cũng ñưa ra một công thức cụ thể cho việc
ñánh giá khả năng sai sót (theo nghĩa xác suất), và theo ñó khi tập con ñược phân lớp
sẵn (còn ñược gọi là tập hợp luyện hoặc tập mẫu luyện) càng nhiều thì khả năng sai sót
xảy ra với việc phân lớp là càng thấp.
Luận văn bố cục như sau, Chương 1 tìm hiểu tổng quan về máy vectơ tựa SVM,
bài toán phân loại ña lớp, các chiến thuật trong bài toán phân lớp và mở rộng của máy
vectơ tựa SVM (hay còn gọi là hồi quy SVM) dùng trong bài toán dự ñoán. Phần cuối
chương trình bày về một số ứng dụng của SVM trong thực tiễn ñược áp dụng dựa trên
Mẫu cần nhận dạng
Ánh xạ

Mặt phân hoạch
Siêu phẳng

(
)
d
d n
>


n


3
bài toán phân loại hai và nhiều lớp ñược triển khai trên phần mềm MatLab. Chương 2

tìm hiểu máy “học” dùng hồi quy SVM ñể xác ñịnh thông tin về ñộ thấm – một thông
số quan trọng trong bài toán mô phỏng vỉa dầu khí ngành ñịa chất thông qua các thông
tin liên quan khác (tại những ñiểm ñã biết thông tin cụ thể về ñộ thấm). Sau khi máy
học, thì nó sẽ có khả năng ñưa ra thông tin về ñộ thấm tại những ñiểm cần dự báo và
kết quả thực nghiệm ñạt ñược. Cuối cùng là kết luận và hướng phát triển trong tương
lai cho nghiên cứu này.
4
Chương 1. TỔNG QUAN VỀ MÁY VECTƠ TỰA SVM
Chương này nghiên cứu một số vấn ñề cơ bản của SVM: phân lớp tuyến tính với
siêu phẳng tối ưu, sử dụng hàm hạch ñể phân lớp gián tiếp thông qua không gian ñặc
trưng với số chiều cao hơn trong phân lớp phi tuyến, một số chiến lược SVM cho bài
toán phân loại ña lớp và bài toán hồi quy SVM.
1.1 ðặt vấn ñề
Xét không gian
X Y
×
với
n
X
=

(với chuẩn Euclid thông thường),
{-1;1}
Y
=
và trên ñó có trang bị một ñộ ño xác suất
( , )
P x y
nào ñó, ta giả thiết
thêm rằng các ñiểm

(
)
,
x y X Y
∈ ×
là các biến ngẫu nhiên ñộc lập cùng phân bố.
Giả sử ta ñã có một tập mẫu luyện là tập con của
X Y
×
, trong ñó
i
x
là một vectơ
trong
n

và tương ứng có
{
}
1;1
i
y
∈ −
, gọi
i
y
là nhãn của
i
x
liên kết với nó,

{
}
1, ,
i l
∀ ∈
. Như vậy, từ tập mẫu luyện ta có một hàm số từ tập dữ liệu
{
}
1 2
, , ,
l
x x x
vào tập nhãn
{-1;1}
Y
=
.
Vấn ñề ñặt ra, hãy tìm một hàm số trong họ các hàm
{
}
:
f X Y
α

(
α

tham số) sao cho ñộ rủi ro lý thuyết [14, trang 18]

( ) ( )

1
( ) ,
2
X Y
R y f x P x y dxdy
α
α
×
= −

(1.1.1)
là nhỏ nhất. Tức là, ta phải tìm
α
nào ñó ñể
( )
R
α
là nhỏ nhất. Tuy nhiên, trên thực tế
( )
R
α
không tính ñược một cách cụ thể. Do ñó, ta chỉ có thể dựa vào thông tin trên tập
mẫu luyện ñể giải quyết bài toán.
Gọi ñại lượng [14, trang 20-21]

1
1 1
( ) ( )
2
l

emp i i
i
R y f x
l
α
α
=
= −

(1.1.2)
là ñộ rủi ro thực nghiệm của hàm
:
f X Y
α

với tập mẫu luyện ñã cho.
Vapnik năm 1995 ñã chứng minh ñược rằng với một số
(
0, 1
η



thì bất ñẳng
thức [14, trang 76-80]

2
log 1 log
4
( ) ( )

emp
l
h
h
R R
l
η
α α
   
 
 
+ −
 
 
 
 
 
   
≤ +
(1.1.3)
5
ñúng với ñộ tin cậy là
1
η

, trong ñó
h
là số chiều VC (Vapnik Chervonenkis).
Từ công thức (1.1.3) ta thấy nếu vế phải của (1.1.3) càng bé thì
(

)
R
α
càng bé
mà vế phải của (1.1.3) bé nếu
h
bé, hoặc số lượng mẫu
l
lớn. Theo luật số lớn,
(
)
emp
R
α
hội tụ theo xác suất tới
(
)
R
α
khi số lượng mẫu
l
→ ∞
. Như vậy, ñể tìm
ñược hàm phân lớp có ñộ chính xác cao, ngoài việc cần có một số lượng mẫu luyện ñủ
lớn, ta còn phải tìm tham số
*
α
ñể
(
)

(
)
*
arg min
emp emp
R R
α
α α
=
.
Nhưng cần chú ý rằng khi vế phải của (1.1.3) lớn thì
(
)
R
α
vẫn có thể bé.
1.2 Số chiều Vapnik Chervonenkis
1.2.1 Chiu VC ca mt h hàm [14, trang 80-83]
Cho họ hàm
{
}
f
α
và tập gồm
l
ñiểm
{
}
1 2
, , ,

l
D x x x X
= ⊂
ñược gán nhãn
từ tập
{
}
1;1

.
ðịnh nghĩa 1.2.1. Tập
D
bị nuốt (shattered) bởi họ hàm
{
}
f
α
, nếu mọi cách
gán nhãn bất kì
(
)
1 2
, , ,
l
y y y
trong
2
l
cách gán nhãn của tập
D

, ñều tồn tại một
α

sao cho
( )
i i
f x y
α
=
,
1,2, ,
i l
∀ =
.
ðịnh nghĩa 1.2.2. Số chiều Vapnik Chervonenkis hay ñơn giản là số chiều VC
của họ hàm
{
}
f
α
trên không gian
X

p
(
p
có thể là
+∞
), nếu trên
X

có nhiều
nhất
p
phần tử và các phần tử ñó bị nuốt bởi họ hàm
{
}
f
α
.
1.2.2 Shatter (nut) [19] các ñim bng siêu phng ñnh hng trong
n


ðịnh lý 1.2.3 (ðịnh lý tách). Hai tập
,
A B
trong
n

ñược tách chặt bởi một
siêu phẳng ñịnh hướng nếu và chỉ nếu
coA coB
∩ = ∅
.
Trong ñó, siêu phẳng ñịnh hướng là siêu phẳng
, 0
w x
=
có vectơ
w


hướng xác ñịnh, tức là
w
luôn hướng vào miền âm hay miền dương của không gian.
ðịnh lý 1.2.4. Cho tập
k
ñiểm
{
}
1 2
, , ,
k
S x x x
=
trong không gian
n

. Tập
các ñiểm này bị nuốt bởi họ các siêu phẳng ñịnh hướng nếu và chỉ nếu
{
}
1 2
, , ,
t k
x x x x
∃ ∈
sao cho hệ vectơ
{
}
1

j
j t
k
t j
x x
=


ñộc lập tuyến tính.
6
Chứng minh. ðiều kiện cần: Giả sử
{
}
1
j
j t
k
t j
x x
=


ñộc lập tuyến tính, ta cần chứng
minh tập
{
}
1 2
, , ,
k
x x x

bị nuốt bởi họ các siêu phẳng ñịnh hướng trong
n

.
Ta chia tập
S
thành hai tập rời nhau tùy ý
1 2
,
S S
trong ñó
1
t
x S

. ðặt
1 1 2 2
,
m S m S
= =
. Gọi
1 2
,
C C
lần lượt là bao lồi của
1 2
,
S S
. Ta có


1 1
1 1 1
1 1
: , 1, 0 1, , ,
i
m m
i i i
i i
C x x x i m
α α α
= =
 
 
 
 
= = = ≥ ∀ =
 
 
 
 
 
∑ ∑


2 2
2 2 2
1 1
: , 1, 0 1, , ,
i
m m

j j j
j j
C x x x j m
β β β
= =
 
 
 
 
= = = ≥ ∀ =
 
 
 
 
 
∑ ∑

trong ñó
1 1 2 2
,
i j
x S x S
∈ ∈
.
Nếu
1 2
C C
∩ ≠ ∅
thì
2

1
,
:
.
x C
x
x C










Khi ñó
x
có hai tổ hợp lồi là
1 2 1 2
1 2 1 2
1 1 1 1
0
m m m m
i i j j i i j j
i j i j
x x x x xα β α β
= = = =
= = ⇒ − =

∑ ∑ ∑ ∑



1 2
1 2
1 1
0
m m
i t i j t j
i j
x x x xα β
= =
− =
∑ ∑
 

ðây là tổ hợp tuyến tính của hệ vectơ
{
}
1
j
j t
k
t j
x x
=


với các hệ số không ñồng thời bằng

0. Do ñó hệ vectơ
{
}
1
j
j t
k
t j
x x
=


không ñộc lập tuyến tính, trái giả thiết. Như vậy
1 2
C C
∩ = ∅
, theo ñịnh lý 1.2.3, tồn tại siêu phẳng ñịnh hướng tách chặt
1 2
,
S S
. Vì
cách phân hoạch tập
S
là tùy ý, mỗi cách phân hoạch ứng với một phép gán nhãn, nên
tập các ñiểm của
S
bị nuốt bởi họ các siêu phẳng ñịnh hướng trong.
ðiều kiện ñủ: Giả sử tập
k
ñiểm ñã cho bị nuốt bởi họ các siêu phẳng ñịnh

hướng, tức là với mọi cách phân hoạch
S
thành hai tập khác rỗng, luôn tồn tại một
siêu phẳng tách chặt hai tập ñó. Ta cần chứng minh, tồn tại một
{
}
1
, ,
t k
x x x

sao
cho hệ vectơ
{
}
1
j
j t
k
t j
x x
=


ñộc lập tuyến tính.
7
Thật vậy, nếu hệ vectơ
{
}
1

j
j t
k
t j
x x
=


phụ thuộc tuyến tính
1, ,
t k
∀ ∈
. Khi ñó,
1,2, ,
t k
∀ =
, tồn tại các số
1 2
, , ,
k
α α α
không ñồng thời bằng 0 sao cho
1
0
k
i t i
i
x x
α
=

=


(*).
Không giảm tổng quát, ta có thể giả sử
1
1
k
i
i
α
=
=

(Nếu tổng ko bằng 1 ta thực
hiện phép chia cho tổng của
i
α
rồi ñặt lại hệ số).
 Nếu các
i
α
cùng dấu, ta có thể giả sử
0, 1, ,
i
i k
α
≥ ∀ =
. Khi ñó,
(*)

1,
k
t i i
i i t
x x
α
= ≠
⇔ =

suy ra
{
}
{
}
(
)
1
, , \
t k t
x co x x x

. Như vậy,
giữa hai tập
{
}
t
x

{
}

\
t
S x
không tách ñược bằng siêu phẳng (vô lý).
 Nếu các
i
α
không cùng dấu. Khi ñó, phương trình (*) có thể viết dưới
dạng
1 2
, ( 0, 0)
i i j j i j
i I j I
a x b x a b
∈ ∈
= ≥ ≥
∑ ∑
(**).
ðặt
1 2
0
i j
i I j I
A a b
∈ ∈
= = >
∑ ∑
, ta có
(**)
1 2

j
i
i j
i I j I
b
a
x x z
A A
∈ ∈
⇔ = =
∑ ∑
.
Như vậy,
{
}
(
)
{ }
(
)
{ }
( )
{ }
( )
1
1
2
2
i
i I

i j
i I
j I
j
j I
z co x
co x co x
z co x










⇒ ∩ ≠ ∅







.
Do ñó, không tồn tại siêu phẳng tách chặt hai tập
{
}

{
}
1
2
1 2
,
i j
i I
j I
S x S x


= =
.
8
ðiều này mâu thuẫn với giả thiết, do ñó luôn tồn tại một
{
}
1
, ,
t k
x x x

sao cho hệ vectơ
{
}
1
j
j t
k

t j
x x
=


ñộc lập tuyến tính.
Hệ quả 1.2.5. Số chiều VC của họ các siêu phẳng ñịnh hướng trong không gian
n


1
n
+
.
Chứng minh. Vì
dim
n
n
=

nên trong
n

luôn có một hệ vectơ ñộc lập tuyến
tính cực ñại gồm
n
vectơ. Từ ñịnh lý 1.2.4, ta suy ra ñiều phải chứng minh.
Nhận xét: Nếu số chiều
VC
của họ hàm

{
}
f
α

h
thì tồn tại ít nhất một tập
con
h
ñiểm của tập
D
bị nuốt bởi họ hàm
{
}
f
α
. Tuy nhiên, không phải tập
h
ñiểm
nào của
D
cũng bị nuốt bởi họ
{
}
f
α
.
Thật vậy, nếu ta xét họ hàm
{
}

f
α
là tập các ñuờng thẳng ñịnh hướng trong
2

,
khi ñó số chiều VC là 3.
 Hình 1-1 mô tả 3 ñiểm thẳng hàng, họ hàm
{
}
f
α
không nuốt ñược 3
ñiểm này.

Hình 1-1. Ba ñiểm thẳng hàng không bị nuốt trong
2


 Hình 1-2 mô tả các ñiểm ñen và trắng tượng trưng cho nhãn của các ñiểm.
Khi 3 ñiểm không thẳng hàng ta thấy, với mọi cách gán nhãn cho 3 ñiểm
ñó ta luôn tìm ñược một siêu phẳng phân biệt chúng.

Hình 1-2. Với 3 ñiểm không thẳng hàng trong
2

luôn tồn tại siêu phẳng tách
9
1.2.3 S chiu VC và s lng tham s
Một cách trực quan ta thấy rằng, khi tăng số lượng tham số của họ hàm

( )
f x
α
thì
số chiều VC cũng tăng. Tuy nhiên, không phải số lượng tham số cứ nhỏ thì số chiều
VC tương ứng là hữu hạn. Bởi vì nó còn phụ thuộc vào dáng ñiệu của họ hàm ñang
xét. Ví dụ sau ñây chứng minh rằng có một lớp hàm chỉ phụ thuộc một tham số tuy
nhiên số chiều VC của nó là vô hạn.
Xét họ hàm
( ) (sin ), ,
f x Sign x x
α
α α
= ∈

.
Với một số nguyên dương
n
bất kì. Ta cần chứng minh tồn tại
n
ñiểm trên


bị nuốt bởi họ hàm
f
α
.
Xét
n
ñiểm

10 , 1,2, ,
i
i
x i n

= =
. Với mỗi cách gán nhãn
{
}
1,1
i
c
∈ −

cho các
i
x
, ta chọn tham số
1
(1 )10
1
2
n
i
i
i
c
α π
=
 


 
= +
 
 
 

.
- Nếu
1
i
c
=
, ta có
1
i
1
i
: 1
1
1 10
2
10
1
1
= 10
2
10
1
= 10 .

10
i
n
j
j
i
i
j
n
j i
i
j
j i
j c
c
x
c
π
α
π
π
=

=

=−
 






= +






 
 





+






 
 




+







 




Suy ra

: 1
: 1
sin( ) sin 10
10
= sin 10 , .
10
j
j
j i
i
i
j c
j i
i
j c
x
j i

π
α π
π
π

=−

=−
 
 
= +
 
 
 
 
 
+ <
 
 
 




: , 1
1 1
0
10 10
j
i i j

j j i c
π π

< =−
 




< + <







 

nên
i
sin( ) 0 (x )=1, : 1
i i
x f i c
α
α
> ⇒ ∀ =
.
10
- Nếu

1
i
c
= −
, ta có

1
1
1
( ) 10
2
10
n
j i
i
i
i
j
c
xα π

=
 





= +







 



: 1
1
10 1 .
10
j
j i
i
j c
j i
π

=−

 









= + +











 



:
1
1
sin sin 10
10
j
j i
i
i
j j i
c
x
α π π



=−
   
 
 
 
 
 
 
 
 
⇒ = + +
 
 
 
 
 
 
 
 
 
 
 
   



:
1

1
sin ( 10 ) 0
10
j
j i
i
j j i
c
π

<
=−
 








= − + <












 


(vì
:
1
1
0 ( 10 )
10
j
j i
i
j j i
c
π π

<
=−
< + <

).

( ) 1, : 1
i i
f x i c
α
⇒ = − ∀ = −

.
Như vậy, với một số nguyên dương
n
bất kì, trên

luôn có một tập
n
ñiểm bị
nuốt bởi họ hàm
( )
f x
α
,
*
n
∀ ∈

. Do ñó, số chiều VC của họ
( )
f x
α

+∞
(theo
ñịnh nghĩa 1.2.1).
1.3 Máy SVM tuyến tính
Trong không gian
n

, cho tập dữ liệu gồm

l
ñiểm
, 1,2, ,
i
x i l
=
ñược gán
nhãn tương ứng là
i
y
. Gọi
1 2
S , S
lần lượt là tập các ñiểm có nhãn là
1
+
và tập các
ñiểm có nhãn là
1

. Mục ñích của bài toán là tìm ra một hàm tách tốt nhất hai tập
1 2
S , S
, không những thế hàm tìm ñược còn phải xác ñịnh nhãn tốt cho các phần tử
chưa biết.
11

Hình 1-3. Siêu phẳng phân hoạch ñôi tập mẫu trong không gian
n



Xét ví dụ trong Hình 1-3 ta thấy, có nhiều siêu phẳng có thể tách tập dữ liệu,
nhưng chỉ có duy nhất một siêu phẳng có “hành lang tách” (tổng khoảng cách từ siêu
phẳng ñó ñến mỗi lớp) là lớn nhất. Siêu phẳng này gọi là siêu phẳng tách tối ưu.
1.3.1 Siêu phng tách ti u [14, trang 133-135]
Xét bài toán phân tách tập:

(
)
{
}
{
}
1 1
, ; ;( , ) , 1; 1 ,
l l i
D x y x y y
= ∈ − +
(1.3.1)
trong ñó
{
}
, 1;1
n
i i
x y∈ ∈ −ℝ
là phân lớp của
i
x
.

Cần xác ñịnh siêu phẳng

(
)
: , 0,
P w x b
< > + =
(1.3.2)
(trong ñó
n
w


ñược gọi là vectơ pháp tuyến;
b


ñược gọi là ñộ dịch) sao cho
phân tách ñược hai lớp trên và khoảng cách Euclid giữa hai lớp là lớn nhất. Lúc ñó các
vectơ có khoảng cách gần siêu phẳng nhất ñược gọi là vectơ tựa.
Một khái niệm quan trọng cần thiết ñể xác ñịnh một phép phân lớp tuyến tính là
tích vô hướng giữa hai vectơ
1
, ,
n
n
j
j j
xxx ww
=

< >= ∈


, còn ñược gọi là tích
trong.



12

Hình 1-4. Siêu phẳng tối ưu phân lớp 2 tập mẫu
Vì tập
{
}
1
,
l
i
i
w x b
=
+
hữu hạn nên
{
}
0
min , 0
i
i l
w x b

λ
≤ ≤
∃ = + >
. Suy ra
, , , 1,
i i
w b
w x b i x i
λ
λ λ
+ ≥ ∀ ⇔ + ≥ ∀
.
Do ñó, ta có thể giả thiết thêm rằng
(
)
P
là siêu phẳng thỏa mãn

min , 1
i
i
w x b
< > + =
.
Với cách ñặt bài toán như trên, ta luôn có hệ bất phương trình sau:

, 1, 1,
, 1, 1.
i i
i i

w x b y
w x b y

+ ≥ + = +




+ ≤ − = −


(1.3.3)
Kết hợp hai bất phương trình trên ta có:

( , ) 1, 1,2, , .
i i
y w x b i l
< > + ≥ ∀ =
(1.3.4)
Khi ñó những vectơ tựa
i
x
thỏa mãn phương trình
, 1
i
w x b
+ = −
thì nằm
trên siêu phẳng
1

H
, còn thỏa mãn phương trình
, 1
i
w x b
+ = +
thì nằm trên siêu
phẳng
2
H
.
Khoảng cách có dấu
1
d
từ gốc tọa ñộ ñến siêu phẳng
1
H
là:
1
1
.
b
d
w

=

Khoảng cách có dấu
2
d

từ gốc tọa ñộ ñến siêu phẳng
2
H
là:
2
1
.
b
d
w
− −
=

w

1
H

b
w


2
H

Gốc tọa ñ

Khoảng cách phân hoạ
ch
13

Suy ra khoảng cách giữa hai phân hoạch (hay cũng chính là khoảng cách giữa hai
siêu phẳng
1 2
,
H H
) là:
( )
1 2
2
,w b d d
w
ρ = − =
. Như vậy,
(
)
,
w b
ρ
chính là ñộ
rộng hành lang tách của siêu phẳng tách
(
)
P
.
Do ñó ñể
(
)
,
w b
ρ

lớn nhất thì
w
phải nhỏ nhất (hay
2
w
là nhỏ nhất – ñể dễ
dàng thực hiện phép tính sau này). Như vậy, siêu phẳng tách tối tối ưu tập dữ liệu là
siêu phẳng làm cực tiểu hàm

( )
2
1
.
2
w wΦ =
(1.3.5)
Giả sử
w A
<
, do
( )
,
, ;
w x b
d w b x
w
< > +
=
nên ta có
( ,( ))

1
, 1, ,
i
x P
d i l
A
> ∀ =
. Từ ñó suy ra, ñiều kiện cần ñể một siêu phẳng là siêu
phẳng tách tối ưu là nó phải cách tất cả các ñiểm
i
x
của tập dữ liệu một khoảng không
nhỏ hơn
1
A
.
Mệnh ñề 1.2.1 (Vapnik - 1995). Giả sử
R
là bán kính của mặt cầu nhỏ nhất
(
)
{
}
:
n
R
B a x x a R
= ∈ − <ℝ
(
n

a


) trong không gian
n

chứa tất cả
các ñiểm của tập mẫu luyện
D
, và giả sử
(
)
,
,
w b
f sign w x b
= +
là hàm ñược xác
ñịnh từ các siêu phẳng thỏa mãn ñiều kiện
min , 1
i
i
w x b
< > + =
. Khi ñó tập
{
}
,
:
w b

f w A

có số chiều VC
h
thỏa mãn

2 2
min{ ; } 1.
h R A n
≤ +
(1.3.6)
Nhận xét: Khi
w
min dẫn ñến cận trên
A
nhỏ, từ (1.3.6) suy ra
h
nhỏ và khi ñó từ
(1.1.3) suy ra
(
)
R
α
nhỏ ñi. Vì vậy việc xây dựng siêu phẳng tối ưu cũng chính là tìm
ra hàm tuyến tính có
(
)
R
α
nhỏ.

14
ðể tìm siêu phẳng tối ưu ta giải bài toán tối ưu bậc hai sau:
Tìm min của hàm
2
1
2
w
,
trên miền ràng buộc lồi:
, 1, 1,
, 1, 1.
i i
i i
w x b y
w x b y

< > + ≥ + = +




< > + ≤ − = −



Bài toán tương ñương với bài toán tìm min của hàm Largange

( )
( )
2

1
2
1 1
, 1
2
, .
2
l
P i i i
i
l l
i i i i
i i
w
L y w x b
w
y w x b
α
α α
=
= =
 
= − < > + −
 
 
= − < > + +
 

∑ ∑
(1.3.7)

ðiều kiện tối ưu Karush-Kuhn-Tucker (KKT) cho bài toán (1.3.7) là:

1
- 0,
l
P
i i i
i
L
w y x
w
α
=

= =


(1.3.8)

1
0,
l
P
i i
i
L
y
b
α
=


= − =


(1.3.9)

( , ) 1 0, 1,2, , ,
i i
y x w b i l
< > + − ≥ ∀ =
(1.3.10)

0, 1,2, , ,
i
i l
α
≥ ∀ =
(1.3.11)

(
)
, 1 0, 1,2, , ,
i i i
y x w b i l
α
 
< > + − = ∀ =
 
(1.3.12)
trong ñó các

i
α



là các nhân tử Lagrange.
Ta thấy rằng, bài toán ban ñầu là bài toán quy hoạch toàn phương trên miền lồi.
Do ñó ñiều kiện KKT là ñiều kiện cần và ñủ ñể bài toán có nghiệm toàn cục.
Từ (1.3.8) và (1.3.9), ta có

1
,
l
i i i
i
w y x
α
=
=

(1.3.13)
15

1
0.
l
i i
i
y
α

=
=

(1.3.14)
Thế (1.3.12), (1.3.13) và (1.3.14) vào phương trình (1.3.7), ta ñược

1 1 1
1
.
2
l l l
P i i j i j i j
i i j
L y y x x
α α α
= = =
= −
∑ ∑∑
(1.3.15)
Như vậy bài toán ñối ngẫu ñược viết thành:

1 , 1
1
- , ,
2
l l
i i j i j i j
i i j
Maximize y y x x
α

α α α
= =
 
 
< >
 
 
 
∑ ∑
(1.3.16)
với ñiều kiện

1
0, 1, , ,
0.
i
l
i i
i
i l
y
α
α
=

≥ ∀ =







=





(1.3.17)
Giải bài toán này ta tìm ñược các
i
α
, dựa theo công thức (1.3.13) ñể tính
1 0, 1
i
l l
i i i i i i
i i
w y x y x
α
α α
= > =
= =
∑ ∑
, hay
1
s
N
i i i
i

w y x
α
=
=

, trong ñó
i
x
là các vectơ tựa

s
N
là số các vectơ tựa.
ðể tính
b
ta sử dụng công thức (1.3.12)
(
)
, 1 0, 1,2, ,
i i i
y x w b i l
α
 
< > + − = ∀ =
 
.
Do ñó với mỗi
i
x
có 2 trường hợp xảy ra:


0
i
α
=
: trong trường hợp này
(
)
, 1 0
i i
y w x b
+ − >
, suy ra
i
x

không nằm trên siêu phẳng biên
1
H
hoặc
2
H
. Vì
0
i
α
=
nên
i
x


không tham gia vào cấu trúc
w
theo công thức (1.3.13). Những
i
x

này không cần thiết và có thể bỏ ñi mà không ảnh hưởng ñến
w
. Khi
ñó
1
s
N
i i i
i
w x y
α
=
=

.

0
i
α
>
: lúc này
(
)

, 1 0
i i
y w x b
+ − =
, suy ra
i
x
nằm trên siêu
phẳng biên
1
H
hoặc
2
H
. Các
i
x
tương ứng với
0
i
α
>
ñược gọi là
16
vectơ tựa và tham gia vào việc tính
w
. Như vậy số lượng vectơ tựa
nhỏ hơn nhiều so với số lượng mẫu.
ðể tính
b

chỉ cần chọn một
i
mà có
0
i
α
>
, lúc ñó

1
, , .
i i i
i
b w x y w x
y
= − = −
(1.3.18)
Vậy ta ñã tính ñược
w

b
nên xác ñịnh ñược siêu phẳng phân hoạch tập mẫu.
Bây giờ giả sử cần xác ñịnh một mẫu dữ liệu
x
thuộc phân lớp
{
}
1; 1
− +
, ta chỉ

ñơn giản thực hiện việc xác ñịnh dấu của hàm

( ) ( )
1
, ,
l
i i i
i
f x sign w x b sign y x x b
α
=
 




= + = +






 

(1.3.19)
hoặc

( ) ( , ),
f x h w x b

= < > +
(1.3.20)
trong ñó:

( )
1 : 1
: 1 1
1 : 1
z
h z z z
z


− < −



= − ≤ ≤



+ >



(1.3.21)
1.3.2 Mt ví d tìm siêu phng tách ti u
Xét
1
n

+
ñiểm nằm ñối xứng trên một mặt cầu
1
S
n

bán kính
R
. Chính xác
hơn, các ñiểm này là các ñỉnh của một ñơn hình ñối xứng
n
chiều trong không gian
n

.
ðể ñơn giản, ta nhúng các ñiểm này vào trong không gian
1
n
+

, sao cho chúng
cùng nằm trên một siêu phẳng ñi qua gốc tọa ñộ và có vectơ pháp tuyến là
(
)
1,1, ,1
n =

.
Khi ñó
i

x
có tọa ñộ thành phần thứ
µ
là:

, , ,
1
(1 ) ,
( 1) 1
i i i
n
x R R
n n n
µ µ µ
δ δ= − − +
+ +
(1.3.22)
trong ñó:
17
,
1 : ,
0 : .
i
i
i
µ
µ
δ
µ


=


=






Thật vậy, trong
1
n
+

các
1
n
+
ñỉnh của một ñơn hình có tọa ñộ dạng:
(
)
(
)
(
)
1 2 1
,0, , 0 , 0, , 0, , 0 , , 0,0, , 0,
n
A a A a A a

+
, (
0
a
>
).
Tọa ñộ tâm của mặt cầu ñi qua các ñỉnh này là:
G , , ,
1 1 1
a a a
n n n
 







+ + +
 
.

1
AG R
=
nên
2 2 2

1 1 1

a a a
a R
n n n
     
  
  
− + + + =
  
  
  
  
  
+ + +
     
.

1
n
a R
n
+
⇔ =
.
Các ñiểm
i
x
nằm trên siêu phẳng
(
)
α

ñi qua gốc tọa ñộ có phương trình
(
)
(1) (2) ( 1)
: 0
n
x x xα
+
+ + + =
.
ðiểm
i
x
là hình chiếu vuông góc
1
0, , , ,0
i
n
A R
n
 
+









 
lên mặt phẳng
(
)
α
.
Gọi
( )
i
d
là ñường thẳng qua
i
A
và vuông góc với
( )
α
, khi ñó
(
)
( )
( )
1
1

1
( ) : ( )

i
i
n

x t
n
d x R t t
n
x t
+


=







+


= + ∈








=






.
- Vì
( )
1
( , , , , )
i i i
n
x d x t R t t
n
+
∈ ⇒ +
.
- Vì
(
)
i
x
α

nên
18
1
( ) ( ) ( ) 0
n
t t R t t
n

 
+



+ + + + + =





 

1
( 1)
.
( 1)
n
n t R
n
R
t
n n
+
⇔ + = −
⇔ = −
+

Từ (1.3.22) ta thấy:


2
2
,
i
x R
=
(1.3.23)

2
, .
i j
R
x x
n
< >= −
(1.3.24)
Hay

, ,
2
,
1
(1 ) .
i j
i j i j
x x
n
R
δ δ
< >

= − −
(1.3.25)
Bây giờ, với một cách gán nhãn
{
}
1, 1
i
y
∈ − +
bất kì cho các ñiểm
i
x
, ta sẽ
tìm ra một siêu phẳng tách tối ưu tập các ñiểm
{
}
i
x
thành hai lớp theo hai nhãn
1



1
+
.
Do ñó, ta phải giải bài toán (1.3.16) với ñiều kiện (1.3.17).
ðể ñơn giản, ñầu tiên ta giải bài toán (1.3.16) với ñiều kiện ñẳng thức (1.3.9), nếu
nghiệm tìm ñược thỏa mãn
0

i
i
α
≥ ∀
, thì ta sẽ tìm ñược nghiệm tổng quát. Bằng
cách ñưa thêm nhân tử Lagrange
λ
cho ñiều kiện ñẳng thức (1.3.9), ta phải tìm
maximize của hàm

1 1 1
ij
1 1 1
1
2
n n n
D i i j i i
i i i
L H y
α α α λ α
+ + +
= = =
= − −
∑ ∑ ∑
, (1.3.26)
trong ñó H
(
)
ij
=

H
là Hessian của hàm
D
L


ij
,
i j i j
H y y x x
= < >
. (1.3.27)
ðể
D
L
ñạt giá trị lớn nhất thì
0
D
i
L
i
α

= ∀

. Suy ra:

( ) 1,
i i
y i

α λ
Η + = ∀
. (1.3.28)
19
Ma trận H bây giờ trở nên ñơn giản: những phần tử không nằm trên ñường chéo
chính là
2
i j
R
y y
n

, các phần tử nằm trên ñường chéo chính là
2
R
. Ta thấy, các phần
tử không nằm trên ñường chéo chính chỉ khác nhau bởi nhân tố
i
y
, ñiều này gợi ý cho
ta tìm nghiệm có dạng

1 1
,
2 2
i i
i
y y
a b
α

   
+ −
 
 
= +
 
 
 
 
 
   
(1.3.29)
trong ñó
a

b
là các tham số chưa biết. Thế (1.3.29) vào phương trình (1.3.28) ta
ñược

2
1
1
.
2 2
i i
y p y
n a b a b
n n
R
λ

    

+ + +
  
  
− =
  
  
  
  
  
    
(1.3.30)
Với
1
1
n
i
i
p y
+
=
=

, suy ra
2
2
,
( 1)
n

a b
R n
+ =
+

và thế vào phương trình (1.2.9) ta tìm ñuợc

2 2
1 , 1 .
1 1
( 1) ( 1)
n p n p
a b
n n
R n R n
   
 
 
= − = +
 
 
 
 
 
+ +
   
+ +
(1.3.31)
Từ (1.3.29) và (1.3.31), ta có


2
1 ,
1
( 1)
i
i
y p
n
n
R n
α
 


= −





+
 
+
(1.3.32)
thỏa mãn ñiều kiện
0
i
α



( ) 1
1
i
i
y p
n
αΗ = −
+
.
Do ñó
1
2
, 1
2
1
2
1
, H
= 1 1 .
1 1
n
T
i j i j i j
i j
n
i
i
i
w y y x x
y p

n p
n n
R
α α α α
α
+
=
+
=
= < > =
 
 
 








− = −










 



+ +
 

 


 



×