Máy vectơ hỗ trợ SVM - viết tắt tên tiếng Anh support vector machine là một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên quan đến nh
Trang 1GIẢI THUẬT SVM(Suppot Vector Machine)
1 Giới thiệu về SVM.
Máy vectơ hỗ trợ (SVM - viết tắt tên tiếng Anh support vector machine)
là một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên quan đến nhau để phân loại và phân tích hồi quy SVM dạng chuẩn nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau Do đó SVM là một thuật toán phân loại nhị phân Với một bộ các ví dụ luyện tập thuộc hai thể loại cho trước, thuật toán luyện tập SVM xây dựng một
mô hình SVM để phân loại các ví dụ khác vào hai thể loại đó Một mô hình SVM là một cách biểu diễn các điểm trong không gian và lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các ví dụ luyện tập tới ranh giới là xa nhất có thể
Phân loại thống kê là một nhiệm vụ phổ biến trong học máy Trong mô hình học có giám sát, thuật toán được cho trước một số điểm dữ liệu cùng với nhãn của chúng thuộc một trong hai lớp cho trước Mục tiêu của thuật toán là xác
định xem một điểm dữ liệu mới sẽ được thuộc về lớp nào Mỗi điểm dữ liệu
được biểu diễn dưới dạng một vector p-chiều, và ta muốn biết liệu có thể chia
tách hai lớp dữ liệu bằng một siêu phẳng p − 1 chiều Đây gọi là phân loại tuyến
tính Có nhiều siêu phẳng có thể phân loại được dữ liệu Một lựa chọn hợp lý trong chúng là siêu phẳng có lề lớn nhất giữa hai lớp
2 Giải thuật học của SVM.
Support vector machines?
_1_
Trang 5a) Phân loại với SVM
- Cực đại hóa lề + cực tiểu hóa lỗi :
- Giải (1) : b, w
- Phân loại x: sign(x.w – b)
- Bài toán đối ngẫu của (1) :
- Giải (2): αi
Những xi tương ứng với αi > 0 là véctơ hỗ trợ (SV)
Tính b dựa trên tập SV
- Phân loại x:
b) SVM phi tuyến
Không gian input : phi tuyến Không gian trung gian : tuyến tính
_5_
Trang 6Chuyển không gian input => không gian trung gian:
- 2 chiều [x1, x2] không gian input => 5 chiều [x1, x2, x1x2, x12, x22] không gian trung gian (feature space)
- Phép chuyển đổi khó xác định, số chiều trong không gian trung gian rất lớn
- Hàm kernel (Hilbert Schmidt space): làm việc trong không gian input nhưng ngầm định trong không gian trung gian
c) SVM cho vấn đề nhiều lớp (>2)
- Xây dựng trực tiếp mô hình cho nhiều lớp
Xây dựng bài toán tối ưu cho k lớp
- 1-tất cả (1 vs all)
Mỗi mô hình phân tách 1 lớp từ các lớp khác
k lớp : k mô hình
- 1-1 (1 vs 1)
Mỗi mô hình phân tách 2 lớp
k lớp : k*(k-1)/2 mô hình
- Phương pháp khác
Phân tách 2 nhóm, mỗi nhóm có thể bao gồm nhiều lớp
Xác định cách phân tách nhóm sao cho có lợi nhất
d) Giải thuật SVM
- SVM = giải của bài toán quy hoạch toàn phương
- Giải quadratic program
Sử dụng trình tối ưu hóa sẵn có: phương pháp Quasi-Newton, gradient
Phân rã vấn đề (decomposition hoặc chunking)
_6_
Trang 7 Phân rã vấn đề thành những vấn đề con kích thước 2 như SMO (Platt, 1998)
- Diễn giải SVM bằng phương pháp khác
Lớp các giải thuật của Mangasarian & sinh viên của ông
Hoặc đưa về giải bài toán quy hoạch tuyến tính hay hệ phương trình tuyến tính
e) Giải thuật SVM cho khối dữ liệu khổng lồ
- Active SVM
Chọn tập dữ liệu con từ tập dữ liệu ban đầu
Học trên tập dữ liệu con đó
- Học song song SVM
Chia thành những khối dữ liệu nhỏ phân trên các máy tính con
Học độc lập và song song
Tập hợp những mô hình con để sinh ra mô hình tổng thể
- Học tiến hóa SVM (incremental learning)
Chia thành những khối dữ liệu nhỏ
Load lần lượt từng khối
Cập nhật mô hình
- Học trên dữ liệu symbolic
Chuyển dữ liệu về dạng trình bày ở mức cao hơn
Có thể là clusters, interval,
Học trên dữ liệu trừu tượng này
_7_
Trang 8 Thay đổi cách tính hàm kernel
- Boosting SVM
Lấy mẫu con từ tập dữ liệu ban đầu
Học trên tập dữ liệu con này
Phân loại toàn bộ dữ liệu
Những dữ liệu bị phân loại sai sẽ được cập nhật trọng lượng tăng
Lấy mẫu dựa trên trọng lượng gán cho dữ liệu
Tiếp tục học, etc
Quá trình lặp k lần
Các mô hình con sẽ bình chọn khi phân loại dữ liệu mới đến f) Hồi quy với SVM
- Tìm siêu phẳng (Input hoặc Hilbert space)
Đi qua tất cả các điểm với độ lệch chuẩn là epsilon
g) Một lớp với SVM
_8_
Trang 9- Tìm siêu cầu (Input hoặc Hilbert space)
Tâm o bán kính nhỏ nhất r
Chứa hầu hết các điểm dữ liệu
3 Ứng dụng của SVM
- Nhận dạng: tiếng nói, ảnh, chữ viết tay (hơn mạng nơron)
- Phân loại văn bản, khai mỏ dữ liệu văn bản
- Phân tích dữ liệu theo thời gian
- Phân tích dữ liệu gien, nhận dạng bệnh, công nghệ bào chế thuốc
- Phân tích dữ liệu marketing
- …
_9_
Trang 10SVM nhận dạng chữ số viết tay
SVM phân loại text
_10_
Trang 11SVM phân loại gen
4 Kết luận và hướng phát triển
a) Kết luận
- SVM + kernel methods
Phương pháp học mới
Cung cấp nhiều công cụ
Nền tảng lý thuyết học thống kê
Tối ưu toàn cục, mô hình chất lượng cao, chịu đựng được nhiễu
Thành công trong nhiều ứng dụng
- Hạn chế
Khó dịch kết quả
Độ phức tạp vẫn cao
Xử lý dữ liệu kiểu số
Tham số đầu vào
b) Hướng phát triển
- Multi-class
- Clustering
- Xử lý dữ liệu lớn
- Dữ liệu không phải kiểu số
- Dữ liệu không cân bằng
- Xây dựng hàm nhân
- Dịch kết quả
- Tìm kiếm thông tin (ranking)
_11_