5 ỨNG DỤNG PHÁT HIỆN DỮ LIỆU NGOẠI LAI
2.5 Giới thiệu các biến slack
Công thức Lagrange
Lagrange cho bài toán
L(w, b, ε, γ, µ) = 1 2kwk 2 2+C N X n=1 εn+XN 1 λn(1−εn−yn(wTxn+b))− XN n=1 µnεn (2.7)
2.1. Tổng quan về Support Vector Machine
với λ= [λ1, λ2, ..., λN]T
0 và µ= [µ1, µ2, ..., µN]T
0
Hàm số đối ngẫu của bài toán tối ưu là
g(λ, µ) = min
w,b,εL(w, b, ε, λ, µ) (2.8)
Thực hiện tính đạo hàm theo các biến w, b, ε cho bằng 0 và thế vào g(λ, µ), ta được hàm mục tiêu của phương trình đối ngẫu
g(λ, µ) = XN n=1 λn− 1 2 N X n=1 N X m=1 λnλmynymxTnxm (2.9) Hàm phân loại
Với việc áp dụng lý thuyết Lagrange và các tiếp cận tương tự như với Hard- margin SVM, kết hợp với điều kiện Karush-Kuhn-Tucker (KKT) ta sẽ tìm được nghiệm của bài toán soft-margin SVM
w= X m∈S λmymxm b= 1 NM X n∈M (yn−wTxn) = 1 NM X n∈M (yn−X n∈S λmymxTmxn)
2.1.4 Kernel Support Vector MachineÝ tưởng Ý tưởng
Hard-margin SVM và soft-margin SVM cơ bản chỉ xử lý được tập dữ liệu tuyến tính hoặc gần tuyến tính. Vậy thì, đối với những tập dữ liệu không tuyến tính (non-linear) thì liệu SVM có thể giải quyết được dạng dữ liệu này hay không? Câu trả lời chắc chắn là có và sẽ được trình bày bên dưới đây.
Người ta gọi phương pháp này là kernel SVM. Ý tưởng cơ bản của kernel SVM và các phương pháp kernel nói chung là tìm phép biến đổi dữ liệu không tuyến tính của không gian đầu vào sang một không gian khác. Tại đây, dữ liệu trở thành tuyến tính hoặc gần tuyến tính, dễ dàng quy về bài toán hard/soft - margin
2.1. Tổng quan về Support Vector Machine
SVM ở trên.
Nói một cách toán học, kernel SVM là phương pháp đi tìm một hàm số biến đổi dữ liệu xtừ không gian đặc trưng ban đầu thành dữ liệu trong một không gian mới bằng hàm số Φ(x). Các hàm số này thường tạo ra dữ liệu mới có số chiều cao hơn số chiều của dữ liệu ban đầu, thậm chí là vô hạn chiều. Nếu tính toán các hàm này trực tiếp, chắc chắn chúng ta sẽ gặp vấn đề về bộ nhớ và hiệu năng tính toán. Có một cách tiếp cận là sử dụng các hàm kernel mô tả quan hệ giữa hai điểm dữ liệu bất kì trong không gian mới. Kỹ thuật này được xây dựng dựa trên quan sát các bài toán đối ngẫu của hard/soft margin SVM.
Hàm kernel
Quay lại với công thức của bài toán đối ngẫu cho soft-margin SVM cho dữ liệu gần tuyến tính λ =argmax λ N X n=1 λn− 1 2 N X n=1 N X m=1 λnλmynymxTnxm thỏa mãn: PN n=1λnyn = 0 0≤λn≤C,∀n= 1,2,3, ..., N
trong đó, N là số cặp điểm dữ liệu trong tập huấn luyện, xn là vector đặc trưng của dữ liệu thứ n trong tập huấn luyện, yn là nhãn của dữ liệu thứ n, bằng 1 hoặc -1, λn là phần tử Lagrange ứng với điểm dữ liệu thứ n, C là hằng số dương giúp
điều chỉnh giữa gia số εn và kwk22.
Nhãn của một điểm dữ liệu mới sẽ được xác định bởi
class(x) =sign ( X m∈S λmymxTmx+ 1 NM X n∈S (yn− X m∈S λmymxTmxn) )
Như ta đã biết, dữ liệu thực tế thật sự rất khó để có thể tuyến tính, thậm chí gần tuyến tính, vì vậy với việc sử dụng nghiệm của bài toán soft-margin dường như không đem lại kết quả phân loại tốt. Giả sử, ta tìm được hàm số Φ() thực hiện việc biến đổi dữ liệu sang một không gian mới, và tập dữ liệu lúc này là gần
2.1. Tổng quan về Support Vector Machine
tuyến tính. Khi ấy, nghiệm của bài toán soft-margin SVM sẽ giúp ta có bộ phân loại tốt hơn.
Trong không gian mới, bài toán trở thành
λ=argmax λ N X n=1 λn− 1 2 N X n=1 N X m=1 λnλmynymxTnxmΦ(xn)TΦ(xm) thỏa mãn PN n=1λnyn= 0 0≤λn ≤C,∀n= 1,2,3, ..., N
Với việc tính toán trực tiếp φ(x) cho mỗi điểm dữ liệu sẽ tốn rất nhiều bộ nhớ và thời gian vì số chiều của φ(x) thường rất lớn, thậm chí vô hạn. Chính vì vậy, ở công thức trên, ta không cần tính trực tiếp φ(x) cho mọi điểm dữ liệu. Chúng ta chỉ cần tính được Φ(x)TΦ(z) dựa trên hai điểm dữ liệu x, z bất kỳ. Vì vậy, ta không cần phải xác định φ(.) mà chỉ cần xác định một hàm k(x, z) = Φ(x)TΦ(z). Kỹ thuật này được gọi là kernel trick. Với kernel trick ta có thể viết lại bài toán như sau λ=argmax λ N X n=1 λn−1 2 N X n=1 N X m=1 λnλmynymxTnxmk(xn, xm) thỏa mãn: PN n=1λnyn = 0 0≤λn≤C,∀n= 1,2,3, ..., N
Và nhãn của điểm dữ liệu mới được xác định bởi hàm bên dưới
class(x) =sign ( X m∈S λmymk(xm, x) + 1 NM X n∈S (yn− X m∈S λmymk(xm, xn)) ) Một số hàm kernel thông dụng Các hàm kernel cần có tính chất sau: Đối xứng k(x, z) =k(z, x)
2.1. Tổng quan về Support Vector Machine
Thỏa mãn điều kiện Mercer
N X n=1 N X m=1 k(xm,xn)cncm ≥0 ∀ci ∈R, i= 1,2, ..., N
Dưới đây là một số hàm kernel thông dụng
Linear
k(x,z) = xTz
Đây là trường hợp đặc biệt của kernel đa thức với d=1, kết quả đạt được giống với hàm mục tiêu ban đầu.
Polynomial
k(x,z) = (r+γxTz)d
Với d là một số dương để chỉ bậc của đa thức, d có thể không là số tự nhiên vì mục đích chính của ta không phải là bậc của đa thức mà là cách tính kernel. Polynomial kernel có thể dùng để mô tả hầu hết các đa thức có bậc không vượt quá d nếu d là một số tự nhiên.
Gaussian
k(x,z) =exp(−γkx−zk2
2), γ >0
Hàm kernel Gaussian còn được gọi là Radial Basic Function (RBF). Đây có thể xem là kernel được sử dụng nhiều và rộng rãi nhất.
Tiền đề
Một trong những cách tiếp cận kinh điển đối với kiểu dữ liệu phi tuyến tính vào mô hình học máy chính là việc sử dụng một hàm kernel. Như đã trình bày ở phần lý thuyết ở trên về kernel trong SVM. Chúng tôi cũng xin được nhắc lại kernel. Với mỗi không gian đầu vào X ⊂Rd, sử dụng kernelk thực hiện ánh xạ các điểm dữ liệu sang không gian F thông quaφ:X →F
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.