Các điểm gần mặt phân cách nhất của hai classes được khoanh tròn

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp máy véc tơ hỗ trợ với lề mềm và ứng dụng phân lớp dữ liệu tuyến tính có nhiễu (Trang 36 - 44)

giá trị lớn nhất: (w, b) = arg max w,b min n yn(wTxn+ b) ||w||2 = arg max w,b 1 ||w||2 minn yn(wTxn +b) (2.1.3) Việc giải trực tiếp bài toán này sẽ rất phức tạp, nhưng chúng ta có cách để đưa nó về bài toán đơn giản hơn. Nhận xét quan trọng nhất là nếu ta thay vector hệ số w bởi kw và b bởi kb trong đó k là một hằng số dương thì mặt phân chia không thay đổi. tức khoảng cách từ từng điểm đến mặt phân chia không đổi, nghĩa là lề không đổi. Dựa trên tính chất này, ta có thể giả sử:

yn(wTxn +b) = 1

với những điểm nằm gần mặt phân chia nhất như Hình 2.5. Như vậy, với mọi n, ta có:

yn(wTxn+ b) ≥1

Vậy bài toán tối ưu (2.1.3) có thể đưa về bài toán tối ưu có ràng buộc sau đây: (w, b) = arg max w,b 1 ||w||2 (2.1.4) subject to: yn(wTxn+ b) ≥1,∀n = 1,2, . . . , N (2.1.5)

Bằng một biến đổi đơn giản, ta có thể đưa bài toán này về bài toán dưới đây: (w, b) = arg min w,b 1 2||w||22 (2.1.6) subject to: 1−yn(wTxn +b) ≤ 0,∀n= 1,2, . . . , N (2.1.7) Ở đây, chúng ta đã lấy nghịch đảo hàm mục tiêu, bình phương nó để được một hàm khả vi, và nhân với 1

2 để biểu thức đạo hàm đẹp hơn.

Trong bài toán (2.1.6, 2.1.7), hàm mục tiêu là một chuẩn nên là một hàm lồi. Các hàm bất đẳng thức ràng buộc là các hàm tuyến tính theo w và b, nên cũng là các hàm lồi. Vậy bài toán tối ưu (2.1.6, 2.1.7) có hàm mục tiêu là lồi, và các hàm ràng buộc cũng là lồi, nên nó là một bài toán lồi. Vậy nghiệm của SVM là duy nhất.

Sau khi tìm được mặt phân cách wTx+b = 0, lớp của bất kỳ một điểm nào sẽ được xác định đơn giản bằng cách:

lớp(x) = sgn(wTx+ b) (2.1.8)

2.1.3. Bài toán đối ngẫu của SVM

Kiểm tra tiêu chuẩn Slater Bài toán tối ưu (2.1.6, 2.1.7) thỏa mãn tiêu chuẩn Slater sau: Nếu tồn tại w, b thỏa mãn

1−yn(wTxn +b) < 0, ∀n = 1,2, . . . , N (2.1.9)

thì đối ngẫu mạnh (strong duality) thỏa mãn.

Thật vậy, luôn luôn có một (siêu) mặt phẳng phân chia hai lớp nếu hai lớp đó là phân tách tuyến tính, tức bài toán có nghiệm, nên tập phương án chấp nhận được của bài toán tối ưu (2.1.6, 2.1.7) là khác rỗng. Tức là luôn tồn tại cặp (w0, b0) sao cho:

1−yn(wT0xn +b0) ≤ 0, ∀n= 1,2, . . . , N

⇔2−yn(2w0Txn+ 2b0) ≤ 0, ∀n = 1,2, . . . , N Ta chọn w1 = 2w0 và b1 = 2b0, được

Hay điều kiện Slater thỏa mãn (đpcm.)

Lagrangian của bài toán SVM. Lagrangian của bài toán (2.1.6, 2.1.7) là L(w, b, λ) = 1 2||w||22 + N X n=1 λn(1−yn(wTxn +b)) (2.1.10) với λ = [λ1, λ2, . . . , λN]T và λn ≥ 0, ∀n= 1,2, . . . , N.

Hàm đối ngẫu Lagrange. Hàm đối ngẫu Lagrange được định nghĩa là g(λ) = min

w,b L(w, b, λ) (2.1.11)

với λ 0. Việc tìm giá trị nhỏ nhất của hàm này theo w và b có thể đựợc thực hiện bằng cách giải hệ phương trình đạo hàm của L(w, b, λ) theo w và b bằng 0: ∂L(w, b, λ) ∂w = w− N X n=1 λnynxn = 0 ⇒w = N X n=1 λnynxn (2.1.12) ∂L(w, b, λ) ∂b = − N X n=1 λnyn = 0 (2.1.13)

Thay (2.1.12), (2.1.13) vào (2.1.10) ta thu được g(λ):

g(λ) = N X n=1 λn − 1 2 N X n=1 N X m=1 λnλmynymxTnxm (2.1.14)

Đây là hàm số quan trọng trong SVM. Xét ma trậnV = [y1x1, y2x2, . . . , yNxN]

và véc tơ 1 = [1,1, . . . ,1]T, ta có thể viết lai g(λ) dưới dạng:

g(λ) = −1

T

VTVλ+ 1Tλ. (2.1.15)

Đặt K = VTV, ta thấy K là một ma trận nửa xác định dương. Thật vậy, với mọi véc tơ λ ta có

λTKλ = λTVTVλ = ||Vλ||22 ≥ 0.

Vậy hàm g(λ) = −12λTKλ+1Tλ là một hàm lõm.

Bài toán đối ngẫu Lagrange. Kết hợp hàm đối ngẫu Lagrange và các điều kiện ràng buộc của λ, ta có bài toán đối ngẫu Lagrange:

λ = arg max λ g(λ) (2.1.16) subject to: λ 0 (2.1.17) N X n=1 λnyn = 0 (2.1.18)

Đây là một bài toán lồi, vì ta đang tìm giá trị lớn nhất của một hàm mục tiêu lõm trên miền giao các tập lồi. Đây cũng là bài toán quy hoạch bậc hai, và có thể được giải bằng các thư viện của Python, chẳng hạn như CVXOTP. Tham số phải tìm là N, là chiều của λ, tức là số điểm dữ liệu. Trong khi đó, đối với bài toán gốc (2.1.6, 2.1.7), số tham số phải tìm là d+ 1, là tổng số chiều của w và b, tức số chiều của mỗi điểm dữ liệu cộng 1. Trong rất nhiều trường hợp, số điểm dữ liệu có được trong training set lớn hơn số chiều dữ liệu rất nhiều. Nếu giải trực tiếp bằng các công cụ giải Quadratic Programming, có thể bài toán đối ngẫu còn phức tạp hơn (tốn thời gian hơn) so với bài toàn gốc. Tuy nhiên, điều hấp dẫn của bài toán đối ngẫu này đến từ phần Kernel Support Vector Machine (Kernel SVM), tức cho các bài toán mà dữ liệu không phải là linearly separable hoặc gần linearly separable. Ngoài ra, dựa vào tính chất đặc biệt của hệ điều kiện KKT mà SVM có thể được giải bằng nhiều phương pháp hiệu quả hơn.

Điều kiện KKT. Vì bài toán thỏa mãn đối ngẫu mạnh và lồi nên nghiệm của bài toán thỏa mãn điều kiện KKT dưới đây với biến số là w, b và λ

1−yn(wTxn+b) ≤ 0, ∀n= 1,2, . . . , N (2.1.19) λn ≥ 0, ∀n= 1,2, . . . , N (2.1.20) λn(1−yn(wTxn +b)) = 0, ∀n= 1,2, . . . , N (2.1.21) w = N X n=1 λnynxn (2.1.22) N X n=1 λnyn = 0 (2.1.23)

1−yn(wTxn+b) = 0. Trường hợp thứ 2 chính là

wTxn +b = yn (2.1.24)

với chú ý rằng yn2 = 1, ∀n. Những điểm thỏa mãn (2.1.24) chính là những điểm nằm gần mặt phân chia nhất, là những điểm được khoanh tròn trong Hình 5 phía trên. Hai đường thẳngwTxn+b = ±1tựa lên các điểm thoả mãn (2.1.24). Vậy nên những điểm (vectors) thoả mãn (2.1.24) còn được gọi là các Support Vectors. Đó cũng là ý nghĩa của cái tên Support Vector Machine.

Số lượng những điểm thoả mãn (2.1.24) thường chiếm số lượng rất nhỏ trong sốN điểm. Chỉ cần dựa trên những support vectors này, chúng ta hoàn toàn có thể xác định được mặt phân cách cần tìm. Nhìn theo một cách khác, hầu hết cácλn = 0. Vậy là mặc dù vector λ ∈ RN có số chiều có thể rất lớn, số lượng các phần tử khác 0 của nó rất ít. Nói cách khác, vector λ là thưa. Support Vector Machine vì vậy còn được xếp vào Sparse Models. Các Sparse Models thường có cách giải hiệu quả (nhanh) hơn các mô hình tương tự với nghiệm là dense (hầu hết khác 0). Đây chính là lý do thứ hai của việc bài toán đối ngẫu SVM được quan tâm nhiều hơn là bài toán gốc.

Với những bài toán có số điểm dữ liệu N nhỏ, ta có thể giải hệ điều kiện KKT phía trên bằng cách xét các trường hợp λn = 0 hoặc λn 6= 0. Tổng số trường hợp phải xét là 2N. Nếu N lớn (thường xảy ra) đây là một con số rất lớn, không khả thi để giải bằng cách này.

Sau khi tìm được λ từ bài toán đối ngẫu (2.1.16-2.1.18), ta có thể suy ra đượcw dựa vào (2.1.22) và b dựa vào (2.1.21) và (2.1.23). Rõ ràng ta chỉ cần quan tâm tới λn 6= 0.

Gọi tập hợp S = {n : λn 6= 0} và NS là số phần tử của tập S. Với mỗi n∈ S, ta có:

1 = yn(wTxn+b) ⇔ b+wTxn = yn (2.1.25)

Mặc dù từ chỉ một cặp (xn, yn), ta có thể suy ra ngay được b nếu đã biết

Hình 2.6: Soft margin SVM khi có nhiễu, SVM sẽ không hoạt động hiệu quả.

b. Cách này được cho là ổn định hơn trong tính toán.

b = 1 NS X n∈S (yn−wTxn) = 1 NS X n∈S yn− X m∈S λmymxTmxn ! (2.1.26)

Theo (2.1.22), trước đó w đã được tính bằng:

w = X

m∈S

λmymxm (2.1.27)

Để xác định một điểm x mới thuộc vào lớp nào, ta cần xác định dấu của biểu thức wTx+ b = X m∈S λmymxTmx+ 1 NS X n∈S yn − X m∈S λmymxTmxn !

Biểu thức này phụ thuộc vào cách tính tích vô hướng giữa các cặp vector x

và từng xn ∈ S.

2.2. Bài toán SVM với lề mềm

2.2.1. Giới thiệu bài toán

Bài toán SVM ở phần trên chỉ làm việc khi dữ liệu của hai lớp là phân tách tuyến tính. Để có thể làm việc được với dữ liệu gần tuyến tính, SVM cần phải cải tiến. Xét hai ví dụ trong hình 2.6 và 2.7 dưới đây:

Có hai trường hợp dễ nhận thấy SVM làm việc không hiệu quả hoặc thậm chí không làm việc:

Hình 2.7: Soft margin SVM khi dữ liệu gần linearly separable, SVM thuần sẽ không hoạt động hiệu quả.

• Trường hợp 1: Dữ liệu vẫn phân tách tuyến tính như Hình 2.6 nhưng có một điểm nhiễu của lớp tròn đỏ ở quá gần so với lớp vuông xanh. Trong trường hợp này, nếu ta sử dụng SVM thuần thì sẽ tạo ra một lề rất nhỏ. Ngoài ra, đường phân lớp nằm quá gần lớp vuông xanh và xa lớp tròn đỏ. Trong khi đó, nếu ta hy sinh điểm nhiễu này thì ta được một lề tốt hơn rất nhiều được mô tả bởi các đường nét đứt. SVM thuần vì vậy còn được coi là nhạy cảm với nhiễu.

• Trường hợp 2: Dữ liệu không phân tách tuyến tính nhưng gần tuyến tính như Hình 2.7. Trong trường hợp này, nếu ta sử dụng SVM thuần thì rõ ràng bài toán tối ưu là không khả thi, tức tập phương án khả thi là một tập rỗng, vì vậy bài toán tối ưu SVM trở nên vô nghiệm. Tuy nhiên, nếu ta lại chịu hy sinh một chút những điểm ở gần biên giữa hai lớp, ta vẫn có thể tạo được một đường phân chia khá tốt như đường nét đứt đậm. Các đường support đường nét đứt mảnh vẫn giúp tạo được một lớp lớn cho bộ phân lớp này. Với mỗi điểm nằm lần sang phía bên kia của các đường suport (hay đường lề, hoặc đường biên) tương ứng, ta gọi điểm đó rơi vào vùng không an toàn. Chú ý rằng vùng an toàn của hai lớp là khác nhau, giao nhau ở phần nằm giữa hai đường support.

mảnh còn được gọi là soft margin (biên mềm, lề mềm). Cũng theo cách gọi này, SVM thuần còn được gọi là Hard Margin SVM (SVM biên cứng, lề cứng).

Bài toán tối ưu cho Soft Margin SVM có hai cách tiếp cận khác nhau, cả hai đều mang lại những kết quả thú vị và có thể phát triển tiếp thành các thuật toán SVM phức tạp và hiệu quả hơn. Cách giải quyết thứ nhất là giải một bài toán tối ưu có ràng buộc bằng cách giải bài toán đối ngẫu giống như Hard Margin SVM; cách giải dựa vào bài toán đối ngẫu này là cơ sở cho phương pháp Kernel SVM cho dữ liệu thực sự không linearly separable. Cách giải quyết thứ hai là đưa về một bài toán tối ưu không ràng buộc. Bài toán này có thể giải bằng các phương pháp Gradient Descent. Nhờ đó, cách giải quyết này có thể được áp dụng cho các bài toán large cale. Ngoài ra, trong cách giải này, chúng ta sẽ làm quen với một hàm mất mát mới có tên là hinge loss. Hàm mất mát này có thể mở rộng ra cho bài toán multi-class classification.

2.2.2. Xây dựng bài toán tối ưu cho SVM lề mềm

Để có một margin lớn hơn trong Soft Margin SVM, chúng ta cần hy sinh một vài điểm dữ liệu bằng cách chấp nhận cho chúng rơi vào vùng không an toàn. Tất nhiên, chúng ta phải hạn chế sự hy sinh này, nếu không, chúng ta có thể tạo ra một biên cực lớn bằng cách hy sinh hầu hết các điểm. Vậy hàm mục tiêu nên là một sự kết hợp để tối đa margin và tối thiểu sự hy sinh.

Giống như với Hard Margin SVM, việc tối đa margin có thể đưa về việc tối thiểu ||w||2

2. Quan sát hình 2.8 sau đây: Trong hình 2.8, các biến slack ξn = 0 thì điểm tương ứng nằm trong vùng an toàn. Những điểm nằm trong vùng không an toàn nhưng vẫn đúng phía so với đường phân chia tương ứng với các 0 < ξn < 1, ví dụ x2. Những điểm nằm ngược phía với class của chúng so với đường boundary ứng với các ξn > 1, ví dụ như x1 và x3.

Với mỗi điểm xn trong tập toàn bộ dữ liệu huấn luyện, ta giới thiệu thêm một biến đo sự hy sinhξn tương ứng. Biến này còn được gọi là slack variable.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp máy véc tơ hỗ trợ với lề mềm và ứng dụng phân lớp dữ liệu tuyến tính có nhiễu (Trang 36 - 44)

Tải bản đầy đủ (PDF)

(65 trang)