Biên mềm (Soft Margin)

Một phần của tài liệu Ứng dụng máy vectơ hỗ trợ phân loại ý kiến của người xem trên các trang web phim trực tuyến (Trang 55 - 58)

CHƯƠNG 2: MÁY HỌC VECTƠ HỖ TRỢ

2.2. Support Vector Machine (SVM)

2.2.3. Biên mềm (Soft Margin)

Trong thực tế, tập dữ liệu không luôn thoả tính chất phân chia được, mà đôi khi có một vài điểm bị nhiễu (inseparable points). Vì vậy, từ phương pháp nguyên thuỷ ban đầu, ta cần thêm một vài cải tiến để chấp nhận những điểm nhiễu này để tăng độ chính xác phân lớp [20].

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

- Trường hợp 1: Dữ liệu vẫn có thể phân tách tuyến tính như Hình 2.8 dưới đây 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 như ban đầu thì sẽ tạo ra một margin 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 biên tốt hơn rất nhiều được mô tả bởi các đường nét đứt. Vì vậy SVM ban đầu được xem là nhạy cảm với nhiễu.

Hình 2.8: Xuất hiện điểm dữ liệu nhiễu [20]

- Trường hợp 2: Dữ liệu không thể phân tách tuyến tính hoàn toàn như Hình 2.9.

Trong trường hợp này, nếu ta sử dụng SVM biên cứng (biên phân tách dữ liệu hoàn toàn) thì rõ ràng bài toán tối ưu gần như không thể giải được. Vì vậy bài toán tối ưu SVM trở nên vô nghiệm. Tuy nhiên, nếu chấp nhận bỏ qua 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 hỗ trợ đường nét đứt mảnh vẫn giúp tạo được một biên 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 hỗ trợ (hay đườ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 hỗ trợ.

Hình 2.9: Dữ liệu gần như không thể phân tách tuyến tính

Trong cả hai trường hợp trên, biên tạo bởi đường phân chia và đường nét đứt mảnh còn được gọi là biên mềm.

Để có một biên lớn hơn trong SVM biên mềm, 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. Sự hy sinh này phải được hạn chế vì rất có thể sẽ 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 dẫn đến việc phân lớp không hiệu quả và thiếu chính xác. Vậy hàm mục tiêu nên là một sự kết hợp để tối đa biến và tối thiểu sự hy sinh. Giống như với SVM biên cứng, việc tối đa biên có thể đưa về việc tối thiểu ||𝑤|| .

Hình 2.10: Bổ sung thêm biến slack 𝝃𝒏 đối với các điểm nhiễu

Với mỗi điểm 𝑥 trong tập toàn bộ dữ liệu huấn luyện, ta bổ sung thêm một biến đo sự hy sinh ξ tương ứng. Biến này còn được gọi là slack variable. Với những điểm 𝑥 nằm trong vùng an toàn, ξ = 0. Với mỗi điểm nằm trong vùng không an toàn như 𝑥 , 𝑥 hay 𝑥 , ta có ξ > 0. Có thể nhận thấy rằng nếu 𝑥 = ± 1 là nhãn của 𝑥 trong vùng không an toàn thì:

ξ = |𝑤 𝑥 + 𝑏 − 𝑦 | (2.9)

Để chấp nhận các điểm dữ liệu nhiễu, công thức mục tiêu của SVM ban đầu phải được bổ sung thêm một số hạng nữa giúp tối thiểu sự hy sinh. Từ đó ta có hàm mục tiêu mới như sau:

min, |𝑤| + 𝐶 ∑ ξ (2.10) Trong đó:

- Slack variable ξ mô tả độ nhiễu cho phân lớp .

- C độ ảnh hưởng của lỗi (C càng lớn thì mức độ ảnh hưởng của các điểm nhiễu càng lớn, ngược lại C càng nhỏ, thì điều kiện nới lỏng hơn, dễ dàng chấp nhận nhiễu hơn). Hằng số này được xác định từ trước bởi người lập trình hoặc có thể được xác định bởi cross-validation.

Ràng buộc functional margin sẽ có dạng :

𝑦 (𝑤 𝑥 + 𝑏) ≥ 1 − ξ , ξ ≥ 0, 𝑖 = 1, . . 𝑛 (2.11)

Bài toán (2.11) trên có thể được giải theo 2 cách: bài toán đối ngẫu Lagrange và bài toán tối ưu không ràng buộc cho SVM biên mềm.

Một phần của tài liệu Ứng dụng máy vectơ hỗ trợ phân loại ý kiến của người xem trên các trang web phim trực tuyến (Trang 55 - 58)

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

(87 trang)