Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
1,25 MB
Nội dung
====o0o==== BÁO CÁO NHẬP MƠN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI 44: Nghiên cứu xây dựng chương trình phân loại văn dùng giải thuật Support Vector Machine ngôn ngữ Python Giáo viên hướng dẫn: Sinh viên thực hiện: VŨ TUẤN ANH NGUYỄN PHẠM NHẬT MINH TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 TP Hồ Chí Minh, ngày tháng năm 2021 NH P MƠN TRÍTU NHÂN T O TRANG TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 MỤC LỤC Giới thiệu giải thuật Support Vector Machine 1.1 Các khái niệm tảng 1.1.1 Khoảng cách từ điểm tới s 1.1.2 Bài toán phân chia hai classes 1.2 Xây dựng toán tối ưu cho SVM NH P MƠN TRÍTU NHÂN T O TRANG TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 Nội dung công việc VŨ TUẤN ANH: NGUYỄN PHẠM NHẬT MINH: GIỚI THIỆU GIẢI THUẬT SUPPORT VECTOR MACHINE 1.1 CÁC KHÁI NIỆM NỀN TẢNG 1.1.1 Khoảng cách từ điểm tới siêu mặt phẳng Trong không gian chiều, ta biết khoảng cách từ điểm có toạ độ ( x0 , y0 ) tới đường thẳng có phương trình w1 x +w2 y +b=0 xác định bởi: |w1 x0 +w2 y0 +b| √ w2 + w2 Trong không gian ba chiều, khoảng cách từ điểm có toạ độ ( x0 , y0 , z0 ) tới mặt phẳng có phương trình w1 x +w2 y +w3 z +b=0 xác định bởi: |w1 x0 +w2 y0 + w3 z0 +b| √w21+ w22 + w23 Hơn nữa, ta bỏ dấu trị tuyệt đối tử số, xác định điểm nằm phía đường thẳng hay mặt phẳng xét Những điểm làm cho biểu thức dấu giá trị tuyệt đối mang dấu dương nằm phía (phía dương đường thẳng), điểm làm cho biểu thức dấu giá trị tuyệt đối mang dấu âm nằm phía cịn lại ( phía âm) Những điểm nằm đường thẳng/mặt phẳng làm cho tử số có giá trị 0, tức khoảng cách Việc tổng qt lên khơng gian nhiều chiều: Khoảng cách từ điểm (vector) có toạ độ x0 tới siêu mặt phẳng (hyperplane) có phương trình wT x+ b=0 xác định bởi: |wT x0+b| ¿∨w ¿∨¿2 ¿ Với với d số chiều không gian NH P MƠN TRÍTU NHÂN T O TRANG TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 1.1.2 Bài toán phân chia hai classes Quay lại với toán Perceptron Learning Algorithm (PLA) Giả sử có hai class khác mơ tả điểm không gian nhiều chiều, hai classes linearly separable , tức tồn siêu phẳng phân chia xác hai classes Hãy tìm siêu mặt phẳng phân chia hai classes đó, tức tất điểm thuộc class nằm phía siêu mặt phẳng ngược phía với tồn điểm thuộc class cịn lại Chúng ta biết rằng, thuật tốn PLA làm việc cho vơ số nghiệm hình đây: Các mặt phân cách hai classes linearly separable Câu hỏi đặt là: vơ số mặt phân chia đó, đâu mặt phân chia tốt theo tiêu chuẩn đó? Trong ba đường thẳng minh họa hình phía trên, có hai đường thẳng lệch phía class hình trịn đỏ Điều khiến cho lớp màu đỏ khơng vui lãnh thổ xem bị lấn nhiều q Liệu có cách để tìm đường phân chia mà hai classes cảm thấy công hạnh phúc hay khơng? Ta cần tìm tiêu chuẩn để đo hạnh phúc class Xét hình đây: NH P MƠN TRÍTU NHÂN T O TRANG TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 Margin hai classes lớn Nếu ta định nghĩa mức độ hạnh phúc class tỉ lệ thuận với khoảng cách gần từ điểm class tới đường/mặt phân chia, hình bên trái, class trịn đỏ khơng hạnh phúc cho đường phân chia gần class vuông xanh nhiều Ta cần đường phân chia cho khoảng cách từ điểm gần class (các điểm khoanh tròn) tới đường phân chia nhau, cơng Khoảng cách gọi margin (lề) Đã có cơng rồi, cần văn minh Công mà hai hạnh phúc chưa phải văn cho Chúng ta xét tiếp hình bên phải khoảng cách từ đường phân chia tới điểm gần class Xét hai cách phân chia đường nét liền màu đen đường nét đứt màu lục, đường làm cho hai class hạnh phúc hơn? Rõ ràng phải đường nét liền màu đen tạo margin rộng Việc margin rộng mang lại hiệu ứng phân lớp tốt phân chia hai classes rạch ròi Việc này, sau bạn thấy, điểm quan trọng giúp Support Vector Machine mang lại kết phân loại tốt so với Neural Network với layer, tức Perceptron Learning Algorithm Bài toán tối ưu Support Vector Machine (SVM) tốn tìm đường phân chia cho margin lớn Đây lý SVM cịn gọi Maximum Margin Classifier 1.2 XÂY DỰNG BÀI TOÁN TỐI ƯU CHO SVM Giả sử cặp liệu training set vector với thể đầu vào củ NH P MƠN TRÍTU NHÂN T O TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 liệu d số chiều liệu N số điểm liệu Giả sử nhãn điểm liệu xác định (class 1) (class 2) giống PLA Để dễ hình dung, ta xét trường hợp không gian hai chiều Khơng gian hai chiều để dễ hình dung, phép tốn hồn tồn tổng qt lên khơng gian nhiều chiều Phân tích tốn SVM Giả sử điểm vuông xanh thuộc class 1, điểm tròn đỏ thuộc class -1 mặt mặt phân chia hai classes Hơn nữa, class nằm phía dương, class - nằm phía âm mặt phân chia Nếu ngược lại, ta cần đổi dấu w b Chú ý ta cần tìm hệ số w b Ta quan sát thấy điểm quan trọng sau đây: với cặp liệu bất kỳ, khoảng cách từ điểm tới mặt phân chia là: NH P MƠN TRÍTU NHÂN T O TRANG TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 Điều dễ nhận thấy theo giả sử trên, yn ln dấu với phía xn Từ suy yn dấu với , tử số số không âm Với mặt phần chia trên, margin tính khoảng cách gần từ điểm tới mặt (bất kể điểm hai classes): Bài tốn tối ưu SVM tốn tìm w b cho margin đạt giá trị lớn nhất: (1) Việc giải trực tiếp toán phức tạp, nên ta đưa tốn đơn giản Nhận xét quan trọng ta thay vector hệ số w kw b kb k số dương mặt phân chia không thay đổi, tức khoảng cách từ điểm đến mặt phân chia không đổi, tức margin không đổi Dựa tính chất này, ta giả sử: với điểm nằm gần mặt phân chia hình đây: NH P MƠN TRÍTU NHÂN T O TRANG TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 Các điểm gần mặt phân cách hai classes khoanh tròn Như vậy, với n, ta có: Vậy tốn tối ưu (1) đưa tốn tối ưu có ràng buộc sau đây: (2) Bằng biến đổi đơn giản, ta đưa tốn tốn đây: (3) Ở đây, lấy nghịch đảo hàm mục tiêu, bình phương để hàm khả vi, nhân với để biểu thức đạo hàm đẹp Quan sát quan trọng: Trong toán (3), hàm mục tiêu norm, nên hàm lồi Các hàm bất đẳng thức ràng buộc hàm tuyến tính theo w b, nên chúng hàm lồi Vậy toán tối ưu (3) có hàm mục tiêu lồi, hàm ràng buộc lồi, nên tốn lồi Hơn nữa, Quadratic Programming Thậm chí, hàm mục tiêu strictly NH P MƠN TRÍTU NHÂN T O TRANG TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 convex I ma trận đơn vị - ma trận xác định dương Từ suy nghiệm cho SVM Đến tốn giải cơng cụ hỗ trợ tìm nghiệm cho Quadratic Programing, ví dụ CVXOPT Tuy nhiên, việc giải toán trở nên phức tạp số chiều d không gian liệu số điểm liệu N tăng lên cao Người ta thường giải toán đối ngẫu tốn Thứ nhất, tốn đối ngẫu có tính chất thú vị khiến giải hiệu Thứ hai, trình xây dựng tốn đối ngẫu, người ta thấy SVM áp dụng cho toán mà liệu không linearly separable, tức đường phân chia mặt phẳng mà mặt có hình thù phức tạp Xác định class cho điểm liệu mới: Sau tìm mặt phân cách , class điểm xác định đơn giản cách: Trong hàm sgn hàm xác định dấu, nhận giá trị đối số không âm -1 ngược lại GIỚI THIỆU BÀI TOÁN PHÂN LOẠI VĂN BẢN GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH PYTHON Python ngơn ngữ lập trình thơng dịch (interpreted), hướng đối tượng (object-oriented), ngôn ngữ bậc cao (high-level) ngữ nghĩa động (dynamic semantics) Python hỗ trợ module gói (packages), khuyến khích chương trình module hóa tái sử dụng mã Trình thơng dịch Python thư viện chuẩn mở rộng có sẵn dạng mã nguồn dạng nhị phân miễn phí cho tất tảng phân phối tự NH P MƠN TRÍTU NHÂN T O TRANG TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 Sau đặc điểm Python: Ngữ pháp đơn giản, dễ đọc Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (objectoriented) Hỗ trợ module hỗ trợ gói (package) Xử lý lỗi ngoại lệ (Exception) Kiểu liệu động mức cao Có thư viện chuẩn module ngồi, đáp ứng tất nhu cầu lập trình Có khả tương tác với module khác viết C/C+ + (Hoặc Java cho Jython, Net cho IronPython) Có thể nhúng vào ứng dụng giao tiếp kịch (scripting interface) Python dễ dàng kết nối với thành phần khác: Python kết nối với đối tượng COM, NET (Ironpython, Python for net), CORBA, Java… Python hỗ trợ Internet Communications Engine (ICE) nhiều cơng nghệ kết nối khác Có thể viết thư viện C/C++ để nhúng vào Python ngược lại Python ngơn ngữ có khả chạy nhiều tảng Python có cộng đồng lập trình lớn, hệ thống thư viện chuẩn, thư viện mã nguồn mở chia sẻ mạng Python có cho hệ điều hành: Windows, Linux/Unix, OS/2, Mac, Amiga, hệ điều hành khác NH P MƠN TRÍTU NHÂN T O TRANG 10 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÁO CÁO Ề TÀI 44 Thậm chí có phiên chạy NET, máy ảo Java, điện thoại di động (Nokia Series 60) Với mã nguồn chạy giống tảng Python ngôn ngữ mã nguồn mở Cài đặt Python dùng giấy phép nguồn mở nên sử dụng phân tối tự do, việc thương mại Giấy phép Python quản lý Python Software Foundation NH P MƠN TRÍTU NHÂN T O TRANG 11 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat ... MỤC LỤC Giới thiệu giải thuật Support Vector Machine 1.1 Các khái niệm tảng 1.1.1 Khoảng cách từ điểm tới s 1.1.2 Bài toán phân chia hai classes 1.2 Xây dựng toán tối ưu cho... mặt phân cách , class điểm xác định đơn giản cách: Trong hàm sgn hàm xác định dấu, nhận giá trị đối số không âm -1 ngược lại GIỚI THIỆU BÀI TỐN PHÂN LOẠI VĂN BẢN GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH PYTHON. .. Với mã nguồn chạy giống tảng Python ngôn ngữ mã nguồn mở Cài đặt Python dùng giấy phép nguồn mở nên sử dụng phân tối tự do, việc thương mại Giấy phép Python quản lý Python Software Foundation NH