Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 37

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 toá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 toá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 toá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 toá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 toá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 toá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 toá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 quát cao
nên có thể được áp dụng cho nhiều loại bài toá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 toá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 hàm
này đc xác định thì bất kỳ 1 thể hiện X n mới sẽ
được phân lớp đơn giản bằng việc xét dấu của
hàm f( X n ) nếu X n thuộc về tập các giá dương thì
f( X n )>0 ngược lại thì thuộc tập các giá trị âm.
I. Thuật toá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
w.x – b = -1 2

- Khoảng cách giữa 2 siêu phẳng là w do đó


cần phải cực tiểu hóa w để đả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à luôn tìm đc siêu phẳng phân cách
có lề cực đại,hàm xác
 định SVM sẽ làm cực đại
hàm sau với vector w và hằng số b:
t  t

Lp = 1   i yi(w.xi  b)    i
2 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 dương
thỏa mãn đạo hàm Lp theo biến  i =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

+ 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 giữa số
hạng tuyến tính và đào
t
tạo dữ liệu:
w    i . yi.xi
i 1

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ông thức:
1 Nsv
b=
N sv
 (w.xi  yi )
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 toá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
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?
- SVM ban đầu là một thuật toán phân lớp tuyến
tính,nhờ áp dụng các hàm kernel, thuật toán có thể
tìm ra các siêu phẳng trong không gian phi tuyến
đặc trưng biến đổi.
- Mở rộng tích vô hướng thông qua hàm ánh xạ
cho
 biến trong xi. yi gian H lớn hơn và
 không
 ( xi
thậm chí) có thể vô xihạn chiều,theo đó đẳng thức vẫn
được giữ đúng.
Trong mỗi đẳng thức,khi chúng ta có tích vô hướng
thì chúng
 ta cũng tính được tích vô hướng
thông qua xi. phép
yi biến đổi các vectors  
 ( xi ). ( yi )
và nó được gọi là hàm kernel
- Hàm kernel được sử dụng để xác định nhiều
quan hệ đầu vào không tuyến tính.

- Đối với hàm kernel tuyến tính ta có thể xác định


được nhiều hàm bậc hai hoặc hàm mũ.

- Trong những năm gần đây ,nhiều nghiên cứu đã


đi sâu vào nghiên cứu các kernel khác nhau cho
sự phân lớp SVM và cho nhiều thống kê thử
nghiệm khác.
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?
- Một trong những trở ngại ban đầu của SVM là
kém hiệu quả trong việc tính toán.
- Tuy nhiên vấn đề này đang được giải quyết
thành công.
+ Cách tiếp cận :chia các vấn đề tối ưu hóa
lớn thành các vấn đề nhỏ hơn sao cho cuối
cùng chỉ gồm một vài biến được lựa chọn cẩn
thận để sự tối ưu hóa đạt hiệu quả cao.Quá
trình này được lặp đi lặp lại cho đến khi tất cả
các vấn đề tối ưu hóa được triển khai thành
công.
+Một cách tiếp cận mới gần đây là xem xét các
vấn đề nghiên cứu về SVM là tìm ra một bao
đóng nhỏ nhất của tập mẫu dữ liệu.
Với những mẫu dữ liệu này,khi ánh xạ vào
không gian n chiều,đại diện của tập gốc sẽ được
sử dụng để xây dựng những bao đóng xấp xỉ
nhỏ nhất của tập mẫu dữ liệu.Phương pháp này
đạt hiệu quả rất cao.ta có thể sử dụng máy
core-vector để phân lớp được hàng triệu dữ liệu
trong vài giây.
5.Transductive support vector machine
(TSVM)
- Là một mở rộng của support vector machine
chuẩn với dữ liệu chưa gán nhãn.
- Mục tiêu là tìm một gán nhãn của các dữ liệu
chưa gán nhãn, sao cho tồn tại một biên tuyến
tính có lề cực đại trên cả dữ liệu gán nhãn ban
đầu và dữ liệu chưa gán nhãn.
-Giả sử có L mẫu được gán nhãn và U mẫu
chưa được gán nhãn gọi là tập U
- Cực tiểu hóa theo các biến ( ) hàm
mục tiêu:

đáp ứng các đk :

trong đó C và C* là những tham số do người dùng thiết


lập,có ý nghĩa cân bằng độ lớn của lề với những ví dụ bị
phân lớp sai hoặc những ví dụ chưa được gán nhãn.
-Ban đầu dùng bộ phân lớp học quy nạp gán nhãn cho
các ví dụ tập U sau đó nâng cấp nghiệm bằng cách đổi
lại nhãn cho các ví dụ trong tập U và L bị gán sai rồi
*
huấn luyện lại,nó được lặp cho đến khi C và C hoặc cả
*

2 không còn nhỏ thua tham số người dùng C* nữa.


Ví dụ minh họa TSVM

- các dữ liệu đã gán nhãn,siêu phẳng có phân


cách lề cực đại là đường chấm chấm,
- với các dữ liệu chưa gán nhãn(các điểm đen)thì
siêu phẳng có phân cách lề cực đại là đường
thẳng màu đen
III.Ứng dụng của SVM: Sử dụng trong
phân loại và nhận dạng
- Trong việc nhận dạng chữ viết tay tiếng Việt
+Dựa trên cơ sở các thành phần liên thông
của ảnh,phân tập ký tự tiếng Việt thành 3 nhóm
(box,dạng chữ rời,dạng chữ liên tục) và tách các
ký tự có dấu thành các phần rời nhau.
+Sau đó xây dựng máy phân lớp SVM để
nhận dạng cho từng phần chữ và phần dấu.
+ Kết quả thực nghiệm cho thấy mô hình
nhận dạng có độ chính xác tương đối cao.
- Trong nhận dạng mặt người :
+Giai đoạn huấn luyện: các ảnh mẫu được
vector hóa x= { X 1 , , X 900 } rồi dùng phương
pháp PCA để rút trích đặc trưng thành vector y
={ Y1 , , Y100 } rồi đưa vào bộ huấn luyện SVM

+Giai đoạn nhận dạng:Mẫu cần nhận dạng


được vector hóa và rút trích như trên sau đó
đưa vào bộ nhận dạng SVM để xác định lớp cho
mẫu.
- Phân tích vi ảnh protein subcelluar location
+ Ảnh đầu vào được tiền xử lý thông qua các
thuật giải khử nhiễu, điều chỉnh tự động cường
độ sáng.
+ Thuật giải MRF [9] cũng được áp lên ảnhnhằm
thực hiện segmentation để phân biệt rõ phần
nhân và các phần khác của ảnh.
+Biến đổi mô tả trong phần 2 được áp trên các
ảnh đầu vào với tối đa 8 tỉ lệ phân rã khác nhau
+ Bước phân lớp được thực hiện với thuật giải
SVM đa tỉ lệ cho phù hợp với tính chất đa phân
giải của các hệ số sau khi biến đổi
Tài liệu tham khảo:
- tài liệu tham khảo chính: [3] Xindong Wu, Vipin Kumar, J.Ross
Quinlan, Joydeep Ghosh, Qiang Yang, Hiroshi Motoda,
Geoffrey J. McLachlan, Angus Ng, Bing Liu, Philip S. Yu , Zhi-
Hua Zhou, Michael Steinbach, David J. Hand, Dan Steinberg,
Top 10 algorithms in data mining, Knowl Inf Syst (2008)
- [CV95] Corinna Cortes, Vladimir Vapnik (1995). Support-Vector
Networks, Machine Learning, 20(3): 273-297
- http://en.wikipedia.org/wiki/Support_vector_machine
- Nguyễn Thị Hương Thảo, Nguyễn Thị Thùy Linh, Nguyễn Thu
Trang, Hà Quang Thụy (2007). Một giải pháp học bán giám
sát SVM phân lớp trang web tiếng Việt, Baos cao FAIR 07,
Nha Trang
- http://en.wikipedia.org/wiki/Regression_analysis
- http://en.wikipedia.org/wiki/Supervised_learning
- http://www.slideshare.net/khuongquynh/bai-4-phan-
lop-presentation
- http://en.wikipedia.org/wiki/Statistical_classification
Xin chân thành cảm ơn!

You might also like