Tải bản đầy đủ (.doc) (11 trang)

GIẢI THUẬT SVM (Support vector machines)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (454.34 KB, 11 trang )

GIẢ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_
_2_
_3_
_4_
a) 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 x
i
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_
Chuyển không gian input => không gian trung gian:
- 2 chiều [x
1
, x
2
] không gian input => 5 chiều [x
1
, x
2
, x
1
x
2
, x
1
2
, x
2

2
] 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_
• 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
• Thay đổi cách tính hàm kernel
_7_
- 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_
- 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_
SVM nhận dạng chữ số viết tay
SVM phân loại text
_10_
SVM 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_

×