SVM cho bài toán phân lớp tuyến tính

Một phần của tài liệu Tìm kiếm CVs tương ứng với yêu cầu tuyển dụng (Trang 27 - 32)

5. Bố cục luận văn

3.3SVM cho bài toá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). Để 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ình 3.2 Phân lớp tuyến tính trong không gian hai chiều

Xét bài toá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 mẫu 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 Rn.

- yi là một nhãn lớp, y ∈{-1,1}.

Vectơ xi được gán nhãn dương hay âm dựa vào công thức sau : yi = −1 IếK < M. N 1 IếK < M. N/ > +Q ≥ 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. Véc tơ w được gọi là véc tơ trọng số, và b được gọi là độ dịch. Trong không gian 2 chiều các điểm ứng với phương trình <w, x>= 0 tương ứng với một đường qua gốc tọa độ. Trong không gian 3 chiều thì nó là một mặt phẳng qua gốc tọa độ. Biến b sẽ dịch chuyể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 3.3.

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 sáng hơn với chấm đen ở giữa gọi là các điểm véc tơ hỗ trợ, đó là những điểm gần biên quyết định nhất. Ở đây, có ba véc tơ hỗ trợ trên các cạnh của vùng biên (f(x) = -1 hoặc f(x)=1).

SVM với dữ liệu khả tách tuyến tính

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 mặt 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 mặt siêu phẳng hỗ trợ (các đường nét đứt trên hình 3.3), hai mặt phẳng này song song với nhau và song song với mặt 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 3.3.

Gọi d+ là khoảng cách giữa H+ và H0 V; =| < M . N > +Q| M = |1| M = 1 M Gọi d – là khoảng cách giữa H - và H0

V< =| < M . N > +Q| M = | − 1| M = 1 M Mức lề chính là bằng : (d+ + d-) XYZ[\I = V;+ V< = 2 M

Để 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 toán tối ưu bậc hai sau đây :

Tìm w và b sao cho XYZ[\I = _^ đạt cực đại. Với điều kiện < M . N/ > +Q ≥ 1, IếK `/ = 1

< M . N/ > +Q ≤ −1, IếK `/ = −1 aớ\ ∀N/ (i=1…m)

Cực tiểu hóa: d_ ._e^

Với ràng buộc `/ < M . N/ > +Q ≥ 1 aớ\ ∀\ = 1. . X

Tới đây ta áp dụng lý thuyết tối ưu có ràng buộc để giải quyết bài toá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 [/ N ≤ 0.

Điều kiện cần để x0 là một lời giải như sau: f fN g N + h/[/(N) i /01 [/ N ≤ 0 N = NF = 0 ; aớ\ h/ ≥ 0 Hàm L= g N + i h/[/(N)

/01 được gọi là hàm Lagrange Thay vào công thức trên, ta có biểu thức Lagrange như sau

kl M, Q, h =1

2< M. M > − h/[`/ < M. N/ > +Q − 1]

i

/01

Trong đó h/ ≥ 0 là các hệ số nhân Lagrange (1) (adsbygoogle = window.adsbygoogle || []).push({});

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 toán tối ưu ở trên cần thỏa mãn các điều kiện sau: fkl fM = M − h/`/N/ = 0 i /01 (2) fkl fQ = − h/`/ = 0 i /01 (3) `/ < M . N/ > +Q − 1 ≥ 0 ; aớ\ ∀\ = 1. . X h/ ≥ 0 ; h/(`/ < M . N/ > +Q − 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 mặt siêu phẳng hỗ trợ (H+ , H-) mới có h/ > 0, những điểm này được gọi là các véc tơ hỗ trợ, các điểm khác không phải là véc tơ hỗ trợ sẽ có h = 0.

Chuyển biểu thức Lagrange ban đầu về bài toá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) :

k" h = h/ i /01 −1 2 h/hq`/`q < N/ . Nq > i /,q01 Lúc này chính là đang giải quyết bài toán cực đại hóa biểu thức :

k" h = h/ i /01 −1 2 h/hq`/`q < N/ . Nq > i /,q01 Với điều kiện i h/`/ = 0

/01

h/ ≥ 0, aớ\ ∀\ = 1. . X

Sau khi giải quyết bài toán trên thì sẽ tìm được giá trị h/. Giá trị k" h sẽ đạt cực và kl sẽ đạt cực tiểu. Từ việc tìm được giá trị h/ 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 mặt siêu phẳng sau: g N =< M∗. N > +Q∗ = h/`/ < N/. N > +Q∗ = 0

s7∈tu

Với việc phân lớp một giá trị z, cần tính giá trị :

v\[I =< M∗. N > +Q∗ = ( h/`/ < N/. N > +Q∗ = 0)

s7∈tu

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).

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 phân chia tuyến tính (hình 3.4). 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 :

`/ < M . N/ > +Q ≥ 1 − ξ/ ; \ = 1. . X Trong đó ξ/ ≥ 0 là các biến phụ không âm

Giá trị x i ξ/

< M. M > 2 + x ξ/ i /01 9

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 3.4. Với một giá trị C lớn (minh họa hình 3.4A), 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 3.4B), 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ình 3.4 Minh hoạ sự lựa chọn C trong phân lớp tuyến tính

Hình 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

Một phần của tài liệu Tìm kiếm CVs tương ứng với yêu cầu tuyển dụng (Trang 27 - 32)