AI 101
Máy Vector Hỗ Trợ Là Gì?

Máy Vector Hỗ Trợ Là Gì?
Máy vector hỗ trợ là một loại phân loại học máy, có thể nói là một trong những loại phân loại phổ biến nhất. Máy vector hỗ trợ đặc biệt hữu ích cho dự đoán số, phân loại và nhiệm vụ nhận dạng mẫu.
Máy vector hỗ trợ hoạt động bằng cách vẽ ranh giới quyết định giữa các điểm dữ liệu, nhằm tìm ranh giới quyết định tốt nhất để tách các điểm dữ liệu thành các lớp (hoặc là tổng quát hóa nhất). Mục tiêu khi sử dụng máy vector hỗ trợ là ranh giới quyết định giữa các điểm là lớn nhất có thể để khoảng cách giữa bất kỳ điểm dữ liệu nào và đường ranh giới là tối đa. Đó là một giải thích nhanh về cách máy vector hỗ trợ (SVMs) hoạt động, nhưng hãy dành thời gian để tìm hiểu sâu hơn về cách SVMs hoạt động và hiểu logic đằng sau hoạt động của chúng.
Mục Tiêu Của Máy Vector Hỗ Trợ
Hãy tưởng tượng một đồ thị với một số điểm dữ liệu trên nó, dựa trên các tính năng được chỉ định bởi trục X và Y. Các điểm dữ liệu trên đồ thị có thể được chia thành hai nhóm khác nhau, và nhóm mà một điểm dữ liệu thuộc về chỉ ra lớp của điểm dữ liệu. Giờ hãy giả sử rằng chúng ta muốn vẽ một đường xuống đồ thị để tách hai lớp này, với tất cả các điểm dữ liệu trong một lớp nằm trên một bên của đường và tất cả các điểm dữ liệu thuộc về lớp khác nằm trên bên kia của đường. Đường tách này được gọi là siêu phẳng.
Bạn có thể nghĩ về máy vector hỗ trợ như tạo ra “đường” trong một thành phố, tách thành phố thành các khu vực trên cả hai bên của đường. Tất cả các tòa nhà (điểm dữ liệu) nằm trên một bên của đường thuộc về một khu vực.

Mục tiêu của máy vector hỗ trợ không chỉ là vẽ siêu phẳng và tách điểm dữ liệu, mà còn vẽ siêu phẳng tách điểm dữ liệu với khoảng cách lớn nhất, hoặc với khoảng cách lớn nhất giữa đường ranh giới và bất kỳ điểm dữ liệu nào. Trở lại với phép ẩn dụ “đường”, nếu một nhà quy hoạch đô thị vẽ kế hoạch cho một đường cao tốc, họ không muốn đường cao tốc quá gần với các ngôi nhà hoặc các tòa nhà khác. Khoảng cách giữa đường cao tốc và các tòa nhà trên cả hai bên càng lớn, càng tốt. Khoảng cách này càng lớn, phân loại器 càng tự tin về dự đoán của nó. Trong trường hợp phân loại nhị phân, việc vẽ siêu phẳng chính xác có nghĩa là chọn siêu phẳng nằm chính giữa hai lớp khác nhau. Nếu ranh giới quyết định/siêu phẳng xa hơn một lớp, nó sẽ gần hơn với lớp khác. Do đó, siêu phẳng phải cân bằng khoảng cách giữa hai lớp khác nhau.
Tính Toán Siêu Phẳng Tách
Vậy máy vector hỗ trợ xác định siêu phẳng tách tốt nhất như thế nào? Điều này được thực hiện bằng cách tính toán các siêu phẳng có thể sử dụng một công thức toán học. Chúng tôi sẽ không đề cập đến công thức tính toán siêu phẳng chi tiết, nhưng đường được tính toán với công thức đường/dốc nổi tiếng:
Y = ax + b
Trong khi đó, các đường được tạo thành từ các điểm, điều đó có nghĩa là bất kỳ siêu phẳng nào cũng có thể được mô tả là: tập hợp các điểm chạy song song với siêu phẳng được đề xuất, như được xác định bởi trọng số của mô hình nhân với tập hợp các tính năng được sửa đổi bởi một độ lệch/bias (“d”) được chỉ định.
SVMs vẽ nhiều siêu phẳng. Ví dụ, đường ranh giới là một siêu phẳng, nhưng các điểm dữ liệu mà phân loại器 xem xét cũng nằm trên siêu phẳng. Các giá trị cho x được xác định dựa trên các tính năng trong tập dữ liệu. Ví dụ, nếu bạn có một tập dữ liệu với chiều cao và trọng lượng của nhiều người, các tính năng “chiều cao” và “trọng lượng” sẽ là các tính năng được sử dụng để tính toán “X”. Khoảng cách giữa siêu phẳng được đề xuất và các “vector hỗ trợ” (điểm dữ liệu) khác nhau được tìm thấy trên cả hai bên của đường ranh giới được tính toán với công thức sau:
W * X – b
Trong khi bạn có thể đọc thêm về toán học đằng sau SVMs, nếu bạn đang tìm kiếm một sự hiểu biết trực quan hơn về chúng, chỉ cần biết rằng mục tiêu là tối đa hóa khoảng cách giữa siêu phẳng tách được đề xuất và các siêu phẳng khác chạy song song với nó (và trên đó các điểm dữ liệu được tìm thấy).

Ảnh: ZackWeinberg qua Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)
Phân Loại Đa Lớp
Quá trình được mô tả cho đến nay áp dụng cho nhiệm vụ phân loại nhị phân. Tuy nhiên, phân loại器 SVM cũng có thể được sử dụng cho nhiệm vụ phân loại không nhị phân. Khi thực hiện phân loại SVM trên một tập dữ liệu với ba hoặc nhiều lớp, nhiều đường ranh giới hơn sẽ được sử dụng. Ví dụ, nếu một nhiệm vụ phân loại có ba lớp thay vì hai, hai đường ranh giới sẽ được sử dụng để tách các điểm dữ liệu thành các lớp và khu vực bao gồm một lớp duy nhất sẽ nằm giữa hai đường ranh giới thay vì một. Thay vì chỉ tính toán khoảng cách giữa hai lớp và đường ranh giới, phân loại器 phải xem xét khoảng cách giữa các đường ranh giới và các lớp nhiều lớp trong tập dữ liệu.
Tách Phi Tuyến
Quá trình được mô tả ở trên áp dụng cho các trường hợp dữ liệu có thể tách tuyến. Lưu ý rằng, trong thực tế, các tập dữ liệu hầu như không bao giờ hoàn toàn có thể tách tuyến, điều đó có nghĩa là khi sử dụng phân loại器 SVM, bạn thường sẽ cần sử dụng hai kỹ thuật khác nhau: lề mềm và thủ thuật kernel. Hãy xem xét một tình huống mà các điểm dữ liệu của các lớp khác nhau được trộn lẫn, với một số trường hợp thuộc về một lớp trong “nhóm” của lớp khác. Làm thế nào bạn có thể có phân loại器 xử lý các trường hợp này?
Một chiến thuật có thể được sử dụng để xử lý các tập dữ liệu không tách tuyến là áp dụng phân loại器 SVM “lề mềm”. Phân loại器 lề mềm hoạt động bằng cách chấp nhận một số điểm dữ liệu bị phân loại sai. Nó sẽ cố gắng vẽ một đường mà tách các nhóm điểm dữ liệu từ nhau, vì chúng chứa đa số các trường hợp thuộc về các lớp tương ứng. Phân loại器 lề mềm SVM sẽ cố gắng tạo ra một đường ranh giới mà cân bằng hai yêu cầu của phân loại器: độ chính xác và lề. Nó sẽ cố gắng giảm thiểu việc phân loại sai trong khi tối đa hóa lề.
Tolerence sai sót của SVM có thể được điều chỉnh thông qua việc điều chỉnh một siêu tham số gọi là “C”. Giá trị C kiểm soát số lượng vector hỗ trợ mà phân loại器 xem xét khi vẽ đường ranh giới. Giá trị C là một hình phạt áp dụng cho việc phân loại sai, có nghĩa là giá trị C càng lớn, phân loại器 sẽ xem xét ít vector hỗ trợ hơn và lề sẽ hẹp hơn.

Thủ thuật kernel biến đổi dữ liệu theo cách phi tuyến. Ảnh: Shiyu Ju qua Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)
Thủ thuật kernel hoạt động bằng cách áp dụng các biến đổi phi tuyến cho các tính năng trong tập dữ liệu. Thủ thuật kernel lấy các tính năng hiện có trong tập dữ liệu và tạo ra các tính năng mới thông qua việc áp dụng các hàm toán học phi tuyến. Kết quả từ việc áp dụng các biến đổi phi tuyến này là một đường ranh giới phi tuyến. Vì phân loại器 SVM không còn bị giới hạn trong việc vẽ đường ranh giới tuyến, nó có thể bắt đầu vẽ đường ranh giới cong mà tốt hơn bao gồm sự phân bố thực sự của các vector hỗ trợ và giảm thiểu việc phân loại sai. Hai kernel phi tuyến SVM phổ biến nhất là Hàm Cơ Bản Radial và Đa thức. Hàm đa thức tạo ra các tổ hợp đa thức của tất cả các tính năng hiện có, trong khi Hàm Cơ Bản Radial tạo ra các tính năng mới bằng cách đo khoảng cách giữa một điểm trung tâm/điểm đến tất cả các điểm khác.












