Chuyển đến nội dung chính

Mô phỏng thuật toán SVM: Margin và Support Vector trực quan

Mô phỏng thuật toán Support Vector Machine

Click vào mặt phẳng để thêm dữ liệu, chọn lớp trước khi thêm điểm, sau đó huấn luyện SVM để quan sát siêu phẳng phân tách, hai biên margin và các support vector.

Tóm tắt nội dung
  • SVM tìm một biên quyết định có khoảng cách tới các điểm gần biên lớn nhất có thể.
  • Các điểm ảnh hưởng trực tiếp đến vị trí của biên tối ưu được gọi là support vectors.
  • Tham số C điều khiển đánh đổi giữa margin rộng và mức phạt cho các điểm vi phạm margin hoặc bị phân loại sai.
Lớp -1 Lớp +1 Support vector Decision boundary Margin

1. Tạo dữ liệu

Click để thêm điểm. Click chuột phải gần một điểm để xóa điểm đó.

2. Huấn luyện mô hình

1.0

C nhỏ chấp nhận nhiều vi phạm hơn để ưu tiên margin rộng. C lớn phạt mạnh các điểm vi phạm.

3. Thống kê

Số mẫu
0
Support vectors
-
Train accuracy
-
Margin width
-
Tạo ít nhất một điểm cho mỗi lớp rồi bấm “Huấn luyện SVM”.

SVM đang tối ưu điều gì?

Support Vector Machine (SVM) là mô hình học có giám sát dùng để phân loại hoặc hồi quy. Trong bài toán phân loại nhị phân tuyến tính, SVM tìm một siêu phẳng wTx + b = 0 sao cho khoảng cách tới các mẫu gần biên nhất được tối đa hóa. Với dữ liệu hai chiều như mô phỏng phía trên, “siêu phẳng” chính là một đường thẳng.

f(x) = sign(wTx + b)

Hai đường wTx + b = +1 và wTx + b = -1 tạo thành hành lang margin. Khoảng cách từ decision boundary tới mỗi phía của margin bằng 1 / ||w||, vì vậy tổng độ rộng của hành lang là 2 / ||w||.

Soft-margin SVM và vai trò của tham số C

Dữ liệu thực tế hiếm khi phân tách hoàn hảo. Soft-margin SVM đưa thêm biến slack ξi để cho phép một số mẫu nằm trong margin hoặc thậm chí nằm sai phía của decision boundary. Bài toán tối ưu ở dạng primal có thể viết như sau:

minw,b,ξ   1/2 ||w||2 + C Σ ξi    với   yi(wTxi + b) ≥ 1 - ξi,   ξi ≥ 0
  • C nhỏ: ưu tiên regularization mạnh hơn, thường cho margin rộng hơn và chấp nhận nhiều vi phạm hơn.
  • C lớn: phạt mạnh lỗi trên dữ liệu huấn luyện, biên có xu hướng cố gắng phân loại đúng nhiều điểm hơn.
  • C không tự động càng lớn càng tốt: giá trị quá lớn có thể làm mô hình nhạy với nhiễu và outlier.
Trong mô phỏng này, C có thể thay đổi từ 0.1 đến 10. Hãy tạo vài điểm gần biên hoặc một outlier, sau đó thử nhiều giá trị C để quan sát cách decision boundary và số support vector thay đổi.

Support vectors quyết định biên phân loại như thế nào?

Không phải mọi điểm huấn luyện đều tác động trực tiếp như nhau lên nghiệm cuối cùng. Trong bài toán dual của SVM, mỗi mẫu có một hệ số αi. Các mẫu có αi > 0 là support vectors và chúng quyết định vị trí của decision boundary. Các điểm ở rất xa biên thường có α bằng 0 nên không trực tiếp tham gia vào biểu thức của w.

w = Σ αi yi xi

Trên canvas, support vectors được đánh dấu bằng một vòng tròn đen bên ngoài điểm dữ liệu. Khi thêm một điểm rất xa decision boundary, bạn thường sẽ thấy đường phân tách gần như không thay đổi. Nhưng khi thêm một điểm sát margin, vị trí đường biên có thể thay đổi rõ rệt.

Pipeline của mô phỏng

1. Tạo dữ liệu Hai lớp -1 và +1 trên mặt phẳng 2D
2. Tối ưu dual SMO cập nhật từng cặp hệ số α
3. Khôi phục w, b Tạo hàm quyết định tuyến tính
4. Trực quan hóa Boundary, margin và support vectors

Chương trình sử dụng một phiên bản tối giản của Sequential Minimal Optimization (SMO) cho linear kernel. Thuật toán giải bài toán dual bằng cách cập nhật từng cặp α thay vì dùng một bộ giải quadratic programming tổng quát. Với mục đích giảng dạy trên tập dữ liệu 2D nhỏ, cách này đủ trực quan và không cần thư viện ngoài.

Đọc kết quả trên màn hình

Thành phần Ý nghĩa Cách quan sát
Decision boundary Đường wTx + b = 0 dùng để phân lớp. Đường đen liền.
Margin Hai biên wTx + b = ±1. Hai đường xám nét đứt.
Support vector Mẫu có α > 0 trong nghiệm dual. Điểm có vòng tròn đen bao quanh.
Train accuracy Tỷ lệ mẫu được phân loại đúng trên dữ liệu hiện tại. Hiển thị ở bảng thống kê.
Margin width Khoảng cách giữa hai đường margin, bằng 2 / ||w|| trong không gian tọa độ mô phỏng. Giá trị lớn thường tương ứng với biên rộng hơn.

Khi nào SVM tuyến tính phù hợp?

Linear SVM phù hợp khi dữ liệu có thể phân tách tương đối tốt bằng một biên tuyến tính hoặc khi số chiều đặc trưng rất lớn, chẳng hạn biểu diễn bag-of-words hoặc TF-IDF trong phân loại văn bản. Nếu cấu trúc dữ liệu phi tuyến mạnh, có thể dùng kernel SVM như RBF hoặc polynomial để xây dựng biên quyết định phi tuyến.

Điểm quan trọng của mô phỏng không phải là đạt accuracy cao nhất mà là quan sát cơ chế của SVM: mô hình chọn biên dựa chủ yếu trên các điểm gần ranh giới, đồng thời sử dụng C để đánh đổi giữa margin và lỗi huấn luyện.

© The CS Note · THE CS NOTE

Nội dung gốc thuộc tác giả. Vui lòng không đăng lại toàn văn khi chưa được phép, trừ trường hợp pháp luật hoặc giấy phép áp dụng cho phép. Nội dung của bên thứ ba tuân theo quyền và giấy phép tương ứng.

Nguồn gốc: Mô phỏng thuật toán SVM: Margin và Support Vector trực quan

Về trang chủ Về đầu bài

Bài Đăng Phổ Biến

Bài toán tháp Hà nội

Trải nghiệm Tháp Hà Nội Kéo thả đĩa hoặc chạm vào các nút bên dưới để di chuyển. Bạn phải chuyển toàn bộ đĩa sang cột ngoài cùng bên phải (Cột 3) mà không đặt đĩa to lên đĩa nhỏ. Cột 1 Cột 2 Cột 3 Điều khiển & Chế độ Số lượng đĩa 4 Tốc độ máy giải ↪ Undo ↻ Chơi lại 🤖 Máy tự giải Thống kê ván chơi Nước đã đi 0 Thời gian 00:00 Tối thiểu cần 15 Kỷ lục của bạn - Lịch sử và Nguồn gốc Truyền thuyết Bài toán Tháp Hà Nội (hay Tháp Brahma) là một trò chơi xếp hình toán học kinh điển được giới thiệu lần đầu vào năm 1883 bởi nhà toán học người Pháp Édouard L...

Bài toán phân tích cảm xúc trong văn bản

Bài toán phân tích cảm xúc (sentiment analysis) là một bài toán NLP nhằm xác định thái độ hoặc cảm xúc được thể hiện trong văn bản. Ví dụ, từ một đánh giá như “Điện thoại đẹp, chạy nhanh nhưng pin hơi yếu”, hệ thống có thể nhận biết rằng người dùng có cả nhận xét tích cực và tiêu cực. Điểm thú vị của bài toán nằm ở khoảng cách giữa cách con người hiểu ngôn ngữ và cách máy tính xử lý dữ liệu. Một hệ thống phân tích cảm xúc cần biến văn bản tự nhiên thành dữ liệu có cấu trúc, học được các mẫu ngôn ngữ từ dữ liệu huấn luyện và đưa ra dự đoán hợp lý trên những câu chưa từng gặp. 1. Bài toán phân tích cảm xúc bắt đầu từ đâu? Hãy tưởng tượng một cửa hàng trực tuyến có hàng nghìn đánh giá mỗi ngày. Con người có thể đọc từng đánh giá để biết khách hàng hài lòng hay không, nhưng việc này nhanh chóng trở nên tốn thời gian khi dữ liệu tăng lên. NLP có thể biến bài toán đó thành một bài toán phân loại. Với mỗi văn bản, hệ thống nhận vào một chuỗi ký...

KAN cho phân đoạn khối u não với bộ BraTS 2020

Kolmogorov-Arnold Network (KAN) mở ra một hướng khác với MLP truyền thống: thay vì chỉ học các trọng số vô hướng trên mỗi kết nối, KAN có thể học những hàm phi tuyến một biến trên các cạnh . Khi đưa ý tưởng này vào kiến trúc encoder-decoder như U-Net, ta có thể sử dụng convolution để giữ cấu trúc không gian của ảnh MRI và dùng KAN để thực hiện các phép biến đổi phi tuyến mạnh hơn trên representation trung gian. Một bài toán phù hợp để nghiên cứu hướng này là phân đoạn u thần kinh đệm trên BraTS 2020 . Dataset cung cấp MRI đa mô thức và yêu cầu xác định các vùng Whole Tumor (WT), Tumor Core (TC) và Enhancing Tumor (ET). Đây là bài toán 3D có sự mất cân bằng voxel lớn, hình dạng khối u rất đa dạng và ranh giới giữa các mô bệnh lý không đơn giản. Lưu ý học thuật quan trọng: U-KAN gốc được công bố cho nhiều benchmark phân đoạn ảnh y tế nhưng không báo cáo kết quả BraTS 2020. Một công trình sau đó đã mở rộng U-KAN sang 3D MRI brain tumor segmentation , nhưng đánh giá trên BraTS 2...

Tách từ trong tiếng Việt Word Segmentation

Tách từ tiếng Việt là bài toán xác định ranh giới giữa các từ trong một chuỗi văn bản. Khó khăn nằm ở chỗ khoảng trắng trong tiếng Việt thường phân cách các âm tiết , nhưng một từ hoàn chỉnh có thể gồm nhiều âm tiết như “sinh viên” , “đại học” , “công nghệ” hay “tự nhiên” . Tách từ đúng giúp các hệ thống NLP dựa trên từ biểu diễn văn bản hợp lý hơn, đặc biệt trong tìm kiếm, TF-IDF, phân loại văn bản, gán nhãn từ loại và một số mô hình ngôn ngữ tiếng Việt. Tuy nhiên, với các Transformer sử dụng tokenizer dưới mức từ như subword hoặc SentencePiece, tách từ thủ công không phải lúc nào cũng là bước bắt buộc . Việc có cần tách từ trước hay không phụ thuộc vào mô hình và pipeline cụ thể. Tóm tắt nội dung Khoảng trắng trong tiếng Việt không phải lúc nào cũng là ranh giới từ ; nhiều từ gồm hai hoặc nhiều âm tiết. Word segmentation và tokenization có liên quan nhưng không hoàn toàn đồng nghĩa. Ba hướng chính gồm dựa trên từ điển, mô hình thống kê và mô hình học sâu . Tron...

KAN là gì? Mạng Kolmogorov-Arnold khác MLP thế nào?

Kolmogorov-Arnold Network (KAN) là một kiến trúc mạng nơ-ron trong đó mỗi cạnh không chỉ chứa một trọng số vô hướng mà mang một hàm một biến có thể học được . Đây là khác biệt cốt lõi so với Multi-Layer Perceptron (MLP), nơi các cạnh chủ yếu thực hiện phép nhân với trọng số còn hàm kích hoạt thường được áp dụng tại các node. KAN được lấy cảm hứng từ định lý biểu diễn Kolmogorov-Arnold và đặc biệt đáng chú ý trong các bài toán xấp xỉ hàm, mô hình hóa khoa học và symbolic regression. Tuy nhiên, KAN không nên được hiểu là kiến trúc đã thay thế MLP trong mọi bài toán Deep Learning; khả năng biểu diễn, chi phí tính toán và mức độ phù hợp của hai kiến trúc khác nhau theo từng nhiệm vụ. Tóm tắt nội dung MLP học chủ yếu trọng số trên các cạnh , còn KAN đặt hàm một biến học được trên từng cạnh . Một KAN layer cộng kết quả của nhiều hàm cạnh để tạo activation của node tiếp theo. KAN gốc sử dụng B-spline để tham số hóa các hàm phi tuyến trên cạnh. KAN có lợi thế đáng chú ý về trực...