Biến thể Support Vector Machine cho bài toán phân loại một lớp

Một phần của tài liệu Phát hiện dữ liệu ngoại lai bằng mô hình svm một lớp (Trang 46 - 51)

2 MÔ HÌNH SVM CHO BÀI TOÁN PHÂN LOẠI MỘT LỚP

2.2 Biến thể Support Vector Machine cho bài toán phân loại một lớp

φ được gọi là feature map. Kỹ thuật này còn được gọi là kernel trick. Kernel trick cho phép biến đổi một cách phi tuyến các điểm dữ liệu. Do đó, nó dễ dàng kết hợp với dữ liệu phi tuyến bằng cách ánh xạ chúng sang một không gian mới (có thể làm tăng số chiều nhưng dữ liệu lúc này có thể tuyến tính).

Rõ ràng rằng có khá nhiều hướng tiếp cận đối với bài toán OCC. Và trong luận văn này, chúng tôi sẽ trình bày hai hướng tiếp cận dựa trên nền tảng lý thuyết của SVM, đó là: One-class Support Vector Machine (OCSVM)[14] và Support Vector Data Description (SVDD)[13]. Cả hai đều tiếp cận theo hướng ước lượng mật độ phân bố dữ liệu. Nhưng ý tưởng của OCSVM là việc phân chia dữ liệu dựa trên siêu phẳng, thay vì siêu cầu của SVDD. Khi kết hợp kernel trick, sự phân biệt dữ liệu cũng như ước lượng đường biên giới được thực hiện ngầm định trong vùng khung gian F. Chúng ta sẽ thấy rằng, hai cách tiếp cận sẽ gần như tương đương nhau nếu kernel được sử dụng thỏa mãn một tính chất cụ thể nào đó. Và ở đây, kernel Gaussian một kernel được sử dụng nhiều nhất để đáp ứng tính chất chung ấy. Trong phần này, chúng tôi sẽ trình bày sâu về hướng tiếp cận SVDD cũng như OCSVM. Cuối chương sẽ là phần thảo luận và đánh giá về hai phương pháp trên.

2.2 Biến thể Support Vector Machine cho bài toán phân loại một lớp

OCSVM được đề xuất lần đầu tiên bởi Sch¨olkopf[13]. OCSVM là một phần mở rộng của thuật toán học SVM hai lớp ban đầu, dùng để đào tạo một bộ phân loại trong trường hợp không có bất kỳ dữ liệu mẫu phủ định nào. Việc đào tạo có thể đạt được bằng cách coi một số điểm dữ liệu nhất định của lớp tích cực như thể chúng thuộc lớp âm. Ý tưởng là xác định ranh giới giữa phần lớn các điểm dữ liệu tích cực và các điểm ngoại lai (hoặc các điểm dữ liệu không điển hình). SVM một lớp sử dụng tham số ν để xác định sự cân bằng giữa tỷ lệ điểm dữ liệu được coi là lớp tích cực với lớp tiêu cực.

Sự khác biệt cơ bản giữa SVM hai lớp và SVM một lớp là việc sử dụng các điểm dữ liệu âm trong việc huấn luyện các hàm phân loại. Cách tiếp cận SVM một lớp có ưu điểm là có thể sử dụng một tập huấn luyện rất nhỏ để học một hàm phân loại. Một mô hình SVM không phải lúc nào cũng phải sử dụng toàn bộ tập dữ liệu có sẵn để huấn luyện. Do vậy không dễ để quyết định dữ liệu nào có liên

2.2. Biến thể Support Vector Machine cho bài toán phân loại một lớp

quan và dữ liệu nào có thể bị bỏ sót khi huấn luyện các hàm phân loại. Cách tiếp cận OCSVM cho phép giải quyết điều đó, vì nó chỉ yêu cầu dữ liệu của lớp được phát hiện để học một hàm quyết định. Điều này cho phép tiết kiệm đáng kể thời gian tính toán và không gian bộ nhớ nhưng vẫn duy trì mức độ chính xác có thể so sánh được.

Hình 2.6: So sánh multi-class và OCC

2.2.1 Support Vector Data Description Ý tưởng

Bài toán phân loại một lớp thường được giải quyết bằng cách ước tính mật độ mục tiêu của dữ liệu. Tax và Duin[13] tìm cách giải quyết vấn đề của OCC bằng cách phân biệt lớp tích cực với tất cả các mẫu có thể có khác trong không gian mẫu. Thay vì sử dụng siêu phẳng để phân biệt giữa hai lớp, chúng ta sẽ đi xác định một siêu cầu được tìm thấy xung quanh dữ liệu lớp dương bao gồm hầu hết tất cả các điểm trong tập dữ liệu với bán kính nhỏ nhất. Phương pháp này được gọi là Support Vector Data Description (SVDD). Do đó việc huấn luyện mô hình này có khả năng loại bỏ một số phần nhỏ của các đối tượng huấn luyện được gắn nhãn dương, điều này làm giảm đủ thể tích của siêu hình cầu. Hơn nữa, mô hình siêu khối cầu của SVDD có thể được làm cho linh hoạt hơn bằng cách sử dụng các hàm kernel. Tax[13] xem xét một đa thức và một kernel Gaussian và nhận thấy rằng kernel Gaussian hoạt động tốt hơn cho hầu hết các tập dữ liệu. Một hạn chế của kỹ thuật này là chúng thường yêu cầu một tập dữ liệu lớn, đặc biệt trong không gian đặc trưng có chiều cao, nó trở nên rất kém hiệu quả. Ngoài

2.2. Biến thể Support Vector Machine cho bài toán phân loại một lớp

ra, các vấn đề có thể phát sinh khi có sự khác biệt lớn về mật độ. Các đối tượng trong khu vực mật độ thấp sẽ bị từ chối mặc dù chúng là đối tượng hợp lệ.

Bài toán gốc

Đầu tiên, chúng ta định nghĩa hàm mục tiêu đơn giản sau và thực hiện tối ưu để xác định siêu cầu có bán kính nhỏ nhất. Với siêu cầu tìm được sẽ chứa toàn bộ điểm dữ liệu dương.

min R,c R2 s.t. kxick2 ≤R2 ,i= 1, ..., n. (2.11)

Tuy nhiên, tập dữ liệu trong thực tế thường không chỉ bao gồm các điểm dữ liệu dương, mà còn bao gồm cả điểm nhiễu. Khi đó, rất có thể những điểm nhiễu này nằm trong siêu cầu tìm được. Do đó, chúng ta phải sử dụng gia số εi >0 (biến slack). Khi đó hàm mục tiêu trở thành:

min R,c R2+ 1 νn X i εi s.t. kxick2 ≤R2 +εi, εi ≥0,i= 1, ..., n. (2.12) Với tham số C = 1

νn, ν ∈ (0,1] dùng để điều khiển trade-off giữa bán kính siêu cầu với tổng giá trị của các biến slack.

Bài toán đối ngẫu

Với ràng buộc của (2.12), sử dụng Lagrange, ta được:

L(R,c, εi,α,β) =R2 + 1 νn X i εi −X i αi(R2+εi− kxick2)−X i βiεi, (2.13)

2.2. Biến thể Support Vector Machine cho bài toán phân loại một lớp

phần trên các biến R,c, εi như sau:

∂L ∂R = 2R−2RX i αi = 0 ⇒ X i αi = 1 (2.14) ∂L ∂c = 2 X i αi(xic) = 0 ⇒ c=X i αixi (2.15) ∂L ∂εi = 1

νnαiβi = 0 ⇒ αi = 1

νnβi (2.16)

Vì các nhân tử đối ngẫu Lagrange luôn không âm, nên từ (2.16) ta có: 0≤αi 6 1

νn (2.17)

Thế (2.14), (2.15), (2.16) vào (2.13). Khi đó bài toán (2.13) trở thành:

L=X i αikxik2 −X i,j αiαjhxi,xji (2.18)

Sau khi thực hiện thu gọn, bài toán đối ngẫu của lúc này có hàm mục tiêu như sau: max α X i αikxik2−X i,j αiαjhxi,xji s.t. X i αi = 1, 0≤αi ≤ 1 νn,i= 1, ..., n. (2.19)

2.2. Biến thể Support Vector Machine cho bài toán phân loại một lớp

Kernel SVDD

Như phần lý thuyết về kernel đã trình bày ở trên, với hàm kernel K(x, z) =

φ(x)(z) Kết hợp vào SVDD, chúng ta có được hàm mục tiêu như sau:

max α X i αiKiiαT s.t. X i αi = 1, 0≤αi ≤ 1 νn,i= 1, ..., n. (2.20)

Từ công thức trên dễ dàng đưa ra bài toán gốc của kernel SVDD như bên dưới: min R,c R2+ 1 νn X i εi s.t. kφ(xi)−ck2 FR2+εi, εi ≥0,i= 1, ..., n, (2.21)

Hình 2.7: Minh họa kernel SVDD: Biến đổi không gian đặc trưng X sang F[14]

Hàm dự đoán

Sau khi xác định được những vector hỗ trợ. Dễ dàng tính toán được giá trị tối ưu c∗ và R∗. Từ [2.15],c∗ được tính như sau:

c∗ =X

i

2.2. Biến thể Support Vector Machine cho bài toán phân loại một lớp

Sử dụng bất kỳ điểm vector hỗ trợ nào đó để thực hiện tính giá trị R∗:

R∗2 =kφ(xi)−ak2

F =Kii−2αTKi +αTKα, (2.23) trong đó Ki là cột và hàng thứ i của ma trận kernel K

Lúc này, hàm phân loại sẽ có dạng như sau:

f(x) =K(x,x)−2X

i

αiK(x,xi) +kck2 2−R∗2

(2.24) Nếu f(x)>0 thì mẫu cần được xác định là nằm bên ngoài siêu cầu, tức là điểm ngoại lai và ngược lại.

Một phần của tài liệu Phát hiện dữ liệu ngoại lai bằng mô hình svm một lớp (Trang 46 - 51)