2.1 Học máy
2.1.6 Thuật tốn SVM (Support Vector Machine)
2.1.6.1 Khái niệm
SVM (Support Vector Machine) là một thuật tốn học máy cĩ giám sát được sử dụng rất phổ biến ngày nay trong các bài tốn phân lớp (classification) hay hồi quy (Regression).
SVM được đề xuất bởi Vladimir N. Vapnik và các đồng nghiệp của ơng vào năm 1963 tại Nga và sau đĩ trở nên phổ biến trong những năm 90 nhờ ứng dụng giải quyết các bài tốn phi tuyến tính (nonlinear) bằng phương pháp Kernel Trick.
12
2.1.6.2 Ý tưởng của thuật tốn
Ý tưởng của SVM là tìm một siêu phẳng (hyper lane) để phân tách các điểm dữ liệu. Siêu phẳng này sẽ chia khơng gian thành các miền khác nhau và mỗi miền sẽ chứa một loại dữ liệu [4]
Hình 2.2 Minh họa siêu phẳng trong SVM
Siêu phẳng được biểu diễn bằng hàm số < W.X > = b (W và X là các vector < W.X> là tích vơ) Hay WT = b (WT là ma trận chuyển vị)
13
Hình 2.3 Vấn đề chọn siêu phẳng trong SVM
Vấn đề chọn siêu mặt phẳng tối ưu:
Giả sử chúng ta phải phân loại tập dữ liệu các lớp dương (màu xanh) nhãn là 1 và các dữ liệu lớp âm (màu đỏ) nhãn là -1 (tập dữ liệu cĩ thể phân tách tuyến tính).
Siêu phẳng phân tách hai lớp dữ liệu H0 thỏa mãn <W.X> + b = 0. Siêu phẳng này tạo ra hai nửa khơng gian dữ liệu:
Khơng gian các dữ liệu lớp âm Xi thỏa mãn <W.Xi> + b ≤ -1 và khơng gian dữ liệu lớp dương Xj thỏa mãn < W.Xj> + b ≥ 1
14
Hình 2.4 Margin trong vấn đề chọn siêu phẳng
Tiếp theo ta chọn hai siêu phẳng lề H1 đi qua điểm thuộc lớp âm và H2 đi qua điểm thuộc lớp dương đều song song với H0
+ H1: <W.X> + b = -1 + H2: <W.X> + b = 1 Khoảng cách từ H1 đến H0 là d_ Khoảng cách từ H2 đến H0 là d+ m = d_ + d+ được gọi là mức lề 15
Siêu phẳng tối ưu mà chúng ta cần chọn là siêu phẳng phân tách cĩ lề lớn nhất. Lý thuyết học máy đã chỉ ra rằng một siêu phẳng như vậy sẽ cực tiểu hĩa giới hạn lỗi mắc phải.
2.1.6.3 Ưu nhược điểm
- Ưu điểm
Xử lý trên khơng gian số chiều cao: SVM là một cơng cụ tính tốn hiệu quả trong khơng gian chiều cao, trong đĩ đặc biệt áp dụng cho các bài tốn phân loại văn bản và phân tích quan điểm nơi chiều cĩ thể cực kỳ lớn. Tiết kiệm bộ nhớ: Do chỉ cĩ một tập hợp con của các điểm được sử dụng trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ cĩ những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết định.
Tính linh hoạt - phân lớp thường là phi tuyến tính. Khả năng áp dụng Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ đĩ khiến cho hiệu suất phân loại lớn hơn.
- Nhược điểm
Bài tốn số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá tồi. Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM. Điều này chưa giải thích được xác suất xuất hiện của một thành viên trong một nhĩm là như thế nào. Tuy nhiên hiệu quả của việc phân lớp cĩ thể được xác định dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp mà chúng ta đã bàn luận ở trên. [5]