Thuật toán Machine Learnin g( Support Vector Machines)

Một phần của tài liệu Thiết kế và điều khiển gương tương tác thông minh đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ kỹ thuật cơ điện tử (Trang 42 - 46)

Machine Learning là một lĩnh vực nhỏ của Khoa Học Máy Tính, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể.

2.5.1. Khái niệm

SVM là một loại thuật toán phân loại học máy có giám sát. SVM được giới thiệu ban đầu vào năm 1960 và sau đó được cải tiến vào năm 1990. Nó được biết đến với thủ thuật hạt nhân để xử lý các không gian đầu vào phi tuyến tính. Nó được sử dụng trong nhiều ứng dụng như nhận diện khuôn mặt, phát hiện xâm nhập, phân loại email, các bài báo và trang web, phân loại gen và nhận dạng chữ viết tay. Vì vậy có thể sử dụng nó để phát hiện cơ thể người và các chuyển động tương tác giữa người dùng và gương. Trong đồ án nay chúng em sẽ dùng scikit-learning trong Python.

SVM là một tập hợp các phương pháp học có giám sát được sử dụng để phân loại, hồi quy và phát hiện ngoại lệ.

Ưu điểm của SVM:

- Hiệu quả trong không gian chiều cao.

- Vẫn có hiệu quả trong trường hợp số thứ nguyên lớn hơn số lượng mẫu.

- Sử dụng một tập hợp con của các điểm huấn luyện trong hàm quyết định (được gọi là vectơ hỗ trợ), vì vậy nó cũng hiệu quả về bộ nhớ.

- Đa năng: các chức năng Kernel khác nhau có thể được chỉ định cho chức năng quyết định. Các kernel chung được cung cấp, nhưng cũng có thể chỉ định các kernel tùy chỉnh.

Nhược điểm của SVM bao gồm:

- Nếu số lượng các tính năng lớn hơn nhiều so với số lượng mẫu, hãy tránh việc quá phù hợp trong lựa chọn các hàm Kernel và giới hạn chính quy hóa là rất quan trọng.

34 - SVM không trực tiếp cung cấp các ước lượng xác suất, những ước lượng này được tính toán bằng cách sử dụng xác thực năm lần chéo.

Nói chung, SVM xây dựng một siêu phẳng trong không gian đa chiều để phân tách các lớp khác nhau. SVM tạo siêu phẳng tối ưu theo cách lặp đi lặp lại, được sử dụng để giảm thiểu lỗi. Ý tưởng cốt lõi của SVM là tìm một siêu phẳng biên tối đa có thể phân chia tốt nhất tập dữ liệu thành các lớp.

2.5.2. SVM hoạt động như thế nào?

Mục tiêu chính là tách biệt tập dữ liệu đã cho theo cách tốt nhất có thể. Khoảng cách giữa một trong hai điểm gần nhất được gọi là biên. Mục tiêu là chọn một siêu phẳng có biên lớn nhất có thể giữa các vectơ hỗ trợ trong tập dữ liệu đã cho. SVM tìm kiếm siêu phẳng biên tối đa theo các bước sau:

- Tạo những mặt phẳng để phân tách các lớp theo cách tốt nhất. Hình dưới hiển thị ba mặt phẳng màu đen, xanh lam và cam. Ở đây, màu xanh lam và màu cam có sai số phân loại cao hơn, nhưng màu đen đang phân tách hai lớp một cách chính xác.[5]

35 - Chọn mặt phẳng với sự phân tách tối đa từ một trong hai điểm dữ liệu gần nhất.

Hình 2-20 Mặt phẳng phân tách tốt nhất

SVM Kernels

Thuật toán SVM được triển khai trên thực tế bằng cách sử dụng một kernel. Kernel biến đổi một không gian dữ liệu đầu vào thành dạng bắt buộc. SVM sử dụng một kỹ thuật gọi là “kernel trick”. Ở đây, kernel nhận một không gian đầu vào có chiều thấp và biến nó thành một không gian có chiều cao hơn. Nói cách khác, bạn có thể nói rằng nó chuyển đổi vấn đề không thể tách rời thành các vấn đề có thể tách rời bằng cách thêm nhiều chiều hơn cho nó. Nó hữu ích nhất trong bài toán phân tách phi tuyến tính. Thủ thuật Kernel giúp bạn xây dựng một bộ phân loại chính xác hơn.

- Linear Kernel: Một kernel tuyến tính có thể được sử dụng như sản phẩm điểm bình thường bất kỳ trong hai quan sát nhất định. Tích giữa hai vectơ là tổng của phép nhân mỗi cặp giá trị đầu vào.

K(x, xi) = sum(x * xi)

- Polynomial Kernel: là một dạng tổng quát hơn của kernel tuyến tính. Nhân đa thức có thể phân biệt không gian đầu vào là cong hoặc phi tuyến.

36 Trong đó d là bậc của đa thức. d = 1 tương tự như phép biến đổi tuyến tính. Mức độ cần được chỉ định thủ công trong thuật toán.

Radial Basis Function (RBF) Kernel: là một hàm kernel phổ biến thường được sử dụng trong phân loại máy Support Vector Machine. RBF có thể ánh xạ một không gian đầu vào trong không gian chiều vô hạn.

𝐾 (𝑥, 𝑥𝑖) = 𝑒𝑥𝑝 (−𝛾 ∗ 𝑠𝑢𝑚 ((𝑥 − 𝑥𝑖 ^ 2))

𝛾 là một tham số, nằm trong khoảng từ 0 đến 1. Giá trị 𝛾 cao hơn sẽ hoàn toàn

phù hợp với tập dữ liệu đào tạo, điều này gây ra hiện tượng quá khớp.

𝛾 = 0,1 được coi là một giá trị mặc định tốt. Giá trị 𝛾 cần được chỉ định thủ công trong thuật toán học.

37

CHƯƠNG 3: XÂY DỰNG PHẦN CỨNG

Một phần của tài liệu Thiết kế và điều khiển gương tương tác thông minh đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ kỹ thuật cơ điện tử (Trang 42 - 46)