[machine learning] kỹ thuật svm

32
ĐẠI HC QUC GIA TP. HCHÍ MINH TRƯỜNG ĐẠI HC CÔNG NGHTHÔNG TIN KHOA KHOA HC MÁY TÍNH BÁO CÁO ĐỒ ÁN NHP MÔN CÔNG NGHTRI THC VÀ MÁY HC PHƯƠNG PHÁP SUPPORT VECTOR MACHINES LÝ THUYT VÀ NG DNG Ging viên hướng dn:  THS. NGUYN ĐÌNH HIN Sinh viên thc hin: NGUYN TRÍ HI 11520094 NGUYN HOÀNG NGHĨA 11520603 Lp: KHTN2011 Lp môn hc: C110.E11 Khoá: 2011 TP. HChí Minh, Ngày 04 tháng 12 năm 2013 

Upload: nguyen-hoang-nghia

Post on 12-Apr-2018

238 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 1/32

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN 

KHOA KHOA HỌC MÁY TÍNH BÁO CÁO ĐỒ ÁN 

NHẬP MÔN CÔNG NGHỆ TRI THỨC VÀ MÁY HỌC PHƯƠNG PHÁP SUPPORT VECTOR MACHINES 

LÝ THUYẾT VÀ ỨNG DỤNG 

Giảng viên hướng dẫn: THS. NGUYỄN ĐÌNH HIỂN Sinh viên thực hiện:

NGUYỄN TRÍ HẢI 11520094 NGUYỄN HOÀNG NGHĨA 11520603 

Lớp:  KHTN2011 

Lớp môn học:  C110.E11 Khoá: 2011 

TP. Hồ Chí Minh, Ngày 04 tháng 12 năm 2013 

Page 2: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 2/32

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN 

KHOA KHOA HỌC MÁY TÍNH BÁO CÁO ĐỒ ÁN 

NHẬP MÔN CÔNG NGHỆ TRI THỨC VÀ MÁY HỌC PHƯƠNG PHÁP SUPPORT VECTOR MACHINES 

LÝ THUYẾT VÀ ỨNG DỤNG 

Giảng viên hướng dẫn: THS. NGUYỄN ĐÌNH HIỂN Sinh viên thực hiện:

NGUYỄN TRÍ HẢI 11520094 NGUYỄN HOÀNG NGHĨA 11520603 

Lớp:  KHTN2011 

Lớp môn học:  CS110.E11 Khoá: 2011 

TP. Hồ Chí Minh, Ngày 04 tháng 12 năm 2013 

Page 3: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 3/32

MỞ ĐẦU Tầm quan trọng của việc học trong tri thức của con người là luôn

là vấn đề đặt lên hàng đầu. Trong tin học, khi mà các hệ chuyên giachưa đáp ứng đủ các vấn đề cần giải quyết. Đồng thời việc cập nhật sựthay đổi tự nhiên là việc rất tốn kém. Giải pháp đặt ra là cho các máytính tự động học và giải quyết các vấn đề dựa trên những dữ liệu thựctế. Học máy (Machine learning) là một nhánh quan trọng của trí tuệnhân tạo nghiên cứu cac phương pháp, kỹ thuật cho phép máy tính cóthể tự động học dữ liệu để giải quyết một vấn đề cụ thể nào đó.

Trong quá trình tiếp nhận tri thức của con người. Phân loại

(Classification) là một quá trình tự nhiên giúp cho việc tiếp nhận và trithức có thể được hệ thống lưu trữ cụ thể. Có nhiều phương pháp phânloại đã được nghiên cứu và được áp dụng. Hiện nay, phương pháp phânloại Support Vector Machines là một trong những phương pháp mạnh vàhiệu quả để giải quyết các bài toán phân lớp phi tuyến được Vapnik vàChervonenkis giới thiệu vào năm 1995.

Page 4: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 4/32

LỜI CẢM ƠN Lời đầu tiên chúng em xin được bày tỏ lòng biết ơn sâu sắc nhất

tới ThS. Nguyễn Đình Hiển, Khoa Khoa học máy tính, Đại học Công nghệthông tin ĐHQG-HCM, người đã tận tình hướng dẫn nhóm em kiến thứccăn bản và thiết yếu để hoàn thành đồ án. 

Tiếp đến, xin cám ơn các bạn lớp CS110.E11 đã cùng nhóm trao

đổi và bổ sung kiến thức hỗ trợ cho việc hoàn thiện đồ án. 

TP. Hồ Chí Minh, Ngày 04 tháng 12 năm 2013 

Nguyễn Trí Hải – Nguyễn Hoàng Nghĩa 

Page 5: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 5/32

NHẬN XÉT CỦA GIẢNG VIÊN ···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

Page 6: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 6/32

MỤC LỤC DANH MỤC HÌNH VẼ ............................................................ B 

CHƯƠNG I. TỔNG QUAN ĐỒ ÁN  ............................................. 1 1. Nội dung chung ...................................................... 1 2. Phân công thực hiện  ............................................... 1 

CHƯƠNG II. CÁC KHÁI NIỆM CƠ BẢN ..................................... 2 1. Bài toán phân lớp

và phương pháp Support Vector Machines. ................ 2 2. Phân lớp tuyến tính  ................................................ 2 3. Ma trận GRAM ........................................................ 3 

4. Không gian đặc trưng .............................................. 3 5. Hàm hạt nhân ........................................................ 4 6. Kết chương ............................................................ 6 

CHƯƠNG III. PHƯƠNG PHÁP SUPPORT VECTOR MACHINES ....... 7 1. Ý tưởng  ................................................................. 7 2. Cơ sở lý thuyết ....................................................... 8 3. Bài toán phân 2 lớp với SVM .................................... 8 4. Bài toán phân đa lớp với SVM ................................... 13 

5. Các bước chính của phương pháp SVM ...................... 13 6. So sánh và một số cải tiến ....................................... 13 

CHƯƠNG IV. ỨNG DỤNG  ....................................................... 15 1. Một số ứng dụng của SVM  ....................................... 15 2. Mô phỏng phương pháp SVM

qua biểu diễn hình học bằng Matlab .......................... 16 3. Xây dựng chương trình lọc thư rác ............................ 16 

CHƯƠNG V. TỔNG KẾT .......................................................... 21 PHỤ LỤC 

Chạy thử mô phỏng phương pháp SVMqua biểu diễn hình học bằng Matlab .......................... 22 

THAM KHẢO  ........................................................................ 25 

Page 7: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 7/32

DANH MỤC HÌNH ẢNH Hình 2.1 Ánh xạ Φ từ không gian dữ liệu X

sang không gian đặc trưng F ....................................... 4 

Hinh 2.2 Ví dụ hàm hạt nhân ................................................... 4 

Hình 3.1 Mô tả phương pháp SVM ............................................ 8 

Hình 3.2 Tập dữ liệu được phân chia tuyến tính ......................... 9 

Hình 3.3 Tập dữ liệu phân chia tuyến tính nhưng có nhiễu .......... 10 

Hình 3.4 Tập dữ liệu không phân chia tuyến tính ....................... 11 

Hình 3.5 Ví dụ biểu diễn tập dữ liệu trên không gian 2 chiều ....... 12 

Hình 4.1 Phân loại biểu cảm .................................................... 15 

Hình 4.2 Phân loại ảnh  ........................................................... 15 

Hình 4.3 Tiền xử lý email ........................................................ 17 

Hình 4.4 Trích xuất thông tin email  .......................................... 18 

Hình 4.5 Quá trình học dữ liệu ................................................. 19 

Hình 4.6 Các từ mẫu có khả năng là spam ................................ 19 

Hình 4.7 Chạy thử chương trình ............................................... 20 

Page 8: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 8/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

1

CHƯƠNG I 

TỔNG QUAN ĐỒ ÁN

1. 

Nội dung chung.* Tên đề tài:Phương pháp Support Vector Machines: Lý thuyết và ứng dụng.

* Giảng viên hướ ng dẫn:

ThS. Nguyễn Đình Hiển.

* Sinh viên thự c hiện:

 Nguyễn Trí Hải, Nguyễn Hoàng Nghĩa. 

* Khoá học:

Khoá 2011 (Ngày nhậ p học: Tháng 09/2011).

* Thông tin liên lạc của sinh viên:

STT  Tên  MSSV  Email 1   Nguyễn Trí Hải  11520094  [email protected] 2   Nguyễn Hoàng Nghĩa  11520603  [email protected] 

* Chương trình, ứ ng dụng sử  dụng:

-  Chương trình lậ p trình: Mathworks Matlab R2012b.-  Môi trườ ng lậ p trình: Matlab.

2.  Phân công thự c hiện.

Phân công  Thực hiện Tìm kiếm, tổng hợp tài liệu 

Cả nhóm  Lên nội dung cần làm cho đề tài, tìm kiếm tài liệu: - Thời gian thực hiện. - Nội dung lý thuyết, chương trình, ứng dụng hỗ trợ. 

Thực hiện đồ án  Nguyễn Trí Hải  - Tìm hiểu, xây dụng nội dung ứng dụng  Nguyễn Hoàng Nghĩa  - Tổng hợp, xây dựng nội dung lý thuyết. Cả nhóm  - Viết báo cáo, trình bày slide 

- Sửa lỗi 

Page 9: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 9/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

2

CHƯƠNG II.

CÁC KHÁI NIỆM CƠ BẢN

1. 

Bài toán phân lớ p và phương pháp Support Vector Machines.Phân lớp là quá trình “nhóm” các đối tượng “giống” nhau vào “một lớp” dựa trên

các đặc trưng dữ liệu của chúng. Khi nghiên cứu một đối tượ ng, hiện tượ ng, chúng tachỉ có thể dựa vào một số hữu hạn các đặc trưng của chúng. Nói cách khác, ta chỉ xemxét biểu diễn của đối tượ ng, hiện tượ ng trong một không gian hữu hạn chiều, mỗi chiềuứng vớ i một đặc tr ưng đượ c lựa chọn.

Bài toán phân lớ  p có thể đượ c mô tả như sau: 

Cho tậ p mẫu

Ω   ,  |    ℝ

 ;   ℝ

; 1,  } 

Tìm ánh xạ  : ℝ → ℝ , sao cho     ≅ 0, ∀  , ∈ Ω , ∀ 1 ,  Trong đó: 

 N: Số mẫu

Xi: Mẫu dữ liệu thứ i;

Ci: lớ  p của mẫu dữ liệu thứ i.

Ánh xạ 

  ở  đây có thể hiểu là một mô hình các quy tắc, các luật để xác định từng

đối tượng đang xét thuộc về lớ  p nào dựa trên các đặc trưng của chúng. Trong thực tế,việc xác định các đặc trưng để phân lớ  p bị ảnh hưở ng bở i nhiều yếu tố gây khó khăncho quá trình phân lớp như: đối tượ ng có nhiều thuộc tích, xác định các thuộc tính nàolà cần thiết, các thuộc tính nào là không cần thiết.

Bài toán phân lớ  p sử dụng phương pháp Support vector machines (SVM) nhằm mụcđích tìm một siêu phẳng có biên cực đại giữa lớ  p mẫu âm và lớ  p mẫu dương. Đồng thờ icực tiểu hoá các mẫu không phân chia đượ c trong tậ p huấn luyện. SVM đựa trên cơ sở  toán học vững chắc. Tuy nhiên, việc huấn luyện mẫu sử dụng SVM đòi hỏi phải giải

 bài toán tối ưu nhiều biến. Ban đầu, SVM đượ c phát triển để giải các bài toán phân lớ  p,về sau do tính ưu việt, nó còn đượ c sử dụng r ộng rãi để giải các bài toán hồi quy.

2.  Phân lớ p tuyến tính.

Việc phân lớ  p nhị  phân đượ c thực hiện bằng cách sử dụng hàm giá tr ị thực

Page 10: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 10/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

3

 : ⊆ ℝ → ℝ là hàm tuyến tính, tương ứng với đầu ra ∈ {-1, 1}, đượ c phát biểunhư sau: 

Đầu vào , , … , sẽ đượ c gán vào lớ  p có nhãn 1 nếu  ≥ 0, trườ nghợp ngượ c lại sẽ đượ c gán vào lớ  p có nhãn -1. Trườ ng hợ  p

  là hàm tuyến tính của

∈  ta có thể viết như sau:    ⟨. ⟩   +  

. = +  

Trong đó ⟨. ⟩ biểu thị tích vô hướ ng

Về mặt hình học, các phần tử của không gian đầu vào X sẽ được rơi vào một tronghai phần đượ c phân tách bở i siêu phẳng xác định bằng biểu thức:

⟨. ⟩  + 0 

Trong đó: w là vector pháp tuyến cùa siêu phẳng, giá tr ị ngưỡng b thay đổi có thể tạo ra các siêu phẳng song song vớ i nhau.

Vớ i mỗi mẫu dữ liệu x chưa xác định sẽ đươc phân chia thành: 

∈   ớ , ế > 0ớ , á ườ ℎợ ò ạ  

3.  Ma trận GRAM.Cho tậ p , , … , } các vector trong không gian tích vô hướ ng X, ma tr ận G kích

thướ c ×  vớ i , ⟨ , ⟩ đượ c gọi là ma tr ận GRAM.

Đặc điểm quan tr ọng của ma tr ận GRAM là: các dữ liệu đầu vào cho các chươngtrình tổng hợ  p hoặc khái quát hoàn toàn có thể biểu diễn thông qua ma tr ận GRAM.

4.  Không gian đặc trưng.

Sự phức tạ p của hàm mục tiêu dẫn đến quá trình học phụ thuộc vào cách nó đượ cdiễn tả. Khi diễn tả dữ liệu một cách phù hợ  p, vấn đề học sẽ tr ở  nên dễ dàng. Vì vậy,một việc làm r ất phổ biến trong học máy là chuyển đổi dữ liệu từ không gian đầu vàoX sang k hông gian đặc trưng: 

, , … , ↦ Φ Φ, … , Φ 

Trong đó n là số chiều của đầu vào (số thuộc tính) và N là số chiều của không gianđặc trưng. Dữ liệu sẽ đượ c chuyển vào không gian đặc trưng vớ i N > n.

Page 11: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 11/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

4

Không gian đặc trưng ký hiệu là F: Φ| } 

 Hình 2.1 Ánh xạ 

 t ừ  không gian d ữ  liệu X sang không gian đặc trưng F  

5.  Hàm hạt nhân. a)  Khái niệm:

Một hàm hạt nhân là một hàm K sao cho vớ i mọi , , ta có:

, ⟨Φ. Φ⟩ Ở đây ⟨ . ⟩ là tích vô hướng trong không gian đặc trưng. 

Ví dụ:

Xét phép biến đổi dữ liệu từ không gian đầu vào  ℝ vào không gian đặctrưng ℝ3 đượ c cho bở i:

 Hinh 2.2 Ví d ụ hàm hạt nhân

Page 12: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 12/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

5

Khi ta chọn x = (x1, x2) và z = (z1, z2) ta có:

⟨x. z⟩ ,

=

+  

+ 2 +  

⟨(, √ 2, ). (, √ 2, )⟩  ⟨Φ. Φ⟩ 

Ta thấy khi chọn , ⟨Φ. Φ⟩ ⟨x. z⟩. Vì vậy ta không cần phải tínhánh xạ 

Φ.

b)  Hàm hạt nhân trong máy học tuyến tính:

Máy học không tuyến tính trên không gian đầu vào đượ c xây dựng qua hai bướ c:trướ c tiên sử dụng một ánh xạ không tuyến tính để chuyển đổi dữ liệu vào không gianđặc trưng và sau đó sử dụng máy học phân lớ  p tuyến tính trong không gian đặc trưng. 

Máy học tuyến tính trong không gian đặc trưng tương ứng vớ i hàm:

 

= . Φ

+  

Chúng ta không cần xác định tườ ng minh tr ọng số w, khi triển khai tiế p bằng cách

đưa vào vector ∑ . = , ta có:

  .

= . ⟨Φ.Φx⟩ +  

Hơn nữa, cũng không cần xây dựng tườ ng minh ánh xạ Φ, nhờ  sử dụng hàm hạtnhân nên:

  , + =  

Đặt SV là tậ p các chỉ số i thoả mãn ≠ 0, ta đượ c:

Page 13: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 13/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

6

  , +  

Các  ứng vớ i ≠ 0 đượ c gọi là các vectơ trợ  giúp (Support vector), hàm phânlớ  p sẽ được xác định duy nhất qua các vector này.

c)  Một số hàm hạt nhân:

  , ⟨. ⟩   , 1 + ⟨. ⟩, vớ i d  là tham số do người dùng định nghĩa. 

  , −⟨.⟩−⟨.⟩ , với là tham số do người dùng định nghĩa , ớ 1 < ⟨. ⟩ < 1  , −⟨.⟩ , đó 1 < ⟨. ⟩ < 1 

 , exp| |,

 vớ i

 do người dùng định nghĩa. 

6.  K ết chương.

Chương 1 đã giớ i thiệu về bài toán phân lớ  p, các khái niệm về phân lớ  p tuyến tính,ma tr ận GRAM. Và quan tr ọng về không gian đặc trưng và hàm hạt nhân, khả năng

 biểu thị của hàm hạt nhân trong không gian đặc trưng.Đây là các khái niệm cơ bản nhất có liên quan đến bài toán phân lớ  p và  phương

 pháp SVM áp dụng cho việc giải quyết bài toán phân lớ  p.

Page 14: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 14/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

7

CHƯƠNG III.

PHƯƠNG PHÁP SUPPORT VECTOR MACHINES

Trong thời đại công nghệ thông tin hiện nay, sự phát triển của công nghệ kéo theosự gia tăng rất lớ n của lưu lượng thông tin lưu trữ và trao đổi. Do đó, yêu cầu về tổ chứclưu trữ và truy cậ p thông tin sao cho hiệu quả được đặt lên hàng đầu. Hướ ng giải quyếtđược đưa ra là tổ chức, tìm kiếm và phân loại thông tin một cách hiệu quả. Bản thân conngười trong đờ i sống cũng tiế p nhận thế giớ i xung quanh thông qua sự phân loại và tổ chứcghi nhớ  tri thức một cách hiệu quả. Phân loại thông qua các lớ  p và mô tả các lớ  p giúp chotri thức được định dạng và lưu tr ữ trong đó. 

Support Vector Machines (SVM) là một phương pháp phân loại xuất phát từ  lý

thuyết học thống kê, dựa trên nguyên tắc tối thiểu r ủi ro cấu trúc (Structural RiskMinimisation). SVM sẽ cố gắng tìm cách phân loại dữ liệu sao cho có lỗi xảy ra trên tậ pkiểm tra là nhỏ nhất (Test Error Minimisation). Đây là một phương pháp mới trong lĩnhvực trí tuệ nhân tạo. Vào thờ i k ỳ đầu khi SVM xuất hiện, khả năng tính toán của máy tínhcòn r ất hạn chế, nên phương pháp SVM không được lưu tâm. Tuy nhiên, từ năm 1995 tr ở  lại đây, các thuật toán sử dụng cho SVM phát triển r ất nhanh, cùng vớ i khả năng tính toánmạnh mẽ của máy tính, đã có đượ c những ứng dụng r ất to lớ n.

1.  Ý tưở ng.

Cho trướ c một tậ p huấn luyện, đượ c biểu diễn trong không gian vector , trong đómỗi tài liệu là một điểm, phương pháp này tìm ra một siêu phẳng f quyết định tốt nhấtcó thể chia các điểm trên không gian này thành hai lớ  p riêng biệt tương ứng là lớ  p “+” và lớp “”. Chất lượ ng của siêu phẳng này đượ c quyết định bở i khoảng cách (gọi là

 biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó, khoảng cách biên càng lớ n thì mặt phẳng quyết định càng tốt, đồng thờ i việc phân loại càng chínhxác.

Ý tưở ng của nó là ánh xạ (tuyến tính hoặc phi tuyến) dữ liệu vào không gian cácvector đặc trưng (space of feature vectors) mà ở  đó một siêu phẳng tối ưu đượ c tìm ra

để tách dữ liệu thuộc hai lớ  p khác nhau.

Mục đích của phương pháp SVM là tìm đượ c khoảng cách biên lớ n nhất:

Page 15: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 15/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

8

 Hình 3.1 Mô t ả phương pháp SVM  

Đường tô đậm là siêu phẳng tốt nhất và các điểm đượ c bao bở i hình chữ nhật lànhững điểm gần siêu phẳng nhất, chúng đượ c gọi là các vector hỗ tr ợ  (support vector).Các đường nét đứt mà các support vector nằm trên đó đượ c gọi là lề (margin).

2.  Cơ sở  lý thuyết.

SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán này là tìm đượ c mộtkhông gian F và siêu phẳng quyết định f trên F sao cho sai số phân loại là thấ p nhất.

Cho tậ p mẫu , , , , … , , }  vớ i ∈ ℝ , thuộc vào hai lớ  pnhãn ∈1,1} là nhãn lớp tương ứng của các  (-1 biểu thị lớ  p I, 1 biểu thị lớ  p II).

Ta có, phương trình siêu phẳng chứa vector  trong không gian:

. + 0  

Đặt  . + +1, . + > 01, . + < 0   Như vậy,   biểu diễn sự phân lớ  p của  vào hai lớp như đã nêu.

Ta nói +1 nếu  thuộc lớ  p I và 1 nếu  thuộc lớ  p II.

3.  Bài toán phân 2 lớ p vớ i SVM.

Bài toán đặt ra là: Xác định hàm phân lớp để phân lớ  p các mẫut trong tương lai,

nghĩa là vớ i một mẫu dữ liệu mớ i  thì cần phải xác định  đượ c phân vào lớ  p +1 haylớ  p 1.

Ta xét 3 trườ ng hợ  p, mỗi trườ ng hợ  p sẽ có 1 bài toán tối ưu, giải đượ c bài toán tốiưu đó ta sẽ tìm đượ c siêu phẳng cần tìm.

Page 16: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 16/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

9

Trườ ng hợ p 1:

Tậ p D có thể phân chia tuyến tính đượ c mà không có nhiễu (tất cả các điểm đượ cgán nhãn +1 thuộc về  phía dương của siêu phảng, tất cả các điểm đượ c gán nhãn -1thuộc về phía âm của siêu phẳng).

 Hình 3.2 T ậ p d ữ  liệu đượ c phân chia tuyế n tính

Ta sẽ tìm siêu phẳng tách vớ i ∈ ℝ là vector tr ọng số, ∈ ℝ là hệ số tự do, saocho:

Đặt  . + +1, +11, 1 ∀ , ∈  

Lúc này ta cần giải bài toán tối ưu: 

() 12 ‖‖ . + ≥ 1 , 1 , … ,  

Trườ ng hợ p 2:

Tậ p dữ liệu D có thể phân chia tuyến tính được nhưng có nhiễu. Trong trườ ng hợ  pnày, hầu hết các điểm đều được phân chia đúng bở i siêu phẳng. Tuy nhiên có 1 số điểm

 bị nhiễu, nghĩa là: Điểm có nhãn dương nhưng lại thuộc phía âm của siêu phẳng, điểmcó nhãn âm nhưng lại thuộc phía dương của siêu phẳng.

Page 17: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 17/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

10

 Hình 3.3 T ậ p d ữ  liệu phân chia tuyế n tính nhưng có nhiễ u

Trong trườ ng hợ  p này, ta sử  dụng 1 biến mềm ≥ 0 sao cho: . + ≥1  , 1, … ,  Bài toán tối ưu trở  thành:

{(, ) 1

2‖‖ +

= . + ≥ 1 , 1 , … , ≥ 0 , 1 , … ,  

Trong đó C là tham số xác định trước, định nghĩa giá trị ràng buộc, C càng lớ n thìmức độ vi phạm đối vớ i những lỗi thực nghiệm (là lỗi xảy ra lúc huấn luyện, tính bằngthương số của số phần tử lỗi và tổng số phần tử huấn luyện) càng cao.

Trườ ng hợ p 3:

Tậ p dữ liệu D không thể phân chia tuyến tính đượ c, ta sẽ ánh xạ các vector dữ liệux từ không gian n chiều vào một không gian m chiều (m>n), sao cho trong không gian

m chiều, D có thể phân chia tuyến tính đượ c.

Page 18: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 18/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

11

 Hình 3.4 T ậ p d ữ  liệu không phân chia tuyế n tính.

Gọi  là một ánh xạ phi tuyến từ không gian ℝ vào không gian ℝ.: ℝ → ℝ Bài toán tối ưu trở  thành:

{

(, ) 12 ‖‖ +

=. + ≥ 1 , 1 , … , ≥ 0 , 1 , … ,

 

Ví dụ:

Để dễ hiểu hơn chúng ta xét ví dụ mô tả hình học sau: Xét trong không gian2 chiều (n=2), tậ p dữ liệu đượ c cho bở i tập các điểm trên mặt phẳng.

Page 19: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 19/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

12

 Hình 3.5 Ví d ụ biể u diễ n t ậ p d ữ  liệu trên không gian 2 chiề u

Bây giờ  ta tiến hành tìm siêu phẳng phân lớ  p dựa trên phương pháp SVM (1). Ta sẽ tìm 2 siêu phẳng song song (nét đứt trong hình …) sao cho khoảng cách giữa chúng làlớ n nhất để có thể phân tách lớ  p này thành 2 phía (Ta gọi là 2 siêu phẳng phân tách).Siêu phẳng (1) nằm giữa 2 siêu phẳng trên (nét đậm trong hình).

Hình trên cho ta tậ p dữ liệu có thể phân tách tuyến tính. Bây giờ  ta xét trườ ng hợ  ptậ p dữ liệu không thể phân tách tuyến tính. Bây giờ  ta sẽ xử lý bằng cách ánh xạ tậ p dữ 

liệu đã cho vào một không gian mớ i có số chiều lớn hơn không gian cũ (Gọi là khônggian đặc trưng) mà trong không gian này tậ p dữ liệu có thể phân tách tuyến tính. Trongkhông gian đặc trưng ta sẽ tiế p tục tìm 2 siêu phẳng phân tách như trườ ng hợp ban đầu.

Các điểm nằm trên 2 siêu phẳng phân tách gọi là các vector hỗ tr ợ  (Support vector).Các điểm này quyết định hàm phân tách dữ liệu. Từ đây, chúng ta có thể thấy phương

 pháp SVM không phụ thuộc vào các mẫu dữ liệu ban đầu, mà chỉ phụ thuộc vào cácsuport vector (quyết định 2 siêu phẳng phân tách). Cho dù các điểm khác bị xoá thìthuật toán vẫn cho ra các k ết quả tương tự. Đây chính là điểm nổi bật của phương pháp

SVM so với các phương pháp khác do các điểm trong tậ p dữ liệu đều được dùng để tốiưu kết quả.

Trên thực tế ngườ i ta sẽ không xác định cụ thể ánh xạ mà dùng hàm hạt nhân nhưđã trình bày ở  mục 5 chương 1, nhằm đẩy nhanh tốc độ tính toán đồng thời đảm bảo dữ liệu sẽ gần như phân tách tuyến tính. Thông thường người ta thườ ng sử dụng các hàmhạt nhân có sẵn.

Page 20: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 20/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

13

4.  Bài toán phân đa lớ p vớ i SVM.

Để  phân đa lớ  p thì k ỹ thuật SVM sẽ chia không gian dữ liệu thành 2 phần và tiế ptục với không gian đã đượ c phân chia. Khi đó hàm quyết định phân dữ liệu vào lớ  p thứ i sẽ là:

  +   Những phần tử x là support vector nếu thoả điều kiện:  1 , ∈ 1 , ∉  Giả sử bài toán phân loại k lớ  p ≥ 2 , ta sẽ tiến hành 1/2 lần phân lớ  p

nhị phân sử dụng phương pháp SVM. Mỗi lớ  p sẽ tiến hành phân tách vớ i k-1 lớ  p cònlại để xác định k-1 hàm phân tách (chiến lượ c “một-đối-một” (one-against-one).

K ỹ thuật phân đa lớ  p bằng phương pháp SVM hiện vẫn đang đượ c tiế p tục nghiên

cứu và phát triển.

5.  Các bướ c chính của phương pháp SVM.

-  Tiền xử  lý dữ  liệu: Phương pháp SVM yêu cầu dữ  liệu đượ c diễn tả như cácvector của các số thực. Như vậy nếu đầu vào chưa phải là số thực thì ta cần phảitìm cách chuyển chúng về dạng số của SVM. Tránh các số quá lớn, thườ ng nênco giãn dữ liệu để chuyển về đoạn [-1,1] hoặc [0,1].

-  Chọn hàm hạt nhân: Cần chọn hàm hạt nhân phù hợp tương ứng cho từng bàitoán toán cụ thể để đạt được độ chính xác cao trong quá trình phân lớ  p.

-  Thực hiện việc kiểm tra chéo để xác định các tham số cho ứng dụng.-  Sử dụng các tham số cho việc huấn luyện tậ p mẫu.-  Kiểm thử tậ p dữ liệu Test.

6.  So sánh và một số cải tiến.

Một số  phương pháp như mạng neuron, fuzzy logic, mạng fuzzy-neuron, …, cũngđượ c sử dụng thành công để giải quyết bài toán phân lớp. Ưu điểm của các phương

 pháp này là không cần xác định mô hình toán đối của đối tượ ng (Giải quyết tốt vớ i cáchệ thống lớ n và phức tạ p).

SVM có 2 đặc trưng cơ bản:-   Nó luôn k ết hợ  p vớ i các dữ liệu có ý nghĩa về mặt vật lý, do vậy dễ dàng giải

thích đượ c một cách tườ ng minh.-  Cần một tậ p các mẫu huấn luyện r ất nhỏ.

Page 21: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 21/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

14

Phương pháp SVM hiện nay đượ c xem là một công cụ mạnh và tinh vi nhất hiệnnay cho những bài toán phân lớ  p phi tuyến. Nó có mộ số biến thể như C –  SVC, v –  SVC. Cải tiến mớ i nhất hiện nay của phương pháp SVM đã đượ c công bố là thuật toán

 NNSRM (Nearest Neighbor and Structural Risk Minimization) là sự k ết hợ  p giữa 2 k ỹ 

thuật SVM và Nearest Neighbor.

Page 22: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 22/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

15

CHƯƠNG IV.

Ứ NG DỤNG

1.  Một số ứ ng dụng của SVM.

SVM và các biến thể, cái tiến của nó hiện nay có r ất nhiều ứng dụng thiết thực vàogiài quyết các vấn đề thực tế. Một số ứng dụng nổi bật của nó là:

-  Chuẩn đoán virus máy tính: Giả sử có một tập các đối tượ ng cần chuẩn đoán, , … , } trong không gian . Dựa vào các đặc trưng của các , ta sẽ ápdụng phương pháp SVM để phân  vào lớ  p I: Có thể nhiễm virus V hoặc lớ  p II:Không nhiễm virus V.

-  Lọc thư rác (Mail Classification): Vớ i mỗi văn bản, ta sẽ trích, chọn đặc trưngvà vector hoá nó thành một vector n chiều

, , … , } có thể biểu diễn

dạng dữ liệu SVM được. Sau đó ta tiến hành cho chương trình học thông quamột tậ p dữ  liệu vào dạng ,  vớ i ∈ 1,1}. Ta sẽ  xây dựng một siêu

 phẳng bằng phương pháp SVM trên tậ p dữ liệu mẫu. Từ đó vớ i mỗi mẫu văn bản mớ i, ta sẽ vector hoá nó và so sánh dấu của nó so vớ i siêu phẳng tìm đượ cđể phân loại.

-   Ngoài ra, phương pháp SVM cho bài toán phân đa lớp còn đượ c ứng dụng cho bài toán phân loại ảnh (Image classification) hay phân loại biểu cảm trên khuônmặt (Facial expression classification).

 Hình 4.1 Phân loại biể u cảm Hình 4.2 Phân loại ảnh

Page 23: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 23/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

16

2.  Mô phỏng phương pháp SVM qua biểu diễn hình học bằng Matlab.

Các tậ p tin trong project Matlab:

setup.m : Mô phỏng quá trình phân lớ  p bằng SVM

data1.mat : Tậ p dữ liệu mẫu 1data2.mat : Tậ p dữ liệu mẫu 2

data3.mat : Tậ p dữ liệu mẫu 3

svmTrain.m : Hàm đào tạo (training) bằng SVM

svmPredict.m : Hàm dự đoán (prediction) bằng SVM

 plotData.m : Biểu đồ dữ liệu 2 chiều

visualizeBoundaryLinear.m : Biểu đồ đườ ng tuyến tính

visualizeBoundary.m : Biểu đồ đườ ng phi tuyến

linearKernel.m : Hàm tuyến tính cho SVM

gaussianKernel.m: Hàm Gaussian cho SVM

dataset3Params.m: Tham số sử dụng cho tậ p dữ liệu mẫu 3

Chương mô phỏng các tậ p dữ liệu mẫu lên đồ thị 2 chiều và tìm siêu phẳng vớ icác dữ liệu cho trướ c và hàm hạt nhân Gaussian (Gaussian Kernel):

(, ) exp  2 ∑ ( )= 2  

3.  Xây dựng chương trình lọc thư rác.

Các tậ p tin sử dụng trong project Matlab:

setup_spam: Quá trình phân loại email spam

spamTrain.mat –  Bộ training spam

spamTest.mat –  Bộ training test

emailSample.txt - Mẫu email 1

emailSample2.txt –  Mẫu email 2

spamSample.txt –  Mẫu email spam 1

spamSample2.txt –  Mẫu email spam 2

Page 24: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 24/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

17

vocab.txt –  Danh sách từ vựng

getVocabList.m –  Mở  danh sách từ vựng

 porterStemmer.m –  Hàm Stemming

readFile.m –  Đọc file processEmail.m –  Tiền xử lý email

emailFeatures.m –  Rút trích đặt trưng từ email

Các bướ c thự c hiện trong bài toán phân loại Email:

Bướ c 1. Tiền xử lý email

Bướ c 2. Trích xuất đặc trưng email 

Bướ c 3. Huấn luyện tuyến tính bằng SVMBướ c 4. Kiểm tra phân lớ  p Spam Email

Bướ c 5. Chọn ra những từ có trong mail có khả năng cao là spam 

Bướ c 6. Đưa email và và kiểm tra

Chi tiết các bước như sau: 

Bướ c 1. Tiền xử  lý email :

Dựa theo thư viện từ đã có (vocab.txt), xác định các từ trong email có trong thư việntừ hay không.

 Hình 4.3 Tiề n xử  lý email

Page 25: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 25/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

18

Bướ c 2. Trích xuất thông tin email: 

Chương trình xuất ra chiều dài của các vectơ đặc trưng và số các đầu vào kháckhông.

Một đặc trưng của email có dạng: [

0⋮10⋮10⋮0]∈ ℝ. 

 Hình 4.4 Trích xuấ t thông tin emailK ết quả:

+ Chiều dài của các vectơ đặc trưng : 1899 

+ Số các đầu vào khác không: 45

Bướ c 3, 4. Quá trình training dự a theo tập dữ  liệu spamTrain.mat và kiểm tra quátrình training bằng dữ  liệu kiểm tra spamTest.mat

Quá trình huấn luyện vớ i SVM và chuyển dữ liệu thành các vectơ thông qua hàm

svmTrain.m. Sau đó tính độ chính xác của quá trình huấn luyện thông qua hàmsvmPredict.m, cũng như tính độ chính xác của quá trình kiểm tra (Dùng dữ liệuspamTest.mat để kiểm tra)

Page 26: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 26/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

19

 Hình 4.5 Quá trình học d ữ  liệu

K ết quả:

+ Độ chính xác của quá trình huấn luyện : 99.85%

+ Độ chính xác của quá trình kiểm tra: 98.5%

Bướ c 5. Chọn ra nhữ ng từ  có trong mail có khả năng cao là spam 

Chương trình đưa ra các từ (word) có thể là spam trong mail.

 Hình 4.6 Các t ừ  mẫ u có khả năng là spam 

Page 27: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 27/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

20

Bướ c 6. Đưa email và và kiểm tra

 Hình 4.7 Chạ y thử  chương trình 

Chương trình đưa vào 2 email spamSample2.txt và emailSample2.txt và cho kết quả đúng như đặc tính của mail đó. (Kết quả: 1 là spam, 0 là không spam).

Page 28: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 28/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

21

CHƯƠNG V.

TỔNG K ẾT

Phương pháp Support Vector Machines hiện là một trong các phương pháp tinh vinhất cho bài toán phân lớ  p phi tuyến. Mở  r ộng và các ứng dụng của nó đang đượ c tiế ptục nghiên cứu thêm và phát triển làm tăng tính hiệu quả.

Đồ án nhằm cung cấ p những khái niệm cơ bản, nội dung cũng như các bướ c thựchiện của phương pháp Support Vector Machines đơn giản. Đồng thời cũng cung cấ pthêm một số thông tin về các mở  r ộng của phương pháp này. Phần ứng dụng giớ i thiệumột các ứng dụng của phương pháp có thể áp dụng và xây dựng lại chương trình lọcthư rác tr ên Matlab. 

Page 29: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 29/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

22

PHỤ LỤC

* Chạy thử  mô phỏng phương pháp SVM qua biểu diễn hình học bằng Matlab.

Tập dữ  liệu mẫu 1:Chạy chương trình bằng cách gõ dòng lệnh : setup

Chương trình sẽ mở  dữ liệu mẫu 1 và hiển thị lên sơ đồ 

Tiế p tục nhấn Enter, quá trình training sẽ diễn ra và cho ra k ết quả:

Page 30: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 30/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

23

K ết quả đánh giá vớ i hàm hạt nhân Gaussian cho tậ p dữ liệu mẫu 1:

sigma = 0.3247

Hàm hạt nhân Gaussian ở  giữa x1 = [1; 2; 1], x2 = [0; 4; -1], sigma = 0.5 :0.324652

Tập dữ  liệu mẫu 2:

Quá trình training diễn ra vớ i hàm hạt nhân Gaussian, k ết quả:

Page 31: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 31/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

24

Tập dữ  liệu mẫu 3:

Quá trình training diễn ra vớ i hàm hạt nhân Gaussian, k ết quả:

Page 32: [Machine Learning] Kỹ thuật SVM

7/21/2019 [Machine Learning] Kỹ thuật SVM

http://slidepdf.com/reader/full/machine-learning-ky-thuat-svm 32/32

GVHD: Th.s Nguy ễn Đình Hiển Báo cáo nhập môn công nghệ tri thức và máy học

TÀI LIỆU THAM KHẢO

[1] Thái Sơn: Luận văn thạc sỹ khoa học: K ỹ thuật Support Vector Machines và ứng dụng. Nghành toán tin ứng dụng: Đại học Bách khoa Hà Nội, 2006.

[2] PGS.TS Vũ Thành Nguyên, Thi Minh Nguyễn: Một số cải tiến của bài toán phân lớ  pvăn bản sử dụng thuật toán SVM và áp dụng trong phân tích tiếng Việt. Đại học Công nghệ thông tin –  ĐHQG HCM, 2011. 

[3] SVM spam classification: https:\\githug.com\.