Giới thiệu về Support Vector Machine (SVM)

Chúng tôi rất vui mừng chia sẻ kiến thức về từ khóa Svm la gi để tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Bài viết cung cấp phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với chiến lược và công cụ hữu ích. Hy vọng thông tin này sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog để cập nhật kiến thức mới nhất.

SVM là một thuật toán giám sát, nó có thể sử dụng cho tất cả việc phân loại hoặc đệ quy. Tuy nhiên nó được sử dụng chủ yếu cho việc phân loại. Trong thuật toán này, tất cả chúng ta vẽ đồi thị tài liệu là những điểm trong n chiều ( ở đây n là số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ là một phần liên kết. Sau đó tất cả chúng ta thực hiện tìm “đường bay” (hyper-plane) phân chia các lớp. Hyper-plane nó chỉ hiểu đơn giản là 1 trong đường thẳng có thể phân chia các lớp ra thành hai phần riêng biệt.

Bạn Đang Xem: Giới thiệu về Support Vector Machine (SVM)

Support Vectors hiểu một cách đơn giản là các đối tượng người sử dụng trên đồ thị tọa độ quan sát, Support Vector Machine là một biên giới để chia hai lớp tốt nhất.

Ở trên, tất cả chúng ta đã thấy được việc chia hyper-plane. Bấy giờ làm thế nào tất cả chúng ta có thể xác định “Làm thế nào để vẽ-xác định đúng hyper-plane”. Tất cả chúng ta sẽ theo những tiêu chí sau:

  • Identify the right hyper-plane (Scenario-1):

Ở đây, có 3 đường hyper-lane (A,B and C). Lúc bấy giờ đường nào là hyper-lane đúng cho nhóm ngôi sao 5 cánh và hình tròn.

Quy tắc số một để lựa chọn một hyper-lane, chọn một hyper-plane để phân chia hai lớp tốt nhất. Trong ví dụ này đó là đường B.

  • Identify the right hyper-plane (Scenario-2):

Ở đây tất cả chúng ta cũng đều có 3 đường hyper-plane (A,B và C), theo quy tắc số 1, chúng đều thỏa mãn.

Xem Thêm : Mức độ e ngại rủi ro (Uncertainty Avoidance) là gì? Phân loại và ví dụ minh họa

Quy tắc thứ hai đó là xác định khoảng tầm cách lớn số 1 từ điểu nhanh nhất có thể của một lớp nào đó đến đường hyper-plane. Khoảng chừng cách này được gọi là “Margin”, Hãy nhìn hình phía dưới, trong đấy có thể nhìn thấy khoảng tầm cách margin lớn số 1 đấy là đường C. Cần nhớ nếu tìm lầm hyper-lane có margin thấp hơn thì sau này khi tài liệu tăng lên thì sẽ sinh ra nguy cơ cao về việc xác định nhầm lớp cho tài liệu.

  • Identify the right hyper-plane (Scenario-3):

Sử dụng các nguyên tắc đã nêu trên để lựa chọn ra hyper-plane cho trường hợp sau:

Có thể có một vài người sẽ chọn đường B bởi vì nó có margin lơn hơn đường A, nhưng đấy sẽ không còn đúng bởi vì nguyên tắc trước tiên sẽ là nguyên tắc số 1, tất cả chúng ta cần chọn hyper-plane để phân chia các lớp thành riêng biệt. Vì vậy đường A mới là lựa chọn xác thực.

  • Can we classify two classes (Scenario-4)?

Tiếp the hãy xem hình phía dưới, không thể chia thành hai lớp riêng biệt với cùng một đường thẳng, để tạo một trong những phần chỉ có những ngôi sao 5 cánh và một vùng chỉ chứa những điểm tròn.

Ở đây sẽ gật đầu, một ngôi sao 5 cánh ở bên phía ngoài cuối được xem như một ngôi sao 5 cánh phía ngoài hơn, SVM có tính năng được cho phép bỏ qua các ngoại lệ và tìm ra hyper-plane có biên giới tối đa . Do đó nói theo một cách, SVM có khả năng mạnh trong việc gật đầu ngoại lệ.

  • Find the hyper-plane to segregate to classes (Scenario-5)

Trong trường hợp sau đây, không thể tìm ra 1 đường hyper-plane tương đối để chia các lớp, vậy làm thế nào để SVM phân tích tài liệu thành hai lớp riêng biệt? Cho tới thời điểm hiện tại tất cả chúng ta chỉ nhìn vào các đường tuyến tính hyper-plane.

SVM có thể xử lý vấn đề này, Khá đơn giản, nó sẽ tiến hành xử lý bằng việc thêm một tính năng, Ở đây tất cả chúng ta sẽ thêm tính năng z = x^2+ y^2. Lúc bấy giờ tài liệu sẽ tiến hành chuyển đổi theo trục x và z như sau

Xem Thêm : Giao tử là gì? Khả năng phát sinh giao tử sinh sản ở hai giới

Trong sơ đồ trên, những điểm cần xem xét là: • Tất cả tài liệu trên trục z sẽ là số dương vì nó là tổng bình phương x và y • Trên biểu đồ những điểm tròn đỏ xuất hiện gần trục x và y hơn vì thế z sẽ nhỏ hơn => nằm gần trục x hơn trong đồ thị (z,x) Trong SVM, rất dễ dàng để sở hữu một siêu phẳng tuyến tính (linear hyper-plane) để chia thành hai lớp, Nhưng một thắc mắc sẽ phát sinh đấy là, tất cả chúng ta có cần phải thêm một tính năng phân chia này bằng tay hay là không. Không, bởi vì SVM có một kỹ thuật được gọi là kernel trick ( kỹ thuật hạt nhân), đây là tính năng có không gian nguồn vào có chiều sâu thấm và chuyển đổi nó thành không gian có chiều lơn hơn, tức là nó không phân chia các vấn đề thành các vấn đề riêng biệt, các tính năng này được gọi là kernel. Nói một cách đơn giản nó thực hiện một số biết đổi tài liệu phức tạp, sau đó tìm ra quá trình tách tài liệu dựa trên các nhãn hoặc đầu ra mà chúng ra đã xác định trước.

Margin là khoảng tầm cách giữa siêu phẳng đến 2 điểm tài liệu nhanh nhất có thể tương ứng với những phân lớp. Trong ví dụ quả táo quả lê đặt trên mặt bán, margin đó là khoảng tầm cách giữa cây que và hai quả táo và lê gần nó nhất. Điều quan trọng ở đây đó là phương pháp SVM luôn nỗ lực cố gắng cực to hóa margin này, từ đó thu được một siêu phẳng tạo khoảng tầm cách xa nhất so với 2 quả táo và lê. Nhờ vậy, SVM có thể giảm thiểu việc phân lớp sai (misclassification) so với điểm tài liệu mới đưa vào

Tìm nghiệm cho SVM ta sử dụng trực tiếp thư viện sklearn.

Tất cả chúng ta sẽ sử dụng hàm*** sklearn.svm.SVC*** ở đây. Các bài toán thực tế thường sử dụng thư viện libsvm được viết trên tiếng nói C, có API cho Python và Matlab.

from sklearn.svm import SVC model = SVC(kernel=’linear’, probability=True) model.fit(emb_array, labels) #Do somethings…. w = model.coef_ b = model.intercept print(‘w = ‘, w) print(‘b = ‘, b)

Là một kĩ thuật phân lớp khá phổ quát, SVM thể hiện được nhiều ưu điểm trong số đó có việc tính toán hiệu quả trên các tập tài liệu lớn. Có thể kể thêm một số Ưu điểm của phương pháp này như:

  • Xử lý trên không gian số độ cao: SVM là một dụng cụ tính toán hiệu quả trong không gian độ cao, trong đó đặc biệt quan trọng ứng dụng cho những bài toán phân loại văn bản và phân tích ý kiến nơi chiều có thể cực kỳ lớn.
  • Tiết kiệm ngân sách và chi phí bộ nhớ: Do chỉ có một tập hợp con của những điểm được sử dụng trong quá trình huấn luyện và ra quyết định thực tế cho những điểm tài liệu mới nên chỉ có thể có những điểm cấp thiết mới được lưu trữ trong bộ nhớ khi ra quyết định.
  • Tính linh hoạt – phân lớp thường là phi tuyến tính. Khả năng ứng dụng Kernel mới được cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ đó khiến cho hiệu suất phân loại to ra thêm.

Nhược điểm:

  • Bài toán số độ cao: Trong trường hợp số lượng tính chất (p) của tập tài liệu to ra thêm rất nhiều so với số lượng tài liệu (n) thì SVM cho kết quả khá tồi.
  • Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc nỗ lực cố gắng tách các đối tượng người sử dụng vào hai lớp được phân tích bởi siêu phẳng SVM. Điều này chưa giảng giải được xác suất xuất hiện của một thành viên trong một nhóm là ra làm sao. Tuy nhiên hiệu quả của việc phân lớp có thể được xác định dựa vào khái niệm margin từ điểm tài liệu mới đến siêu phẳng phân lớp mà tất cả chúng ta đã bàn luận ở trên.

Tóm lại: SVM là một phương pháp hiệu quả cho bài toán phân lớp tài liệu. Nó là một dụng cụ đắc lực cho những bài toán về xử lý ảnh, phân loại văn bản, phân tích ý kiến. Một yếu tố làm ra hiệu quả của SVM đó là việc sử dụng Kernel function khiến cho những phương pháp chuyển không gian trở thành linh hoạt hơn.

  • https://machinelearningcoban.com/2017/04/09/smv/
  • https://en.wikipedia.org/wiki/Support_vector_machine
  • https://medium.com/machine-learning-101/chapter-2-svm-support-vector-machine-theory-f0812effc72

You May Also Like

About the Author: v1000