sơ khai Máy Vector hỗ trợ là gì? - Đoàn kết.AI
Kết nối với chúng tôi
Lớp học AI:

AI 101

Máy Vector hỗ trợ là gì?

mm
cập nhật on

Máy Vector hỗ trợ là gì?

Máy vectơ hỗ trợ là một loại máy phân loại học máy, được cho là một trong những loại phân loại phổ biến nhất. Máy vectơ hỗ trợ đặc biệt hữu ích cho các nhiệm vụ dự đoán số, phân loại và nhận dạng mẫu.

Các máy vectơ 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 đến ranh giới quyết định phân tách tốt nhất các điểm dữ liệu thành các lớp (hoặc có thể khái quát hóa nhất). Mục tiêu khi sử dụng máy vectơ hỗ trợ là ranh giới quyết định giữa các điểm càng lớn càng tốt để khoảng cách giữa bất kỳ điểm dữ liệu đã cho nào và đường ranh giới là tối đa. Đó là một lời giải thích nhanh về cách máy vector hỗ trợ (SVM) hoạt động, nhưng chúng ta hãy dành chút thời gian để tìm hiểu sâu hơn về cách hoạt động của SVM và hiểu logic đằng sau hoạt động của chúng.

Mục Tiêu Của Các Máy Vector Hỗ Trợ

Hãy tưởng tượng một biểu đồ có một số điểm dữ liệu trê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 biểu đồ có thể được chia thành hai cụm khác nhau một cách lỏng lẻo và cụm chứa một điểm dữ liệu cho biết loại của điểm dữ liệu. Bây giờ, giả sử rằng chúng ta muốn vẽ một đường xuống biểu đồ phân tách hai lớp với nhau, với tất cả các điểm dữ liệu trong một lớp được tìm thấy ở một bên của đường và tất cả các điểm dữ liệu thuộc một lớp khác được tìm thấy ở bên kia của dòng. Đường phân cách này được gọi là một siêu phẳng.

Bạn có thể coi máy vectơ hỗ trợ giống như việc tạo ra “những con đường” xuyên suốt thành phố, chia thành phố thành các quận ở hai bên đường. Tất cả các tòa nhà (điểm dữ liệu) được tìm thấy ở một bên đường thuộc về một quận.

Mục tiêu của máy vectơ hỗ trợ không chỉ là vẽ các siêu phẳng và phân chia các điểm dữ liệu, mà còn để vẽ các siêu phẳng phân tách các điểm dữ liệu có lề lớn nhất hoặc có nhiều khoảng cách nhất giữa đường phân chia và bất kỳ điểm dữ liệu đã cho nào. Quay trở lại phép ẩn dụ về “những con đường”, nếu một nhà quy hoạch thành phố vạch ra các kế hoạch cho xa lộ, họ không muốn xa lộ quá gần 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à ở hai bên càng nhiều thì càng tốt. Biên độ này càng lớn, bộ phân loại càng “tự tin” về các 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 một siêu phẳng nằm ngay 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, thì nó sẽ gần lớp khác hơn. Do đó, siêu phẳng phải cân bằng lề giữa hai lớp khác nhau.

Tính toán siêu phẳng phân tách

Vậy làm thế nào để một máy vectơ hỗ trợ xác định ranh giới quyết định/siêu phẳng phân tách tốt nhất? Đ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 công thức toán học. Chúng tôi sẽ không đề cập đến công thức tính siêu phẳng cực kỳ chi tiết, nhưng đường này được tính bằng công thức độ dốc/đường nổi tiếng:

Y = ax + b

Trong khi đó, các đường được tạo từ các điểm, 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, được xác định bằng 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/độ lệch xác định (“d”).

SVM vẽ nhiều siêu phẳng. Ví dụ: đường biên là một siêu phẳng, nhưng các điểm dữ liệu mà bộ phân loại xem xét cũng nằm trên các 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ó tập dữ liệu về chiều cao và cân nặng của nhiều người, thì các tính năng “chiều cao” và “cân nặng” sẽ là các tính năng được sử dụng để tính “X”. Các lề giữa siêu phẳng được đề xuất và các “vec-tơ hỗ trợ” (điểm dữ liệu) khác nhau được tìm thấy ở hai bên của siêu phẳng phân chia được tính theo công thức sau:

W * X – b

Mặc dù bạn có thể đọc thêm về toán học đằng sau các SVM, nhưng nếu bạn đang tìm kiếm 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/đường biên phân 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 nhiều lớp

Quá trình được mô tả cho đến nay áp dụng cho các nhiệm vụ phân loại nhị phân. Tuy nhiên, bộ phân loại SVM cũng có thể được sử dụng cho các tác vụ phân loại không nhị phân. Khi thực hiện phân loại SVM trên tập dữ liệu có ba lớp trở lên, nhiều đường biên hơn sẽ được sử dụng. Ví dụ: nếu một tác vụ phân loại có ba lớp thay vì hai, thì hai đường phân chia sẽ được sử dụng để phân chia các điểm dữ liệu thành các lớp và vùng bao gồm một lớp duy nhất sẽ nằm giữa hai đường phân chia thay vì một. Thay vì chỉ tính toán khoảng cách giữa hai lớp và một ranh giới quyết định, giờ đây bộ phân loại phải xem xét các khoảng cách giữa các ranh giới quyết định và nhiều lớp trong tập dữ liệu.

Tách phi tuyến tính

Quy trình được mô tả ở trên áp dụng cho các trường hợp dữ liệu có thể phân tách tuyến tính. Lưu ý rằng, trong thực tế, các bộ dữ liệu hầu như không bao giờ có thể tách rời hoàn toàn tuyến tính, điều đó có nghĩa là khi sử dụng bộ phân loại SVM, bạn sẽ thường phải 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 trong đó các điểm dữ liệu của các lớp khác nhau được trộn lẫn với nhau, với một số trường hợp thuộc về một lớp trong “cụm” của lớp khác. Làm cách nào để bộ 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 bộ dữ liệu có thể phân tách phi tuyến tính là ứng dụng của bộ phân loại SVM “lề mềm”. Bộ phân loại lề mềm hoạt động bằng cách chấp nhận một vài điểm dữ liệu bị phân loại sai. Nó sẽ cố gắng vẽ một đường phân tách tốt nhất các cụm điểm dữ liệu với nhau, vì chúng chứa phần lớn các thể hiện thuộc các lớp tương ứng của chúng. Bộ phân loại SVM lề mềm cố gắng tạo ra một đường phân chia cân bằng hai yêu cầu của bộ 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 đồng thời tối đa hóa lợi nhuận.

Khả năng chịu lỗi của SVM có thể được điều chỉnh thông qua thao tác với một siêu tham số có tên là “C”. Kiểm soát giá trị C có bao nhiêu vectơ hỗ trợ mà trình phân loại xem xét khi vẽ ranh giới quyết định. Giá trị C là một hình phạt áp dụng cho các phân loại sai, nghĩa là giá trị C càng lớn thì bộ phân loại tính đến càng ít vectơ hỗ trợ và biên độ càng hẹp.

Kernel đánh lừa dữ liệu dữ liệu và biến đổi nó theo kiểu phi tuyến tính. Ảnh: Shiyu Ju qua Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Kernel Trick hoạt động bằng cách áp dụng các phép biến đổi phi tuyến tính cho các tính năng trong tập dữ liệu. Kernel Trick lấy các tính năng hiện có trong tập dữ liệu và tạo 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 tính. Kết quả từ việc áp dụng các phép biến đổi phi tuyến tính này là một ranh giới quyết định phi tuyến tính. Bởi vì trình phân loại SVM không còn bị hạn chế trong việc vẽ các ranh giới quyết định tuyến tính, nó có thể bắt đầu vẽ các ranh giới quyết định cong để gói gọn tốt hơn phân phối thực sự của các vectơ hỗ trợ và giảm thiểu việc phân loại sai. Hai trong số các hạt nhân phi tuyến SVM phổ biến nhất là Hàm cơ sở xuyên tâm 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 đối tượng địa lý hiện có, trong khi Hàm cơ sở xuyên tâm tạo ra các đối tượng địa lý mới bằng cách đo khoảng cách giữa một/điểm trung tâm đến tất cả các điểm khác.

Blogger và lập trình viên có chuyên môn về Machine Learning Học kĩ càng chủ đề. Daniel hy vọng sẽ giúp những người khác sử dụng sức mạnh của AI vì lợi ích xã hội.