SVM với tuyến tính

Một phần của tài liệu Kỹ thuật phân lớp dữ liệu và ứng dụng trong phát hiện mã độc (Trang 50 - 56)

CHƯƠNG 2: MỘT SỐ KỸ THUẬT PHÂN LỚP

2.5. Kỹ thuật phân loại máy vector hỗ trợ

2.5.2. SVM với 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; lớp dương (+1) hoặc lớp âm (-1).

SVMs sử dụng hai khái niệm để giải quyết vấn đề này đó là phân lớp biên rộng và hàm kernel. Ý tưởng của phân lớp biên rộng là có thể được minh họa bởi sự phân lớp của các điểm trong không gian hai chiều. Một cách đơn giản là để phân lớp của các điểm này 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 còn các điểm bên kia là âm. Nếu hai đường thẳng phân chia tốt thì ta có thể phân tách khá xa hai tập dữ liệu. Đây là ý tưởng về sự phân chia biên rộng. Ta có một tập huấn luyện D gồm n điểm có dạng.

i i 1

D {( xi , yi ) | P

xi R

, y { 1,1}}n

Với yi mang giá trị 1 hoặc −1, xác định lớp của điểm xi. Mỗi xi là một vectơ thực p- chiều. Ta cần tìm siêu phẳng có lề lớn nhất chia tách các điểm có yi = 1 và các điểm có yi=-1. Mỗi siêu phẳng đều có thể được viết dưới dạng một tập hợp các điểm x thỏa mãn.

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.

Các ví dụ nằm trên lề đƣợc gọi là các vectơ hỗ trợ.

w.x - b = 0

Với. Kí hiệu cho tích vô hướng và w là một vectơ pháp tuyến của siêu phẳng. Tham số b xác định khoảng cách giữa gốc tọa độ và siêu phẳng theo hướng vectơ pháp || w || tuyến w.

Chúng ta cần chọn w và b để cực đại hóa lề, 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 chia đƣợc dữ liệu.

Các siêu mặt ấy đƣợc xác định bằng w.x - b = 1 và w.x - b =1

Để ý 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

|| w ||

. Vì vậy ta muốn cực tiểu hóa giá trị ||w||.

Để đảm bảo không có điểm dữ liệu nào trong lề, ta thêm vào các điều kiện sau, với

mỗi i ta có:

hoặc

w.x - b 1 cho xi thuộc lớp thứ nhất w.x - b 1 cho xi thuộc lớp thứ hai Có thể viết gọn lại nhƣ sau với mọi 1 i n :

yi(w . xi – b) 1, (1) Tóm lại, ta có bài toán tối ƣu hóa sau:

Cực tiểu hóa (theo w,b)

với điều kiện ( với mọi i=1,…, n) yi(w . xi – b) 1.

Dạng ban đầu

Bài toán tối ưu ở mục trên tương đối khó giải vì hàm mục tiêu phụ thuộc vào

2

2

ax

||w||, là một hàm có khai căn. Tuy nhiên có thể thay ||w|| bằng hàm mục tiêu 1 || w || 2

(hệ số 1/2 để tiện cho các biến đổi toán học sau này) mà không làm thay đổi lời giải (lời giải của bài toán mới và bài toán ban đầu có cùng w và b). Đây là một bài toán quy hoạch toàn phương. Cụ thể hơn:

Cực tiểu hóa ( theo w,b)

1 || w ||2 với điều kiện ( với mọi i=1,….,n)

yi (w . xi – b) 1

Bằng cách thêm các nhân tử Lagrange , bài toán trên trở thành min m 1 n

|| w ||2 y

w.x b 1

w,b 0 2

i i i

i 1 nghĩa là ta cần tìm một điểm yên ngựa. Khi đó, tất cả các điểm không nằm trên lề, nghĩa là yi (w . xi – b)-1 > 0 đều không ảnh hưởng đến giá trị hàm mục tiêu vì ta có thể chọn i bằng không.

Có thể giải bài toán này bằng các kỹ thuật thông thường cho quy hoạch toàn phương. Theo điều kiện Karush–Kuhn–Tucker, lời giải có thể được viết dưới dạng tổ hợp tuyến tính của các vectơ luyện tập

n

w i y i xi i

1 Chỉ có một vài

i nhận giá trị lớn hơn 0. Các điểm xi tương ứng là các vectơ

hỗ trợ nằm trên lề và thỏa mãn yi (w . xi – b) = 1. Từ điều kiện này, ta nhận thấy

T

w . xi – b = 1/yi = yi b = w . xi - yi

từ đó ta suy ra đƣợc giá trị b. Trên thực tế, một cách thức tốt hơn để tính b là tính giá trị trung bình từ tất cả NSV vectơ hỗ trợ:

Dạng đối ngẫu

b 1 N SV

N SV ( w.xi

i 1 yi )

Nếu viết điều kiện phân loại dưới dạng đối ngẫu không điều kiện thì sẽ dễ

dàng nhận thấy siêu phẳng với lề lớn nhất, và do đó nhiệm vụ phân loại, chỉ phụ

thuộc vào các điểm luyện tập nằm trên lề, còn gọi là các vectơ hỗ trợ.

Vì ||w||2 = w . w và w = n i

i y i x i

ta nhận thấy bài toán đối ngẫu của SVM

1 là chính là bài toán tối ƣu hóa

sau:

Cực đại hóa ( theo i )

~ n 1 n 1 L( ) i

2 i j yi y j xi x j

i

2 i j yi y j k ( xi , x j )

i j i i j

i 1 , 1 ,

với điều kiện (với mọi i=1,….,n

i 0 , và điều kiện sau ứng với việc cực tiểu hóa theo b

n i yi = i 0

1

Ở đây hàm hạt nhân đƣợc định nghĩa là k(xi,xj) = xi . xj . Sau khi giải xong, có thể tính w từ các giá trị tìm đƣợc nhƣ sau:

w = i yi xi i

CHƯƠNG 3

Một phần của tài liệu Kỹ thuật phân lớp dữ liệu và ứng dụng trong phát hiện mã độc (Trang 50 - 56)

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

(69 trang)