Tải bản đầy đủ (.ppt) (37 trang)

Thuật toán máy hỗ trợ vector

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 (414.29 KB, 37 trang )

Thuật toán máy hỗ trợ vector
(support vector machine-SVM)

Người hướng dẫn:CN.Vũ Tiến Thành
Sinhviên :Đinh thị Hương
Lớp : k52CA


Nội dung chính
I.Phát biểu bài tốn.
1.Trình bày tóm tắt về phân lớp dữ liệu
2.Tại sao lại sử dụng thuật toán SVM để phân lớp
dữ liệu?
II. Thuật toán máy hỗ trợ vector(SVM)
1. Định nghĩa
2. Mục đích
3. Mơ hình giải thuật
4.Các câu hỏi
5.Giải quyết
6.Transductive support vector machine(TSVM)
III.Ứng dụng của SVM


I.Phát biểu bài tốn:
1.Trình bày tóm tắt về phân lớp dữ liệu
- Phân lớp dữ liệu là một kỹ thuật trong khai
phá dữ liệu được sử dụng rộng rãi nhất và
được nghiên cứu mở rộng hiện nay.
- Mục đích: Để dự đoán những nhãn phân
lớp cho các bộ dữ liệu hoặc mẫu mới.
- Đầu vào: Một tập các mẫu dữ liệu huấn


luyện,với một nhãn phân lớp cho mỗi mẫu
dữ liệu
- Đầu ra:Bộ phân lớp dựa trên tập huấn
luyện,hoặc những nhãn phân lớp


- Kỹ thuật phân lớp dữ liệu được
tiến hành bao gồm 2 bước:
Bước 1:
Xây dựng mơ hình từ tập huấn luyện

Bước 2:
Sử dụng mơ hình – kiểm tra tính đúng
đắn của mơ hình và dùng nó để phân lớp dữ
liệu mới.


Bước 1. Xây dựng mơ hình
- Mỗi bộ/mẫu dữ liệu được phân vào một lóp
được xác định trước.
- Lớp của một bộ/mẫu dữ liệu được xác định
bởi thuộc tính gán nhãn lớp
- Tập các bộ/mẫu dữ liệu huấn luyện-tập
huấn luyện – được dùng để xây dựng mơ
hình.
- Mơ hình được biểu diễn bởi các luật phân
lớp,các cây quyết định hoặc các cơng thức
tốn học.




Bước 2: Sử dụng mơ hình
- Phân lớp cho những đối tượng mới hoặc
chưa được phân lớp
- Đánh giá độ chính xác của mơ hình
+ Lớp biết trước của một mẫu/bộ dữ liệu
đem kiểm tra được so sánh với kết quả thu
được từ
mơ hình.
+ Tỉ lệ chính xác bằng phần trăm các mẫu/bộ
dữ liệu được phân lớp đúng bởi mô hình
trong số các lần kiểm tra.



- Các thuật toán phân lớp dữ liệu
phổ biến:
+ Thuật toán cây quyết định
+ Thuật toán SVM
+ Thuật toán phân lớp Bayes
+ Thuật toán phân lớp K người láng giềng
gần nhất.


2.Tại sao lại sử dụng thuật toán SVM
trong phân lớp dữ liệu?
- SVM rất hiệu quả để giải quyết bài tốn dữ
liệu có số chiều lớn(ảnh của dữ liệu biểu
diễn gene,protein, tế bào)
- SVM giải quyết vấn đề overfitting rất tốt (dữ

liệu có nhiễu và tách dời nhóm hoặc dữ liệu
huấn luyện quá ít)
- Là phương pháp phân lớp nhanh
- Có hiệu suất tổng hợp tốt và hiệu suất tính
tốn cao.


II.Thuật toán SVM
1.Định nghĩa:
- Là phương pháp dựa trên nền tảng của lý
thuyết thống kê nên có một nền tảng tốn
học chặt chẽ để đảm bảo rằng kết quả tìm
được là tối ưu
- Là thuật toán học giám sát (supervied
learning)được sử dụng cho phân lớp dữ liệu.
- Là 1 phương pháp thử nghiệm,đưa ra 1
trong những phương pháp mạnh và chính
xác nhất trong số các thuật tốn nổi tiếng
về phân lớp dữ liệu


- SVM là một phương pháp có tính tổng qt cao
nên có thể được áp dụng cho nhiều loại bài tốn
nhận dạng và phân loại

-Ý tưởng chính của SVM: Là chuyển tập
mẫu từ không gian biểu diễn Rn của chúng sang
một khơng gian Rd có số chiều lớn hơn. Trong
khơng gian Rd, tìm một siêu phẳng tối ưu để
phân hoạch tập mẫu này dựa trên phân lớp của

chúng, cũng có nghĩa là tìm ra miền phân bố của
từng lớp trong khơng gian Rn để từ đó xác định
được phân lớp của 1 mẫu cần nhận dạng


I.Thuật tốn SVM
2. Mục đích
- Là tìm ra hàm phân lớp hiệu quả nhất để
phân biệt thành phần của các lớp trong việc
huấn luyện dữ liệu.
+ Ví dụ trong tập dữ liệu phân chia tuyến
tính , hàm phân loại tuyến tính tương ứng với
1 siêu phẳng f(x) phân chia 2 tập hợp.khi
X n hiện
hàm này đc xác định thì bất kỳ 1 thể
mới sẽ được phân lớp đơn giản bằng việc xét
X n ) nếu
X n hàm f(
dấu của
thuộc về tập các giá
dương
thì
Xn
f( )>0 ngược lại thì thuộc tập các giá trị âm.


I. Thuật tốn SVM
3. Mơ hình giải thuật
- Tính chất nổi trội của SVM là đồng thời cực tiểu
lỗi phân lớp và cực đại khoảng cách lề giữa các lớp

+ Giả sử có 1 số điểm dữ liệu thuộc một trong hai
lớp,và mục tiêu của ta là xác định xem dữ liệu mới
thêm vào sẽ thuộc lớp nào.Ta coi mỗi điểm dữ liệu
như một vector p chiều và chúng ta muốn biết là
liệu có tách được những điểm đó bằng một siêu
phẳng p-1 chiều hay không( được gọi là phân loại
tuyến tính)


+ Xem dữ liệu đầu vào như 2 tập vector n
chiều,một SVM sẽ xây dựng một siêu phẳng
riêng biệt trong khơng gian đó sao cho nó tối
đa hóa biên lề giữa hai tập dữ liệu.
+ Để tính lề,hai siêu phẳng song song được xây
dựng,mỗi cái nằm ở một phía của siêu phẳng
phân biệt và chúng được đẩy về phía hai tập dữ
liệu.
+ Một cách trực quan,một phân biệt tốt sẽ thu
được bởi siêu phẳng có khoảng cách lớn nhất
đến các điểm lân cận của hai lớp,vì lề càng lớn
thì sai số tổng quát hóa của bộ phân lớp càng
tốt hơn.


H3 (green) doesn't separate the 2 classes. H1 (blue) does, with a
small margin and H2 (red) with the maximum margin.


Trình bày với bộ phân lớp nhị phân
- Cho tập dữ liệu học gồm n dữ liệu gắn nhãn

D={(x1, y1), (x1, y1),..., (xn, yn)} với yi ∈ {-1,1}
là một số nguyên xác định lớp của xi. Mỗi xi
là một văn bản được biểu diễn dưới dạng một
vector thực d chiều. Bộ phân lớp tuyến tính
(mơ hình phân lớp) được xác định thơng qua
một siêu phẳng có dạng:
f(x) = w.x – b = 0
trong đó: w là vector pháp tuyến của siêu
phẳng và b đóng vai trị là tham số mơ hình
- Bộ phân lớp nhị phân
được
xác định thơng qua dấu của f(x):


- Để tìm được siêu phẳng phân cách có lề
cực đại,xây dựng các vector hỗ trợ và các
siêu phẳng song song với siêu phẳng
phân cách và gần vector hỗ trợ nhất,đó là
các hàm :
w.x – b = 1
2
w.x – b = -1
w
- Khoảng cách giữa 2 siêu phẳng là
do
w
đó cần phải cực tiểu hóa
để đảm bảo
với mọi i ta có:
w.x – b > 1 cho lớp thứ nhất

w.x – b <-1 cho lớp thứ hai


Hình 1. Biểu diễn siêu phẳng lề cực đại cho bộ phân lớp SVM trên
2 lớp


- Để đảm bảo là ln tìm đc siêu phẳng phân

cách có lề cực đại,hàm
uu
r xác định SVM sẽ làm
cực đại hàm sau với
w vector và hằng số b:
Lp

=

1
2

t
uuruur
−∑ α i yi(w.xi − b) + ∑ α i
t

i =1

i =1


Trong đó : + t là số lượng mẫu thử
+α i với i =1…t là các số nguyên
α i biến
dương thỏa mãn đạo hàm Lp theo
=0.
αi
được gọi là nhân tử lagrange(điểm yên ngựa)
và Lp được gọi là hàm lagrange
uu
r
+ vector w và hằng số b xác định mặt
phẳng


- Với cách làm như trên thì ta có: yi(w.xi -b) -1
>0
vấn đề này được giải quyết bằng các kỹ thuật
lập trình bậc 2.vector w biểu thị sự kết hợp
t
giữa số hạng tuyến
tính
và đào tạo dữ liệu:
w=
α . yi.xi


i =1

i


với xi là vector hỗ trợ,nó nằm trên lề và thỏa

mãn yi(w.xi -b) =1
b =w.xi – yi
trên đây là một cách tương đối để xác định b.
Trong thực tế,nó sẽ chính xác hơn khi được
tính theo cơngNsv
thức:
1
b=
∑ (w.xi − yi )
N sv

i =1


4.Câu hỏi
a.Có thể mở rộng mơ hình SVM để xử lý trường
hợp cho phép lỗi tồn tại,khi nào siêu phẳng
tốt nhất cho phép tồn tại một số lỗi trong đào
tạo dữ liệu?
b.Có thể mở rộng mơ hình SVM trong tình
trường hợp dữ liệu khơng phân chia tuyến
tính?
c.Có thể thiết kế thuật giải trên cho việc tìm
siêu phẳng phân cách có lề cực đại cho hàng
ngàn hay hàng triệu thực thể không?


5.Trả lời:

a.Có thể mở rộng mơ hình SVM để xử lý trường
hợp cho phép lỗi tồn tại,khi nào siêu phẳng tốt
nhất cho phép tồn tại một số lỗi trong đào tạo dữ
liệu?

- giả sử có 1 số dữ liệu âm vượt quá giới

hạn,những điểm này thể hiện số lượng lỗi ngay
cả khi tồn tại mặt phẳng phân cách có lề cực đại.
- phương pháp lề mềm được sử dụng để mở
rộng bài tốn SVM do đó siêu phẳng sẽ cho phép
một số dữ liệu nhiễu tồn tại.


- Phương pháp lề mềm (softmargin) được
sử dụng bằng cách đưa thêm một biến nới
lỏng nó đo độ phân lớp sai cho dữ liệu
x:
thỏamãn các ràng buộc
ξi

được tính bằng khoảng cách từ lớp dữ
liệu bị lỗi đến hàm f(xn).do đó tổng giá trị
các biến tạm được so sánh với giá trị của
hàm cực tiểu ban đầu.


Vd minh họa dữ liệu bị nhiễu



×