Giới thiệu thuật tốn SVM:
Thuật tốn SVM[5] ban đầu đƣợc đề xuất bởi Vladimir N.Vapnik và dạng chuẩn hiện nay sử dụng lề mềm đƣợc đề xuất bởi Vapnik và Corinna Cortes năm 1995. 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 tố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 tố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 đặc trƣng giống với KNN và lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các tin nhắn luyện tập tới ranh giới là xa nhất cĩ thể. Các tin nhắn mới cũng đƣợc biểu diễn trong cùng một khơng gian đặc trƣng và đƣợc thuật tốn dự đốn thuộc một trong hai thể loại tùy vào tin nhắn đĩ nằm ở phía nào của ranh giới.
Thuật tốn SVM:
SVM cho bài tốn phân lớp tuyến tính: Hình thức đơn giản của việc phân lớp là phân lớp nhị phân: phân biệt giữa các đối tƣợng thuộc về một trong hai lớp: dƣơng (+1) hoặc âm (-1) trong bài tốn cĩ thể là lớp quảng cáo và lớp tin nhắn thƣờng. Để giải quyết vấn đề này, ý tƣởng của phƣơng pháp SVM đƣa ra là sử dụng một đƣờng thẳng để phân tách các điểm nằm ở một bên là dƣơng và nằm ở bên kia là âm. Ý tƣởng này cĩ thể đƣợc minh họa bởi sự phân lớp của các điểm trong khơng gian 2 chiều nhƣ hình dƣới đây:
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 38
Hình 13:Một đường thẳng tuyến tính phân chia 2 lớp điểm (hình vuơng và hình trịn) trong khơng gian hai chiều
Xét bài tốn phân lớp đơn giản: phân chia thành hai lớp với tập m các dữ liệu tin nhắn nhƣ sau:
{(X1, y1), (X2, y2),…, (Xm, ym)}
Trong đĩ: Xi là một vectơ đầu vào đƣợc biểu diễn trong khơng gian đặc trƣng
tƣơng ứng đơi một Rn.
yi là một nhãn lớp,yi∈{-1,1}.
Vectơ xi đƣợc gán nhãn dƣơng hay âm dựa vào cơng thức sau :
yi= 1 𝑛ế𝑢 < 𝑤. 𝑥𝑖 > +𝑏 ≥ 0 −1 𝑛ế𝑢 < 𝑤. 𝑥𝑖 > +𝑏 < 0
SVM xác định một hàm phân tách tuyến tính cĩ dạng: f(x) = <w . x> +b
Hàm f(x) là hàm của đầu vào X, f(x) đƣợc sử dụng để quyết định làm thế nào để phân lớp X. Vector w đƣợc gọi là vector trọng số, và b đƣợc gọi là độ dịch.
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 39
Trong khơng gian 2 chiều các điểm thỏa mãn phƣơng trình <w, x>= 0 là một đƣờng thẳng qua gốc tọa độ. Trong khơng gian 3 chiều thì là một mặt phẳng qua gốc tọa độ. Biến b sẽ tịnh tiến mặt phẳng đi một lƣợng so với mặt phẳng qua gốc tọa độ. Mặt phẳng phân chia khơng gian thành hai khơng gian theo dấu của f(x), nếu f(x)> 0 thì quyết định cho một lớp dƣơng và ngƣợc lại thì sẽ đƣợc quyết định cho lớp âm. Mặt phẳng phân chia này đƣợc gọi là mặt siêu phẳng phân tách.
Máy học SVM là một họ các mặt siêu phẳng phụ thuộc vào các tham số w và b nhƣng phải lựa chọn mặt siêu phẳng nào để đảm bảo thời gian huấn luyện ngắn và phân lớp một cách chính xác. Thực tế quan sát cũng nhƣ lý thuyết học thống kê cho thấy rằng phân lớp siêu phẳng sẽ làm việc tốt nhất, sẽ tối thiểu hĩa giới hạn lỗi (phân lớp) mắc phải nếu mặt siêu phẳng cĩ lề lớn nhất. Ở đây, lề của một phân lớp tuyến tính đƣợc định nghĩa là khoảng cách gần nhất để quyết định ranh giới, nhƣ thể hiện trong hình 14
Hình 14: Lề lớn nhất được tính tốn bởi một SVM tuyến tính
Khu vực giữa hai đƣờng mảnh xác định miền biên với -1 ≤ <w . x> + b ≤ 1. Những điểm nằm trên đƣờng nét đứt gọi là các điểm vector hỗ trợ, đĩ là những điểm gần biên quyết định nhất.
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 40
Với bất kỳ một tập dữ liệu khả tách tuyến tính ta đều cĩ ràng buộc sau <w . xi> + b≥1, nếu yi = 1;
<w . xi> + b ≤ −1, nếu yi = -1;
Hai siêu phẳng cĩ phƣơng trình là <w . x>+ b = 1(ký hiệu là H+) và <w . x>+ b = -1(ký hiệu là H-) đƣợc gọi là các siêu phẳng hỗ trợ (các đƣờng nét đứt trên hình 14), hai siêu phẳng này song song với nhau và song song với siêu phẳng phân tách <w . x>+ b = 0 (ký hiệu là H0).
Mức lề (margin) là khoảng cách giữa hai mặt siêu phẳng hỗ trợ H+ và H – nhƣ thể hiện trong hình 14.
Gọi d+ là khoảng cách giữa H+ và H0
𝑑+ =| < 𝑤 . 𝑥 > +𝑏| 𝑤 = |1| 𝑤 = 1 𝑤
Gọi d – là khoảng cách giữa H - và H0
𝑑− =| < 𝑤 . 𝑥 > +𝑏| 𝑤 = | − 1| 𝑤 = 1 𝑤 Mức lề chính là bằng : (d+ + d-) 𝑚𝑎𝑟𝑔𝑖𝑛 = 𝑑++ 𝑑− = 2 𝑤
Để xây dựng đƣợc một mặt siêu phẳng lề tối ƣu chính là nhằm cực đại hĩa mức lề. Tƣơng đƣơng với việc giải quyết bài tốn tối ƣu bậc hai sau đây :
Tìm w và b sao cho 𝑚𝑎𝑟𝑔𝑖𝑛 = 𝑤 2 đạt cực đại.
Với điều kiện < 𝑤 . 𝑥𝑖 > +𝑏 ≥ 1, 𝑛ế𝑢 𝑦𝑖 = 1
< 𝑤 . 𝑥𝑖 > +𝑏 ≤ −1, 𝑛ế𝑢 𝑦𝑖 = −1𝑣ớ𝑖∀𝑥𝑖(i=1…m)
Hay tƣơng đƣơng với việc giải quyết bài tốn cực tiểu hĩa cĩ ràng buộc sau đây:
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 41
Cực tiểu hĩa: <𝑤 .𝑤>
2
Với ràng buộc 𝑦𝑖 < 𝑤 . 𝑥𝑖 > +𝑏 ≥ 1 𝑣ớ𝑖∀𝑖 = 1. . 𝑚
Tới đây ta áp dụng lý thuyết tối ƣu cĩ ràng buộc để giải quyết bài tốn cực tiểu hĩa cĩ các ràng buộc bất đẳng thức: cực tiểu hĩa hàm f(x), với các điều kiện
𝑔𝑖 𝑥 ≤ 0.
Điều kiện cần để x0 là một lời giải nhƣ sau:
𝜕
𝜕𝑥 𝑓 𝑥 + 𝛼𝑖𝑔𝑖(𝑥) 𝑚
𝑖=1 𝑥 = 𝑥0 = 0 ; 𝑣ớ𝑖𝛼𝑖 ≥ 0, 𝑔𝑖 𝑥 ≤ 0
Hàm L=𝑓 𝑥 + 𝑚𝑖=1𝛼𝑖𝑔𝑖(𝑥) đƣợc gọi là hàm Lagrange Thay vàocơng thức trên, ta cĩ biểu thức Lagrange nhƣ sau
𝐿𝑃 𝑤, 𝑏, 𝛼 = 1
2< 𝑤. 𝑤 > − 𝛼𝑖[𝑦𝑖 < 𝑤. 𝑥𝑖 > +𝑏 − 1] 𝑚
𝑖=1
Trong đĩ 𝛼𝑖 ≥ 0 là các nhân tử Lagrange (1)
Lý thuyết tối ƣu chỉ ra rằng để cĩ lời giải tối ƣu cho cơng thức (1) thì phải thỏa mãn các điều kiện nhất định, đƣợc gọi là các điều kiện Karush-Kunh-Tucker (đây là điều kiện cần nhƣng khơng phải là điều kiện đủ).
Nghĩa là để giải quyết bài tốn tối ƣu ở trên cần thỏa mãn các điều kiện sau:
𝜕𝐿𝑃 𝜕𝑤 = 𝑤 − 𝛼𝑖𝑦𝑖𝑥𝑖 = 0 𝑚 𝑖=1 (2) 𝜕𝐿𝑃 𝜕𝑏 = − 𝛼𝑖𝑦𝑖 = 0 𝑚 𝑖=1 (3) 𝑦𝑖 < 𝑤 . 𝑥𝑖 > +𝑏 − 1 ≥ 0 ; 𝑣ớ𝑖∀𝑖 = 1. . 𝑚 𝛼𝑖 ≥ 0 ;
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 42 𝛼𝑖(𝑦𝑖 < 𝑤 . 𝑥𝑖 > +𝑏 − 1) = 0 ; (4)
Nhìn vào điều kiện (4), ta thấy chỉ cĩ những điểm dữ liệu thuộc siêu phẳng hỗ trợ (H+ , H-) mới cĩ𝛼𝑖 > 0, những điểm này đƣợc gọi là các vector hỗ trợ, các điểm khác khơng phải là vectorhỗ trợ sẽ cĩ 𝛼𝑖 = 0.
Chuyển biểu thức Lagrange ban đầu về bài tốn đối ngẫu (dual) bằng cách thay các biểu thức (2), (3) vào biểu thức Lagrange ban đầu (1) :
𝐿𝐷 𝛼 = 𝛼𝑖 𝑚 𝑖=1 −1 2 𝛼𝑖𝛼𝑗𝑦𝑖𝑦𝑗 < 𝑥𝑖. 𝑥𝑗 > 𝑚 𝑖,𝑗 =1
Lúc này chính là đang giải quyết bài tốn cực đại hĩa biểu thức :
𝐿𝐷 𝛼 = 𝛼𝑖 𝑚 𝑖=1 −1 2 𝛼𝑖𝛼𝑗𝑦𝑖𝑦𝑗 < 𝑥𝑖. 𝑥𝑗 > 𝑚 𝑖,𝑗 =1
Với điều kiện 𝑚 𝛼𝑖𝑦𝑖 = 0
𝑖=1
𝛼𝑖 ≥ 0, 𝑣ớ𝑖∀𝑖 = 1. . 𝑚
Sau khi giải quyết bài tốn trên thì sẽ tìm đƣợc giá trị 𝛼𝑖. Giá trị 𝐿𝐷 𝛼 sẽ đạt cực đại và 𝐿𝑃sẽ đạt cực tiểu. Từ việc tìm đƣợc giá trị 𝛼𝑖sẽ tìm đƣợc giá trị w và b.
Gọi các giá trị w và b tìm đƣợc là w* và b*
Nhƣ vậy ranh giới quyết định phân lớp sẽ đƣợc xác định bởi siêu phẳng sau:
𝑓 𝑥 =< 𝑤∗. 𝑥 > +𝑏∗ = 𝛼𝑖𝑦𝑖 < 𝑥𝑖. 𝑥 > +𝑏∗ = 0 𝑥𝑖∈𝑆𝑉
Đối với một ví dụ cần phân lớp z, cần tính giá trị :
𝑠𝑖𝑔𝑛 =< 𝑤∗. 𝑥 > +𝑏∗ = ( 𝛼𝑖𝑦𝑖 < 𝑥𝑖. 𝑥 > +𝑏∗= 0) 𝑥𝑖∈𝑆𝑉
Nhƣ vậy nếu biểu thức trên trả về giá trị 1 thì giá trị z đƣợc phân vào lớp cĩ nhãn dƣơng (+1), ngƣợc lại z sẽ đƣợc phân vào lớp cĩ nhãn âm (-1).
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 43 Ví Dụ 4:
No. Dữ liệu Nhãn
X1 Viettel KhachHang Viettel QC Nhà Mạng
X2 Viettel Viettel QC Nhà Mạng
X3 Viettel KM Nhà Mạng
X4 Toi Ban Viettel Tin thường
X5 Viettel Viettel Viettel Toi Ban ?
X6 Toi ban Khachhang ?
Ta sẽ cĩ tập từ điển : Viettel, KhachHang, QC, KM, Toi, Ban
X1 =(1,1, 1, 0,0,0) X2 = (1,0,1, 0,0,0) X3 = (1,0,0,1,0,0) X4 = (1,0,0,0,1,1) X5 = (1,0,0,0,1,1) X6 = (0,1,0,0,1,1)
Dựa vào các vector (X1,X2,X3,X4) ta tìm ra vector
W = (-1,1,0,0,1,1) và hằng số b = -2
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 44
<w . xi> + b ≤ −𝟏, nếu yi = -1 (tin nhà mạng); <X5.W> + b= -1*1+1*0+0*1+0*1+1*1+1*1 + (-2) = -1
<X6.W> + b = -1*0+1*1+0*0+0*1+1*1+1*1 +(-2) = 1
Vậy X5 được gán vào lớp nhà mạng và X6 được gán vào lớp tin thường
SVM với dữ liệu khơng khả tách tuyến tính: Trong thực tế, dữ liệu thƣờng khơng khả tách tuyến tính, kết quả lý thuyết và thực nghiệm cho thấy với biên lớn hơn thì SVM biên mềm sẽ cho hiệu quả tốt hơn so với SVM biên cứng. Để chấp nhận một số lỗi, ngƣời ta cĩ thể nới lỏng các điều kiện lề (margin constrains) bằng cách sử dụng các biến Slack ξ𝑖 ≥ 0 nhƣ sau :
𝑦𝑖 < 𝑤 . 𝑥𝑖 > +𝑏 ≥ 1 −ξ𝑖 ; 𝑖 = 1. . 𝑚
Trong đĩ ξ𝑖 ≥ 0 là các biến phụ khơng âm
Giá trị 𝐶 𝑚𝑖=1ξ𝑖 đƣợc thêm vào hàm tối ƣu hĩa: Cực tiểu hĩa : < 𝑤. 𝑤 > 2 + 𝐶 ξ𝑖 𝑚 𝑖=1 𝑘
Trong đĩ hằng số C > 0 là tham số xác định mức độ chi phí đối với các lỗi, nĩ
thiết lập mức độ quan trọng của việc cực đại biên và giảm số lƣợng biến phụ ξ𝑖.
Cơng thức này đƣợc gọi là SVM lề mềm. Giá trị C càng lớn thì mức độ chi phí càng cao đối với các lỗi.
Ảnh hƣởng của sự lựa chọn C đƣợc minh họa trong hình 14. Với một giá trị C lớn (minh họa hình 14A), hai điểm gần siêu phẳng nhất bị ảnh hƣởng lớn hơn các điểm dữ liệu khác. Khi C giảm (Hình 14B), những điểm chuyển động bên trong lề, và hƣớng của siêu phẳng đƣợc thay đổi, dẫn đến một lề lớn hơn cho dữ liệu.
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 45
Hình 15: bên trái, biên quyết định cho một SVM với một giá trị rất cao của C mà bắt chước hành vi của SVM biên cứng và do đĩ dẫn tới lỗi huấn luyện. Một giá trị C nhỏ
hơn (bên phải) cho phép bỏ qua điểm gần ranh giới, và làm lề lớn hơn
SVM cho bài tốn phi tuyến: Trong nhiều ứng dụng, một bộ phân lớp phi tuyến cĩ độ chính xác cao hơn. Tuy nhiên, phân lớp tuyến tính cĩ một lợi thế đĩ là các thuật tốn đơn giản. Việc phân loại SVM cho bài tốn phi tuyến theo các bƣớc sau:
Bƣớc 1: Chuyển đổi khơng gian biểu diễn đầu vào sang một khơng gian khác, dữ liệu đƣợc biểu diễn trong khơng gian mới này cĩ thể phân lớp tuyến tính.
Bƣớc 2: Áp dụng lại các cơng thức và các bƣớc nhƣ trong bài tốn phân lớp SVM tuyến tính.
Ý tƣởng cơ bản ở đây là ánh xạ dữ liệu cho một khơng gian vector X nào đĩ sang một khơng gian khác F bằng cách sử dụng hàm ánh xạ phi tuyến ϕ.
Hàm đĩ là:
𝑓 𝑥 =< 𝑤 . ϕ(x)> +b
Trong khơng gian chuyển đổi, tập dữ liệu học ban đầu {(x1, y1), (x2, y2),…, (xm, ym)}đƣợc biểu diễn (ánh xạ) tƣơng ứng :
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 46
Lƣu ý rằng f(x) là tuyến tính trong khơng gian đặc trƣng đƣợc định nghĩa bởi ánh xạ f, nhƣng khi nhìn trong khơng gian đầu vào ban đầu nĩ là một hàm số phi tuyến x nếu f(x) là một hàm phi tuyến. Ví dụ đơn giản nhất của ánh xạ là xem xét tất cả các tích của các cặp (liên quan đến nhân đa thức). Kết quả là một bộ phân loại cĩ dạng hàm phân tách bậc hai. Cách tiếp cận tính tốn trực tiếp các đặc trƣng phi tuyến này khĩ mở rộng cho số lƣợng đầu vào lớn. Chiều của khơng gian đặc trƣng liên quan kích thƣớc của khơng gian đầu vào. Nếu chúng ta sử dụng đa thức bậc d cao hơn 2, số chiều sẽ lũy thừa theo d, kết quả là tăng sử dụng bộ nhớ và thời gian cần thiết để tính tốn các hàm phân tách. Nếu dữ liệu nhiều chiều, chẳng hạn nhƣ trong trƣờng hợp dữ liệu biểu hiện gen, thì rất phức tạp. Phƣơng pháp nhân tránh điều phức tạp này bằng cách ánh xạ dữ liệu tới khơng gian đặc trƣng nhiều chiều hơn.
Hàm kernel(hàm nhân) k(x, x‟) đƣợc định nghĩa là: K(x, x‟)= <ϕ(x) . ϕ(x‟)>
Hàm này cĩ thể đƣợc tính tốn một cách hiệu quả. Dạng đối ngẫu cho phép giải quyết vấn đề mà khơng cần thực hiện ánh xạ ϕ vào một khơng gian cĩ nhiều chiều. Các vấn đề tiếp theo là xác định các độ đo tƣơng tự (hàm kernel) cĩ thể đƣợc tính một cách hiệu quả. Hai hàm kernel phổ biến nhất đƣợc sử dụng cho các dữ liệu thực là đa thức kernel và Gaussian kernel.
Bậc d của đa thức kernel đƣợc định nghĩa là:
𝑘𝑑,𝑘𝑝𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙 𝑥, 𝑥′ = (< 𝑥. 𝑥′ > +𝑘)𝑑 ; 𝑘 ∈ 𝑅, 𝑑 ∈ 𝑁
Bậc của kernel đa thức kiểm sốt sự linh hoạt của bộ phân lớp (hình 15). Đa thức bậc thấp nhất là kernel tuyến tính. Hàm kernel này khơng đủ tốt nếu khơng gian đặc trƣng là phi tuyến. Đối với các dữ liệu trong hình 15 ở đa thức bậc 2 đã đủ linh hoạt để phân biệt giữa hai lớp với một biên tốt. Đa thức bậc 5 định lƣợng một ranh giới quyết định tƣơng tự, với độ cong lớn hơn.
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 47
Hình 16:Mức độ tác động của kernel đa thức. Kernel đa thức dẫn đến một sự phân tách tuyến tính (A). Kernel đa thức cho phép một ranh giới quyết định linh hoạt hơn (B
- C)
Kernel thứ hai đƣợc sử dụng rộng rãi là Gaussian kernel đƣợc xác định bởi:
𝑘𝜎𝐺𝑎𝑢𝑠𝑠𝑖𝑎 n 𝑥, 𝑥′ = exp −1
𝜎 𝑥 − 𝑥′ 2 ; 𝜎 > 0
Trong đĩ σ > 0 là một tham số điều khiển độ rộng của Gaussian. Nĩ đĩng một vai trị tƣơng tự nhƣ bậc của kernel đa thức trong việc kiểm sốt sự linh hoạt của bộ phân lớp (hình 15-16). Gaussian kernel cơ bản là bằng khơng nếu khoảng cách bình phƣơng 𝑥 − 𝑥′ 2là lớn hơn nhiều so với σ, tức là cho x‟ cố định là một vùng xung quanh x‟ với các giá trị kernel cao.
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 48
Hình 17:Ảnh hưởng của số chiều Gaussian kernel (σ) cho một giá trị cố định của các hằng số biên mềm. Đối với giá trị của σ (A) lớn quyết định ranh giới là gần như tuyến tính. Khi giảm σ tính linh hoạt của ranh giới quyết định tăng (B). Giá trị σ nhỏ dẫn
đến học quá (overfitting) (C)
Phân loại đa lớp: là bài tốn phân loại với số lƣợng lớp kết quả nhiều hơn 2. Ý tƣởng phƣơng pháp giải của bài tốn phân loại đa lớp là chuyển về bài tốn phân loại hai lớp bằng cách xây dựng nhiều bộ phân loại hai lớp để giải quyết. Các chiến lƣợc phân loại đa lớp phổ biến này là One-against-One (OAO) và One-against-Rest (OAR).
Chiến lƣợc One-against-Rest (OAR)
Trong chiến lƣợc này, bài tốn phân loại n lớp đƣợc chuyển thành n bài tốn phân loại 2 lớp.
Học viên thực hiện: Nguyễn Minh Đức – CAC16010 Khĩa CLC2016 Trang 49
Hình 18: Ví dụ phân lớp sử dụng chiến lược OAR
Hình 18 là ví dụ về một bài tốn phân lớp gồm 6 lớp đƣợc kí hiệu là +, -, o, #, x, ~. Với việc áp dụng chiến lƣợc OAR, bài tốn phân lớp này sẽ chuyển thành 12 bài tốn phân 2 lớp. Trong hình 18, lớp x sẽ đƣợc phân biệt với các lớp khác bằng một siêu