1. Trang chủ
  2. » Công Nghệ Thông Tin

BÁO CÁO NHẬP MÔN TRÍ TUỆ NHÂN TẠO

19 36 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

DỰ ÁN 1 BÁO CÁO ĐỀ TÀI 44 ====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 bản dùng giải thuật Support Vector Machine bằng ngôn ngữ Python Giáo vi.

====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: NGUYỄN NGỌC DUY Sinh viên thực hiện: MSSV VŨ TUẤN ANH N18DCCN010 NGUYỄN PHẠM NHẬT MINH N17DCCN095 TP Hồ Chí Minh, ngày tháng năm 2021 BÁO CÁO ĐỀ TÀI 44 MỤC LỤC NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG BÁO CÁO ĐỀ TÀI 44 Nội dung công việc NGUYỄN PHẠM NHẬT MINH: Xây dựng sở lý thuyết VŨ TUẤN ANH: Hiện thực chương trình 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ạ độ tới đường thẳng có phương trình xác định bởi: Trong khơng gian ba chiều, khoảng cách từ điểm có toạ độ tới mặt phẳng có phương trình xác định bởi: 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ạ độ tới siêu mặt phẳng (hyperplane) có phương trình xác định bởi: Với với d số chiều khơng gian 1.1.2 Bài tố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 NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG BÁO CÁO ĐỀ TÀI 44 đ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 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 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 vng 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 NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG BÁO CÁO ĐỀ TÀI 44 1.2 XÂY DỰNG BÀI TOÁN TỐI ƯU CHO SVM Giả sử cặp liệu training set với vector thể đầu vào điểm liệu nhãn điểm 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 PLA (class 1) (class 2) giống Để 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 vng 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 -1 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 NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG BÁO CÁO ĐỀ TÀI 44 Ta quan sát thấy điểm quan trọng sau đây: với cặp liệu khoảng cách từ điểm tới mặt phân chia là: bất kỳ, Đ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 không âm , tử số số 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 toá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ử: hình đây: NHẬP MƠN TRÍ TUỆ NHÂN TẠO với điểm nằm gần mặt phân chia TRANG 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 toán toá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 tố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 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 toán Thứ nhất, tốn đối ngẫu có tính chất thú vị khiến giải hiệu Thứ hai, q trình xây dựng tốn đối ngẫu, người ta thấy SVM áp dụng cho tố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 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ự Sau đặc điểm Python: NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG BÁO CÁO ĐỀ TÀI 44 • 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 ngoà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 Thậm chí có phiên chạy NET, máy ảo Java, điện NHẬP MÔN TRÍ TUỆ NHÂN TẠO TRANG 10 BÁO CÁO ĐỀ TÀI 44 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 GIỚI THIỆU BÀI TOÁN PHÂN LOẠI VĂN BẢN 3.1 BÀI TOÁN PHÂN LOẠI VĂN BẢN Phân loại văn (Text Classification) tốn thuộc nhóm học có giám sát (Supervised learning) học máy Bài toán u cầu liệu cần có nhãn (label) Mơ hình học từ liệu có nhãn đó, sau dùng để dự đoán nhãn cho liệu mà mơ hình chưa gặp Lấy ví dụ, cần xây dựng mơ hình học máy để dự đốn chủ đề (Kinh tế, Xã hội, Thể thao,…) báo Khi đó, ta cần nhiều liệu có gán nhãn; tức ta cần nhiều báo mà báo phải biết trước nằm chủ đề Tổng quát cách hoạt động toán phân loại văn bản: NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 11 BÁO CÁO ĐỀ TÀI 44 Mơ hình phân loại văn tiếng Việt tự động với Machine learning Giai đoạn (a): Huấn luyện (training) giai đoạn học tập mơ hình phân loại văn Ở bước này, mơ hình học từ liệu có nhãn (trong ảnh nhãn Possitive, Negative, Neutral) Dữ liệu văn số hóa thơng qua trích xuất đặc trưng (feature extractor) để mẫu liệu tập huấn luyện trở thành vector nhiều chiều (đặc trưng) Thuật toán máy học học tối ưu tham số để đạt kết tốt tập liệu Nhãn liệu dùng để đánh giá việc mơ hình học tốt khơng dựa vào để tối ưu Giai đoạn (b): Dự đốn (prediction), giai đoạn sử dụng mơ hình học máy sau học xong Ở giai đoạn này, liệu cần dự đoán thực bước trích xuất đặc trưng Mơ hình học sau nhận đầu vào đặc trưng đưa kết dự đoán Bài toán: Xây dựng mơ hình phân loại văn tin tức tiếng Việt cho trang báo điện tử X Mỗi báo đăng, chương trình cần phải tự động xác định báo nằm danh mục Các danh mục gồm có: Kinh tế, Thể thao, Giáo dục, Sức khỏe, Du lịch, Pháp luật,… NHẬP MÔN TRÍ TUỆ NHÂN TẠO TRANG 12 BÁO CÁO ĐỀ TÀI 44 3.2 ĐẶC TẢ DỮ LIỆU Dữ liệu đầu vào lấy từ báo tiếng Việt kèm theo chủ đề báo Dữ liệu tiền xử lý có dạng: báo dịng, từ nhãn (chủ đề) dịng Ví dụ: label thể_thao sanchez khơng dự trận khai nh anh arsenal label âm_nhạc việt hóa thân thành phó nháy mv label nhịp_sống vợ phải quỳ gối nói chuyện label thể_thao hà nội chốt danh sách dự afc cup thể thao 3.3 DEMO SẢN PHẨM Chương trình gồm block: Dữ liệu đầu vào file news_categories.txt: Block 1: Tiền xử lý liệu hàm text_preprocess() gồm chức năng: • • • Xóa HTML code (nếu có) Chuẩn hóa bảng mã Unicode (đưa Unicode tổ hợp dựng sẵn) Chuẩn hóa kiểu gõ dấu tiếng Việt (dùng ịa úy thay cho ) NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 13 BÁO CÁO ĐỀ TÀI 44 Thực tách từ tiếng Việt (sử dụng thư viện tách từ underthesea) Đưa văn lower (viết thường) Xóa ký tự đặc biệt: “.”, “,”, “;”, “)”, …  Dữ liệu đưa dạng chuẩn • • • Block 2: Khử nhiễu (stopword): NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 14 BÁO CÁO ĐỀ TÀI 44 Stopword từ xuất nhiều tất chuyên mục cần phân loại Do đó, chúng đặc trưng khơng có tác dùng cho việc phân loại văn • Các stopword thường từ nối (của, là, có, được, những,…) từ đặc trưng liệu (ví dụ từ “máy bay, tiếp viên” stopword làm phân loại đánh giá khách hàng doanh nghiệp vận tải hàng không • Bộ stopword.txt xây dựng từ news_categories.txt Trong chương trình stopword.txt lấy top 100 từ xuất nhiều liệu đầu vào, sau khử nhiễu, lưu lại news_categories.prep Block 3: Tạo train test: Trước huấn luyện mơ hình phân loại văn bản, ta cần xây dựng tập huấn luyện tập kiểm thử Việc cần thiết để đánh giá kết huấn luyện, lựa chọn mơ tinh chỉnh để mơ hình cho tốt Block gồm chức sau: Đọc liệu từ file tách làm list text (dữ liệu) label (nhãn) Dữ liệu text[i] có nhãn label[i] Chia làm tập train (X_train, y_train) test (X_test, y_test) theo tỉ lệ 80% train, 20% test Lưu train/test data file để sử dụng cho việc train với thư viện Fasttext Đưa label dạng vector để tiện cho tính tốn sử dụng LabelEncoder Block 4: Tạo models huấn luyện sử dụng thuật toán SVM: NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 15 BÁO CÁO ĐỀ TÀI 44 Qua huấn luyện, thu độ xác chương trình dựa dataset đầu vào 88% huấn luyện gần 2000 giây, khoảng 30 phút Block 5: Test kiểm thử: Demo input: NHẬP MÔN TRÍ TUỆ NHÂN TẠO TRANG 16 BÁO CÁO ĐỀ TÀI 44 Input1 Input NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 17 BÁO CÁO ĐỀ TÀI 44 Input Input NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 18 BÁO CÁO ĐỀ TÀI 44 Input NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 19 ... NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 16 BÁO CÁO ĐỀ TÀI 44 Input1 Input NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 17 BÁO CÁO ĐỀ TÀI 44 Input Input NHẬP MÔN TRÍ TUỆ NHÂN TẠO TRANG 18 BÁO CÁO ĐỀ TÀI 44 Input NHẬP... thao,…) báo Khi đó, ta cần nhiều liệu có gán nhãn; tức ta cần nhiều báo mà báo phải biết trước nằm chủ đề Tổng quát cách hoạt động toán phân loại văn bản: NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG 11 BÁO CÁO...BÁO CÁO ĐỀ TÀI 44 MỤC LỤC NHẬP MƠN TRÍ TUỆ NHÂN TẠO TRANG BÁO CÁO ĐỀ TÀI 44 Nội dung công việc NGUYỄN PHẠM NHẬT MINH: Xây dựng

Ngày đăng: 18/12/2022, 22:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w