Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)Ứng dụng thuật toán học máy svm trong tư vấn hướng nghiệp cho học sinh trung học phổ thôn (LV thạc sĩ)
Trang 1TRẦN VĂN HẢI
ỨNG DỤNG THUẬT TOÁN HỌC MÁY SVM TRONG TƯ VẤN HƯỚNG NGHIỆP CHO HỌC SINH TRUNG HỌC PHỔ THÔNG
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI – 2017
Trang 2TRẦN VĂN HẢI
ỨNG DỤNG THUẬT TOÁN HỌC MÁY SVM TRONG TƯ VẤN HƯỚNG NGHIỆP CHO HỌC SINH TRUNG HỌC PHỔ THÔNG
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là luận văn nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác giả luận văn
Trần Văn Hải
Trang 4LỜI CẢM ƠN Trước tiên tôi xin gửi lời cảm ơn, biết ơn sâu sắc đến TS Đào Đình Khả,
người đã trực tiếp hướng dẫn, tận tình chỉ bảo và định hướng cho tôi trong suốt quá trình thực hiện luận văn, giúp tôi có nhận thức đúng đắn về kiến thức khoa học và giải quyết được những vấn đề khó khăn, vướng mắc để luận văn được hoàn thành
Tôi cũng xin gửi lời cảm ơn chân thành tới các thầy giáo, cô giáo của Học viện
Công nghệ Bưu chính Viễn thông đã tạo điều kiện cho tôi có một môi trường học
tập tốt, đồng thời truyền đạt cho tôi nguồn vốn kiến thức quý báu trong suốt quá trình học tập tại trường
Cuối cùng, tôi xin được gửi lời cảm ơn tới gia đình, đồng nghiệp và người thân
đã động viên, giúp đỡ tôi trong quá trình hoàn thành luận văn
Tôi xin cân thành cảm ơn!
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v
DANH MỤC CÁC BẢNG vi
DANH MỤC HÌNH VẼ, BIỂU ĐỒ vii
LỜI MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY VÀ BÀI TOÁN TƯ VẤN HƯỚNG NGHIỆP CHO HỌC SINH THPT 3
1.1 Tổng quan về học máy 3
1.1.1 Giới thiệu về học máy 3
1.1.2 Ứng dụng của học máy 4
1.1.3 Phân loại các phương pháp học máy 6
1.2 Tổng quan về phương pháp Support Vector Machine 8
1.2.1 Giới thiệu về Support Vector Machine 8
1.2.2 SVM tuyến tính và SVM phi tuyến 11
1.2.3 SVM trong phân lớp đa lớp 23
1.3 Bài toán tư vấn hướng nghiệp cho học sinh trung học phổ thông 26
1.3.1 Giới thiệu về tư vấn hướng nghiệp 26
1.3.2 Cơ sở lý thuyết tư vấn hướng nghiệp 28
1.3.3 Các kỹ năng và liệu pháp tư vấn hướng nghiệp 31
1.3.4 Mô tả bài toán tư vấn hướng nghiệp cho học sinh THPT 32
1.4 Kết luận chương 33
CHƯƠNG 2: XÂY DỰNG MÔ HÌNH TƯ VẤN HƯỚNG NGHIỆP CHO HỌC SINH THPT DỰA TRÊN PHƯƠNG PHÁP SUPPORT VECTOR MACHINE 34
2.1 Đặt vấn đề bài toán 34
2.2 Mô hình bài toán 35
2.3 Quy trình phân lớp 37
2.3.1 Thu thập dữ liệu nghiên cứu 37
2.3.2 Tiền xử lý dữ liệu 39
2.3.3 Phân chia tập dữ liệu thành tập huấn luyện và kiểm chứng 40
Trang 62.3.4 Xây dựng mô hình phân lớp theo phương pháp SVM 40
2.3.5 Kiểm chứng mô hình phân lớp 41
2.3.6 Đánh giá mô hình 42
2.4 Kết luận chương 43
CHƯƠNG 3: THỰC NGHIỆM VÀ KẾT QUẢ 44
3.1 Công cụ thực nghiệm 44
3.2 Chuẩn bị dữ liệu 45
3.3 Thực hiện thực nghiệm 47
3.4 Kết quả thực nghiệm 48
3.4.1 Kết quả thực nghiệm với tập dữ liệu 1 (1800 mẫu) 48
3.4.2 Kết quả thực nghiệm với tập dữ liệu 2 (3603 mẫu) 51
3.5 Phân tích và đánh giá kết quả 54
3.6 Kết luận chương 56
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58
PHỤ LỤC 59
Trang 7DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
SVM Support Vector Machine Máy véc-tơ hỗ trợ SMO Sequential Minimal Optimization Tối thiểu tuần tự
kNN k-Nearest Neighbor K láng giềng gần nhất KKT Karush Kuhn Tucker Điều kiện Karush Kuhn OAR One-against-Rest
Trang 8DANH MỤC CÁC BẢNG
Bảng 2.1 Số lượng mẫu các nhóm ngành nghề 39
Bảng 3.1 Số lượng mẫu các nhóm ngành nghề tập dữ liệu 1 (1800 mẫu) 45
Bảng 3.2 Số lượng mẫu các nhóm ngành nghề tập dữ liệu 2 (3603 mẫu) 46
Bảng 3.3 Tệp tin dữ liệu huấn luyện và kiểm chứng 46
Bảng 3.4 Kết quả đánh giá theo chiến lược OAO với tập dữ liệu 1 48
Bảng 3.5 Kết quả phân lớp theo chiến lược OAO với tập dữ liệu 1 48
Bảng 3.6 Kết quả đánh giá theo chiến lược OAR với tập dữ liệu 1 49
Bảng 3.7 Kết quả phân lớp theo chiến lược OAR với tập dữ liệu 1 49
Bảng 3.8 So sánh giữa hai chiến lược OAO và OAR với tập dữ liệu 1 49
Bảng 3.9 Kết quả đánh giá theo chiến lược OAO với tập dữ liệu 2 51
Bảng 3.10 Kết quả phân lớp theo chiến lược OAO với tập dữ liệu 2 51
Bảng 3.11 Kết quả đánh giá theo chiến lược OAR với tập dữ liệu 2 52
Bảng 3.12 Kết quả phân lớp theo chiến lược OAR với tập dữ liệu 2 52
Bảng 3.13 So sánh giữa hai chiến lược OAO và OAR với tập dữ liệu 2 52
Trang 9DANH MỤC HÌNH VẼ, BIỂU ĐỒ
Hình 1.1 Mô tả phương pháp SVM 9
Hình 1.2 Siêu phẳng phân tách với véc-tơ pháp tuyến w 11
Hình 1.3 Tập dữ liệu được phân chia tuyến tính 12
Hình 1.4 Tập dữ liệu có nhiễu 17
Hình 1.5 Ánh xạ Φ từ không gian X sang không gian đặc trưng F 21
Hình 1.6 Chiến lược One-against-Rest 24
Hình 1.7 Chiến lược One-against-One 25
Hình 1.8 Mô hình lý thuyết cây nghề nghiệp [2] 28
Hình 2.1 Mô hình phân lớp nhóm ngành nghề 36
Hình 2.2 Quy trình phân lớp nhóm ngành nghề 37
Hình 3.1 Giao diện khởi động phần mềm Weka 44
Hình 3.2 Thực hiện phân lớp nhóm ngành nghề 47
Biểu đồ 3.1 Độ chính xác phân lớp giữa hai chiến lược OAO và OAR với tập dữ liệu 1 50
Biểu đồ 3.2 Thời gian xây dựng mô hình giữa hai chiến lược OAO và OAR với tập dữ liệu 1 50
Biểu đồ 3.3 Độ chính xác phân lớp giữa hai chiến lược OAO và OAR với tập dữ liệu 2 53
Biểu đồ 3.4 Thời gian xây dựng mô hình giữa hai chiến lược OAO và OAR với tập dữ liệu 2 53
Trang 10LỜI MỞ ĐẦU
Việt Nam là nước có dân số đông, số lượng người trong độ tuổi lao động lớn, cung cấp nguồn nhân lực dồi dào cho quá trình công nghiệp hóa, hiện đại hóa đất nước Tuy nhiên, trong những năm gần đây tình trạng nhiều sinh viên ra trường không tìm được việc làm hoặc phải làm việc không đúng với chuyên môn đang diễn ra khá phổ biến Điều này đã gây ra sự lãng phí nguồn nhân lực lao động của xã hội Một phần nguyên nhân là do việc đào tạo ngành nghề còn nhiều bất hợp lý, việc phân bố nguồn nhân lực giữa các vùng miền còn chưa đồng đều Bên cạnh đó, nguyên nhân của thực trạng trên còn nằm ở việc phần lớn học sinh bậc học phổ thông lựa chọn ngành nghề chủ yếu là theo cảm tính, theo xu thế hoặc do tác động từ gia đình, cha
mẹ, bạn bè, … không xác định được khả năng, năng lực bản thân có phù hợp với ngành nghề hay không từ đó dẫn tới việc học tập và làm việc không hiệu quả, gây lãng phí lớn cho bản thân, gia đình và xã hội
Tư vấn hướng nghiệp là một vấn đề cần phải được quan tâm, nhất là ở cấp bậc phổ thông Khi được định hướng đúng đắn về nghề nghiệp, mỗi người sẽ yên tâm với nghề mình lựa chọn, có thái độ tích cực, chủ động học tập, rèn luyện để có thể hoạt động tốt lĩnh vực nghề nghiệp trong tương lai Đối với học sinh ở bậc phổ thông, tư vấn hướng nghiệp sẽ giúp các em định hướng ngành nghề một cách có cơ sở, có nhận thức đúng đắn về nghề nghiệp, phát huy được tối đa khả năng của bản thân, khơi dậy niềm đam mê của các em đối với công việc mình lựa chọn từ đó góp phần ổn định cuộc sống của bản thân trong tương lai đồng thời đáp ứng được nhu cầu xã hội, tránh lãng phí trong đào tạo và sử dụng hợp lý nguồn nhân lực, góp phần vào việc phát triển kinh tế – xã hội của đất nước
Trong việc chọn nghề, để có thể lựa chọn được một ngành nghề phù hợp ta phải dựa vào khả năng, năng lực bản thân cũng như sở thích và tính cách của từng người Do đó, đối với công tác tư vấn hướng nghiệp cho học sinh trung học phổ thông, cần phải có một phương pháp phân loại để phân nhóm các em học sinh dựa trên các yếu tố này, từ đó mới có thể đưa ra sự tư vấn, định hướng nghề nghiệp một cách chính
Trang 11xác cho các em Nói cách khác, để có thể giải quyết được vấn đề về công tác tư vấn hướng nghiệp cho học sinh trung học phổ thông ta cần phải giải quyết được bài toán phân loại học sinh Đây là bài toán nhằm mục đích phân lớp các em học sinh vào các nhóm ngành nghề khác nhau dựa trên các đặc trưng về khả năng, năng lực, sở thích cũng như tính cách của từng em
Ngày nay, đối với các bài toán phân loại, việc sử dụng các mô hình tính toán dựa trên các phương pháp học máy ngày càng được áp dụng một cách rộng rãi và đạt được nhiều thành công to lớn Trong đó, phương pháp học máy Support Vector Machine (SVM) là một trong những phương pháp được sử dụng phổ biến nhất do tính hiệu quả và độ chính xác cao khi xử lý đối với bộ dữ liệu lớn, rất thích hợp để ứng dụng trong bài toán phân loại học sinh
Với các lý do và mục tiêu như trên, tôi xin chọn đề tài nghiên cứu “Ứng dụng thuật toán học máy SVM trong tư vấn hướng nghiệp cho học sinh trung học phổ thông”
Mục tiêu cụ thể được trình bày trong luận văn như sau:
- Phát biểu bài toán về tư vấn hướng nghiệp cho học sinh trung học phổ thông
- Nghiên cứu học máy và thuật toán học máy SVM
- Áp dụng học máy và thuật toán học máy SVM cho bài toán tư vấn hướng nghiệp cho học sinh trung học phổ thông
- Cài đặt thử nghiệm thuật toán học máy SVM cho bài toán tư vấn hướng nghiệp cho học sinh trung học phổ thông
Nội dung của luận văn được trình bày trong 3 chương như sau:
- Chương 1: Tổng quan về học máy và bài toán tư vấn hướng nghiệp cho học sinh trung học phổ thông
- Chương 2: Xây dựng mô hình tư vấn hướng nghiệp cho học sinh trung học phổ thông dựa trên phương pháp Support Vector Machine
- Chương 3: Thực nghiệm và kết quả
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY VÀ BÀI TOÁN TƯ
VẤN HƯỚNG NGHIỆP CHO HỌC SINH THPT
1.1 Tổng quan về học máy
1.1.1 Giới thiệu về học máy
Học máy (machine learning) là khả năng của chương trình máy tính sử dụng kinh nghiệm, quan sát hoặc dữ liệu trong quá khứ để cải thiện công việc của mình trong tương lai thay vì chỉ thực hiện theo đúng các quy tắc đã được lập trình sẵn Chẳng hạn, máy tính có thể học cách dự đoán dựa trên các ví dụ, hay học cách tạo ra các hành vi phù hợp dựa trên quan sát trong quá khứ [4]
Ví dụ như chương trình có thể dựa vào dữ liệu trong quá khứ để phân loại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vào thư mục tương ứng Thư rác ở đây được hiểu là các thư điện tử có chứa các nội dung quảng cáo hay các loại hàng miễn phí cho dùng thử được chuẩn bị từ trước và gửi đồng loạt tới nhiều địa chỉ Khái niệm “rác” đến từ ý nghĩa là những thư này thường bị loại bỏ hơn là được sự lưu tâm của người nhận
Tương tự quá trình học thông thường, một hệ thống học máy cần có khả năng ghi nhớ, thích nghi và đặc biệt là tổng quát hóa Tổng quát hóa là khả năng của hệ thống học máy ra quyết định chính xác trong các trường hợp mới, chưa gặp dựa trên kinh nghiệm học được từ dữ liệu hoặc các quan sát trước đó
Một tiến trình học máy gồm 2 giai đoạn:
- Giai đoạn học (giai đoạn huấn luyện): hệ thống phân tích dữ liệu và tìm ra mối quan hệ (có thể là tuyến tính hoặc phi tuyến) giữa các đối tượng dữ liệu huấn luyện Kết quả của việc học có thể là nhóm các đối tượng vào trong các lớp, tạo ra các luật, dự đoán lớp cho các đối tượng mới
- Giai đoạn thử nghiệm (giai đoạn dự đoán): mối quan hệ (các luật, các lớp,
…) được tạo ra trong giai đoạn học phải được kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phần của tập dữ liệu huấn luyện hoặc trên một tập dữ liệu lớn hơn
Trang 13Một số khái niệm được sử dụng trong học máy [4]:
- Mẫu hay ví dụ dùng để chỉ đối tượng cần phân loại Mẫu thường được mô tả bằng một tập các thuộc tính còn được gọi là đặc trưng hay biến Chẳng hạn như trong bài toán phân loại thư rác, mỗi thư được gọi là một mẫu hay ví dụ, còn thuộc tính là tên người gửi hoặc các tham số khác như tiêu đề thư, nội dung thư, …
- Nhãn phân loại (nhãn) thể hiện loại của đối tượng mà ta cần dự đoán Đối với trường hợp phân loại thư rác, nhãn phân loại có thể là “thư rác” hay “thư bình thường” Trong giai đoạn học (giai đoạn huấn luyện) thuật toán học được cung cấp
cả nhãn phân loại của ví dụ Trong giai đoạn dự đoán, thuật toán chỉ nhận được các
ví dụ không nhãn và cần xác định nhãn cho những ví dụ này
- Dữ liệu huấn luyện là tập dữ liệu đầu vào cho trước bao gồm nhiều mẫu Trong đó, mỗi mẫu được mô tả trong một dòng và được ký hiệu bằng một cặp (xi, yi), với xi là véc-tơ đặc trưng hay thuộc tính, yi là giá trị nhãn phân loại hay giá trị đích
- Kết quả học thường được thể hiện dưới dạng một ánh xạ từ mẫu sang nhãn phân loại Ánh xạ này được thể hiện dưới dạng một hàm gọi là hàm đích (target function) có dạng f:X → C, trong đó, X là không gian các ví dụ và C là tập các nhãn phân loại khác nhau
1.1.2 Ứng dụng của học máy
Ngày nay, học máy có ứng dụng rộng rãi trong nhiều ngành nghề khoa học và sản xuất, đặc biệt là những ngành cần phân tích khối lượng dữ liệu khổng lồ, dưới đây là một số ứng dụng cụ thể của việc áp dụng các phương pháp học máy:
Máy tìm kiếm
Máy tìm kiếm thực chất là một phần mềm nhằm tìm ra các trang web trên mạng internet có nội dung theo yêu cầu người dùng dựa vào các thông tin mà nó có Trữ lượng thông tin này của máy tìm kiếm thực chất là một loại cơ sở dữ liệu cực lớn
về các trang web Cơ sở dữ liệu này thường được bổ sung cập nhật định kỳ bằng cách quét, điều chỉnh, thêm bớt nội dung và chỉ số hóa lại tất cả các trang web mà nó có
Trang 14thể tìm gặp trên internet Việc tìm tài liệu sẽ dựa trên các từ khóa được người dùng
gõ vào và trả về một danh mục các trang web có chứa từ khóa mà nó tìm được
Dịch tự động
Dịch tự động thực hiện dịch một ngôn ngữ này (gọi là ngôn ngữ nguồn) sang một hoặc nhiều ngôn ngữ khác (gọi là ngôn ngữ đích) một cách tự động, không có sự can thiệp của con người trong quá trình dịch Dữ liệu huấn luyện là các văn bản song ngữ, hệ thống dịch tự động học cách dịch từ ngôn ngữ này sang ngôn ngữ khác
Phân loại văn bản tự động
Đầu vào sẽ cho trước một tập huấn luyện bao gồm các văn bản Mỗi văn bản
có thể thuộc vào một trong các loại văn bản khác nhau Sau khi huấn luyện xong, thuật toán phân loại sẽ được nhận văn bản mới và cần xác định nhãn phân loại cho văn bản này Ví dụ, với các văn bản là nội dung thư điện tử, thuật toán có thể phân loại thư thành “thư rác” và “thư bình thường”
Phát hiện và nhận dạng mặt người
Phát hiện vùng có chứa mặt người trong ảnh, xác định đó là mặt của người nào trong số những người đã có ảnh trước đó, tức là phân chia ảnh thành những loại tương ứng với những người khác nhau Ứng dụng này hiện nay được sử dụng rộng rãi trong các thiết bị quay phim, chụp ảnh, …
Chuẩn đoán y khoa
Trong lĩnh vực y học, để chuẩn đoán các loại bệnh, người ta thường dựa vào các triệu chứng của người bệnh Ứng dụng sẽ học cách dự đoán người bệnh có mắc hay không mắc một số bệnh nào đó dựa trên các triệu chứng quan sát được
Các hệ tư vấn, khuyến nghị
Đưa ra các gợi ý về các loại hàng hóa, tin tức, video, … mà người dùng nhiều khả năng sẽ quan tâm đến Ví dụ như các khuyến nghị trên Youtube hay trên các trang mua bán trực tuyến
Trang 151.1.3 Phân loại các phương pháp học máy
1.1.3.1 Học có giám sát [4]
Học có giám sát (supervised learning) là dạng học máy trong đó tập dữ liệu huấn luyện đầu vào được cho trước dưới dạng các ví dụ với các giá trị đầu ra hay giá trị đích Nhiệm vụ của một thuật toán học có giám sát là dựa trên dữ liệu huấn luyện cần phải xây dựng được mô hình hay hàm đích để dự đoán giá trị đầu ra (giá trị đích) cho các trường hợp mới
Các giá trị đầu ra có thể dưới dạng các giá trị rời rạc hoặc nhận giá trị liên tục Nếu giá trị đầu ra là rời rạc thì học có giám sát được gọi là phân loại hay phân lớp (classification), còn nếu giá trị đầu ra nhận giá trị liên tục thì học có giám sát được gọi là hồi quy (regession)
Hoạt động của một hệ thống học có giám sát bao gồm hai giai đoạn: giai đoạn huấn luyện và giai đoạn dự đoán Trong giai đoạn huấn luyện, dữ liệu huấn luyện được sử dụng để huấn luyện các mô hình dự đoán còn gọi là các hàm đích Việc huấn luyện mô hình được thực hiện nhờ các thuật toán học máy phân loại hoặc hồi quy Trong giai đoạn dự đoán, hệ thống nhận các giá trị mới chưa có giá trị đích và sử dụng mô hình dự đoán đã huấn luyện để xác định giá trị đích cho ví dụ mới
Một số thuật toán học máy có giám sát thường được sử dụng gồm có: máy véc-tơ hỗ trợ (SVM), cây quyết định (DT), k láng giềng gần nhất (kNN), tiếp cận xác suất thống kê (NB), sử dụng mạng nơron (Nnet)
1.1.3.2 Học không giám sát [4]
Học không giám sát (unsupervised learning) là một phương pháp học máy nhằm tìm ra một mô hình mà phù hợp với tập dữ liệu quan sát Học không giám sát khác học có giám sát ở chỗ các ví dụ được cung cấp nhưng không có giá trị đầu ra hay giá trị đích
Trong học không giám sát, thay vì quan tâm đến giá trị đích, thuật toán học máy quan tâm đến độ tương đồng giữa các ví dụ, sau đó xếp chúng thành từng nhóm
Trang 16gồm các ví dụ tương tự nhau Hình thức học như vậy được gọi là phân cụm (clustering) Ví dụ, dựa vào tuổi của mọi người ta học được khái niệm “già” và “trẻ”,
và có thể xếp mọi người vào một trong hai cụm tương ứng
Ngoài ra, học không giám sát có thể được dùng kết hợp với suy diễn Bayes để đưa ra xác suất có điều kiện cho bất kỳ biến ngẫu nhiên nào khi biết trước các biến khác Ví dụ, qua phân tích dữ liệu mua hàng ở siêu thị, ta có thể dự đoán rằng người
đã mua bánh mỳ thì có nhiều khả năng cũng sẽ mua bơ
Có rất nhiều thuật toán học không giám sát được ra đời và phát triển nhằm giải quyết bài toán phâm cụm phục vụ khai thác hiệu quả nguồn dữ liệu chưa gán nhãn Việc lựa chọn thuật toán nào tùy thuộc vào dữ liệu và mục đích của từng bài toán Một số thuật toán thường được sử dụng như: k-means, Hierarchical Agglomerative Clustering (HAC), Self-organizing Map (SOM), …
1.1.3.3 Học bán giám sát
Học bán giám sát (semi-supervised learning) là dạng kết hợp giữa học có giám sát và học không giám sát Trong đó, nó kết hợp các ví dụ có gán nhãn và không gán nhãn để sinh ra một hàm hoặc một bộ phân loại thích hợp
Thuật toán học bán giám sát sử dụng một tập huấn luyện (training set) gồm 2 phần: các ví dụ huấn luyện có nhãn thường có số lượng ít và các ví dụ huấn luyện không có nhãn thường có số lượng nhiều
Một thuật toán học bán giám sát được sử dụng sẽ học các ví dụ có nhãn, sau
đó tiến hành gán nhãn cho một số (có lựa chọn) các ví dụ không có nhãn một cách hợp lý và có đánh giá chất lượng độ chính xác Tiếp theo, chọn các ví dụ vừa được gán nhãn có độ tin cậy cao (vượt trên một ngưỡng cho trước) đưa vào kết hợp với tập
dữ liệu có nhãn, tạo thành một tập dữ liệu huấn luyện mới
Trang 171.2 Tổng quan về phương pháp Support Vector Machine
1.2.1 Giới thiệu về Support Vector Machine
Support Vector Machine (SVM) là một phương pháp phân loại xuất phát từ lý thuyết thống kê Phương pháp này thực hiện phân lớp dựa trên nguyên lý tối thiểu rủi
ro cấu trúc SRM (Structural Risk Minimisation) SVM sẽ cố gắng tìm cách phân loại
dữ liệu sao cho lỗi xảy ra trên tập kiểm tra là nhỏ nhất
Phương pháp này được đề xuất lần đầu vào năm 1992 và được áp dụng nhiều
từ khoảng cuối những năm chín mươi của thế kỷ trước Cùng với khả năng tính toán ngày càng mạnh mẽ của máy tính, các thuật toán sử dụng cho SVM đã phát triển rất nhanh chóng và có được những ứng dụng rất to lớn
SVM dạng chuẩn nhận dữ liệu đầu vào và phân loại chúng vào hai lớp khác nhau Do đó SVM còn được gọi là một thuật toán phân loại nhị phân, tuy nhiên nó vẫn có thể được mở rộng cho phân lớp đa lớp Với một bộ các ví dụ luyện tập thuộc hai thể loại cho trước, thuật toán huấn luyện SVM xây dựng một mô hình SVM để phân loại các ví dụ khác vào hai thể loại đó
Hiện nay, SVM là một trong những phương pháp học có giám sát phổ biến nhất Có nhiều thư viện hoặc gói phần mềm cho phép sử dụng ngay SVM cho bài toán học có giám sát SVM cũng cho độ chính xác cao, thường ở trong nhóm đứng đầu trong số các thuật toán phân loại trong nhiều ứng dụng
1.2.1.1 Ý tưởng của phương pháp
Cho trước một tập dữ liệu huấn luyện gồm n ví dụ, mỗi ví dụ được biểu diễn
là một điểm trong không gian véc-tơ Phương pháp SVM sẽ tìm ra một siêu phẳng quyết định tốt nhất có thể để chia không gian này thành hai lớp riêng biệt tương ứng
là lớp “+” và lớp “-” Chất lượng của siêu phẳng này được quyết định bởi khoảng cách của điểm dữ liệu gần nhất của mỗi lớp đến siêu phẳng này
Trang 18Trường hợp không thể phân chia các ví dụ bằng một siêu phẳng, phương pháp SVM sẽ ánh xạ không gian ban đầu của các ví dụ sang một không gian khác thường
là có số chiều cao hơn, sau đó tìm siêu phẳng tốt nhất trong không gian này
Có thể tìm được nhiều siêu phẳng để phân chia tập dữ liệu huấn luyện ban đầu Mục đích của phương pháp SVM là tìm được siêu phẳng sao cho khoảng cách từ siêu phẳng này tới những ví dụ có nhãn khác nhau là lớn nhất
Hình 1.1 Mô tả phương pháp SVM
Trong hình vẽ trên, đường tô đậm là siêu phẳng tốt nhất và các điểm được khoanh tròn là những điểm gần siêu phẳng nhất, chúng được gọi là các véc-tơ hỗ trợ (support vector) Các đường nét đứt mà các véc-tơ hỗ trợ nằm trên đó được gọi là lề (margin)
Các véc-tơ hỗ trợ sẽ quyết định hàm phân tách dữ liệu Từ đây, có thể thấy phương pháp SVM không hoàn toàn phụ thuộc vào các ví dụ huấn luyện ban đầu mà chỉ phụ thuộc vào các véc-tơ hỗ trợ Cho dù các điểm khác bị xóa thì thuật toán vẫn cho kết quả tương tự Đây chính là điểm nổi bật của phương pháp SVM so với các phương pháp khác
Trang 191.2.1.2 Cơ sở lý thuyết
Cho tập huấn luyện T = {(x1,y1), (x2,y2), …, (xn,yn)} trong đó xi ϵ Rn là các véc-tơ đặc trưng và yi ϵ {-1, +1} là nhãn phân loại tương ứng của các xi Giả sử ta chọn tập các đặc trưng là D = {d1, d2, …, dn} thì véc-tơ đặc trưng xi = {xi1, xi2, …,
xin} trong đó xij ϵ Rn Đối với bài toán phân lớp nhị phân, nhãn yi sẽ có hai giá trị -1 hoặc +1
Ta cần tìm một siêu phẳng có lề lớn nhất phân tách các điểm yi = -1 và yi = +1 Mỗi siêu phẳng có thể được biểu diễn dưới dạng
𝑓(𝑥) = 〈𝑤 𝑥〉 + 𝑏 = 0 (2.1) Trong đó
- w là véc-tơ pháp tuyến của siêu phẳng
- b là một số thực với 𝑏
‖𝑤‖ là khoảng cách giữa gốc tọa độ và siêu phẳng theo hướng véc-tơ pháp tuyến w, ||w|| là độ dài chuẩn của véc-tơ w
- 〈𝑤 𝑥〉 biểu thị cho tích vô hướng của w và x
Phương trình siêu phẳng chứa véc-tơ 𝑥⃗⃗⃗ là: 𝑖
𝑓(𝑥𝑖) = 𝑤⃗⃗ 𝑥⃗⃗⃗ + 𝑏 𝑖 (2.2)
⟺ 𝑓(𝑥𝑖) = 𝑤1 𝑥𝑖1 + 𝑤2 𝑥𝑖2 + ⋯ + 𝑤𝑛 𝑥𝑖𝑛 + 𝑏 Một ví dụ xi sẽ có nhãn phân loại yi được xác định như sau:
𝑦𝑖 = 𝑠𝑖𝑔𝑛𝑓(𝑥𝑖) = 𝑠𝑖𝑔𝑛(𝑤⃗⃗ 𝑥⃗⃗⃗ + 𝑏) = {𝑖 +1, 𝑤⃗⃗ 𝑥⃗⃗⃗ + 𝑏 ≥ 0 𝑖
−1, 𝑤⃗⃗ 𝑥⃗⃗⃗ + 𝑏 < 0 𝑖
(2.3)
Như vậy, yi biểu diễn sự phân lớp của 𝑥⃗⃗⃗ vào hai lớp -1 và +1 𝑖
Bản chất của phương pháp SVM là tìm ra w và b sao cho siêu phẳng phân tách
dữ liệu huấn luyện 𝑓(𝑥) = 〈𝑤 𝑥〉 + 𝑏 có lề lớn nhất
Trang 20Hình 1.2 Siêu phẳng phân tách với véc-tơ pháp tuyến w
1.2.2 SVM tuyến tính và SVM phi tuyến
1.2.2.1 SVM tuyến tính [12][7]
1.2.2.1.1 SVM tuyến tính với tập dữ liệu phân tách được
Giả sử tập huấn luyện có thể phân tách tuyến tính được mà không có nhiễu (tất
cả các điểm được gán nhãn +1 thuộc về phía dương của siêu phẳng, tất cả các điểm được gán nhãn -1 thuộc về phía âm của siêu phẳng)
Hai lề của siêu phẳng 𝑓(𝑥) = 〈𝑤 𝑥〉 + 𝑏 = 0 sẽ là:
- Lề cộng: 〈𝑤 𝑥〉 + 𝑏 = +1
- Lề trừ: 〈𝑤 𝑥〉 + 𝑏 = −1
Khi đó, để tính độ rộng của lề, ta cần tính tổng khoảng cách từ 2 lề cộng và lề trừ đến siêu phẳng 〈𝑤 𝑥〉 + 𝑏 = 0
Trang 21Hình 1.3 Tập dữ liệu được phân chia tuyến tính
Theo không gian véc-tơ trong đại số tuyến tính thì khoảng cách từ một điểm
𝑑+ =|〈𝑤 𝑥1〉 + 𝑏 − 1|
‖𝑤‖
(2.7)
Từ (2.6) và (2.7) ta được:
Trang 23Bài toán cực tiểu hóa có ràng buộc bất đẳng thức như sau:
Cực tiểu hóa f(x) với điều kiện g(x) ≤ 0 Điều kiện để x0 là một lời giải
Với α là hệ số nhân Lagrange
Trong trường hợp có nhiều ràng buộc bất đẳng thức thì cần phải có hệ số nhân Lagrange cho mỗi ràng buộc:
Với αi là các hệ số nhân Lagrange
Hàm Lagrange đối với (2.14) là:
Với αi ≥ 0 là các hệ số nhân Lagrange
Lời giải tối ưu cho (2.16) phải thỏa mãn các điều kiện nhất định gọi là các điều kiện Karush-Kuhn-Tucker (KKT) Tập điều kiện KKT gồm:
𝜕L𝑃
𝜕𝑤 = 0
𝜕L𝑃
𝜕𝑏 = 0
Trang 24𝑦𝑖(〈𝑤 𝑥𝑖〉 + 𝑏) − 1 ≥ 0, ∀𝑖 = 1, 2, … , 𝑛
𝛼𝑖 ≥ 0, ∀𝑖 = 1, 2, … , 𝑛
𝛼𝑖[𝑦𝑖(〈𝑤 𝑥𝑖〉 + 𝑏) − 1] = 0, ∀𝑖 = 1, 2, … , 𝑛 Phương pháp Lagrange giải quyết bài toán tối ưu hàm lồi dẫn đến một biểu thức đối ngẫu của bài toán tối ưu dễ giải quyết hơn so với biểu thức cần tối ưu ban đầu
Để tìm được biểu thức đối ngẫu từ biểu thức ban đầu, ta tính đạo hàm bộ phận của biểu thức Lagrange với các biến ban đầu (w và b) và gán bằng 0, sau đó áp dụng các quan hệ thu được đối với biểu thức Lagrange ban đầu
Ta có, đạo hàm LP theo w và b lần lượt là:
Từ (2.17), ta có bài toán đối ngẫu Lagrange:
Trang 25Có hai trường hợp xảy ra:
- Với αi = 0, vì 𝑤 = ∑𝑛𝑖=1𝛼𝑖𝑦𝑖𝑥𝑖 nên ví dụ xi sẽ không tham gia vào việc tính toán w và b
- Với αi > 0, ta có thể suy ra 𝑦𝑖(〈𝑤 𝑥𝑖〉 + 𝑏) = 1 Điều này có nghĩa là xi nằm trên một trong hai lề cộng hoặc trừ Khi đó xi được gọi là véc-tơ hỗ trợ
Trường hợp này, ta có thể tính được: 𝑏 = 𝑦𝑖− 𝑤 𝑥𝑖
Gọi SV là tập các véc-tơ hỗ trợ, NSV là số véc-tơ hỗ trợ, khi đó b được tính bằng công thức:
Trang 26Nếu biểu thức trả về giá trị 1 thì ví dụ được phân vào lớp có nhãn dương, ngược lại thì được phân vào lớp có nhãn âm Việc phân lớp này chỉ phụ thuộc và các véc-tơ hỗ trợ và chỉ cần giá trị tích vô hướng của hai véc-tơ chứ không cần biết giá trị hai véc-tơ đấy
Trường hợp SVM tuyến tính với tập dữ liệu phân tách được là trường hợp lý tưởng Với cách tìm lề lớn nhất như trên chỉ giải được khi dữ liệu phân tách được, cách tìm lề này được gọi là lề cứng (hard margin)
1.2.2.1.2 SVM tuyến tính với tập dữ liệu có nhiễu
Trong thực tế, có thể tồn tại tập dữ liệu huấn luyện có thể phân chia tuyến tính được nhưng có nhiễu Trong trường hợp này, hầu hết các điểm đều được phân chia đúng bởi siêu phẳng Tuy nhiên, có một số điểm nhiễu, nghĩa là điểm có nhãn dương nhưng lại nằm ở phía âm của siêu phẳng, điểm có nhãn âm nhưng lại nằm ở phía dương của siêu phẳng Đối với trường hợp này ta phải mềm hóa các ràng buộc hay còn gọi là sử dụng C-SVM với lề mềm (soft margin) C-SVM cho phép gán nhãn sai cho một số ví dụ huấn luyện
Hình 1.4 Tập dữ liệu có nhiễu
Trang 27Để làm việc với các dữ liệu nhiễu, ta cần nới lỏng các điều kiện bằng cách sử dụng các biến Slack 𝜉𝑖 ≥ 0 như sau:
Ta có biểu thức Lagrange đối với (2.22) là:
Trang 28Lấy đạo hàm theo w, b, ξ ta có:
Trang 29Ngoài các trường hợp về tập dữ liệu có thể phân tách tuyến tính được, ta còn
có thể gặp những tập dữ liệu huấn luyện có ranh giới quyết định là không tuyến tính nên rất khó giải quyết Phương pháp được đưa ra ở đây là ta sẽ ánh xạ các véc-tơ dữ liệu x từ không gian n chiều vào một không gian mới m chiều (m > n), gọi là không gian đặc trưng (feature space) Không gian đặc trưng này phải đảm bảo sao cho dữ
Trang 30liệu huấn luyện sau khi ánh xạ sẽ trở nên tuyến tính và phân tách dữ liệu sẽ ít lỗi hơn không gian ban đầu
Hình 1.5 Ánh xạ Φ từ không gian X sang không gian đặc trưng F
Phương pháp SVM phi tuyến có thể phân chia thành hai bước như sau:
- Bước 1: Chuyển đổi không gian dữ liệu ban đầu sang một không gian đặc trưng mới có số chiều lớn hơn không gian ban đầu, khi đó dữ liệu huấn luyện có thể phân tách tuyến tính được
- Bước 2: Tìm siêu phẳng phân tách như trường hợp đối với SVM tuyến tính Giả sử dữ liệu xi ban đầu thuộc không gian X, ta sử dụng một hàm ánh xạ Φ
để chuyển tập dữ liệu xi sang không gian F
Φ: X → F
x → Φ(x) Tập dữ liệu huấn luyện ban đầu:
T = {(x1,y1), (x2,y2), …, (xn,yn)}
Được ánh xạ thành tập:
Trang 31T’ = {( Φ(x1),y1), (Φ(x2),y2), …, (Φ(xn),yn)}
Sau quá trình chuyển đổi không gian biểu diễn, bài toán tối ưu trở thành:
có thể rất lớn thậm chí là vô cùng Việc tính số lượng đặc trưng mới nhiều như vậy
sẽ gặp vấn đề về chi phí, thời gian và không thực tế Để tránh việc tính toán các đặc trưng trong không gian mới, SVM sử dụng các hàm nhân (kernel function)
Ta có thể thấy, trong các biểu thức đối ngẫu Lagrange và biểu thức siêu phẳng phân tách Φ(x) không xuất hiện riêng rẽ mà chỉ xuất hiện dưới dạng tích vô hướng
〈Φ(x) Φ(z)〉 Do đó, việc xác định cụ thể giá trị Φ(x), Φ(z) là không cần thiết mà chỉ cần tính giá trị tích vô hướng 〈Φ(x) Φ(z)〉 Ta có thể sử dụng hàm nhân 𝐾(𝑥, 𝑧) =
Trang 32〈Φ(x) Φ(z)〉 trong các biểu thức trên và không cần tính cụ thể các ánh xạ Φ(x) và Φ(z)
Do không cần xây dựng tường mình ánh xạ Φ và sử dụng hàm nhân nên biểu thức siêu phẳng phân tách có thể được viết lại như sau:
1.2.3 SVM trong phân lớp đa lớp
SVM ở dạng chuẩn là một thuật toán phân lớp nhị phân, nghĩa là được sử dụng cho trường hợp phân loại hai lớp với nhãn đầu ra nhận một trong hai giá trị “+” hoặc
“-” Tuy nhiên, trong thực tế có rất nhiều trường hợp cần phải phân loại đa lớp, tức là nhãn đầu ra có thể nhận nhiều hơn hai giá trị
Trang 33Ý tưởng để giải quyết vấn đề này là kết hợp nhiều bộ phân lớp SVM nhị phân với nhau Có hai chiến lược phân lớp đa lớp phổ biến thường được sử dụng là One-against-Rest (OAR) và One-against-One (OAO)
1.2.3.1 Chiến lược One-against-Rest [10][11]
Giả sử ta cần phải phân loại tập dữ liệu huấn luyện vào n lớp khác nhau Chiến lược này sẽ sử dụng n-1 bộ phân lớp và chuyển bài toán phân loại n lớp thành n bài toán phân lớp nhị phân Trong đó bộ phân lớp nhị phân thứ i (i = 1, 2, …, n-1) được xây dựng để phân tách các ví dụ thuộc lớp i với tất cả các lớp còn lại
Hình 1.6 Chiến lược One-against-Rest
Hàm quyết định phân lớp của lớp thứ i có dạng:
𝑓𝑖(𝑥) = 〈𝑤𝑖 𝑥〉 + 𝑏𝑖 = 0 (2.32) Khi đó, siêu phẳng phân chia tối ưu sẽ có dạng fi(x) = 0, các véc-tơ hỗ trợ thuộc lớp i thỏa mãn fi(x) = 1 Nếu véc-tơ dữ liệu x thỏa mãn điều kiện fi(x) > 0 đối với duy nhất một lớp i thì x sẽ được phân vào lớp thứ i
Tuy nhiên, trong trường hợp điều kiện fi(x) > 0 thỏa mãn đối với nhiều i, hoặc không thỏa mãn với bất kỳ i nào thì ta không thể phân loại được véc-tơ x Để giải quyết vấn đề này ta cần sử dụng chiến lược One-against-One
Trang 341.2.3.2 Chiến lược One-against-One [10][11]
Khác với chiến lược OAR, chiến lược OAO sẽ kết hợp từng đôi một các lớp với nhau để phân loại, sau đó sử dụng phương pháp lựa chọn theo đa số để kết hợp các bộ phân loại với nhau và xác định kết quả phân loại cuối cùng Chiến lược này sẽ cần phải sử dụng n(n-1)/2 bộ phân loại đối với trường hợp đầu ra có n nhãn
Hình 1.7 Chiến lược One-against-One
Hàm quyết định phân lớp của lớp thứ i đối với lớp thứ j là:
𝑓𝑖𝑗(𝑥) = 〈𝑤𝑖𝑗 𝑥〉 + 𝑏𝑖𝑗 = 0 (2.33)
𝑓𝑖𝑗(𝑥) = −𝑓𝑗𝑖(𝑥) Đối với một véc-tơ x ta tính: