CHƯƠNG I. CƠ SỞ LÝ THUYẾT
1.4. Bài toán phân loại dữ liệu và Support Vector Machines (SVM)
1.4.2. Support Vector Machines (SVM)
Support Vector Machines (SVM) là một phương pháp học máy được sử dụng rộng rãi cho các tác vụ phân loại và hồi quy. SVM được phát triển ban đầu bởi Vapnik và Cortes vào cuối những năm 1990 và từ đó đã trở thành một trong những phương pháp phân loại mạnh mẽ nhất.
a, Nguyên lý hoạt động
Nguyên lý hoạt động của SVM là tìm ra một siêu phẳng (hyperplane) trong không gian đặc trưng sao cho phân chia giữa các lớp là tối ưu nhất. Siêu phẳng này cố gắng tối đa khoảng cách (margin) giữa nó và các điểm dữ liệu gần nhất của các lớp. Các điểm dữ liệu gần nhất này được gọi là các vector hỗ trợ (support vectors), do đó SVM có tên là "Support Vector Machines".
Một số điểm quan trọng:
Hyperplane: Trong không gian hai chiều, hyperplane là một đường thẳng. Trong không gian ba chiều, nó là một mặt phẳng. Trong không gian
nhiều chiều hơn, hyperplane là một siêu phẳng. Trong SVM, chúng ta tìm kiếm một hyperplane để phân chia dữ liệu thành các lớp.
Tối ưu hóa margin: Mục tiêu của SVM là tìm một hyperplane sao cho margin (khoảng cách nhỏ nhất từ hyperplane đến các điểm dữ liệu gần nhất của hai lớp) là lớn nhất có thể. Điều này đảm bảo rằng hyperplane sẽ có hiệu suất phân loại tốt trên dữ liệu mới.
Support Vectors: Các điểm dữ liệu gần nhất đến hyperplane được gọi là support vectors. Chúng đóng vai trò quan trọng trong việc xác định hyperplane tối ưu.
Tính phi tuyến tính: SVM cũng có thể được sử dụng để phân loại dữ liệu không phải tuyến tính bằng cách sử dụng hàm kernel để ánh xạ dữ liệu vào không gian đặc trưng cao chiều hơn, nơi một hyperplane tuyến tính có thể được sử dụng để phân loại dữ liệu.
Ý tưởng cơ bản của SVM là tìm một hyperplane tối ưu để phân chia giữa các lớp dữ liệu sao cho margin là lớn nhất có thể, và chúng ta sử dụng support vectors để xác định hyperplane này.
b, Hàm mất mát
Hàm mất mát (loss function) của SVM thường sử dụng hàm mất mát dạng hinge loss để đo lường sự mất mát trong quá trình huấn luyện. Hinge loss được sử dụng để đo lường mức độ "lỗi" hoặc "mất mát" khi một điểm dữ liệu được phân loại sai hoặc nằm trong vùng margin xung quanh hyperplane. Dưới đây là biểu diễn của hinge loss:
Trong đó:
yi là nhãn của điểm dữ liệu thứ yi = {−1,1}).
w là vector trọng số của hyperplane.
xi là vectơ đặc trưng của điểm dữ liệu thứ i.
b là hệ số bias.
w⋅xi+b là giá trị của biểu thức tuyến tính của điểm dữ liệu xi theo hyperplane.
Biểu thức 1−yi(w xi+b) là khoảng cách của điểm dữ liệu xi đến⋅ hyperplane, nhân với nhãn của nó yi. Nếu điểm dữ liệu được phân loại đúng (tức là yi(w xi+b)≥1), thì hinge loss sẽ là 0, tức là không có mất mát. Ngược⋅ lại, nếu điểm dữ liệu được phân loại sai hoặc nằm trong vùng margin (tức là (w⋅xi+b)<1), thì hinge loss sẽ là một giá trị dương, thể hiện mức độ lỗi của phân loại.
Tổng hinge loss trên toàn bộ tập dữ liệu huấn luyện thường được sử dụng làm hàm mất mát trong quá trình tối ưu hóa SVM, với mục tiêu là tối thiểu hóa tổng mất mát và đồng thời tối ưu hóa margin.
c, Hạt nhân (kernel)
Hạt nhân (kernel) cho phép ánh xạ dữ liệu từ không gian đặc trưng ban đầu vào một không gian cao chiều hơn. Việc này giúp SVM có khả năng phân loại dữ liệu phi tuyến tính bằng cách sử dụng một siêu phẳng (hyperplane) tại không gian cao chiều để phân chia các lớp dữ liệu.
Vai trò của hạt nhân là tạo ra một phép biến đổi phi tuyến tính từ không gian đặc trưng ban đầu sang không gian mới có số chiều cao hơn, nơi mà dữ liệu có thể được phân chia một cách tuyến tính. Điều này làm cho việc phân loại dữ liệu trở nên hiệu quả hơn, đặc biệt là đối với các tập dữ liệu không thể phân chia hoàn toàn bằng một siêu phẳng tuyến tính.
Một số hạt nhân phổ biến được sử dụng trong SVM bao gồm:
Linear Kernel: Đây là hạt nhân cơ bản nhất, không thực hiện bất kỳ phép biến đổi nào. Nó chỉ tính tích vô hướng giữa các vectơ đặc trưng.
Polynomial Kernel: Hạt nhân đa thức ánh xạ dữ liệu vào không gian cao chiều hơn thông qua một hàm đa thức. Công thức phổ biến cho hạt nhân đa thức là K(x,x′)=(x x′+c)d, trong đó d là bậc của đa thức và c là hệ số điều⋅ chỉnh.
Gaussian (RBF) Kernel: Hạt nhân Gaussian (RBF) ánh xạ dữ liệu vào không gian vô hạn chiều thông qua một hàm Gauss. Công thức phổ biến cho hạt nhân Gaussian là K(x,x′)=e−γ∣∣x−x′∣∣2, trong đó γ là hệ số điều chỉnh.
Sigmoid Kernel: Hạt nhân sigmoid ánh xạ dữ liệu vào không gian mới bằng một hàm sigmoid. Công thức phổ biến cho hạt nhân sigmoid là K(x,x
′)=tanh(αx⋅x′+c), trong đó α và c là các hệ số điều chỉnh.
Qua việc sử dụng các hạt nhân này, SVM có khả năng phân loại dữ liệu phi tuyến tính một cách hiệu quả, mở rộng khả năng áp dụng của nó đối với nhiều loại dữ liệu khác nhau.
d, Tối ưu hóa SVM
Trong tối ưu hóa SVM, có hai phương pháp chính được sử dụng:
phương pháp Lagrange gốc (dual form) và phương pháp tối ưu hóa hộp lồi.
Dưới đây là mô tả ngắn về cả hai phương pháp:
Phương pháp Lagrange gốc (dual form):
Ý tưởng chính của phương pháp Lagrange gốc là chuyển bài toán tối ưu hóa SVM từ không gian ban đầu sang không gian đối ngẫu sử dụng hệ số Lagrange.
Bằng cách sử dụng phương pháp này, chúng ta có thể giải quyết bài toán tối ưu hóa ban đầu thông qua việc tối ưu hóa một hàm mục tiêu mới, gọi là hàm Lagrangian.
Phương pháp Lagrange gốc giúp chúng ta giải quyết bài toán tối ưu hóa SVM một cách hiệu quả hơn, đặc biệt là khi bài toán ban đầu có ràng buộc phức tạp.
Phương pháp tối ưu hóa hộp lồi (convex optimization):
Phương pháp này tập trung vào việc giải quyết bài toán tối ưu hóa SVM dưới dạng một bài toán tối ưu hóa hộp lồi.
Bằng cách tận dụng tính chất lồi của hàm mất mát của SVM và ràng buộc của bài toán, chúng ta có thể sử dụng các phương pháp tối ưu hóa hộp lồi để tìm ra giải pháp tối ưu cho SVM.
Phương pháp tối ưu hóa hộp lồi thường được sử dụng trong các thư viện và công cụ thực tế để huấn luyện SVM một cách hiệu quả và nhanh chóng.
Cả hai phương pháp này đều giúp giải quyết bài toán tối ưu hóa SVM một cách hiệu quả, và sự lựa chọn giữa chúng thường phụ thuộc vào ngữ cảnh cụ thể của bài toán và tiện ích của từng phương pháp.
e, Ưu điểm của SVM
Support Vector Machines (SVM) có nhiều ưu điểm mà làm cho nó trở thành một trong những phương pháp phân loại phổ biến và mạnh mẽ trong lĩnh vực học máy. Dưới đây là một số ưu điểm chính của SVM:
- Hiệu suất tốt trong dữ liệu không gian lớn
- Hiệu suất tốt với dữ liệu tuyến tính và phi tuyến tính - Chống lại overfitting
- Ít ảnh hưởng bởi các điểm nhiễu - Thiết lập linh hoạt các hàm kernel - Tính toán hiệu quả
Những ưu điểm trên làm cho SVM trở thành một công cụ mạnh mẽ và linh hoạt cho nhiều bài toán phân loại khác nhau, đặc biệt là trong các tình
huống mà có sự biến động lớn trong dữ liệu và cần một mô hình tổng quát và hiệu quả.