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

Nghiên cứu các phương pháp học máy và ứng dụng trong phát hiện xâm nhập trái phép

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 (2.4 MB, 95 trang )

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

NGUYỄN HOÀNG GIANG

NGHIÊN CỨU CÁC PHƯƠNG PHÁP HỌC MÁY VÀ ỨNG DỤNG
TRONG PHÁT HIỆN XÂM NHẬP TRÁI PHÉP

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

HÀ NỘI - 2016


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

NGUYỄN HOÀNG GIANG

NGHIÊN CỨU CÁC PHƯƠNG PHÁP HỌC MÁY VÀ ỨNG DỤNG
TRONG PHÁT HIỆN XÂM NHẬP TRÁI PHÉP

CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN
MÃ SỐ:

0

60.48.01.04

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: PGS.TS. TRẦN QUANG ANH

HÀ NỘI - 2016



i

LỜI CAM ĐOAN
Tôi xin cam đoan:
Những nội dung trong luận văn này là do tôi thực hiện. Mọi tham khảo dùng
trong luận văn đều được trích dẫn rõ ràng và trung thực về tên tác giả, tên công trình,
thời gian và địa điểm công bố.
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu
hoàn toàn trách nhiệm.

Tác giả luận văn

Nguyễn Hoàng Giang


ii

LỜI CẢM ƠN
Em xin chân thành gửi lời cảm ơn sâu sắc đến thầy giáo, PGS. TS. Trần Quang
Anh – Phó giám đốc Học viện – Học viện Công nghệ Bưu chính Viễn thông. Thầy
đã định hướng nghiên cứu, chỉ bảo tận tình, đôn đốc đầy trách nhiệm, cho em các ý
kiến đóng góp rất giá trị trong suốt quá trình làm nghiên cứu khoa học, làm luận văn,
đồng thời tạo điều kiện thuận lợi để em hoàn thành luận văn này.

Em xin chân thành cảm ơn toàn thể các thầy cô Khoa Quốc tế và Đào tạo Sau
Đại học; Khoa Công nghệ thông tin I – Học viện Công nghệ Bưu chính viễn thông
đã truyền đạt những kiến thức bổ ích và lý thú, giúp ích cho em trên con đường học
tập và nghiên cứu của mình.
Cuối cùng, tôi cũng xin cảm ơn tất cả những người bạn đã đóng góp ý kiến,
động viên, giúp đỡ tôi hoàn thành luận văn này.
Hà Nội, ngày 15 tháng 06 năm 2016
Tác giả luận văn

Nguyễn Hoàng Giang


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

vi


DANH SÁCH BẢNG

vii

DANH SÁCH HÌNH VẼ

viii

MỞ ĐẦU

1.
2.
3.
4.
5.

1

Tính cấp thiết của đề tài
Mục đích nghiên cứu
Đối tượng nghiên cứu và phạm vi nghiên cứu
Phương pháp nghiên cứu
Cấu trúc luận văn

CHƯƠNG 1.

TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP HỌC MÁY

1.1.

Giới thiệu về học máy
1.2.
Phân loại các phương pháp học máy
1.2.1. Phương pháp học máy có giám sát
1.2.2. Phương pháp học máy không có giám sát
1.3.
Một số thuật toán học máy
1.3.1. Thuật toán học máy có giám sát: Support Vector Machine (SVM)
1.3.1.1. Tổng quan về SVM
1.3.1.2. Phân lớp tuyến tính
1.3.1.3. Phân lớp tuyến tính với trường hợp không phân tách được
1.3.1.4. Phân lớp phi tuyến tính
1.3.2. Thuật toán học máy có giám sát: K-Nearest Neighbor (K-NN)
1.3.2.1. Tổng quan về K láng giềng gần nhất
1.3.2.2. Thuật toán K-NN
1.3.2.3. Hàm tính khoảng cách
1.3.2.4. Chọn K
1.3.3. Thuật toán học máy không có giám sát: One-class SVM
1.3.3.1. Tổng quan về One-class SVM
1.3.3.2. Thuật toán One-class SVM
1.4.
Kết luận chương 1.

1
2
2
2
3
4


4
5
5
6
6
7
7
10
15
19
23
23
24
25
26
27
27
27
28

CHƯƠNG 2.
PHÁT HIỆN XÂM NHẬP TRÁI PHÉP VÀ CÁCH TIẾP CẬN BẰNG PHƯƠNG
PHÁP HỌC MÁY
30

2.1.
Khái niệm về xâm nhập trái phép
2.1.1. Xâm nhập trái phép
2.1.2. Hệ thống IDS
2.1.2.1. Khái niệm

2.1.2.2. Thành phần của hệ thống IDS

30
30
31
31
32


iv

2.2.
Phân loại phát hiện xâm nhập trái phép theo nguồn dữ liệu
2.2.1. Phát hiện xâm nhập trái phép trên mạng (Network-based)
2.2.2. Phát hiện xâm nhập trái phép trên máy chủ (Host-based)
2.3.
Phân loại phát hiện xâm nhập trái phép theo kỹ thuật phân tích dữ liệu
2.3.1. Misuse Detection
2.3.2. Anomaly Detection
2.4.
Phát hiện xâm nhập trái phép tiếp cận băng phương pháp học máy (Machine
Learning Approach)
2.4.1. Phát hiện xâm nhập trái phép dựa vào học máy có giám sát
2.4.2. Phát hiện xâm nhập trái phép dựa vào học máy không có giám sát
2.5.
Mô tả bài toán đề xuất trong luận văn
2.5.1. Lựa chọn luồng dữ liệu Net-Flow
2.5.2. Phát hiện bất thường bằng K-NN, SVM và One-class SVM
2.6.
Kết luận chương 2.


33
33
35
36
36
37
39
40
41
41
42
42
43

CHƯƠNG 3.
ỨNG DỤNG PHƯƠNG PHÁP HỌC MÁY KNN, SVM VÀ ONE-CLASS SVM ĐỂ
PHÁT HIỆN BẤT THƯỜNG
44

3.1.
Mô hình thử nghiệm
3.1.1. Giới thiệu bộ dữ liệu thử nghiệm của DARPA và ISCX Research Center
3.1.1.1. Bộ dữ liệu DARPA Tcpdump
3.1.1.2. Bộ dữ liệu ISCX Tcpdump
3.1.2. Chuyển đổi dữ liệu từ Tcpdump sang Netflow
3.2.
Cài đặt thử nghiệm
3.2.1. Tập dữ liệu thử nghiệm DARPA Netflow
3.2.2. Tập dữ liệu thử nghiệm ISCX Netflow

3.2.3. Trích chọn đặc trưng
3.2.4. Cài đặt
3.3.
Kết quả và đánh giá
3.3.1. Tiêu chí đánh giá hệ thống IDS
3.3.2. Kết quả thử nghiệm
3.3.3. Đánh giá
3.4.
Kết luận chương 3.
KẾT LUẬN

1.
2.

Kết quả đạt được.
Hướng nghiên cứu trong tương lai.

44
45
45
46
47
50
50
52
52
54
54
54
56

56
59
60

60
60

TÀI LIỆU THAM KHẢO

61

PHỤ LỤC 01: DỮ LIỆU VÀ KẾT QUẢ THỬ NGHIỆM

63

1. Chuẩn hóa dữ liệu DARPA Netflow
2. Chuẩn hóa dữ liệu ISCX Netflow
3. Kết quả thử nghiệm với bộ dữ liệu DARPA Netflow
3.1.
Thuật toán K-NN
3.2.
Thuật toán SVM
3.3.
Thuật toán One-class SVM

63
66
69
69
71

75


v

4. Kết quả thử nghiệm với bộ dữ liệu ISCX Netflow
4.1.
Thuật toán K-NN
4.2.
Thuật toán SVM
4.3.
Thuật toán One-class SVM
PHỤ LỤC 02 : CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ

75
75
78
82
83


vi

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

Viết tắt/Thuật ngữ

Ý nghĩa

Bộ dữ liệu nghiên cứu phát hiện xâm nhập

trái phép
DARPA/Defense Advanced
Cục dự án nghiên cứu cao cấp Bộ quốc phòng
Research Project Agency
Mỹ
Bộ dữ liệu nghiên cứu phát hiện xâm nhập trái
DARPA Dataset
phép của DARPA
Hệ thống phát hiện xâm nhập trái phép trên
HIDS/Network Based IDS
máy chủ
IDS/Intrusion Detection Systems Hệ thống phát hiện xâm nhập trái phép
ISCX/Information Security
Trung tâm nghiên cứu về an toàn thông tin của
Center of Excellence
trường đại học New Brunswick
Bộ dữ liệu nghiên cứu phát hiện xâm nhập trái
ISCX Dataset
phép của ISCX
K-NN/K-Nearest Neighbor
Thuật toán học máy K láng giềng gần nhất
ML/Machine Learning
Học máy
Định dạng dữ liệu được thu thập qua việc bắt
Netflow
giữ gói tin ở dạng Flow
Hệ thống phát hiện xâm nhập trái phép trên
NIDS/Network Based IDS
mạng
SVM/Support Vector Machine

Thuật toán học máy Máy hỗ trợ Vector
Định dạng dữ liệu được thu thập qua việc bắt
Tcpdump
giữ gói tin ở dạng Packet
Phần mềm học máy của trường đại học
Weka
Waikato
Dataset


vii

DANH SÁCH BẢNG
Bảng 3.1: Các nhóm xâm nhập trái phép trong dữ liệu DARPA ............................ 46
Bảng 3.2: Bộ dữ liệu ISCX .................................................................................... 47
Bảng 3.3: Các thông số cơ bản của bộ dữ liệu netflow máy chủ Pascal .................. 50
Bảng 3.4: Số lượng tấn công từ từng máy chủ tới máy chủ Pascal ......................... 51
Bảng 3.5: Số lượng tấn công theo các cổng đích tới máy chủ Pascal...................... 51
Bảng 3.6: Các thông số cơ bản của bộ dữ liệu ISCX Netflow ................................ 52
Bảng 3.7: Số lượng tấn công theo các cổng đích với bộ dữ liệu ISCX ................... 52
Bảng 3.8: Các đặc trưng lựa chọn trong phát hiện xâm nhập trái phép ................... 53
Bảng 3.9: Thông tin bộ dữ liệu thử nghiệm DARPA Netflow máy chủ Pascal ....... 53
Bảng 3.10: Thông tin bộ dữ liệu thử nghiệm ISCX Netflow ngày 14/6 .................. 53
Bảng 3.11: Confusion Matrix ................................................................................ 55
Bảng 3.12: Đánh giá kết quả thử nghiệm với bộ dữ liệu DARPA Netflow ............. 57
Bảng 3.13: Đánh giá kết quả thử nghiệm với bộ dữ liệu ISCX Netflow ................. 58


viii


DANH SÁCH HÌNH VẼ
Hình 1.1:Dữ liệu cần phân lớp ................................................................................. 8
Hình 1.2: Minh họa biên của một cách phân lớp ...................................................... 8
Hình 1.3: Minh họa biên cực đại của bài toán phân lớp ........................................... 9
Hình 1.4: Mặt phẳng phân tách theo các giá trị vector pháp tuyến và ngưỡng ........ 10
Hình 1.5: Minh họa độ rộng của biên..................................................................... 11
Hình 1.6: Minh họa đường viền của biên ............................................................... 12
Hình 1.7: Ví dụ bài toán phân loại tuyến tính không tách biệt ................................ 16
Hình 1.8: Các điểm lỗi của dữ liệu......................................................................... 17
Hình 1.9: Ảnh hưởng của tham số C đến bài toán phân lớp ................................... 17
Hình 1.10: Chuyển đổi không gian biểu diễn ......................................................... 20
Hình 1.11: Không gian đầu vào ............................................................................. 21
Hình 1.12: Không gian đặc trưng ........................................................................... 21
Hình 1.13: Hình K láng giềng gần nhất.................................................................. 24
Hình 2.1: Các thành phần của hệ thống IPS ........................................................... 32
Hình 2.2: Hệ thống Network-based IDS (NIDS) .................................................... 34
Hình 2.3: Hệ thống Host-based IDS (HIDS) .......................................................... 36
Hình 2.4: Hệ thống Misuse Detection .................................................................... 37
Hình 2.5: Hệ thống Anomaly Detection ................................................................. 38
Hình 2.6: Kiến trúc của hệ thống phát hiện xâm nhập dựa trên bất thường ............ 40
Hình 3.1: Mô hình kiểm thử với thuật toán học máy có giám sát ........................... 44
Hình 3.2: Mô hình kiểm thử với thuật toán học máy không có giám sát ................. 45
Hình 3.3: Sơ đồ chuyển đổi dữ liệu........................................................................ 48
Hình 3.4: Ví dụ minh họa về đường ROC .............................................................. 56
Hình 3.5: So sánh độ chính xác (AC) của các thuật toán học máy với bộ dữ liệu
DARPA Netflow ................................................................................................... 57
Hình 3.6: So sánh độ chính xác (AC) của các thuật toán học máy với bộ dữ liệu ISCX
Netflow ................................................................................................................. 58
Hình 0.1: Chuẩn hóa dữ liệu Protocol DARPA Netflow với Discretize ................. 63
Hình 0.2: Chuẩn hóa dữ liệu Packet DARPA Netflow với Discretize .................... 63

Hình 0.3: Chuẩn hóa dữ liệu Octet DARPA Netflow với Discretize ...................... 64
Hình 0.4: Chuẩn hóa dữ liệu Protocol DARPA Netflow với Normalize ................. 64
Hình 0.5: Chuẩn hóa dữ liệu Packets DARPA Netflow với Normalize .................. 65
Hình 0.6:Chuẩn hóa dữ liệu Octets DARPA Netflow với Normalize ..................... 65
Hình 0.7: Chuẩn hóa dữ liệu Protocol ISCX Netflow với Discretize ...................... 66
Hình 0.8: Chuẩn hóa dữ liệu Packet ISCX Netflow với Discretize......................... 66
Hình 0.9: Chuẩn hóa dữ liệu Octet ISCX Netflow với Discretize........................... 67
Hình 0.10: Chuẩn hóa dữ liệu Protocol ISCX Netflow với Normalize ................... 67


ix

Hình 0.11: Chuẩn hóa dữ liệu Packets ISCX Netflow với Normalize..................... 68
Hình 0.12: Chuẩn hóa dữ liệu Octets ISCX Netflow với Normalize ...................... 68
Hình 0.13: ROC của thuật toán K-NN với K=1 với bộ dữ liệu DARPA Netflow ... 69
Hình 0.14: ROC của thuật toán K-NN với K=4 với bộ dữ liệu DARPA Netflow ... 70
Hình 0.15: ROC của thuật toán SVM Linear với bộ dữ liệu DARPA Netflow ....... 71
Hình 0.16: ROC của thuật toán SVM Polynominal với bộ dữ liệu DARPA Netflow
.............................................................................................................................. 72
Hình 0.17: ROC của thuật toán SVM-RBF với bộ dữ liệu DARPA Netflow.......... 73
Hình 0.18: ROC của thuật toán SVM-Sigmoid với bộ dữ liệu DARPA Netflow .... 74
Hình 0.19: Kết quả phân loại với thuật toán One-class SVM với bộ dữ liệu DARPA
Netflow ................................................................................................................. 75
Hình 0.20: ROC của thuật toán K-NN với K=1 với bộ dữ liệu ISCX Netflow ....... 75
Hình 0.21: ROC của thuật toán K-NN với K=4 với bộ dữ liệu ISCX Netflow ....... 77
Hình 0.22: ROC của thuật toán SVM Linear với bộ dữ liệu ISCX Netflow ........... 78
Hình 0.23: ROC của thuật toán SVM Polynominal với bộ dữ liệu ISCX Netflow .. 79
Hình 0.24: ROC của thuật toán SVM-RBF với bộ dữ liệu ISCX Netflow .............. 80
Hình 0.25: ROC của thuật toán SVM-Sigmoid với bộ dữ liệu ISCX Netflow ........ 81
Hình 0.26: Kết quả phân loại với thuật toán One-class SVM với bộ dữ liệu ISCX

Netflow ................................................................................................................. 82


MỞ ĐẦU
1. Tính cấp thiết của đề tài
Vấn đề đảm bảo an toàn thông tin cho các hệ thống mạng, hệ thống thông tin
là một vấn đề không mới nhưng ngày càng trở thành một đòi hỏi có tính cấp bách
hiện nay. Cùng với sự phát triển một cách nhanh chóng của hệ thống mạng Internet
và các tiện ích của nó, việc bảo đảm an toàn thông tin càng trở nên cấp thiết hơn bao
giờ hết. Đặc biệt trong bối cảnh một vài năm trở lại đây, các hệ thống mạng của Việt
Nam liên tục trở thành các mục tiêu tấn công phá hoại, xâm nhập trái phép, lấy cắp
thông tin của Hacker nước ngoài, trong đó đặc biệt là từ các Hacker Trung Quốc. Đây
thực sự là tình trạng báo động bởi rất nhiều các máy bị truy cập trái phép thuộc các
mạng của các Bộ, ban, ngành, tổ chức lưu giữ, soạn thảo các thông tin quan trọng
quốc gia hoặc các thông tin tài chính, kỹ thuật quan trọng.
Có nhiều phương pháp cả về kỹ thuật lẫn chính sách đã được đề xuất, áp dụng
nhằm đảm bảo an toàn thông tin như: triển khai các hệ thống tường lửa (Firewall)
nhiều lớp, hệ thống phát hiện xâm nhập trái phép (IDS), các hệ thống xác thực, các
hệ thống bảo mật thiết bị đầu cuối (Endpoint). Tuy vậy, giải pháp phát hiện xâm nhập
trái phép (IDS) vẫn luôn là một trong những giải pháp quan trọng, được quan tâm
triển khai.
Có nhiều cách để phát hiện các xâm nhập trái phép hệ thống mạng. Thông
thường được phân làm 2 loại chính: Misuse Detection (phát hiện dựa trên sự lạm
dụng) và Anomaly Detection (phát hiện bất thường). Cách thức phát hiện dựa trên sự
lạm dụng phân tích các hoạt động của hệ thống, tìm kiếm các sự kiện giống với các
mẫu tấn công đã biết trước. Các mẫu tấn công biết trước này gọi là các dấu hiệu tấn
công. Do vậy cách thức này còn được gọi là cách thức phát hiện dựa trên dấu hiệu.
Kiểu phát hiện tấn công này có ưu điểm là phát hiện các cuộc tấn công nhanh và chính
xác, không đưa ra các cảnh báo sai làm giảm khả nǎng hoạt động của mạng và giúp
các người quản trị xác định các lỗ hổng bảo mật trong hệ thống của mình. Tuy nhiên,

cách thức này có nhược điểm là không phát hiện được các cuộc tấn công không có
trong cơ sở dữ liệu, các kiểu tấn công mới, do vậy hệ thống luôn phải cập nhật các


2

mẫu tấn công mới. Trong khi đó cách thức phát hiện bất thường là kỹ thuật phát hiện
thông minh, nhận dạng ra các hành động không bình thường của mạng. Quan niệm
của cách thức này về các cuộc tấn công là khác so với các hoạt động thông thường.
Ban đầu, chúng lưu trữ các mô tả sơ lược về các hoạt động bình thường của hệ thống.
Các cuộc tấn công sẽ có những hành động khác so với bình thường và cách thức phát
hiện này có thể nhận dạng. Do đó, cách thức phát hiện xâm nhập trái phép dựa trên
bất thường mạng hiện nay đang trở thành hướng nghiên cứu chủ yếu đối với các hệ
thống phát hiện xâm nhập trái phép.
Học máy (Machine learning) là kỹ thuật cho phép giải quyết vấn để hoặc ra
quyết định dựa trên dữ liệu và kinh nghiệm. Với học máy, 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ính vì thế, việc ứng dụng Học máy trong phát hiện xâm nhập trái phép, đặc
biệt đối với phát hiện bất thường, là phù hợp và cần thiết trong bối cảnh hiện nay.
Chính vì vậy, học viên chọn đề tài luận văn “Nghiên cứu các phương pháp học
máy và ứng dụng trong phát hiện xâm nhập trái phép”, trong đó tập trung nghiên cứu
ứng dụng học máy trong phát hiện xâm nhập mạng bất thường.

2. Mục đích nghiên cứu
Nghiên cứu các phương pháp học máy;
Nghiên cứu một số cách thức phát hiện xâm nhập trái phép. Từ đó ứng dụng
phương pháp học máy phát hiện bất thường mạng.

3. Đối tượng nghiên cứu và phạm vi nghiên cứu

Đối tượng nghiên cứu: Các phương pháp học máy; phương pháp phát hiện
xâm nhập trái phép đặc biệt là phát hiện bất thường mạng; các luồng dữ liệu trên
mạng.
Phạm vi nghiên cứu: Phát hiện bất thường trong mạng máy tính.

4. Phương pháp nghiên cứu
a). Về lý thuyết:
Đọc, phân tích, tổng hợp tài liệu về các phương các phương pháp học máy.


3

Đọc, phân tích, tổng hợp tài liệu về các cách thức phát hiện xâm nhập trái phép
và cách tiếp cận bằng phương pháp học máy trên các luồng dữ liệu.

b)Về thực nghiệm:
Sử dụng phương pháp học máy K-Nearest Neighbor (K-NN), Support Vector
Machine (SVM) và One-class SVM phát hiện bất thường mạng máy tính sử dụng tập
dữ liệu dataset của DARPA và ISCX Research Center.

5. Cấu trúc luận văn
Nội dung của luận văn dự kiến sẽ được chia thành 3 chương với những nội
dung chính như sau:
Chương 1: Tổng quan về các phương pháp học máy
Trong chương này, luận văn sẽ trình bày khái niệm về học máy; phân loại các
phương pháp học máy chủ yếu là phương pháp học máy có giám sát và phương pháp
học máy không có giám sát; tiếp đó sẽ trình bày một số thuật toán học máy tiêu biểu
của các phương pháp học máy, trong đó đi sâu vào 3 thuật toán học máy là SVM, KNN và One-class SVM sẽ được sử dụng trong ứng dụng phát hiện xâm nhập mạng
bất thường nêu ở chương 3.
Chương 2: Phát hiện xâm nhập trái phép và cách tiếp cận bằng phương pháp học

máy
Trong chương này, luận văn sẽ trình bày khái niệm về xâm nhập trái phép;
phân loại phát hiện xâm nhập trái phép dựa trên nguồn dữ liệu (Network-based, Hostbased) và dựa theo phương pháp xử lý (Misuse Detection, Anomaly Detection); cách
tiếp cận phát hiện xâm nhập trái phép dựa trên bất thường bằng phương pháp học
máy; Mô tả bài toán đề xuất trong luận văn.
Chương 3: Ứng dụng phương pháp học máy KNN, SVM và One-class SVM để
phát hiện bất thường
Trong chương này, luận văn sẽ trình bày về việc thử nghiệm ứng dụng phương
pháp học máy để phát hiện xâm nhập mạng bất thường: giới thiệu về mô hình thử
nghiệm, trong đó giới thiệu về cách thức xây dựng các bộ dữ liệu thử nghiệm ở dạng
Netflow (từ bộ dữ liệu thử nghiệm dạng Tcpdump của DARPA, ISCX); cách thức cài
đặt thử nghiệm; kết quả thử nghiệm và đánh giá kết quả thử nghiệm.


4

CHƯƠNG 1.

TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP HỌC
MÁY

1.1. Giới thiệu về học máy
Theo định nghĩa của Wikipedia, Học máy, còn gọi là Máy học, (tiếng
Anh: Machine Learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên
cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải
quyết những vấn đề cụ thể. Ví dụ như các máy có thể "học" cách 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.
Học máy rất gần với suy diễn thống kê (statistical inference) tuy có khác nhau về
thuật ngữ.
Theo định nghĩa được nêu tại [2], Học máy 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ứ.
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 đó.
Lý do cần tới học máy
Học máy là một nhánh nghiên cứu rất quan trọng của trí tuệ nhân tạo với khá
nhiều ứng dụng thành công trong thực tế. Hiện nay, học máy là một trong những lĩnh
vực phát triển mạnh nhất của trí tuệ nhân tạo. Có một số lý do giải thích cho sự cần
thiết và phát triển của học máy:
-

Thứ nhất, rất khó xây dựng hệ thống thông minh có thể thực hiện các công
việc liên quan đến trí tuệ như thị giác máy, xử lý ngôn ngữ tự nhiên mà không
sử dụng tới kinh nghiệm và quá trình học. Thông thường, khi viết chương
trình, cần có thuật toán rõ ràng để chuyển đổi đầu vào thành đầu ra. Tuy nhiên,


5

trong nhiều bài toán, rất khó để xây dựng được thuật toán như vậy. Như trong
ví dụ về nhận dạng chữ ở trên, người bình thường có khả năng nhận dạng các
chữ rất tốt nhưng rất khó để giải thích vì sao từ đầu vào là ảnh lại kết luận
được đây là ký tự cụ thể nào. Học máy cho phép tìm ra giải pháp cho những
trường hợp như vậy dựa trên dữ liệu, chẳng hạn bằng cách tìm ra điểm chung
và riêng giữa rất nhiều ảnh chụp các ký tự.
-


Thứ hai, nhiều ứng dụng đòi hỏi chương trình máy tính phải có khả năng thích
nghi. Ví dụ, hành vi mua sắm của khách hàng có thể thay đổi theo thời điểm
cụ thể trong ngày, trong năm, hoặc theo tuổi tác. Việc xây dựng thuật toán cố
định cho những ứng dụng cần thích nghi và thay đổi là không phù hợp. Học
máy mang lại khả năng thích nghi nhờ phân tích dữ liệu thu thập được.

-

Thứ ba, việc tìm được chuyên gia và thu thập được tri thức cần thiết cho việc
thiết kế thuật toán để giải quyết các vấn đề tương đối khó, trong khi dữ liệu
ngày càng nhiều và có thể thu thập dễ dàng hơn. Khả năng lưu trữ và tính toán
của máy tính cũng ngày càng tăng, cho phép thực hiện thuật toán học máy trên
dữ liệu có kích thước lớn.

-

Cuối cùng, bản thân khả năng học là một hoạt động trí tuệ quan trọng của con
người, do vậy học tự động hay học máy luôn thu hút được sự quan tâm khi xây
dựng hệ thống thông minh.

1.2. Phân loại các phương pháp học máy
1.2.1. Phương pháp học máy có giám sát
Học có giám sát (supervised learning): là một kĩ thuật của ngành học máy để
xây dựng một hàm (function) từ dữ liệu huấn luyện. Dữ liệu huấn luyện bao gồm các
cặp gồm đối tượng đầu vào (thường dạng vec-tơ), và đầu ra mong muốn. Đầu ra của
một hàm có thể là một giá trị liên tục (gọi là hồi qui), hay có thể là dự đoán một nhãn
phân loại cho một đối tượng đầu vào (gọi là phân loại). Nhiệm vụ của chương trình
học có giám sát là dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp
lệ, sau khi đã xem xét một số ví dụ huấn luyện (nghĩa là, các cặp đầu vào và đầu ra



6

tương ứng). Để đạt được điều này, chương trình học phải tổng quát hóa từ các dữ liệu
sẵn có để dự đoán được những tình huống chưa gặp phải theo một cách "hợp lí".
Học có giám sát có thể tạo ra 2 loại mô hình. Phổ biến nhất, học có giám sát
tạo ra một mô hình toàn cục (global model) để ánh xạ đối tượng đầu vào đến đầu ra
mong muốn. Tuy nhiên, trong một số trường hợp, việc ánh xạ được thực hiện dưới
dạng một tập các mô hình cục bộ.
Các phương pháp học máy có giám sát thông dụng:
-

K-Nearest Neighbor (K-NN);

-

Support Vector Machine (SVM)

1.2.2. Phương pháp học máy không có giám sát
Học không có giám sát (unsupervised learning) là một phương pháp của
ngành học máy nhằm tìm ra một mô hình mà phù hợp với các quan sát. Khác với
phương pháp học máy có giám sát, phương pháp học không có giám sát là dạng học
máy trong đó các ví dụ được cung cấp nhưng không có giá trị đầu ra hay giá trị đích
(hay nói cách khác, dữ liệu huấn luyện không được gán nhãn phân loại). Thay vì xác
định giá trị đích, thuật toán học máy dựa trên độ tương tự giữa các ví dụ để xếp chúng
thành những nhóm, mỗi nhóm gồm các ví dụ tương tự nhau. Hình thức học không
giám sát như vậy gọi là phân cụm (clustering). Ví dụ, chỉ bằng cách quan sát hoặc đo
chiều cao của mọi người, dần dần ta học được khái niệm “người cao” và “người thấp”,
và có thể xếp mọi người vào hai cụm tương ứng.

Ngoài phân cụm, một dạng học không giám sát phổ biến khác là phát hiện
luật kết hợp (association rule). Luật kết hợp có dạng P(A | B), cho thấy xác suất hai
tính chất A và B xuất hiện cùng với nhau. Ví dụ, qua phân tích dữ liệu mua hàng ở
siêu thị, ta có luật P(Bơ | Bánh mỳ) =80%, có nghĩa là 80% những người mua bánh
mỳ cũng mua bơ.
Các phương pháp học máy không có giám sát thông dụng:
-

One-class SVM;

1.3. Một số thuật toán học máy
Trong phần này, luận văn sẽ trình bày một số thuật toán học máy thuộc phương


7

pháp học máy có giám sát và phương pháp học máy không có giám sát trong đó đi
sâu vào trình bày các thuật toán học máy sẽ được ứng dụng trong phát hiện xâm nhập
trái phép ở chương 3 như: Support Vector Machine (SVM), K – Nearest Neighbor
(K-NN), và One-class SVM.

1.3.1. Thuật toán học máy có giám sát: Support Vector Machine
(SVM)
SVM là một công cụ mạnh và phổ biến để phân lớp dữ liệu lớn và nhiều chiều.
Máy vector hỗ trợ (SVM) được đề xuất bởi V.Vapnik và các đồng nghiệp vào những
năm 1970 ở Nga, và sau đó đã trở nên nổi tiếng trong những năm 90 của thế kỉ trước.

1.3.1.1. Tổng quan về SVM
Cho một tập dữ liệu huấn luyện biểu diễn trong không gian vector, trong đó
mỗi dữ liệu được biểu diễn là một điểm. Đặc điểm cơ bản của thuật toán SVM là tìm

ra một siêu phẳng quyết định tốt nhất để chia các điểm trong không gian thành hai
lớp riêng biệt được đánh số là +1 và -1. Chất lượng của siêu phẳng được quyết định
bởi khoảng cách (được gọi là biên – margin) của điểm dữ liệu gần nhất của mỗi lớp
đến mặt phẳng này. Khoảng cách biên càng lớn thì siêu phẳng quyết định càng tốt và
việc phân loại càng chính xác. Mục đích của SVM là tìm được khoảng cách biên lớn
nhất và lỗi tách sai là bé nhất.
Như vậy việc tìm ra biên cực đại là vấn đề cốt lõi quyết định đến chất lượng
phân loại của phương pháp SVM. Hình dưới mô tả ví dụ về biên. Một bài toán có thể
có rất nhiều biên.


8

Hình 1.1:Dữ liệu cần phân lớp

Hình 1.2: Minh họa biên của một cách phân lớp

Hình minh họa về biên cực đại của bài toán:


9

Hình 1.3: Minh họa biên cực đại của bài toán phân lớp

Cho tập mẫu {(x1,y1), (x2,y2), …, (xn,yn)} với xi  Rn thuộc vào hai lớp nhãn
yi  {- 1, +1} là nhãn lớp tương ứng của các xi với -1 là nhãn biểu thị lớp âm, +1 là
nhãn biểu thị lớp dương.
Ta có phương trình siêu phẳng chứa vector
.


trong không gian như sau:
(1.1)

+b=0

Trong đó w là vector pháp tuyến n chiều và b là giá trị ngưỡng.
Vector pháp tuyến w xác định chiều của siêu phẳng h(x), còn giá trị ngưỡng b
xác định khoảng cách giữa siêu phẳng và gốc.
Đặt ( ) =

( .

+ b) =

+1
1

.
.

+b> 0
+b<0

(1.2)

Bài toán đặt ra là làm thế nào để tìm ra mặt phẳng phân tách h( ) tối ưu, tức
là tìm w và b sao cho biên của mặt phẳng phân tách là cực đại.


10


Hình 1.4: Mặt phẳng phân tách theo các giá trị vector pháp tuyến và ngưỡng

Tuy nhiên trong thực tế thì ta có hai trường hợp để phân lớp là phân lớp tuyến
tính và phân lớp phi tuyến tính.

1.3.1.2. Phân lớp tuyến tính
Hình thức đơn giản của việc phân lớp là phân lớp nhị phân: chỉ gồm hai lớp
dương (+1) hoặc âm (-1). Phân lớp nhị phân sử dụng hàm giá trị thực h: X Rn  R
là hàm tuyến tính, tương ứng đầu ra y  {-1,1}. Có đầu vào x = (x1, x2, …, xn) được
gán nhãn y = (-1,+1).
Với

= { | = 1}
thì
= { | = 1}

(1.3)

( ) > 0, ∀ ∈
( ) < 0, ∀ ∈

Bởi h(x) là hàm tuyến tính nên
(1.4)

( ) =<

.

>+ =


+

Từ đó rút ra siêu phẳng phân chia thỏa mãn công thức sau:
(

+

≥1 ớ

= 1, 2, … . ,

(1.5)


11

Về mặt hình học, các phần tử của không gian đầu vào X sẽ thuộc một trong
hai phần được phân tách bởi siêu phẳng xác định bởi biểu thức <w.x> + b = 0 với
<w.x> là tích vô hướng.
Trong không gian hai chiều thì các điểm có phương trình <w,x> = 0 tương ứng
với một đường đi qua gốc tọa độ, còn trong không gian ba chiều thì nó là một mặt
phằng qua gốc tọa độ. Biến b dịch chuyển mặt phẳng đi một khoảng so với mặt phẳng
gốc tọa độ.
Như đã đề cập ở trên, vấn đề cốt lõi là làm sao để tìm được siêu phẳng h(x) tối
ưu, tức là tìm w và b để khoảng cách biên là cực đại.
Gọi m là độ rộng của biên. Ta phải tìm w và b sao cho m là lớn nhất.

Hình 1.5: Minh họa độ rộng của biên


Với mỗi mặt phẳng phân tách thì ta định nghĩa ra được hai đường nằm về hai
phía tách các điểm có dấu dương và dấu âm gọi là đưởng cộng và đường trừ. Đường
cộng là đường nằm về phía lớp có dấu dương, đường trừ nằm về phía dấu âm. Các
điểm nằm trên hai đường này được gọi là các vector hỗ trợ.


12

Hình 1.6: Minh họa đường viền của biên

Phương trình của đường cộng là wTx + b = 1
Phương trình của đường trừ là wTx + b = -1
Để tìm ra độ rộng m, ta đặt một điểm x1 nằm trên đường trừ, một điểm x2 nằm
trên đường cộng.
Gọi d+ là khoảng cách từ x2 đến đường viền, d- là khoảng cách từ x1 đến đường
viền.
Theo lý thuyết đại số vector, khoảng cách trực giao từ một điểm x đến siêu
phẳng (|

. + |
ớ ‖ ‖ à độ à
‖ ‖

‖ ‖=

.

=


+

+


+

Từ đó ta có:
=

|1|
1
=
à
‖ ‖ ‖ ‖

=

| 1|
1
=
‖ ‖ ‖ ‖

Suy ra:
=

+

=


2
‖ ‖

Như vậy siêu phẳng tối ưu có thể xác định bằng việc giải bài toán cực đại hóa
độ rộng đường viền ‖



tương đương với cực tiểu biểu thức:


13

‖ ‖ với ràng buộc

( .

(1.6)

+ )≥1

Để giải bài toán cực tiểu hóa trên, ta phải nhớ lại bài toán :
Cực tiểu hóa hàm f(x) với các điều kiện g(x)  0
Điều kiện cần để x0 là một lời giải là:
( ( )+

( ))

=0


với α là một hệ số nhân Lagrange

( )≤0

Nếu có nhiều ràng buộc đẳng thức gi(x) = 0 với i = 1…r thì cần một hệ số nhân
Lagrange cho mỗi ràng buộc:
( )+

( )

=0

với α là một hệ số nhân Lagrange

( )≤0

Hàm L được gọi là hàm Lagrange:
=

( )+

( )

Như vậy theo công thức (1.6) hàm L được định nghĩa:
=

(1.7)

1
‖ ‖

2

[ ( .

+ )

1]

Với (1, 2,…, n) là các hệ số nhân Lagrange.
Lý thuyết tối ưu chỉ ra rằng một lời giải tối ưu cho L phải thỏa mãn các điều
kiện Kuhn Tuker như sau:
(1.8)

=

=0
(1.9)

=
( .

=0
+ )

1≥0

(1.10)



×