Đối với tập dữ liệu gần với tuyến tính (ví dụ, bài toán X-O), không khả thi để tìm một hyperplane để phân loại hoàn toàn 2 nhóm mà không có sự phân loại sai, vì vậy chúng ta nhắc về “soft-margin SVM” trong đó có thêm một biến ξi. Xem xét 2 kiểu phân loại dưới đây cho thấy sự kém hiệu quả của SVM thô (hình 3.5). Trong trường hợp đầu tiên, tập dữ liệu có thể phân tách tuyến tính và tất cả các điểm đều có thể được phân loại chính xác, nhưng có một điểm nằm quá gần siêu phẳng khiến cho margin rất nhỏ. Điểm này được gọi là nhiễu. Giả sử điểm này bị bỏ qua, biên độ sẽ trở nên lớn hơn và có thể đạt được ranh giới tốt hơn. Trong trường hợp thứ hai, dữ liệu có thể phân tách phi tuyến tính, một số điểm nằm rất gần ranh giới nên được bỏ qua để có thể tạo ra một margin tốt. Có nghĩa là sau khi tách ra, một số điểm sẽ nằm sai và một số điểm sẽ đúng nhưng không nằm trong vùng lý tưởng của chúng.
68
Trong soft-margin SVM, khi margin lớn nhất, thì đồng nghĩa với biểu thức sau sẽ bé nhất: 1
2||𝑤||2+ 𝐶 ∑𝑁𝑛=1ξn trong đó C là một hằng số dương và ξ=[ξ1,ξ2,…,ξN] và đồng thời 𝑦𝑛(𝑤𝑇𝑥𝑛+ 𝑏) ≥ 1 −ξn. Ý nghĩa của các “slack variable” được thể hiện trong hình 3-2. Đối với những điểm không được dán nhãn chính xác (x1, x3): ξn>1. Đối với những điểm đã được dán nhãn chính xác, nhưng lại không nằm trong vùng phù hợp: 1>ξn>0. Đối với những điểm khác: ξn=0. Một tham số cần xem xét là C, C sẽ được chọn bởi người dùng hoặc các công cụ tính toán. Tham số C xác định mức độ người dùng muốn để tránh phân loại nhầm. Tham số C càng lớn, SVM sẽ thu nhỏ ∑𝑁𝑛=1ξn , và chọn một hyperplane nhỏ hơn, nếu hyperplane đó vẫn đảm bảo phân loại các điểm chính xác. Ngược lại thì giá trị tham số C càng nhỏ, sẽ khiến tối ưu hóa việc tìm kiếm hyperplane có margin lớn hơn, ngay cả khi hyperlane đó phân loại sai nhiều điểm hơn. Tham số C xác định sự ảnh hưởng quan trọng đối với ||w||.
Hình 3.6 “Slack variables” trong “soft-SVM”
Một phương pháp khác để giải quyết vấn đề soft-margin trong SVM chính là sử dụng đối ngẫu Lagrangia (Lagrangian duality). Phương trình của “Lagrangian duality”
69 Trong đó: N là số lượng điểm trong tập dữ liệu.
Xn là vectơ đặc trưng của điểm thứ n
Yn thể hiện cho điểm thứ n, được biểu diễn dưới dạng 1 hoặc -1 λn hệ số Lagrangian tương ứng với điểm thứ n
Việc chuyển đổi bài toán SVM ban đầu thành bài toán kép có cách giải quyết vấn đề “soft-margin SVM” đã trở thành một trong những tối đa hóa. Thay vì giải w theo các ràng buộc phân loại, bài toán trở thành một trong việc học các tham số λi cho các đặc trưng và sự phân loại của chúng. Tất cả các tham số λ khác 0 được chọn làm thông số của các vectơ hỗ trợ (support vectors ) và được sử dụng để tính toán các hệ số (w và b) trong hyperplane. Giả sử M = {n: 0 <λn <C} và S = {m: 0 <λm ≤ C}. M là tập λ của tất cả các điểm nằm trên biên và S là tập λ của tất cả các support vector. W và b có thể được tính như sau:
𝑤 = ∑ λmymxm 𝑚 𝜖 𝑆 (3-14) 𝑏 = 1 𝑁𝑀∑(𝑦𝑛 − 𝑤 𝑇𝑥𝑛) = 1 𝑁𝑀∑ (𝑦𝑛− ∑ λmym 𝑚𝜖𝑆 𝑥𝑚𝑇𝑥𝑛) 𝑛𝜖𝑀 𝑛𝜖𝑀 (3-15)
Sau khi tìm được hyperplane, có thể thực hiện việc gắn nhãn cho từng điểm dữ liệu.
Trên thực tế, nhiều tập dữ liệu gần như không thể tách rời và một ý tưởng để biến tập dữ liệu thành một tập dữ liệu gần như có thể tách rời là tìm một hàm ánh xạ x → φ (x) để truyền dữ liệu đầu vào ban đầu vào một không gian mới có kích thước lớn hơn (Hình 3.7). Trong không gian mới, một chức năng mới được thể hiện:
(3- 16)
70
Hình 3.7 Kernel SVM
Tuy nhiên, việc tính toán φ(x) cho mỗi mẫu là rất phức tạp, đặc biệt khi kích thước của tập dữ liệu tăng lên và số lượng mẫu lớn, vì vậy chúng ta cần đơn giản hóa quy trình. Chú ý rằng trong công thức (3-16) ở trên, không nhất thiết phải tìm Φ(x) cho mỗi điểm dữ liệu, và chúng ta chỉ cần tìm Φ(x) TΦ (z) từ 2 điểm ngẫu nhiên. Đây được gọi là “Kernel trick” trong đó chỉ các sản phẩm bên trong (các chấm) của các đầu vào được ánh xạ trong không gian đặc trưng cần được xác định mà không cần tính φ một cách rõ ràng. Tích số chấm của các vectơ được biến đổi tạo ra một giá trị vô hướng. Phần khó là kernel không thực sự tính vế phải của Phương trình (3-16) bằng cách biến đổi từng vectơ đặc trưng và sau đó lấy các tích số chấm của chúng. Thay vào đó, kernel có hiệu quả đạt được cùng một kết quả bằng cách chỉ hoạt động trên các vectơ trong không gian xung quanh của chúng, mà không thực hiện bất kỳ biến đổi nào thành không gian có chiều cao hơn. “Trick” này giúp tiết kiệm thời gian tính toán và giảm yêu cầu bộ nhớ. Hàm nhân được ký hiệu là k(x, z) = Φ(x)TΦ(z). Bốn hàm Kernel được tóm tắt trong bảng 3.1 [18]. Các nhà lý thuyết đã nghiên cứu ra nhiều loại Kernel khác nhau. Một số hàm cung cấp kết quả tốt hơn cho ứng dụng này so với ứng dụng khác. Do đó, điều quan trọng là phải đánh giá các hàm kernel khác nhau và các tham số của chúng khi cố gắng giải quyết các vấn đề phân loại với SVM.
71
Tên Hàm Kernel Công thức
Polynomial k(x, z) = (r + γ𝑥𝑇z)𝑑
Laplacian k(x, z) = exp(−||x − y||/(2𝛿2)), γ > 0
Radial Basis Function
(RBF) k(x, z) = exp(−γ||𝑥 − 𝑦||
2), γ > 0
Sigmoid k(x, z) = tanh(γx𝑇z + r)
Bảng 3.1 Bốn hàm Kernel