Nhom08 Chuong05 SVM

April 4, 2017 | Author: Quách Long | Category: N/A
Share Embed Donate


Short Description

Download Nhom08 Chuong05 SVM...

Description

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN Chuyên ngành Khoa học Máy tính Lớp Cao học Khóa 22

BÁO CÁO MÔN MÁY HỌC SUPPORT VECTORS MACHINE

TP.HCM, 2012

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN Chuyên ngành Khoa học Máy tính Lớp Cao học Khóa 22

BÁO CÁO MÔN MÁY HỌC SUPPORT VECTORS MACHINE

TÔ GIA DIỆU

1211013

ĐỖ NGUYÊN KHA

1211030

HUỲNH DUY KHOA

1211031

LÊ ANH TÚ

1211078

TRẦN THIỆN VĂN

1211084

GIẢNG VIÊN HƯỚNG DẪN TS.TRẦN THÁI SƠN

MỤC LỤC MỤC LỤC...................................................................................................................1 DANH MỤC CÁC HÌNH ...........................................................................................3 DANH MỤC CÁC BẢNG .........................................................................................5 Phần 1 Support Vectors Classifier ..............................................................................1 1.1. Tuyến tính .............................................................................................1 1.1.1.

Bài toán .........................................................................................1

1.1.2.

Giải quyết......................................................................................2

1.1.3.

Nhân tử Largrange(Lagrange multiplier) .....................................6

1.1.4.

Soft Margin ...................................................................................7

1.2. SVC phi tuyến .......................................................................................8 1.2.1.

Bài toán .........................................................................................8

1.2.2.

Ví dụ minh họa ...........................................................................10

1.2.3.

Thủ thuật Kernel .........................................................................11

1.2.4.

Một số ví dụ hàm kernel .............................................................13

1.3. Multiple Classification ........................................................................14 1.3.1.

One Versus the Rest: ..................................................................14

1.3.2.

Pairwise Support Vector Machines ............................................17

1.3.3.

Error-Correcting

Output

Coding

(Thomas

G.Dietterich,

Ghumlum Bakiri) ........................................................................19 1.4. Sequential Minimal Optimization (SMO) ..........................................21 1.4.1.

Tìm kiếm theo hướng (Direction Search) ...................................22

1.4.2.

Thuật toán [6] .............................................................................23 i

Phần 2 Support Vectors Regression ..........................................................................24 2.1. Bài toán hồi quy (Regression).............................................................24 2.2. Hàm lỗi ................................................................................................24 2.3. 𝜺 – SVR ...............................................................................................25 Phần 3 Thư viện hỗ trợ lập trình và các hướng phát triển.........................................28 3.1. Các thư viện hỗ trợ lập trình SVM .....................................................28 3.2. Một số hướng nghiên cứu ...................................................................29 a.

Hiệu quả tính toán .......................................................................29

b.

Lựa chọn hàm kernel ..................................................................29

c.

Học SVM có cấu trúc .................................................................30

Tài liệu tham khảo .....................................................................................................32

ii

DANH MỤC CÁC HÌNH Hình 1-1 Các dãy có thể chia tập dữ liệu [1] ..............................................................2 Hình 1-2 Sơ lược về hyperlane [1] ..............................................................................2 Hình 1-3 Minh hoạ Largrange Multiflier ...................................................................6 Hình 1-4 Vài điểm nhiễu trong bộ dữ liệu ..................................................................7 Hình 1-5 (a) SVC tuyến tính với Soft Margin. (b) SVC phi tuyến. ............................8 Hình 1-6 Một mặt phân tách phi tuyến trong không gian giả thuyết có thể trở thành 1 siêu phẳng trong không gian đặc trưng. ...................................................................9 Hình 1-7 Ví dụ minh họa SVM phi tuyến. (a)Không gian giả thuyết. (b)Không gian ...................................................................................................................................10 Hình 1-8 Siêu phẳng phân lớp trong không gian đặc trưng ......................................11 Hình 1-9 Dữ liệu phân bổ dạng đường cong .............................................................14 Hình 1-10 Các classifiers của OVR ..........................................................................15 Hình 1-11 Trường hợp có nhiều fi(x) > 0 (chấm hỏi đỏ) và không có f(i)>0 (chấm hỏi xanh). ...................................................................................................................15 Hình 1-12 : Minh họa fuzzy 1. ..................................................................................16 Hình 1-13 Các đường đen là kết quả của sử dụng fuzzy. .........................................16 Hình 1-14 Các classifiers của Pairwise. ....................................................................17 Hình 1-15 Trường hợp có nhiều i thỏa mãn điều kiện chọn lớp ...............................18 Hình 1-16 Cây DDAG ..............................................................................................18 Hình 1-17 Kết quả DDAG ........................................................................................19 Hình 1-18 Kết quả fsvm. ...........................................................................................19 Hình 1-19 Kết quả codewords...................................................................................20 Hình 1-20 Hamming decoding ..................................................................................21 iii

Hình 1-21 Cho điểm bắt đầu đại hóa hàm

và một hướng u khả thi, tìm kiếm theo hướng sẽ cực , với

với

luôn thỏa điều kiện KKT

[6] ..............................................................................................................................22 Hình 2-1 Đường hồi quy của tập điểm cho trước. ....................................................24 Hình 2-2 Nhận thấy các đặt trưng cho ngưỡng lỗi, có hàm trải đều, có hàm phải đến ngưỡng mới tính lỗi, có hàm tuyến tính, có hàm phi tuyến. .....................................25 Hình 2-3 Hàm lỗi 𝜺 ...................................................................................................26 Hình 3-1 Phân lớp bằng LibSVM .............................................................................28

iv

DANH MỤC CÁC BẢNG Bảng 1-1 Một số thuật toán tối ưu để tìm

[6] ........................................................21

v

Phần 1

Support Vectors Classifier -

SVM – Support Vectors Machine là một mô hình học có giám sát, trong lĩnh vực máy học.

-

SVM thường được sử dụng để phân lớp dữ liệu (classification), hoặc phân ích hồi quy (regression annalysis). Là nền tảng cho nhiều thuật toán trong khai thác dữ liệu.

-

SVM được giới thiệu vời Vladimir Vapnik và các đồng sự vào năm 1979. Paper được công bố chính thức vào năm 1995.

-

Ý tưởng chính của phương pháp SVM là phân chia bộ dữ liệu vào các phân lớp bằng siêu phẳng (hyperlane). Từ ý tưởng chính, nhiều phương pháp cải tiến đã tuỳ biến từ phương pháp nguyên thuỷ, cho nhiều trường hợp sử dụng khác nhau.

1.1. Tuyến tính Với bộ dữ liệu có thể chia thành 2 lớp một cách tuyến tính (two-class linearly separable data), SVC sẽ tìm ra một siêu phẳng (hyperlane) để chia bộ dữ liệu bằng cách cực đại hoá biên (Maximal Margin). 1.1.1. Bài toán -

Cho tập điểm D = {(xi, yi)} , D là một tập có thể phân lớp tuyến tính (separable data set). Trong đó, i ,với mỗi

-

sẽ được đánh nhãn

là vector đại diện cho phần tử thứ {

}.

Bài toán đặt ra là tìm dãy rộng nhất có thể để phân chia tập dữ liệu ban đầu thành 2 lớp

1

Hình 1-1 Các dãy có thể chia tập dữ liệu [1]

1.1.2. Giải quyết -

Trong không gian 2 chiều, một dãy phân cách có thể được biểu diển bằng 1 đường thẳng (là đường thẳng chính giữa dãy - hyperlane)

Hình 1-2 Sơ lược về hyperlane [1]

-

Hyperlane được biểu diễn dưới phương trình

2

  ⃗⃗ là vector pháp tuyến của hyperlane -

 là khoảng cách giữa 2 lề của dãy phân cách. Như vậy, dãy phân cách rộng nhất sẽ là dãy có chỉ số  lớn nhất.

-

 được tính bằng 2 lần khoảng cách ngắn nhất từ các điểm trong tập dữ liệu đến hyperlane (xem hình Error! Reference source not found.). Các điểm gần hyperlane nhất là những điểm nằm trên 2 lề, sẽ có ý nghĩa cho việc tính khoảng cách  , được gọi là Support Vector.

Để thiết lập công thức tính  trước hết, cần tính được khoảng cách từ 1 điểm trong tập dữ liệu đến hyperlane. -

Ta có unit vector :

⃗ -

⃗⃗⃗

⃗⃗⃗

Gọi x’ là một điểm nằm trên hyperlane, x là một điểm trong tập dữ liệu, ta có biểu thức sau :

 ⃗⃗⃗  suy ra ⃗⃗ ⃗⃗⃗⃗⃗⃗

⃗⃗⃗ -

Vì x’ nằm trên hyperlane, nên ⃗⃗ ) ⃗⃗⃗⃗⃗⃗

⃗⃗ (  suy ra

⃗⃗ ⃗⃗⃗⃗⃗⃗ -

r là khoảng cách từ một điểm x trong tập dữ liệu đến hyperlane (còn được gọi là geometric margin)

3

-

⃗⃗

Gọi 

-

⃗⃗⃗⃗⃗⃗

Gọi r’ là khoảng cách ngắn nhất từ tập dữ liệu đến hyperlane, khi đó, ta luôn có :

⃗⃗ -

Nhận thấy, giá trị r độc lập với bộ (⃗⃗⃗ ,b),  Vậy, có thể chọn

sao cho

⃗⃗

. Khi đó, biểu

thức trên được thu gọn như sau :

 được gọi là functional margin *** functional margin có độ lớn phụ thuộc vào tỉ lệ scale của vector ⃗⃗ , còn geometric margin thì độc lập với tỉ lệ này. . Điều này không thay đổi hyperlane

*** Chú ý, ta có (phương trình



hoàn toàn tương đương. Mục đích rút

gọn này chỉ nhằm mục đích dễ dàng cho việc tính toán về sau. Từ đó, cho một mẫu

đến hyperlane, ta tính được :

 Geometric margin ⃗⃗ ⃗⃗⃗ ⃗⃗  Functional margin ⃗⃗ ⃗⃗⃗  Suy ra

4

⃗⃗ ⃗⃗⃗ ⃗⃗

⃗⃗

 Từ đó, tìm được biểu thức cho margin  : 

⃗⃗

Như vậy, để tìm dãy phân cách rộng nhất, cũng đồng nghĩa việc tìm margin  lớn nhất. Trở thành bài toán cực đại hoá , hay cực tiểu hoá

(primal

problem) :

𝑚𝑎 𝑖𝑚𝑖𝑧𝑒  { 𝑣ớ𝑖

ℎ𝑎 𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒

⃗⃗

⃗⃗

Để giải quyết bài toán này, ta áp dụng nhân tử largrange (Lagrange multipliers) 𝐿



∑∝ [

]

 |w| cực trị khi L đạt cực trị trên w và b 𝜕𝐿



𝜕 { 𝜕𝐿 𝜕



 Tương đương {

∑ ∝ ∑ ∝

 thay vào biểu thức Lagrange phía trên và tiếp tục tìm cực trị trên ∝, đưa bài toán về dạng dual problem Thay w = ∑



5

ma 𝑊 ∝

∑∝



∑∑ ∝ ∝

Với ràng buộc ∑∝ ∝

i

… n

 Vấn đề Convex quadratic programming optimization Điều kiện Karush-Kuhn-Tucker (complementary slackness conditions): ∝ [

]

i

… n

 Giải bằng thuật toán Sequential Minimal Optimization (SMO) để tìm bộ ∝ . Từ đó, tìm được w,b bằng các biểu thức phía trên. *** Sau khi giải xong bài toán tối ưu hoá, ta tìm được bộ 𝛼 , thì chỉ có những giá trị α tương ứng với những điểm nằm trên 2 biên (Support Vector) mới có giá trị khác 0, còn giá trị α những điểm còn lại điều bằng 0. 1.1.3. Nhân tử Largrange(Lagrange multiplier) -

Giả thiết : {

-

𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒 𝑣ớ𝑖 ℎ

Xét ràng buộc ℎ  Vector pháp tuyến ℎ  Vector tiếp tuyến  Suy ra



Hình 1-3 Minh hoạ Largrange Multiflier

6

 Khi đó, f(x,y) sẽ đạt cực trị khi {





.

ℎ và

song song

 Suy ra 

𝛼 ℎ Viết lại, cách khác 𝛼

𝛼ℎ

Biểu thức trên có nghĩa, để f(x,y) đạt cực trị thì 𝐿

𝛼

*** Có thể tìm hiểu thêm về nhân tử Largrange trong các tài liệu [2] [3] 1.1.4. Soft Margin Trong thực tế, tập dữ liệu không luôn thoả tính chất “separable” (phân chia được), mà đôi khi, có một vài điểm bị nhiễu (inseparable points) . Vì vậy, từ phương pháp nguyên thuỷ ban đầu, cần thêm một vài cải tiến để chấp nhận những điểm nhiễu này.

Hình 1-4 Vài điểm nhiễu trong bộ dữ liệu

7



Để chấp nhận các nhiễu, công thức ban đầu được tuỳ chỉnh thêm vài tham số ∑

min Trong đó : •

«Slack variable»



C độ ảnh hưởng của lỗi (C càng lớn thì mức độ ảnh hưởng của các

mô tả độ nhiễu cho phân lớp .

điểm nhiễu càng lớn, ngược lại C càng nhỏ, thì điều kiện nới lỏng hơn, dễ dàng chấp nhận nhiễu hơn). Ràng buộc functional margin sẽ có dạng : 𝑖

,

𝑛

1.2. SVC phi tuyến 1.2.1. Bài toán Phần trước đã trình bày về phương pháp SVC tuyến tính với ý tưởng chính là tìm một siêu phẳng với margin lớn nhất để phân tách dữ liệu. Tuy nhiên, bài toán tối ưu chỉ giải được nếu tập dữ liệu phân tách tuyến tính được. Trong thực tế, tập dữ liệu đa số là không phân chia tuyến tính được bằng siêu phẳng (Hình 1-5).

Hình 1-5 (a) SVC tuyến tính với Soft Margin. (b) SVC phi tuyến.

8

Để giải quyết vấn đề dữ liệu không khả tách tuyến tính, chúng ta có hai cách tiếp cận. Cách tiếp cấn thứ nhất (đã được trình bày) là sử dụng phương pháp cực đại hóa biên mềm (soft margin) như Hình 1-5(a). Tuy nhiên, trong các trường hợp dữ liệu như Hình 1-5(b) thì cách tiếp cận biên mềm không khả dụng. Trong trường hợp đó, chúng ta phải sử dụng một cách tiếp cận khác. Ý tưởng chính của hướng tiếp cận này là ánh xạ các mẫu

trong không gian ban đầu (không gian

giả thuyết) sang 1 không gian có số chiều lớn hơn (không gian đặc trưng). Sau đó áp dụng phương pháp SVM tuyến tính để tìm ra 1 siêu phẳng phân hoạch trong không gian đặc trưng. Siêu phẳng này sẽ ứng với mặt phi tuyến trong không gian giả thuyết. Hình 1-6 minh họa cho phương pháp này. Ta thấy, dữ liệu, sau khi được ánh xạ từ không gian 2 chiều sang không gian 3 chiều, có thể phân tách hoàn toàn bằng 1 siêu phẳng trong không gian mới.

Hình 1-6 Một mặt phân tách phi tuyến trong không gian giả thuyết có thể trở thành 1 siêu phẳng trong không gian đặc trưng.

9

1.2.2. Ví dụ minh họa

Hình 1-7 Ví dụ minh họa SVM phi tuyến. (a)Không gian giả thuyết. (b)Không gian

Giả sử ta có tập dữ liệu như Hình 1-7(a). Mục tiêu đặt ra là tìm 1 siêu phẳng phân lớp dữ liệu chính xác. Ta thấy trong không gian gốc, tập dữ liệu này không thể phân tách tuyến tính. Do đó, ta phải ánh xạ vào không gian đặc trưng mới. Giả sử ta có hàm ánh xạ như sau ( )

{

(

)𝑛 ( )𝑛

√ 𝑛

𝑖

Dữ liệu trong không gian giả thuyết sau khi ánh xạ vào không gian đặc trưng mới sẽ như Hình 1-7(b). Sau khi ánh xạ, ta sẽ sử dụng phương pháp SVC tuyến tính để tìm siêu phẳng phân lớp trong không gian đặc trưng. Quay lại bài toán SVC tuyến tính, và thay các giá trị

bằng

. Tính tương tự như trường hợp phi tuyến ta được

w = (1,1) và b = -3. Thế vào phương trình siêu phẳng ta được siêu phẳng: y = 3 – x như hình Hình 1-8. Sau khi có được phương trình siêu phẳng, ta sẽ sử dụng nó để phân lớp tương tự như trường hợp tuyến tính.

10

Hình 1-8 Siêu phẳng phân lớp trong không gian đặc trưng

1.2.3. Thủ thuật Kernel Tuy nhiên, cách tiếp cận trên gặp phải 1 vấn đề là không gian đặc trưng có thể có số chiều lớn hơn rất nhiều không gian giả thuyết (có thể vô hạn chiều), và do đó tốn nhiều thời gian tính toán. Tuy nhiên, ta thấy rằng trong các phép tính, Φ(x) chỉ xuất hiện dưới dạng tích vô hướng tức là dạng Φ(x)Φ(y) mà không xuất hiện đơn lẻ. Vì vậy, thay vì sử dụng dạng tường minh của Φ(x) thì chỉ cần sử dụng hàm biểu diễn giá trị vô hướng Φ(x)Φ(y). Đặt K(x,y)=Φ(x)Φ(y), K(x,y) được gọi là hàm hạt nhân (kernel function) [4]. Như vậy là chỉ cần biết dạng của hàm hạt nhân K(x,y) mà không cần biết cụ thể ánh xạ Φ(x). Lúc đó hàm phân lớp trở thành:

11

Tuy nhiên không thể chọn tùy ý hàm K(x,y) mà phải chọn K(x,y) sao cho tồn tại một hàm Φ mà K(x,y) = Φ(x)Φ(y). Điều kiện để bảo đảm vấn đề này là điều kiện Mercer. Sau đây là 1 ví dụ về K và Φ: Với x = (x1,x2) ϵ R2, Φ(x) = (1,√

,√

,

,

,√

) ϵ R6 thì

K(x,y) = Φ(x)Φ(y) = (1+x.y)2. Ánh xạ về không gian ban đầu: Sau khi giải bài toán phi tuyến, ta có được siêu phẳng phân lớp trong không gian đặc trưng. Dựa vào phương trình siêu phẳng ta xác định được các điểm support vector. Sau đó, ánh xạ các support vector này về không gian giả thuyết. Cuối cùng, từ các điểm support vector ta xác định được đường phân lớp trong không gian ban đầu. Vấn đề quan trọng là tìm hàm kernel K(x,y) như thế nào: Rõ ràng đây là một vấn đề phụ thuộc vào bài toán nhận dạng. Đối với những bài toán nhận dạng đơn giản trong đó sự phân bố các mẫu của 2 lớp không quá phức tạp thì có thể tìm hàm K(x,y) đơn giản sao cho số chiều của Φ là không quá lớn. Cách xây dựng một hàm kernel: Hàm kernel phải thỏa mãn định lý Mercer. Định lý của Mercer [4] Cho K(x, x’) là một kernel đối xứng liên tục được xác định trong khoảng cách đóng a ≤ x ≤ b và tương tự cho x’. Kernel K(x, x’) có thể được mở rộng trong chuỗi:

với các hệ số dương, λi > 0 với tất cả i. Sự mở rộng này là có cơ sở và hội tụ, nó là cần thiết và đủ điều kiện

giữ cho tất cả các ψ (-) mà

12

Có thể tóm tắt các đặc điểm hữu ích nhất trong việc xây dựng kernel, mà được gọi là Mercer kernel. Đó là, đối với bất kỳ tập hợp con giới hạn ngẫu nhiên nào phụ thuộc vào không gian đầu vào X, ma trận tương ứng được xây dựng bởi hàm kernel K(x, x’):

là một ma trận đối xứng và bán xác định dương

(trị riêng của ma trận >= 0), được gọi là một ma trận Gram [5]. 1.2.4. Một số ví dụ hàm kernel Đặc tính của hàm kernel: Nếu K1(x,y), K2(x,y) là các hàm kernel thì K3(x,y) cũng là hàm kernel với: 1. K3(x,y) = K1(x,y) + K2(x,y) [**] 2. K3(x,y) = aK1(x,y) với a > 0 [**] 3. K3(x,y) = K1(x,y).K2(x,y) [**] 4. K3(x,y) = aK1(x,y) + bK2(x,y) với a,b > 0 [**] Từ các công thức trên có thể suy ra một số hàm kernel thông dụng như sau: 1. Linear: (

)

2. Hàm đa thức bậc p:

(

)

;

(

)

3. Hàm Gaussian (Radial-basis function): (

)

𝑒

Trong trường hợp nào nên sử dụng hàm kernel nào là tùy thuộc vào sự phân bố của dữ liệu. Ví dụ, nếu dữ liệu phân bố dạng đường cong như Hình 1-9 thì chúng ta phải dùng hàm nhân đa thức dạng K(x,y)=(1+x.y)p.

13

Hình 1-9 Dữ liệu phân bổ dạng đường cong

Chiều không gian đặc trưng ứng với kernel này là d =

. Kernel này có thể

chuyển tất cả các mặt cong bậc p trong không gian Rn thành siêu phẳng trong không gian đặc trưng. Tóm lại phương pháp SVM phi tuyến là tìm một hàm kernel K(x,y), sau đó giải bài toán SVM tuyến tính với việc thay x1x2 = K(x1,x2) để tìm ra w và b.

1.3. Multiple Classification 1.3.1. One Versus the Rest: 1.3.1.1. Continuous Decision Functions

 Huấn luyện Với một tập m class, xây dựng một tập classifier D1, ..., Dm. Mỗi một fi sẽ phân biệt 1 lớp với các lớp còn lại.

14

Hình 1-10 Các classifiers của OVR

Như vậy ta sau khi huấn luyện ta sẽ có tập D1,..,Dm classifier để nhận diện.  Nhận diện: Ứng với mỗi giá trị x cần phân lớp: -

x sẽ thuộc lớp i nếu có duy nhất một Di(x) > 0.

-

Trường hợp có nhiều hơn một Di(x) > 0 hoặc không có Di(x) >0, ta sử dụng cách tính:

Nghĩa là x thuộc lớp i với Di(x) lớn nhất.

Hình 1-11 Trường hợp có nhiều fi(x) > 0 (chấm hỏi đỏ) và không có f(i)>0 (chấm hỏi xanh).

15

1.3.1.2. Fuzzy Support Vector Machines (FSVM):

Sử dụng fuzzy để giải quyết trường hợp không nhận diện được khi có nhiều hơn một Di(x) > 0 hoặc không có Di(x) >0. Sử dùng 2 fuzzy: 1. For i = j:

mii(x)= {

2. For i = j:

mij(x)= {

o i o i

i o

i

i o

i

Hình 1-12 : Minh họa fuzzy 1.

Sau khi tìm được mij(x), ta tìm mi(x): x sẽ thuộc về lớp:

mi(x) = min mij(x) , j =1,...,n

arg max mi(x), i=1,...,n

Hình 1-13 Các đường đen là kết quả của sử dụng fuzzy.

16

==> FSVM và SVMs with Continuous Decision Functions là tương đương. 1.3.2. Pairwise Support Vector Machines  Huấn luyện Với một tập m class, xây dựng một tập classifier D1, ..., Dn(n-1)/2. Mỗi một fi sẽ phân biệt 1 lớp với 1 lớp khác trong tập.

Hình 1-14 Các classifiers của Pairwise.

Như vậy sau khi huấn luyện ta sẽ có n(n-1)/2 classifier để nhận diện.  Nhận diện: Để nhận biết x thuộc về lớp nào, ta tính tất cả các giá trị Di(x), i=1,...,n(n-1)/2. x sẽ thuộc về lớp: Di(x) = ∑

𝑖 𝑛

𝑖

arg max Di(x) , i=1,...,n. Tuy nhiên, sẽ xảy ra trường hợp có nhiều i thỏa mãn điều kiện chọn lớp, khi mà x thuộc về phần gạch chéo trong trường hợp dưới.

17

Hình 1-15 Trường hợp có nhiều i thỏa mãn điều kiện chọn lớp

Có nhiều phương pháp xử lí trường hợp này:  Decision Directed Acyclic Graph (Platt, Cristianini, and J. Shawe-Taylor) Phương pháp này xây dựng một cây quyết định để quyết định dựa trên phủ định của i. Như vậy sẽ không gặp trường hợp không thể phân lớp như trên.

Hình 1-16 Cây DDAG

Kết quả của DDAG :

18

Hình 1-17 Kết quả DDAG

 Fuzzy SVM Tương tự trường hợp OVR.

Hình 1-18 Kết quả fsvm.

1.3.3. Error-Correcting Output Coding (Thomas G.Dietterich, Ghumlum Bakiri)  Huân luyện Ý tưởng của phương pháp này là tạo ra cho mỗi lớp trong m class một chuỗi nhi phân duy nhất gọi là "codewords" từ n hàm phân lớp f. Mỗi hàm phân lớp f được xác định dựa vào từng cơ sở dữ liệu. Ví dụ: trong bài toán phân lớp các chữ số từ 0-9. Ta có thể có các hàm f như sau: f1: phân lớp 1,4,5. f2: phân lớp 1,3,5,7,9. ... Sau khi xác định các hàm phân lớp f dựa vào dữ liệu, ta tiến hành tạo các codewords cho các lớp. Ví dụ kết quả codewords:

19

Hình 1-19 Kết quả codewords.

Lưu ý: trường hợp các codewords có khoảng cách khác biệt quá nhỏ, thì thông thường sẽ định nghĩa thêm cột (hàm phân lớp f) để tăng khoảng cách chỉ giữa các codeword này  Nhận diện Với giá trị x cần nhận diện, ta xác định codeword của x với cái hàm f đã xác định. Sau khi có codeword của x ta so với codewords của dữ liệu để xác định codeword của x gần với lớp i nhất thì x sẽ thuộc về lớp i. Để so sánh codeword của x với codewords các lớp ta dùng khoảng cách Hamming (đếm số lượng các các bit khác nhau). 1.3.3.1. Một cải tiến của EOCO (Erin L. Allwein, Robert E. Schapire, Yoram Singer):

Thay vì sử dụng codeword là 0,1 thì tác giả sử dụng các giá trị codeword là -1,0,+1. Trong đó giá trị 0 biểu diễn rằng ta không quan tâm đến hàm phần lớp f đối với lớp. Để xác định giá trị codeword gần với giá trị codewords lớp nào nhất thì tác giả sử dụng phương pháp Hamming decoding: dH(M(r), f (x)) = 1/2 ∑

𝑖 𝑛

Bên dưới là 1 ví dụ tính Hamming decoding:

20

Hình 1-20 Hamming decoding

1.4. Sequential Minimal Optimization (SMO) Nếu như giải hệ phương trình theo phương pháp trên thì sẽ rất tốn chi phí vì các điểm không phải là Support Vector sẽ có giá trị xấp xỉ 0. Cần có thuật toán với chi phí thấp hơn để tối ưu hóa bài toán cùng với các hệ số 𝛼.

Bảng 1-1 Một số thuật toán tối ưu để tìm

[6]

Ra đời năm 1999, là thuật toán hiệu quả đầu tiên dùng để huấn luyện tập dữ liệu, tối ưu các hệ số 𝛼 (Trước đó có thuật toán Chunk của Vapnik và Chervonenkis). Bài toán ban đầu :

Trước khi tìm hiểu thuật toán, ta đi vào một khái niệm mới :

21

1.4.1. Tìm kiếm theo hướng (Direction Search) Giả sử ta đã có 𝛼 thỏa mãn điều kiện tối ưu của hàm đối ngẫu D(𝛼). Ta gọi u={u1, u2, …, un} là một hướng khả thi nếu ta có thể thêm vào 𝛼 một đoạn 𝜆 thì 𝛼 vẫn thõa mãn D(𝛼) (𝜆

).

Gọi Λ là tất các các hệ số 𝜆 thỏa điều kiện trên, như vậy

[

𝜆

].

Như vậy, ta có được bài toán tối ưu 𝜆. 𝜆

Hình 1-21 Cho điểm bắt đầu đại hóa hàm

𝑎

ma

𝛼

𝜆

và một hướng u khả thi, tìm kiếm theo hướng sẽ cực , với

với

luôn thỏa điều kiện KKT [6]

Xét hàm D(α+λ ) là hàm lồi. Như vậy, theo công thức Newton, với số 𝜆 thay đổi rất nhỏ, ta có thể tính được 𝜆 như sau [6] :

22

1.4.2. Thuật toán [6]

Tóm tắt sơ lược :  Đầu tiên khởi tạo các trị số 𝛼 , và gk.  Ứng với mỗi bước lập, tìm hai chỉ số của 𝛼 sao cho chúng xa nhau nhất. Sau đó tiến hành tìm kiếm có hướng trên hai giá trị 𝛼 đó, rồi tiến hành cập nhật lại trọng số của đạo hàm .

23

Phần 2

Support Vectors Regression 2.1. Bài toán hồi quy (Regression) Bài toán hồi quy là bài toán khá phổ biến, mục tiêu là tìm hàm đặc trưng cho một tập điểm rời rạc ban đầu.

Hình 2-1 Đường hồi quy của tập điểm cho trước.

Cho tập điểm :

Hàm hồi quy sẽ có dạng :

[7] Mục tiêu là xây dựng hàm f với độ lỗi là thấp nhất.

2.2. Hàm lỗi Để đánh giá lỗi cho hồi quy, người ta đưa ra các hàm lỗi. Dạng tổng quát :

[7] Trong đó :  P là độ đo xác suất trên tổng quan toàn bộ tập dữ liệu

24

 c(f,x,y)=(f(x) – y2) Một số hàm lỗi thường dùng :

Hình 2-2 Nhận thấy các đặt trưng cho ngưỡng lỗi, có hàm trải đều, có hàm phải đến ngưỡng mới tính lỗi, có hàm tuyến tính, có hàm phi tuyến.

2.3. 𝜺 – SVR

Hàm mục tiêu tối ưu sẽ là :

25

Hình 2-3 Hàm lỗi 𝜺

[7] Hàm Lagrange

[7] Điều kiện

Thay thế các điều kiện trên vào ta hàm đối ngẫu

[7]

26

Giá trị

đã được thay thế và biến mất và ta có

Điều kiện KKT [7]

Áp dụng các điều kiện trên, ta giải hệ phương trình được các 𝛼 𝛼 * b được tính theo công thức

27

*

Phần 3

Thư viện hỗ trợ lập trình và các hướng phát triển 3.1. Các thư viện hỗ trợ lập trình SVM  Hai thư viện phổ biến cài đặt thuật toán SVM là LibSVM và SVMlight.  Trong đó LibSVM hỗ trợ nhiều nền tảng hệ điều hành khác nhau, cũng như nhiều ngôn ngữ lập trình khác nhau (C++, Java…) dễ dàng cải tiến và ứng dụng. Đặc biệt LibSVM cho phép tinh chỉnh nhiều tham số hơn một số phần mềm hoặc thư viên khác và hỗ trợ những bộ tham số mặc định hỗ trợ giải quyết nhiều vấn đề thực tế một cách hiệu quả.

Hình 3-1 Phân lớp bằng LibSVM

 SVMlight là một bản cài đặt khác của SVM bằng ngôn ngữ C. SVMlight thông qua kỹ thuật chọn lựa hiệu quả và khả thi nhất và hai phương pháp tính toán hiệu quả là “nén” và “cache” của đánh giá kernel. SVMlight gồm hai chương trình C chính: SVM_learn sử dùng để huấn luyện bộ phân lớp và SVM_classify để kiểm chứng.

28

 Ngoài ra còn một số bộ công cụ có giao diện đồ hoạc trực quan hỗ trợ thuật toán SVM như Torch (C++), Spider (MATLAB) hay Weka (Java).

3.2. Một số hướng nghiên cứu Trong một thập kỷ qua SVM đã phát triển rất nhanh về cả lý thuyết lẫn ứng dụng nhưng vẫn còn rất nhiều hướng nghiên cứu triển vọng. Sau đây là một số hướng chính. a. Hiệu quả tính toán Một trong những nhược điểm từ đầu của SVM là chi phí tính toán cho bước huấn luyện lớn, dẫn đến khó áp dụng cho những bộ dữ liệu lớn. Tuy nhiên, vấn đề này đã được giải quyết thành công. Một cách tiếp cận là chia nhỏ bài toàn tối ưu hóa thành những bài toán nhỏ hơn mà mỗi bài toán này chỉ liên quan đến một số biến được chọn lọc vì thế tối ưu hóa được giải quyết một cách hiệu quá. Tiến trình lặp lại cho đến khi những bài toán nhỏ được giải quyết hoàn tất. Một vấn đề gần đây hơn của máy học SVM là tìm một mặt cầu tối tiểu bao quanh các thực thể. Những thực thể khi ánh xạ vào không gian Nchiều thể hiện một lõi có thể dùng để xây dựng một mặt cầu tối tiểu bao quanh. Giải quyết bài toán SVM trên những tập lõi sẽ cho giải pháp tốt gần đúng với tốc độ rất nhanh. b. Lựa chọn hàm kernel Khi sử dụng hàm kernel trong SVM, việc lựa chọn hàm kernel một cách tổng quát phải thỏa định lý Mercer. Do đó, những hàm kernel phổ biến thường thuộc về một trong ba loại: hàm sigmoid, hàm đa thức và hàm bán kính cơ sở. Gần đây Pekalska và các cộng sự đã đưa ra quan điểm mới về việc thiết kế hàm kernel dựa trên ánh xạ mối liên quan gần. Những hàm kernel mới này không thỏa điều kiện Mercer đưa ra cũng như không giới hạn trong một không gian đặc trưng và thực nghiệm ban đầu cho thấy

29

hiệu qua tốt hơn những hàm kernel Mercer. Tuy nhiên, nền tảng lý thuyết của thế hệ hàm kernel mới này cần được nghiên cứu sâu hơn nữa. Ngoài ra, một cách tiếp cận khác là sử dụng nhiều kernel hơn là chỉ một. Thông qua đó sự kết hợp có thể đạt được kết quả tốt hơn. Bằng việc xác lập đúng hàm mục tiêu, việc lựa chọn các tham số cho kernel có thể hiện thực cho phép sử dụng nhiều kernel. c. Học SVM có cấu trúc Cực đại hóa biên giữa các lớp là động lực ban đầu của SVM. Điều này dẫn đến SVM tập trung vào việc phân tách các lớp của mẫu học nhưng không quan tâm đến sự phân bố của dữ liệu trong từng lớp. Định lý “Không có bữa ăn trưa miễn phí” phát biểu rằng không tồn tại phương pháp phân lớp mẫu nào tuyệt đối ưu thế hơn những phương pháp khác hoặc thậm chí là so với việc đoán mò một cách ngẫu nhiên. Thực tế cho thấy, tùy vào từng bài toán, mỗi lớp khác nhau có thể có cấu trúc khác nhau. Bộ phân lớp phải cân chỉnh đường biên sao cho khớp với cấu trúc của chúng, đặc biệt cho vấn đề tổng quát hoát của bộ phân lớp. Tuy nhiên, SVM ban đầu không quan tâm đến cấu trúc, dẫn đến việc xác định siêu phẳng phân cách một cách cứng nhắc ngay giữa những support vector, dẫn đến bộ phân lớp không tối ưu hóa cho các vấn đề thực tế. Gần đây, một số thuật toán đã được phát triển quan tâm đến cấu trúc của thông tin hơn SVM ban đầu. Chúng mang lại một quan điểm mới về bộ phân lớp, khi mà nó có thể “cảm” được cấu trước của sự phân bố dữ liệu. Những thuật toán này được chia thành hai cách tiếp cận. Cách tiếp cận thứ như là manifold learning. Giả thiết rằng dữ liệu thực tế nằm trong những submanifold trong không gian đầu vào, và thông thường các thuật toán liên quan đến Laplacian Support Vector Machine (LapSVM). Xây dựng LapSVM đầu tiên thông qua đồ thì Laplacian trong mỗi lớp. Sau đó,

30

tạo ra cấu trúc manifold của dữ liệu tương ứng với ma trận Laplacian trong SVM truyền thống. Cách tiếp cận thứ hai là khai thác các thuật toán phân cụm với giả định dữ liệu có chưa nhiều cụm với thông tin phân phối. Giả định này dường như tổng quát hơn giả định manifold. Một cách tiếp cận gần đây được biết đến là Structureed Large Margin Machine (SLMM). SLMM ứng dụng kỹ thuật gom cụm để lấy được thông tin về cấu trúc vào trong các ràng buộc. Một số Large Margin Machines phổ biến là Minimax Probibility Machine (MPM), và Maxi-min Margin Machine (M4) có thể xem như một dạng đặc biệt của SLMM. Thực nghiệm đã cho thấy SLMM có khả năng phân lớp tốt hơn. Tuy nhiên bài toán tối ưu hóa của SLMM là Second Order Cone Programming (SOCP) thay vì SP của SVM, SLMM có chi phí tính toán cao hơn ở bước huân luyện khi so sánh với SVM truyền thống. Hơn nữa không đơn giản để tổng quát hóa hay bài toán nhiều lớp. Từ đó, một SVM có cấu trúc mới (SSVM) đã được phát triển. Kết quả là bài toán tối ưu hóa có thể được giả với QP như SVM, và dễ dàng mở rộng. Hơn nữa, SSVM đã cho thấy về mặt lý thuyết và thực nghiệm tốt hơn SVM và SLMM trong vấn đề tổng quát hóa.

31

Tài liệu tham khảo [1] Prabhakar Raghavan & Hinrich Schütze Christopher D. Manning. Standford. [Online].

http://nlp.stanford.edu/IR-book/html/htmledition/support-vector-

machines-the-linearly-separable-case-1.html [2] Jeff

Knisley.

Multivariable

Calculus

Online.

[Online].

http://math.etsu.edu/multicalc/prealpha/Chap2/Chap2-9/index.htm [3] Yan-Bin Jia, "Lagrange Multipliers," Nov 27, 2012. [4] Hui Xue, Qiang Yang, and Songcan Chen. Chapter 3: Support Vector Machines. [5] http://www.encyclopediaofmath.org/index.php/Gram_matrix. [6] Lin, L´eon Bottou, Chih-Jen, "Support Vector Machine Solvers". [7] Bernhard Schlkopf, Alexander J. Smola, Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond., 2001.

32

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF