Tải bản đầy đủ (.pdf) (68 trang)

Ứ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ĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.94 MB, 68 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-----------------------------------

TRẦ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


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-----------------------------------

TRẦ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
MÃ SỐ:

60.48.01.01

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)



NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. ĐÀO ĐÌNH KHẢ

HÀ NỘI – 2017


i

LỜ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


ii

LỜ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!


iii

MỤ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


iv

2.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


v


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

SVM

Support Vector Machine

Máy véc-tơ hỗ trợ

SMO

Sequential Minimal Optimization

Tối thiểu tuần tự

DT

Decision Tree

Cây quyết định

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

OAO

One-against-One

HL

Huấn luyện

KC

Kiểm chứng

CSDL

Cơ sở dữ liệu

THPT


Trung học phổ thông

TVHN

Tư vấn hướng nghiệp


vi

DANH 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


vii

DANH 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


1

LỜ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


2

xá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ả.


3

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
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.


4

Mộ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ó


5

thể 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.


6

1.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


7


gồ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.


8

1.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.


9

Trườ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.


10

1.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,
−1,

𝑤
⃗⃗ . ⃗⃗⃗
𝑥𝑖 + 𝑏 ≥ 0
𝑤

⃗⃗ . ⃗⃗⃗
𝑥𝑖 + 𝑏 < 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.


11

Hì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.


12


Hì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
xi tới siêu phẳng 〈𝑤. 𝑥〉 + 𝑏 = 0 là:
|〈𝑤. 𝑥𝑖 〉 + 𝑏|
‖𝑤‖

(2.4)

Với ||w|| là độ dài chuẩn của véc-tơ w:
‖𝑤‖ = √⟨𝑤. 𝑤⟩ = √𝑤12 + 𝑤22 + ⋯ + 𝑤𝑛2

(2.5)

Ta chọn hai điểm x1 và x2 nằm trên siêu phẳng 〈𝑤. 𝑥〉 + 𝑏 = 0. Có nghĩa là:
〈𝑤. 𝑥1 〉 + 𝑏 = 0 và 〈𝑤. 𝑥2 〉 + 𝑏 = 0

(2.6)

Khi đó, từ (2.4) ta có khoảng cách từ x1 đến lề cộng là:
𝑑+ =
Từ (2.6) và (2.7) ta được:

|〈𝑤. 𝑥1 〉 + 𝑏 − 1|
‖𝑤‖

(2.7)


13


𝑑+ =

|〈𝑤. 𝑥1 〉 + 𝑏 − 1| |−1|
1
=
=
‖𝑤‖
‖𝑤‖ ‖𝑤‖

(2.8)

Tương tự, ta có khoảng cách từ x2 đến lề trừ là:
𝑑− =

|〈𝑤. 𝑥2 〉 + 𝑏 + 1|
|1|
1
=
=
‖𝑤‖
‖𝑤‖ ‖𝑤‖

(2.9)

Từ (2.8) và (2.9) ta suy ra độ rộng lề:
𝑚 = 𝑑+ + 𝑑− =

1
1
2

+
=
‖𝑤‖ ‖𝑤‖ ‖𝑤‖

(2.10)

Thuật toán SVM nhằm mục đích tìm một siêu phẳng tối ưu sao cho độ rộng
của lề là lớn nhất, điều đó tương đương với việc giải quyết bài toán tối ưu sau:
2

Tìm w và b sao cho m = ‖𝑤‖ đạt cực đại, với ràng buộc:
{

〈𝑤. 𝑥𝑖 〉 + 𝑏 ≥ 1,
〈𝑤. 𝑥𝑖 〉 + 𝑏 ≤ −1,

𝑦𝑖 = +1
𝑦𝑖 = −1

∀𝑖 = 1, 2, … , 𝑛
Với mọi ví dụ huấn luyện xi bài toán trên tương đương với bài toán cực tiểu
hóa có ràng buộc sau:
min‖𝑤‖
𝑤,𝑏

(2.11)

Với ràng buộc 𝑦𝑖 (〈𝑤. 𝑥𝑖 〉 + 𝑏) ≥ 1 ∀𝑖 = 1, 2, … , 𝑛
1


Bài toán này rất khó giải, do đó ta cần chuyển mục tiêu từ ‖𝑤‖ sang ‖𝑤‖2 .
2

Lúc này, bài toán chuyển sang bài toán quy hoạch lồi (hàm mục tiêu lồi, ràng buộc
tuyến tính) và có nghiệm tối ưu tương đương với bài toán ban đầu. Vậy ta cần giải
bài toán:
1
min ‖𝑤‖2
𝑤,𝑏 2
Với ràng buộc 𝑦𝑖 (〈𝑤. 𝑥𝑖 〉 + 𝑏) ≥ 1, ∀𝑖 = 1, 2, … , 𝑛

(2.12)


14

Bà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
𝜕
(𝑓 (𝑥) + 𝛼𝑔(𝑥))|
{𝜕𝑥
𝑥 = 𝑥0 = 0
𝑔 (𝑥 ) ≤ 0

(2.13)

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:
𝑛


𝜕
(𝑓 (𝑥) + ∑ 𝛼𝑖 𝑔𝑖 (𝑥))|
{𝜕𝑥
𝑥 = 𝑥0 = 0

(2.14)

𝑖=1

𝑔𝑖 (𝑥) ≤ 0
Với αi là các hệ số nhân Lagrange.
Hàm Lagrange đối với (2.14) là:
𝑛

(2.15)

𝐿 = 𝑓 (𝑥) + ∑ 𝛼𝑖 𝑔𝑖 (𝑥)
𝑖=1

Như vậy, biểu thức Lagrange đối với (2.12) là:
𝑛

1
𝐿𝑃 = ||𝑤||2 − ∑ 𝛼𝑖 [𝑦𝑖 (〈𝑤. 𝑥𝑖 〉 + 𝑏 − 1)]
2

(2.16)

𝑖=1


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
𝜕𝑏


15

𝑦𝑖 (〈𝑤. 𝑥𝑖 〉 + 𝑏) − 1 ≥ 0,
𝛼𝑖 ≥ 0,

∀𝑖 = 1, 2, … , 𝑛

∀𝑖 = 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à:
𝑛

𝜕L𝑃
= 𝑤 − ∑ 𝛼𝑖 𝑦𝑖 𝑥𝑖 = 0
𝜕𝑤
𝑖=1
𝑛

𝜕L𝑃
= ∑ 𝛼𝑖 𝑦𝑖 = 0
𝜕𝑏

{

𝑖=1

𝑛

𝑤 = ∑ 𝛼𝑖 𝑦𝑖 𝑥𝑖


𝑖=1

𝑛

{

∑ 𝛼𝑖 𝑦𝑖 = 0

𝑖=1

Thay vào biểu thức Lagrange ban đầu, ta có biểu thức đối ngẫu Lagrange là:
𝑛

𝑛

𝑖=1

𝑖,𝑗=1

1
𝐿𝐷 = ∑ 𝛼𝑖 − ∑ 𝛼𝑖 𝛼𝑗 𝑦𝑖 𝑦𝑗 〈𝑥𝑖 𝑥𝑗 〉
2

(2.17)

Cả hai biểu thức LP và LD đều là biểu thức Lagrange dựa trên cùng một hàm
mục tiêu nhưng với các ràng buộc khác nhau. Lời giải tìm được bằng cách cực tiểu
hóa LP hoặc cực đại hóa LD.
Từ (2.17), ta có bài toán đối ngẫu Lagrange:


16

𝑛

𝑛

𝑖=1


𝑖,𝑗=1

1
𝑚𝑎𝑥 ∑ 𝛼𝑖 − ∑ 𝛼𝑖 𝛼𝑗 𝑦𝑖 𝑦𝑗 〈𝑥𝑖 𝑥𝑗 〉
𝛼
2

(2.18)

Với ràng buộc
𝑛

∑ 𝛼𝑖 𝑦𝑖 = 0

{

𝑖=1

𝛼𝑖 ≥ 0, 𝑖 = 1, … , 𝑛

Để tính b, ta áp dụng điều kiện KKT
𝛼𝑖 [𝑦𝑖 (〈𝑤. 𝑥𝑖 〉 + 𝑏) − 1] = 0,

∀𝑖 = 1, 2, … , 𝑛

Có 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:
𝑁𝑆𝑉

1
∑(𝑦𝑖 − 𝑤. 𝑥𝑖 )
𝑏=
𝑁𝑆𝑉

(2.19)

𝑖=1

Sử dụng các điều kiện KKT ta tính được w và b, từ đó suy ra công thức siêu
phẳng quyết định ranh giới phân lớp:
𝑓 (𝑥) = 〈𝑤. 𝑥〉 + 𝑏 = ∑ 𝛼𝑖 . 𝑦𝑖 〈𝑥𝑖 . 𝑥〉 + 𝑏 = 0

(2.20)

𝑥𝑖 𝑆𝑉

Đối với một ví dụ cần phân lớp chúng ta chỉ cần tính giá trị:
𝑠𝑖𝑔𝑛(〈𝑤. 𝑥〉 + 𝑏) = 𝑠𝑖𝑔𝑛( ∑ 𝛼𝑖 . 𝑦𝑖 〈𝑥𝑖 . 𝑥〉 + 𝑏)
𝑥𝑖 𝑆𝑉

(2.21)



×