MÔ HÌNH SUPPORT VECTOR MACHINE

Một phần của tài liệu Nghiên cứu các giải thuật máy học và áp dụng vào bài toán dự đoán bệnh thận tại bệnh viện đa khoa tỉnh điện biên dùng ngôn ngữ python (Trang 31)

2.1.1 Support Vector Machine

Mô hình SVM phân tách tuyến tính

Máy học tập trung vào việc tìm ra những cấu trúc từ dữ liệu. Trong mô hình học có giám sát, thuật toán được cho trước một số điểm dữ liệu cùng với nhãn của chúng thuộc một trong hai lớp cho trước. Chúng ta có tập dữ liệu được biểu diễn dưới dạng một tập các cặp (xi, yi), trong đó mỗi một quan sát (instance) trong tập dữ liệu X gồm một bộ đặc trưng 𝑥𝑖 = (𝑥1𝑖, 𝑥2𝑖, … , 𝑥𝑛𝑖). Trong luận văn này chúng ta sẽ thảo luận về bài toán phân lớp nhị phân (supervised binary classification), tức là 𝑦 = {+1, −1}. Thuật toán SVM rất thích hợp cho những dạng bài toán này.

Chúng ta hãy hình dung tập dữ kiện X trong hình 2.1.1 (ví dụ các sms trong tập huấn luyện đã được gán nhãn) biểu diễn trên không gian hai chiều, mỗi một dữ kiện (sms) được biểu diễn thành một điểm. Dấu chấm đen là các spam-sms, trong khi điểm trắng là các ham-sms. Giả sử rằng bài toán của chúng ta tồn tại một mô hình phân tách tuyến tính (linearly separable).

Mục đích của SVM là xây dựng một mô hình để phân loại các sms vào hai dạng (spam và ham). Mô hình SVM lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các dữ kiện trong tập huấn luyện tới ranh giới là xa nhất có thể. Mục tiêu của thuật toán là xác định xem một điểm dữ liệu mới sẽ được thuộc về lớp nào.

Có hai khái niệm chúng ta cần cho mô hình SVM là siêu phẳng (hypherplan) và lề (margin). SVM xây dựng một siêu phẳng hoặc một tập hợp các siêu phẳng (hyperplane). Cụ thể, trong không gian hai chiều, siêu phẳng là một đường thẳng; trong không gian ba chiều, siêu phẳng là một mặt phẳng; từ bốn chiều trở lên, đều gọi chung là siêu phẳng. Lề (margin) là khoảng cách giữa siêu phẳng đến điểm dữ liệu gần nhất tương ứng với các phân lớp. Mỗi điểm dữ liệu được biểu diễn dưới dạng

22

một vector n-chiều, và ta muốn biết liệu có thể chia tách hai lớp dữ liệu bằng một siêu phẳng n − 1 chiều. Đây gọi là phân loại tuyến tính.

Có nhiều siêu phẳng có thể phân loại được dữ liệu. Một lựa chọn hợp lý trong chúng là siêu phẳng có lề lớn nhất giữa hai lớp tức là nó nằm ở càng xa các điểm dữ liệu của tất hai lớp càng tốt, vì nói chung lề (margin) càng lớn thì sai số trong quá trình dự đoán của thuật toán càng nhỏ. Có thể có nhiều đường thẳng phân tách tập dữ liệu Hình 2.1.1, tuy nhiên bằng trực giác, chúng ta có thể thấy đường thẳng màu đỏ là tốt hơn cả.

Hình 2.1. 1: H3 (màu xanh lá cây) không chia tách hai lớp dữ liệu. H1 (màu xanh lơ) phân tách hai lớp với lề nhỏ và H2 (màu đỏ) phân tách với lề cực đại [1]

Để tìm được siêu phẳng như vậy, ta cần tìm ra các điểm (support vector). Các ví dụ nằm trên lề được gọi là các vector hỗ trợ, như Hình 2.1.2. Sau khi có được các support vectors, chúng ta cần dựng ra các đường thẳng sao cho sự phân tách giữa hai lớp là lớn nhất. Từ đó chúng ta xác định được đường biên quyết định (decision boundary). Cuối cùng, lề được tính bằng khoảng cách từ điểm dữ liệu được phân lớp đúng (thuộc một trong hai lớp) gần siêu phẳng nhất tới siêu phẳng.

23

Hình 2.1. 2:Siêu phẳng với lề cực đại cho một SVM phân tách dữ liệu thuộc hai lớp [1]

Mô hình SVM phân tách phi tuyến tính

Trong nhiều trường hợp, không thể phân chia các lớp dữ liệu một cách tuyến tính trong một không gian ban đầu được dùng để mô tả một vấn đề. Vì vậy, cần phải ánh xạ các điểm dữ liệu trong không gian ban đầu vào một không gian mới nhiều chiều hơn, để việc phân tách chúng trở nên dễ dàng hơn trong không gian mới. Để việc tính toán được hiệu quả, ánh xạ sử dụng trong thuật toán SVM chỉ đòi hỏi tích vô hướng của các vectơ dữ liệu trong không gian mới có thể được tính dễ dàng từ các tọa độ trong không gian cũ. Tích vô hướng này được xác định bằng một hàm hạt nhân

K(x,y) (kernel function) phù hợp. Một siêu phẳng trong không gian mới được định nghĩa là tập hợp các điểm có tích vô hướng với một vectơ cố định trong không gian đó là một hằng số. Vectơ xác định một siêu phẳng sử dụng trong SVM là một tổ hợp tuyến tính của các vectơ đặc trưng của tập dữ liệu huấn luyện xi với các hệ số 𝛼𝑖. Với siêu phẳng lựa chọn như trên, các điểm x trong không gian đặc trưng được ánh xạ vào một siêu mặt phẳng là các điểm thỏa mãn: ∑ 𝛼𝑖 𝑖𝐾(𝑥𝑖, 𝑥)= 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡 (hằng số).

24

Hình 2.1. 3: Tập dữ liệu ban đầu (bên trái) được ánh xạ (dùng hàm nhân) sang không gian mới (bên phải)

2.1.2 Xây dựng siêu phẳng tuyến tính

Trong phần này, Tôi sẽ dùng [3] để tham khảo chính.

2.1.2.1 Bộ phân lớp tuyến tính

Trong hệ tọa độ 𝑅𝑛, ta có phương trình:

〈𝑤, 𝑥〉 + 𝑏 = 0 ∑𝑛 𝑤𝑘𝑥𝑘

𝑘=1 + 𝑏 = 0 (2.1.1)

Định nghĩa một siêu phẳng (n-1)-chiều. Trong đó vector khác không w là vector pháp tuyến của siêu phẳng𝑤 = (𝑤1, … , 𝑤𝑛) ∈ Rn, và b ∈ R là đại lượng vô hướng.〈𝑤, 𝑥〉 là tích vô hướng của 2 vector. Ứng với một bộ (w,b), tập tất cả các vector

𝑥 = (𝑥1, … , 𝑥𝑛) ∈ Rn thỏa mãn phương trình (2.1.1) sẽ xác định một siêu phẳng. Chúng ta kí hiệu siêu phẳng này là 𝜋(𝑤, 𝑏). Nghĩa của từ siêu phẳng (hyperplan) hàm chứa rằng số chiều của mặt phẳng nhỏ hơn 1 so với số chiều của không gian Rn (xem Hình 2.1.4).

25

Hình 2.1. 4: Một siêu phẳng (trong không gian 2 chiều) khi 𝒃 < 𝟎, 𝒘𝟏 > 𝟎, 𝒘𝟐 > 𝟎

Vectơ pháp tuyến w xác định hướng của siêu phẳng trong không gian, trong khi khoảng cách từ gốc tọa độ (𝑶 = (0, … 0)) tới siêu phẳng được xác định bởi tỉ lệ 𝑏

‖𝑤‖. Vector pháp tuyến trực giao với mọi vector song song với siêu phẳng của nó.

Siêu phẳng 𝜋 tách không gian 𝑅𝑛 thành 2 phần, gọi là phần dương (𝑹𝑛)𝜋+ và phần âm (𝑹𝑛)𝜋−. Với mọi vector𝑥 ∈ (𝑹𝑛)𝜋+ ta có 〈𝑤, 𝑥〉 + 𝑏 > 0, trong khi mọi vector𝑥 ∈ (𝑹𝑛)𝜋− ta có 〈𝑤, 𝑥〉 + 𝑏 < 0. (adsbygoogle = window.adsbygoogle || []).push({});

26

Chú ý rằng, một siêu phẳng có thể có vô số các cặp (w,b). Thực vậy, phương trình (2.1.1) cũng đúng cho mọi cặp (cw,cb) với 𝑐 ≠ 0. Nói một cách khác, nếu hai siêu phẳng 𝜋1 và 𝜋2 được xác định bởi hai bộ tham số (𝑤1, 𝑏1) và (𝑤2, 𝑏2), và 𝑤1 = 𝑐𝑤2, 𝑏1 = 𝑐𝑏2, thì hai siêu phẳng 𝜋1 và 𝜋2 là một.

Hình 2.1. 6: Siêu phẳng với sự thay đổi của các tham số w và b

Khoảng cách 𝜌(𝑥, 𝜋) của vectơ x tới siêu phẳng 𝜋(𝑤, 𝑏) được tính theo công thức:

𝜌(𝑥, 𝜋) =〈𝑤,𝑥〉+𝑏‖𝑤‖ (2.1.2) Chú ý khoảng cách ở đây có gán dấu: 𝜌(𝑥, 𝜋) > 0 khi 𝑥 ∈ (𝑹𝑛)𝜋+ và 𝜌(𝑥, 𝜋) < 0 khi 𝑥 ∈ (𝑹𝑛)𝜋−. Rõ ràng 𝜌(𝑥, 𝜋) = 0 khi 𝑥 ∈ 𝜋. Khoảng cách từ góc tọa độ tới siêu phẳng là ‖𝑤‖𝑏 . Chúng ta có một vài quan sát sau đây (giúp cho việc tính toán sau này): Gốc tọa độ ở trong phần dương, (𝑹𝑛)𝜋+, nếu 𝑏 > 0, và ở phần âm nếu 𝑏 < 0. Nếu 𝑏 = 0 thì siêu phẳng đi qua gốc tọa độ, Hình 2.1.6.a.

Khi giá trị tuyệt đối của |b| tăng, siêu phẳng sẽ di chuyển ra xa khỏi gốc tọa độ. Ngược lại, khi giá trị tuyệt đối của |b| giảm, siêu phẳng sẽ di chuyển gần vào gốc tọa độ. Xem Hình 2.1.6.a.

Bằng cách thay đổi vectơ pháp tuyến nhưng vẫn giữ chuẩn không đổi ||w||, chúng ta đang di chuyển siêu phẳng quanh gốc tọa độ theo đường tròn có bán kính ‖𝑤‖|𝑏|. Xem Hình 2.1.6.b.

27

Khi giảm chiều dài của vectơ pháp tuyến w nhưng vẫn giữ hướng của nó, siêu phẳng sẽ di chuyển ra xa gốc tọa độ. Và khi tăng chiều dài của vectơ pháp tuyến w

nhưng vẫn giữ hướng của nó, siêu phẳng sẽ di chuyển vào phía gốc tọa độ (Hình 2.1.6.c). Như vậy siêu phẳng sẽ di chuyển song song với chính nó bằng 2 cách: thay đổi giá trị của b, hoặc thay đổi chiều dài của w. Nhưng nếu chúng ta cùng tăng b

w theo cùng một tỉ lệ thì siêu phẳng giữ nguyên.

Giả sử chúng ta có tập dữ liệu m điểm: X = {(xi, yi)|xi ∈ Rn, yi ∈ {+1, −1}}m. Trong bài toán phân lớp nhị phân này, mỗi một dữ liệu xi được gọi là một điểm trong không gian n-chiều.

Nếu tồn tại một bộ (𝑤, 𝑏) ∈ 𝑅𝑛× 𝑅, sao cho siêu phẳng 𝜋(𝑤, 𝑏) phân lớp mọi điểm trong đúng, thì ta có:

〈𝑤, 𝑥𝑖〉 + 𝑏 > 0, ∀𝑦𝑖 = +1

〈𝑤, 𝑥𝑖〉 + 𝑏 < 0, ∀𝑦𝑖 = −1} ⟹ yi(〈𝑤, 𝑥𝑖〉 + 𝑏) > 0, ∀𝑖 = {1, … , 𝑚}

Nếu tồn tại bộ (𝑤, 𝑏) thỏa mãn điều kiện trên thì khi đó tồn tại 𝜀 > 0 sao cho:

yi(〈𝑤, 𝑥𝑖〉 + 𝑏) ≥ 𝜀, ∀𝑖 = {1, … , 𝑚} ⟹ yi(〈𝑤

𝜀 , 𝑥𝑖〉 +𝑏 𝜀) ≥ 1

Như trên đã trình bày, bằng cách đặt lại = 𝑤𝜀, 𝑏 = 𝑏𝜀 , chúng ta vẫn giữ nguyên siêu phẳng phân tách cho m điểm của X. Nghĩa là, ta có bất phương trình:

yi(〈𝑤, 𝑥𝑖〉 + 𝑏) ≥ 1, ∀𝑖 = {1, … , 𝑚} (2.1.3) Tóm lại, siêu phẳng mà chúng ta cần tìm để phân tách đúng tập dữ liệu sẽ thỏa mãn hệ bất phương trình (2.1.3).

Giả sử tập các điểm (𝑥i, yi = −1) là lớp C1, và tập các điểm (𝑥i, yi = +1) là lớp C2. Siêu phẳng 𝜋 phân tách hai lớp C1C2 có lề 𝑚(𝜋, 𝐶1, 𝐶2) được định nghĩa như sau:

𝑚(𝜋, 𝐶1, 𝐶2) = 𝜌(𝜋, 𝐶1) + 𝜌(𝜋, 𝐶2) (2.1.4)

Trong đó khoảng cách từ siêu phẳng 𝜋 tới lớp Ci (có thể là C1 hoặc C2) chính là độ dài từ một điểm trong Ci có khoảng cách nhỏ nhất:

𝜌(𝜋, 𝐶𝑖) = min

28

Hình 2.1. 7:Khoảng cách từ lớp C1 và C2 tới siêu phẳng

Theo công thức (2.1.4) có thể có nhiều siêu phẳng có khoảng cách giống nhau tới hai lớp cần phân tách, xem Hình 2.1.8.

Hình 2.1. 8: Tất cả 5 siêu phẳng đều thỏa mãn có tổng lề lớn nhất để phân tách 2 lớp

Tuy nhiên, thuật toán SVM sẽ tìm ra siêu phẳng cách đều 2 lớp, như vậy khi có dữ liệu mới (cần phán đoán), chúng ta sẽ chia đều độ tự tin cho 2 lớp, Hình 2.1.9.

29 𝑑 = 𝜌(𝜋, 𝐶1) = 𝜌(𝜋, 𝐶2) và là lớn nhất [3]. (adsbygoogle = window.adsbygoogle || []).push({});

Theo công thức (2.1.2), khoảng cách từ một điểm tới siêu phẳng được tính theo dấu, và và (2.1.3), ta có thể suy ra độ dài khoảng cách từ một điểm thuộc 1 lớp tới siêu phẳng 𝜋 là: |𝜌(𝑥, 𝜋)| =yi〈𝑤, 𝑥𝑖〉 + 𝑏 ‖𝑤‖ Ta có 𝜌(𝜋, 𝐶) = min 𝑥∈𝐶 |𝜌(𝜋, 𝑥)| = min 𝑖=1,…,𝑚 yi〈𝑤, 𝑥𝑖〉 + 𝑏 ‖𝑤‖ Chúng ta biết rằng: min 𝑖∈{1,…,𝑚}yi〈𝑤, 𝑥𝑖〉 + 𝑏 = 1 Do vậy 𝜌(𝜋, 𝐶) =‖𝑤‖1 (2.1.6) Vì 𝑑 = 𝜌(𝜋, 𝐶1) = 𝜌(𝜋, 𝐶2) nên bây giờ việc tìm siêu phẳng cho lề (margin) lớn nhất chính là tìm siêu phẳng 𝜋 sao cho 𝜌(𝜋, 𝐶) đạt giá trị lớn nhất (C ={C1,C2}):

max

𝜋 𝜌(𝜋, 𝐶) .

Từ (2.1.6) ta suy ra việc tìm siêu phẳng:

max

𝜋 𝜌(𝜋, 𝐶) = max

w,b 1

‖𝑤‖ (2.1.7)

30

Tóm lại siêu phẳng cần tìm sẽ dẫn tới việc giải bài toán tối ưu:

max 𝑤∈𝑅𝑛,𝑏∈𝑅 1 2‖𝑤‖⟹𝑤∈𝑅min𝑛,𝑏∈𝑅 1 2‖𝑤‖

với điều kiện đảm bảo không có điểm dữ liệu nào trong lề xác định bởi phương trình.

min

𝑖=1,…,𝑚yi〈𝑤, 𝑥𝑖〉 + 𝑏 = 1

Bài toán được viết gọn:

min

𝑤∈𝑅𝑛,𝑏∈𝑅 1

2‖𝑤‖ (2.1.8)

yi(〈𝑤, 𝑥𝑖〉 + 𝑏) ≥ 1, ∀𝑖 = {1, … , 𝑚} (2.1.9) Có một vài tính chất cho bài toán này:

Bài toán tối ưu quy hoạch toàn phương với ràng buộc là các bất phương trình tuyến tính. Các ràng buộc xác định một miền lồi (convex).

Hàm mục tiêu là hàm bậc 2.

Bài toán có nghiệm toàn cục duy nhất. Bài toán đối ngẫu cho (2.1.8) và (2.1.9) là:

max 𝛼 𝐿𝑑(𝛼) (2.1.10) 𝛼 = (𝛼1, 𝛼2, … , 𝛼𝑚), 𝛼𝑖 ≥ 0, ∀𝑖 = {1, … , 𝑚} (2.1.11) Trong đó: 𝐿𝑑(𝛼) = min 𝑤,𝑏 𝐿(𝑤, 𝑏, 𝛼) (2.1.12) Và nhân tử Lagrange được định nghĩa:

𝐿(𝑤, 𝑏, 𝛼) =12‖𝑤‖2− ∑𝑚 𝛼𝑖[𝑦𝑖(〈𝑤, 𝑥𝑖〉 + 𝑏) − 1]

𝑖=1 (2.1.13)

Vì nhân tử Lagrange là một hàm lồi (convex) nên với mọi 𝛼 cặp (𝑤∗, 𝑏∗) là nghiệm cực tiểu toàn cục của 𝐿(𝑤, 𝑏, 𝛼) nếu và chỉ nếu đạo hàm riêng theo wb

bằng 0 ∇𝑤,𝑏𝐿(𝑤∗, 𝑏∗, 𝛼) = 0 (2.1.14) Kết hợp (2.1.10), (2.1.11) và (2.1.14) ta có bài toán: max 𝑤,𝑏,𝛼𝐿(𝑤, 𝑏, 𝛼) (2.1.15) ∇𝑤,𝑏𝐿(𝑤, 𝑏, 𝛼) = 0 (2.1.16) 𝛼𝑖 ≥ 0, ∀𝑖 = {1, … , 𝑚} (2.1.17)

31 Ràng buộc (2.1.16) được cụ thể: 𝜕𝐿 𝜕𝑤𝑘 = 0 ⟹ 𝑤𝑘 = ∑𝑚 𝛼𝑖𝑦𝑖𝑥𝑘𝑖 𝑖=1 , 𝑘 = 1, … , 𝑛 (2.1.18) 𝜕𝐿 𝜕𝑏 = 0 ⟹ ∑𝑚 𝛼𝑖𝑦𝑖 = 0 𝑖=1 (2.1.19) 2.1.2.2 Lề cứng (hard – margin)

Thay thế (2.1.18) và (2.1.19) vào (2.1.13), ta chuyển bài toán chọn wb để cực đại hóa lề (margin), hay khoảng cách giữa hai siêu mặt song song ở xa nhau nhất có thể trong khi vẫn phân tách được dữ liệu, thành bài toán:

∑𝑚 𝛼𝑖−12 𝑖=1 ∑ ∑ 𝛼𝑖𝛼𝑗𝑦𝑖𝑦𝑗〈𝑥𝑖, 𝑥𝑗〉 ⟶ max 𝛼 𝑚 𝑗=1 𝑚 𝑖=1 (2.1.20) ∑𝑚 𝛼𝑖𝑦𝑖 = 0 𝑖=1 (2.1.21) 𝛼𝑖 ≥ 0, ∀𝑖 = {1, … , 𝑚} (2.1.22) Chúng ta tiếp tục chuyển sang bài toán đối ngẫu của (2.1.20), (2.1.21), và (2.1.22), ta có bài toán phân lớp nhị phân SVM lề cứng (hard-margin) như sau: (adsbygoogle = window.adsbygoogle || []).push({});

1 2∑ ∑ 𝛼𝑖𝛼𝑗𝑦𝑖𝑦𝑗〈𝑥𝑖, 𝑥𝑗〉 − ∑ 𝛼𝑖 𝑚 𝑖=1 ⟶ min 𝛼 𝑚 𝑗=1 𝑚 𝑖=1 ∑ 𝛼𝑖𝑦𝑖 = 0 𝑚 𝑖=1 −𝛼𝑖 ≤ 0, ∀𝑖 = {1, … , 𝑚} Chúng ta nhận xét sau đây:

Bài toán đối ngẫu chỉ phụ thuộc vào số lượng mẫu (𝛼 = (𝛼1, 𝛼2, … , 𝛼𝑚)) Bài toán đối ngẫu này có thể giải bằng phương pháp quy hoạch toàn phương (quadratic programming).

Bài toán (2.1.20), (2.1.21), và (2.1.22) có thể được viết lại: 1 2𝛼𝑇[𝑦 1𝑦1〈𝑥1, 𝑥1〉 𝑦1𝑦2〈𝑥1, 𝑥2〉 … … 𝑦𝑚𝑦1〈𝑥𝑚, 𝑥1〉 𝑦𝑚𝑦2〈𝑥𝑚, 𝑥2〉 … 𝑦1𝑦𝑚〈𝑥1, 𝑥𝑚〉 … … … 𝑦𝑚𝑦𝑚〈𝑥𝑚, 𝑥𝑚〉] 𝛼 + (−1) 𝑇𝛼(2.1.23) 𝑦𝑇𝛼 = 0 (2.1.24) −𝛼𝑖 ≤ 0, ∀𝑖 = {1, … , 𝑚} (2.1.25)

32

Chúng ta có thể chuyển bài toán (2.1.23), (2.1.24), và (2.1.25) về dạng bài toán quy hoạch toàn phương điển hình như sau:

1 2𝛼𝑇𝑃𝛼 + 𝑞𝑇𝛼 ⟶ min 𝛼 (2.1.26) 𝐴𝛼 = 𝑏 (2.1.27) 𝐺𝛼 ≤ ℎ (2.1.28) Bằng cách đặt: 𝑃 = [𝑦𝑖𝑦𝑗〈𝑥𝑖, 𝑥𝑗〉]𝑚×𝑚 𝑞𝑇 = [−1]𝑚×1 𝐴 = 𝑦𝑇 𝑏 = 0 𝐺 = [−1]𝑚×𝑚 ℎ = [0]𝑚×1 Chú ý thêm rằng: 𝑦 = [𝑦𝑖]𝑚×1 𝑋 = [𝑥𝑘𝑖]𝑚×𝑛 𝛼 = [𝛼𝑖]𝑚×1

Khi đó ta có thể sử dụng thư viện gói CVXOPT [4] để giải bài toán toàn phương (quadratic programming):

importcvxopt.solvers

solution =cvxopt.solvers.qp(P, q, G, h, A, b)

2.1.2.3 Lề mềm (soft – margin)

Để ý rằng nếu dữ liệu huấn luyện có thể được chia tách một cách tuyến tính, thì ta có thể chọn hai siêu phẳng của lề sao cho không có điểm nào ở giữa chúng và sau đó tăng khoảng cách giữa chúng đến tối đa có thể. Bằng hình học, ta tìm được khoảng cách giữa hai siêu phẳng là 2

‖𝑤‖ . Ta muốn cực tiểu hóa giá trị ‖𝑤‖.

Nếu không tồn tại siêu phẳng nào phân tách được hai lớp dữ liệu, thì thuật toán lề mềm sẽ chọn một siêu phẳng phân tách các dữ liệu huấn luyện tốt nhất có thể, và đồng thời cực đại hóa khoảng cách giữa siêu phẳng với các dữ liệu được gán đúng

33

nhãn. Phương pháp này sử dụng các biến bù 𝜀𝑖, dùng để đo độ sai lệch của dữ kiện 𝑥𝑖:

yi(〈𝑤, 𝑥𝑖〉 + 𝑏) ≥ 1 − 𝜀𝑖, ∀𝑖 = {1, … , 𝑚} 𝜀𝑖 > 0, ∀𝑖 = {1, … , 𝑚}

Khi đó hàm mục tiêu của chúng ta là: 1

2‖𝑤‖2⟶ min 𝑤,𝑏,𝜀

Với ràng buộc trên thì hàm mục tiêu này có thể nhỏ tùy ý khi điều chỉnh 𝜀𝑖 > 0 tùy ý. Do vậy, hàm mục tiêu có thêm một số hạng mới để phạt thuật toán khi 𝜀𝑖 ≠ 0, và bài toán tối ưu hóa trở thành việc trao đổi giữa lề lớn và mức phạt nhỏ. Nếu hàm mục tiêu là tuyến tính thì bài toán trở thành:

1 2‖𝑤‖2+ 𝐶 ∑𝑚 𝜀𝑖 ⟶ 𝑖=1 min 𝑤,𝑏,𝜀 (2.1.29) yi(〈𝑤, 𝑥𝑖〉 + 𝑏) ≥ 1 − 𝜀𝑖, ∀𝑖 = {1, … , 𝑚} (2.1.30) 𝜀𝑖 ≥ 0, ∀𝑖 = {1, … , 𝑚} (2.1.31) Có thể giải bài toán trên bằng nhân tử Lagrange. Bài toán cần giải trở thành: min 𝑤,𝜀,𝑏max 𝛼,𝛽 {1 2‖𝑤‖2+ 𝐶 ∑ 𝜀𝑖− 𝑚 𝑖=1 ∑ 𝛼𝑖[𝑦𝑖(〈𝑤, 𝑥𝑖〉 + 𝑏) − 1 + 𝜀𝑖] − 𝑚 𝑖=1 ∑ 𝛽𝑖𝜀𝑖 𝑚 𝑖=1 } với 𝛼𝑖, 𝛽𝑖 ≥ 0. Sau đó dùng các phép biến đổi như trong [3], bài toán (2.1.29), (2.1.30), và (2.1.31) cuối cùng chúng ta đưa được về dạng:

∑ 𝛼𝑖−1 2 𝑚 𝑖=1 ∑ ∑ 𝛼𝑖𝛼𝑗𝑦𝑖𝑦𝑗〈𝑥𝑖, 𝑥𝑗〉 ⟶ max 𝛼 𝑚 𝑗=1 𝑚 𝑖=1 (2.1.32) ∑𝑚 𝛼𝑖𝑦𝑖 = 0 𝑖=1 (2.1.33) 0 ≤ 𝛼𝑖 ≤ 𝐶, ∀𝑖 = {1, … , 𝑚} (2.1.34) Bài toán trên không khác gì bài toán (2.1.20), (2.1.21) và (2.1.22), ngoại trừ điều kiện thêm cho biến 𝛼𝑖 bị chặn trên bởi C.

Ưu điểm của việc dùng hàm phạt tuyến tính là các biến bù biến mất khỏi bài toán đối ngẫu, và hằng số C chỉ xuất hiện dưới dạng một chặn trên cho các nhân tử Lagrange. Cách đặt vấn đề trên đã mang lại nhiều thành quả trong thực tiễn. Tham số

34

toán trở thành bài toán lề cứng (hard margin). Giá trị của C càng lớn thì độ cho phép các ngoại lệ càng lớn.

Trong quá trình huấn luyện, tham số C sẽ tác động trực tiếp tới số các ngoại lệ cho phép, và C ảnh hưởng tới số support vectors dùng trong mô hình. Cụ thể (Hình 2.1.11):

Giá trị của C càng nhỏ thì càng có nhiều điểm ngoại lệ. Điểm nhạy cảm của thuật toán với tập dữ liệu huấn luyện càng lớn (phương sai cao hơn và độ lệch nhỏ hơn).

Giá trị của C càng lớn thì càng có ít điểm ngoại lệ. Độ nhạy cảm của thuật toán với tập dữ liệu huấn luyện càng nhỏ (phương sai nhỏ hơn và độ lệch lớn hơn).

Một phần của tài liệu Nghiên cứu các giải thuật máy học và áp dụng vào bài toán dự đoán bệnh thận tại bệnh viện đa khoa tỉnh điện biên dùng ngôn ngữ python (Trang 31)