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

Phát hiện bất thường của mạng theo cách tiếp cận học máy

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.93 MB, 76 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
-------------------

LÊ HỮU DŨNG

PHÁT HIỆN BẤT THƯỜNG CỦA MẠNG
THEO CÁCH TIẾP CẬN HỌC MÁY

LUẬN VĂN THẠC SĨ KHOA HỌC

Hà Nội – Năm 2014


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
-------------------

LÊ HỮU DŨNG

PHÁT HIỆN BẤT THƯỜNG CỦA MẠNG
THEO CÁCH TIẾP CẬN HỌC MÁY

Chuyên ngành: Cơ sở Toán học cho Tin học
Mã số:

60460110

LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. Lê Trọng Vĩnh



Hà Nội – Năm 2014


MỤC LỤC
Danh mục hình vẽ ............................................................................................. 3
Danh mục bảng biểu.......................................................................................... 4
LỜI CẢM ƠN ................................................................................................... 5
LỜI CAM ĐOAN ............................................................................................. 6
LỜI NÓI ĐẦU .................................................................................................. 7
CHƯƠNG 1: TỔNG QUAN ............................................................................. 9
1

Sự phát triển của mạng máy tính ................................................................ 9

2

Nguy cơ bị tấn công của mạng ................................................................. 11

3

Các phương pháp phát hiện xâm nhập mạng hiện có ............................... 13

3.1

Nhận diện dấu hiệu ................................................................................ 14

3.2

Phát hiện bất thường .............................................................................. 14


3.2.1

Bằng số liệu thống kê ......................................................................... 14

3.2.2

Theo cách tiếp cận học máy ............................................................... 15

CHƯƠNG 2: THUẬT TOÁN HỌC MÁY SUPPORT VECTOR MACHINE
(SVM).............................................................................................................. 16
2.1. Giới thiệu ............................................................................................ 16
2.2. Ý tưởng của SVM............................................................................... 16
2.3. Nội dung của SVM ............................................................................. 17
2.3.1. Cơ sở lý thuyết ................................................................................ 17
2.3.2. Bài toán phân 2 lớp với SVM.......................................................... 19
2.3.3. Phân nhiều lớp với SVM ................................................................. 23
2.3.4. Các bước chính của thuật toán SVM............................................... 24
2.3.5. Thuật toán SVM trong trường hợp dữ liệu được phân tách tuyến
tính. 25
2.3.6. Thuật toán SVM trong trường hợp dữ liệu không phân tách tuyến
tính trong không gian đặc trưng ................................................................... 36
2.3.6.1. Nhận xét ....................................................................................... 36

1


2.3.6.2. Dạng 1 của thuật toán SVM, bài toán C – SVC........................... 36
2.3.6.3. Dạng 2 của thuật toán SVM, bài toán v-SVC .............................. 41
2.3.7. SVM nhiều lớp ................................................................................ 43

2.3.8. Lựa chọn hàm nhân cho các ứng dụng ............................................ 43
2.3.9. Lựa chọn các tham số cho hàm nhân RBF ...................................... 44
2.4. Các thư viện, phần mềm hỗ trợ phân lớp dữ liệu theo thuật toán SVM
45
CHƯƠNG 3: MÔ HÌNH PHÁT HIỆN BẤT THƯỜNG MẠNG SỬ DỤNG
THUẬT TOÁN HỌC MÁY SVM.................................................................. 47
3.1. Thu thập dữ liệu .................................................................................. 48
3.2. Bóc tách Header các gói tin ................................................................ 52
3.3. Tạo dữ liệu đầu vào cho quá trình huấn luyện ................................... 61
3.4. Dựng mô hình phân lớp ...................................................................... 61
3.5. Kiểm tra chéo và điều chỉnh tham số ................................................. 61
3.6. Ghi nhận mô hình ............................................................................... 62
CHƯƠNG 4: THỰC NGHIỆM VÀ KẾT QUẢ ............................................. 63
4.1. Định dạng dữ liệu đầu vào.................................................................. 64
4.2. Huấn luyện, tạo mô hình .................................................................... 66
4.3. Kiểm tra mô hình và điều chỉnh tham số............................................ 69
CHƯƠNG 5: KẾT LUẬN .............................................................................. 71
5.1. Kết quả đạt được ................................................................................. 71
5.2. Hướng nghiên cứu tương lai ............................................................... 71
TÀI LIỆU THAM KHẢO ............................................................................... 73

2


Danh mục hình vẽ
Hình 2.1 Siêu phẳng f phân chia dữ liệu học thành 2 lớp + và – với khoảng
cách biên lớn nhất. Các điểm gần f nhất (điểm được khoanh tròn) là các
Support Vector. ............................................................................................... 17
Hình 2.2. Minh họa cho bài toán phân hai lớp ................................................ 19
Hình 2.3. Minh họa bài toán phân hai lớp với Thuật toán SVM .................... 22

Hình 2.4. Bài toán SVM trong trường hợp dữ liệu mẫu không phân tách tuyến
tính ................................................................................................................... 22
Hình 2.5. Minh họa về sự phân tách dữ liệu trong không gian đặc trưng ...... 25
Hình 2.7. Dữ liệu phân tách tuyến tính trong không gian đặc trưng qua phép
ánh xạ  .......................................................................................................... 28
Hình 3.1. Cấu trúc tổng thể mô hình phát hiện bất thường trong giai đoạn
huấn luyện ....................................................................................................... 47
Hình 3.2 Phát hiện gói tin bất thường trong thời gian thực ............................ 48
Hình 3.3: Cấu trúc gói tin [8] .......................................................................... 53
Hình 3.4: Quá trình thêm header cho dữ liệu truyền qua các tầng của mạng . 54
Hình 3.5: Thuật toán bóc tách header từ một gói tin ...................................... 60
Hình 3.6: Một phần tệp dữ liệu theo khuôn dạng đầu vào LibSVM .............. 61
Hình 4.1: Giao diện chương trình thực nghiệm .............................................. 63
Hình 4.2: Một phần nội dung tệp header của dữ liệu ngày thứ 2, tuần thứ 1
(xem ở dạng Hexa) .......................................................................................... 64
Hình 4.3: Tệp dữ liệu phục vụ huấn luyện ...................................................... 64
Hình 4.4: Giao diện chương trình khi tiến hành huấn luyện........................... 66
Hình 4.5: Giao diện chương trình khi đang chạy bước dự đoán (prediction)
với dữ liệu kiểm tra ......................................................................................... 69

3


Danh mục bảng biểu
Bảng 3.1: Các bộ dữ liệu năm 1999 của dự án DARPA intrusion detection
evaluation........................................................................................................ 49
Bảng 3.2: Bảng mô tả các kiểu tấn công đã được triển khai trong tuần 2 của
bộ dữ liệu năm 1999 trong dự án DARPA intrusion detection evaluation ... 49
Bảng 3.3: Ý nghĩa các thành phần trong một gói tin ...................................... 53
Bảng 3.4: IP Header ........................................................................................ 54

Bảng 3.5: TCP Header .................................................................................... 56
Bảng 3.6: Các đặc trưng dùng để phân lớp các gói tin ................................... 58
Bảng 4.1: Kết quả dự đoán trên tệp dữ liệu kiểm tra ...................................... 70

4


LỜI CẢM ƠN
Trước tiên, em xin được gửi lời cảm ơn chân thành nhất của mình tới
PGS. TS Lê Trọng Vĩnh - giảng viên khoa Toán - Cơ - Tin học, Trường Đại
học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội đã dành nhiều công sức
hướng dẫn em thực hiện luận văn này!
Em cũng xin chân thành cảm ơn các thầy cô trong khoa Toán – Cơ –
Tin học, trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội đã
nhiệt tình truyền đạt kiến thức, kinh nghiệm, phương pháp nghiên cứu và cả
sự say mê khoa học tới nhiều lứa học viên cao học – trong đó có em!
Với sự tận tình chỉ bảo của các thầy, các cô, em đã rất cố gắng để hoàn
thành luận văn này. Tuy nhiên, do em còn nhiều điểm hạn chế nên chắc hẳn
luận văn này vẫn còn tồn tại các thiếu sót. Em kính mong tiếp tục nhận được
những ý kiến góp ý, chỉ bảo của các thầy, các cô cũng như các bạn học viên
để em tiếp tục hoàn thiện chuyên môn của bản thân.
Em xin trân trọng cảm ơn!
Học viên

Lê Hữu Dũng

5


LỜI CAM ĐOAN

Tôi xin cam đoan luận văn là công trình nghiên cứu của bản thân. Các số liệu,
kết quả được trình bày trong luận văn này là trung thực và chưa từng được
công bố trong bất kỳ luận văn nào trước đây.
Học viên

Lê Hữu Dũng

6


LỜI NÓI ĐẦU

Các hoạt động kinh tế, xã hội của con người ngày càng sử dụng nhiều
đến máy tính và các thiết bị công nghệ. Cùng với điều này, nhu cầu sử dụng
mạng máy tính để trao đổi thông tin, chia sẻ tài nguyên cũng ngày càng tăng
cao. Bên cạnh đó, vấn đề đảm bảo cho sự an toàn của thông tin cũng như của
mạng máy tính ngày càng trở nên bức thiết. Để đảm bảo an toàn cho thông tin
và hoạt động của mạng máy tính thì cần triển khai nhiều giải pháp đồng bộ.
Trong đó, phát hiện sớm các bất thường của mạng được coi là một khâu quan
trọng giúp đảm bảo an toàn cho một mạng máy tính. Có nhiều cách hiện đang
được nghiên cứu, triển để phát hiện bất thường trong mạng như sử dụng
phương pháp nhận diện dấu hiệu, phương pháp thống kê và phương pháp sử
dụng các thuật toán học máy. Trong đó, các phương pháp học máy cho phép
đưa ra những kết quả phát hiện bất thường có độ chính xác cao và đặc biệt là
luôn có thể cải tiến để cho kết quả cao hơn.
Luận văn này với tên gọi “Phát hiện bất thường của mạng theo cách
tiếp cận học máy” tập trung tìm hiểu việc phát hiện các gói tin trong mạng là
bình thường hay bất thường bằng cách áp dụng thuật toán học máy để phân
lớp các gói tin.
Luận văn bao gồm 5 chương với nội dung như sau:

Chương 1: Tổng quan
Chương 2: Thuật toán học máy Support Vector Machines (SVM)
Chương 3: Mô hình phát hiện bất thường trong mạng sử dụng thuật toán học
máy SVM
Chương 4: Thực nghiệm và kết quả
7


Chương 5: Kết luận

8


CHƯƠNG 1: TỔNG QUAN

1

Sự phát triển của mạng máy tính

Với sự phát triển như vũ bão của các mạng máy tính trong kỉ nguyên thông
tin truyền thông, khoảng cách vật lý đã dần trở nên vô nghĩa. Chúng ta đang
được chứng kiến rất nhiều lợi ích mà mạng máy tính mang lại cho sự phát
triển của đời sống, công nghệ, kinh tế và xã hội.
Trong lĩnh vực thông tin, thương mại điện tử: email đã gần như thay thế hoàn
toàn thư truyền thống; Các dịch vụ viễn thông truyền thống cũng đang bị cạnh
tranh mạnh mẽ bởi các dịch vụ Over-The-Top (OTT) trên nền Internet; Báo
điện tử đang là đối thủ cạnh tranh trực tiếp, gây nên rất nhiều “sự ra đi” của
báo giấy; Các cửa hàng trực tuyến đang ngày càng phát triển, mang đến
những lợi ích to lớn cho cả người mua và người bán.
Trong lĩnh vực chính phủ điện tử: Hạ tầng mạng máy tính, công nghệ thông

tin – truyền thông phát triển cùng với khả năng tiếp cận các sản phẩm công
nghệ của người dân đã tạo ra những điều kiện thuận lợi để nhiều nước triển
khai chính phủ điện tử và thành công. Ngay ở nước ta, nhiều dịch vụ hành
chính công đã được triển khai trực tuyến, mang lại nhiều lợi ích cho người
dân như: tờ khai Hải quan điện tử, khai thuế trực tuyến, đăng ký cấp Hộ chiếu
trực tuyến tại Công an TP Hà Nội, …
Các dịch vụ trên nền “Đám mây”: Trong vài năm qua, Công nghệ thông tin
(IT) đã bắt đầu một mẫu hình mới - điện toán đám mây. Mặc dù điện toán
đám mây chỉ là một cách khác để cung cấp các tài nguyên máy tính, chứ
không phải là một công nghệ mới, nhưng nó đã châm ngòi một cuộc cách
mạng trong cách cung cấp thông tin và dịch vụ của các tổ chức. Điện toán
đám mây là một giải pháp toàn diện cung cấp công nghệ thông tin như một

9


dịch vụ. Nó là một giải pháp điện toán dựa trên Internet ở đó cung cấp tài
nguyên chia sẻ giống như dòng điện được phân phối trên lưới điện. Các máy
tính trong các đám mây được cấu hình để làm việc cùng nhau và các ứng
dụng khác nhau sử dụng sức mạnh điện toán tập hợp cứ như thể là chúng
đang chạy trên một hệ thống duy nhất. Những lợi ích mà điện toán đám mây
mang lại gồm:
- Chi phí giảm: Điện toán đám mây có thể làm giảm cả chi phí vốn lẫn
chi phí vận hành vì các tài nguyên chỉ được mua khi cần và chỉ phải trả
tiền khi sử dụng.
- Cách sử dụng nhân viên được tinh giản: Việc sử dụng điện toán đám
mây giải phóng đội ngũ nhân viên quý giá cho phép họ tập trung vào
việc cung cấp giá trị hơn là duy trì phần cứng và phần mềm.
- Khả năng mở rộng vững mạnh: Điện toán đám mây cho phép khả năng
điều chỉnh quy mô ngay lập tức hoặc tăng lên hoặc giảm xuống, bất cứ

lúc nào mà không cần giao kết dài hạn.
Chỉ đơn cử một tiện ích đối với người dùng cuối là có thể thực hiện công việc
với dữ liệu của mình mọi lúc, mọi nơi, mọi thiết bị, mọi nền tảng (mà chỉ cần
có kết nối mạng) là ta có thể hình dung ra những lợi ích to lớn khác đối với
mức độ tổ chức hoặc lớn hơn.
Xử lý nghiệp vụ theo hướng cộng tác: Với kết nối mạng và những thiết lập
chia sẻ thích hợp, những người dùng ở bất kì đâu, bất kì lúc nào có thể cùng
cộng tác để tạo ra những sản phẩm mà trước đây thường phải gặp trực tiếp
hoặc tiến hành tuần tự, mất rất nhiều thời gian. Đó chính là xử lý nghiệp vụ
theo hướng cộng tác.

10


2

Nguy cơ bị tấn công của mạng

Song song với những lợi ích mà mạng máy tính mang lại thì mạng máy tính
cũng là môi trường lí tưởng để kẻ xấu lợi dụng thực hiện những hành vi tấn
công đến thông tin trong máy tính hay mạng máy tính của người dùng.
Tấn công (attack), hay đột nhập (intrusion) lên một hệ thống là sự vi phạm
chính sách an toàn bảo mật của hệ thống đó. Mặc dù các vụ tấn công, đột
nhập ngày càng trở nên phức tạp, tinh vi nhưng chúng ta cũng có thể chia
chúng thành một số dạng tấn công và đột nhập thường gặp như:
- Các cuộc tấn công do 1 người dùng xâm nhập vào 1 hệ thống với các
quyền hạn lớn hơn là được phép bởi chính sách bảo mật hệ thống.
- Các cuộc tấn công từ chối người khác truy cập vào 1 số dịch vụ mà hệ
thống cung cấp.
- Hoặc là nỗ lực thăm dò 1 hệ thống để tìm kiếm lỗ hổng.

Sau đây là một vài ví dụ về rất nhiều cách mà kẻ tấn công có thể truy cập bất
hợp pháp hoặc ngăn cản người khác truy cập vào một mạng
Kĩ nghệ xã hội: kẻ tấn công có thể truy cập vào hệ thống bằng cách lừa một
người sử dụng cung cấp thông tin có thể sử dụng được để đột nhập vào hệ
thống. Ví dụ: kẻ tấn công có thể gọi cho một cá nhân với tư cách của một
người quản trị mạng lưới trên điện thoại mạo danh với nỗ lực thuyết phục cá
nhân tiết lộ thông tin bí mật (như mật khẩu, tên tập tin, các chính sách bảo
mật ). Hoặc kẻ tấn công có thể cung cấp một phần mềm cho người sử dụng hệ
thống dưới dạng phần mềm hay bản tin hấp dẫn trên mạng nhưng có chứa mã
độc hại để cung cấp những thông tin cần thiết hay mở cửa hậu (backdoor) cho
kẻ tấn công truy cập hệ thống.

11


Thực hiện lỗi: Những lỗi trong những chương trình đáng tin cậy có thể bị
khai thác bởi kẻ tấn công để lấy được cách truy cập trái phép đến 1 hệ thống
máy tính. Ví dụ như lỗi tràn bộ đệm hay xử lý sai các tập tin tạm thời.
Lạm dụng tính năng: Có những hành động hợp pháp người ta có thể thực
hiện bình thường nhưng khi đưa đến cực độ có thể dẫn đến lỗi của hệ thống.
Ví dụ khi mở hàng trăm kết nối Telnet để máy tính có thể điền vào bẳng tiến
trình của nó hoặc làm cho máy tính rơi vào trạng thái chờ đợi vô hạn hoặc
làm ngập lụt hệ thống bằng các email rác.
Cấu hình sai: kẻ tấn công có thể truy cập bởi một lỗi trong cấu hình của hệ
thống. Ví dụ: cấu hình mặc định của một số hệ thống bao gồm tài khoản
“khách” (guest) hay “quản trị viên” (Administrator) mà không được bảo vệ
bởi mật khẩu đủ mạnh.
Giả mạo: Trong một số trường hợp, kẻ tấn công có thể đánh lừa 1 hệ thống
cho phép truy cập bằng cách giả mạo một hệ thống khác. Một ví dụ là về việc
gửi 1 gói tin TCP có 1 địa chỉ nguồn được cài đặt làm như gói tin đó xuất hiện

đến từ nguồn đáng tin cậy.
Những dạng tấn công gây ra sự bất thường cho mạng (như làm tê liệt, khai
thác lỗ hổng, sử dụng vượt quyền hạn, ….) về cơ bản đều dựa trên những cơ
chế bình thường của mạng nhưng lại phục vụ cho mục đích bất thường.
Ví dụ như kiểu tấn công Ping Of Death (PoD): lệnh Ping được thiết kế để
kiểm tra tính liên thông giữa 2 nút mạng bằng cách gửi một gói tin tới địa chỉ
của một nút mạng và chờ tín hiệu phản hồi. Tuy nhiên, bằng cách sử dụng
thêm tham số [-l size] và [-n count], kẻ tấn công có thể lạm dụng để làm ngập
lụt địa chỉ đích bằng cách thực hiện ping bằng gói tin với dung lượng (size)
lớn và gửi với số lượng (count) lớn. Như vậy, tại địa chỉ đích, nếu chỉ nhận
một gói tin ping từ một địa chỉ nguồn thì có thể coi là bình thường nhưng nếu
12


nhận được một số lượng lớn, các gói tin ping có dung lượng lớn, từ cùng một
hoặc một số địa chỉ nguồn thì có thể coi đó là điều bất thường. Ta có thể kiểm
tra điều này bằng cách sử dụng chương trình có tính năng đọc thông tin từ
header của các gói tin và đưa ra các phản ứng thích hợp.
Các dấu hiệu cụ thể của PoD, Denies Of Services (DoS) cũng như các kiểu
tấn công phổ biến khác đã được tác giả Kristopher Kendall trình bày trong
nghiên cứu có tên “A Database of Computer Attacks for the Evaluation of
Intrusion Detection Systems” [5]. Bằng cách đánh giá các thông tin trong
header của các gói tin truyền trong mạng, ta có thể phát hiện được rất nhiều
kiểu tấn công mạng mà K. Kendall đã nêu trong nghiên cứu của mình. Vấn đề
là cần phải thực hiện bằng một phương pháp đủ hiệu quả để có thể triển khai
trong thời gian thực.
Mỗi hệ thống mạng như vậy phải đương đầu với rất nhiều nguy cơ. Chỉ một
sự xâm nhập của kẻ tấn công từ một vị trí trong mạng cũng có thể gây thiệt
hại nghiêm trọng cho cả phạm vi rộng lớn. An ninh mạng trở thành một vấn
đề quan trọng và đặc biệt trong đó, người ta cần phát triển các cơ chế bảo vệ

chống lại sự xâm nhập.

3

Các phương pháp phát hiện xâm nhập mạng hiện có

Một hệ thống phát hiện xâm nhập sẽ thu thập thông tin từ một máy tính hoặc
mạng máy tính và cố gắng phát hiện kẻ xâm nhập hay lạm dụng hệ thống.
Thông thường, một hệ thống phát hiện xâm nhập sẽ cảnh báo con người về
truy cập khả nghi và không thực hiện gì thêm nhưng một số hệ thống mới như
Real Secure 2.5 hay Mc Afee Virus Scan Enterprise Edition có thể chủ động
ngăn chặn kẻ xâm nhập ngay khi phát hiện ra
Các phương pháp xâm nhập hiện có được xếp vào hai loại chính: nhận diện
dấu hiệu và phát hiện bất thường.
13


3.1

Nhận diện dấu hiệu

Trong kĩ thuật phát hiện bất thường dựa trên nhận diện dấu hiệu, những đặc
điểm bình thường của hệ thống được định nghĩa trước. Thêm vào đó, những
đặc điểm của những kiểu tấn công phổ biến cũng được ghi nhận để phục vụ
mục đích so sánh, phát hiện bất thường sau này. Sự bất thường có thể do một
hoạt động đã được định nghĩa là bình thường nhưng lại diễn ra ở thời điểm
không bình thường ví dụ như sự truy cập của một người dùng vào hệ thống
mạng của một tổ chức vào 3 giờ sáng – giờ mà ở tổ chức đó không có ai làm
việc thì có thể coi là một dấu hiệu bất thường. Hoặc cũng có thể là sự gia tăng
của dữ liệu bình thường trên hệ thống ví dụ như sự gia tăng kích thước của

tệp tin ghi nhật kí (log) của hệ thống khác với dung lượng đã ghi nhận trong
cùng thời điểm ở những khoảng thời gian khác có thể là căn cứ để nghi ngờ
hệ thống đang bị làm cho quá tải hay những gói tin được gửi liên tiếp từ cùng
một địa chỉ nguồn tới nhiều cổng khác nhau của một hệ thống có thể là căn cứ
để nghi ngờ hệ thống đang bị tấn công theo kiểu dò cổng (Scan port).
Kĩ thuật phát hiện bất thường dựa trên dấu hiệu khá hiệu quả với những kiểu
tấn công đã biết hay với những chính sách kiểm soát truy cập đã biết nhưng
một hạn chế rõ ràng của kỹ thuật này là không thể phát hiện các cuộc tấn công
mới với những dấu hiệu chưa được biết.

3.2

Phát hiện bất thường

3.2.1 Bằng số liệu thống kê
Tư tưởng của phương pháp này là thực hiện thu thập, lưu trữ và thống kê cả
dữ liệu bình thường và bất thường. Sau đó, ta định kì tính toán ngưỡng bất
thường, nếu vượt ngưỡng thì đưa ra cảnh báo.

14


Ưu điểm của phương pháp này là không cần dấu hiệu biết trước của một dạng
tấn công mới mà có thể chỉ cần dựa trên số lượng dữ liệu bất thường thu thập
được vượt quá một ngưỡng nào đó để đưa ra cảnh báo. Tuy vậy, ngưỡng bình
thường/bất thường là khó xác định.
3.2.2 Theo cách tiếp cận học máy
Phương pháp này ban đầu dựa vào những dữ liệu huấn luyện đã được gán
nhãn là bình thường/bất thường để tạo ra mô hình phân lớp dữ liệu bằng các
phương pháp học máy. Sau đó, với những dữ liệu mới, ta sẽ kiểm tra xem

chúng phù hợp với lớp bình thường hay bất thường để đưa ra cảnh báo.
Phương pháp này có những ưu điểm như:
• Có khả năng thay đổi chiến lược để đáp ứng được nhiều trường hợp
khác nhau (cả đã biết và chưa biết)
• Hiệu quả cao hơn do luôn có thể sử dụng các dữ liệu mới để bổ sung
vào tập dữ liệu huấn luyện nhằm cải thiện mô hình phân lớp ban đầu.
Bên cạnh đó, phương pháp này cũng còn một số nhược điểm như
• Chất lượng của mô hình phân lớp phụ thuộc tập dữ liệu huấn luyện, dữ
liệu kiểm tra và các đặc trưng được lựa chọn
• Tỉ lệ báo động giả (sai số) cao với phương pháp học máy phi giám sát.
Luận văn này lựa chọn nội dung Phát hiện bất thường trong mạng theo cách
tiếp cận học máy làm đề tài nghiên cứu. Chương tiếp theo, chúng ta sẽ tìm
hiểu về thuật toán Support Vector Machine (SVM) – một thuật toán học máy
có nhiều ứng dụng rộng rãi hiện nay.

15


CHƯƠNG 2: THUẬT TOÁN HỌC MÁY
SUPPORT VECTOR MACHINE (SVM)
2.1. Giới thiệu
Vấn đề phân lớp (Classification) và dự đoán (Prediction) là hai bài toán
cơ bản và có rất nhiều ứng dụng trong tất cả các lĩnh vực. Có nhiều phương
pháp đã được nghiên cứu và ứng dụng cho các bài toán dạng này như: mạng
rron nhân tạo, phương pháp học thống kê,… Trong chương này, chúng ta sẽ
đi sâu nghiên cứu thuật toán Support Vector Machines (SVM), một thuật toán
học máy rất hiệu quả hiện nay.
Thuật toán SVM được coi là công cụ mạnh cho những bài toán phân
lớp phi tuyến được các tác giả Vapnik và Chervonenkis phát triển mạnh mẽ
năm 1995. Phương pháp này thực hiện phân lớp dựa trên nguyên lý Cực tiểu

hóa Rủi ro có Cấu trúc SRM (Structural Risk Minimization), được xem là một
trong các phương pháp phân lớp tinh vi nhất cho tới nay.
2.2. Ý tưởng của SVM
Cho trước một tập huấn luyện, được biểu diễn trong không gian vector,
trong đó mỗi tài liệu là một điểm, thuật toán này tìm ra một siêu phẳng f
quyết định tốt nhất có thể chia các điểm trên 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 (gọi là biên) của điểm dữ liệu gần nhất của mỗi
lớp đến mặt phẳng này. Khi đó, khoảng cách biên càng lớn thì mặt phẳng
quyết định càng tốt, đồng thời việc phân loại càng chính xác.
Mục đích của thuật toán SVM là tìm được khoảng cách biên lớn nhất,
điều này được minh họa trong hình 2.1 dưới đây.

16


Hình 2.1 Siêu phẳng f phân chia dữ liệu học thành 2 lớp + và – với khoảng
cách biên lớn nhất. Các điểm gần f nhất (điểm được khoanh tròn) là các
Support Vector.
2.3. Nội dung của SVM
2.3.1. Cơ sở lý thuyết
SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán này là
tìm được 1 không gian F và siêu phẳng quyết định f trên F sao cho sai số phân
loại là thấp nhất.
Cho tập mẫu ( x1 , y1 ), ( x2 , y2 ), ..., ( xt , yt ) với xi R n thuộc vào hai
lớp nhãn: yi  {1, 1} là nhãn lớp tương ứng của các

( 1 biểu thị lớp I, 1

biểu thị lớp II).

Ta có, phương trình siêu phẳng chứa véc tơ xl trong không gian:
xl . w  b  0


1, xl . w  b  0
Đặt f ( xl )  sign( xl . w  b)  

1, xl . w  b  0

17


Như vậy, f ( xl ) biểu diễn sự phân lớp của xl vào hai lớp như đã nêu.
Ta nói yi   1 nếu xl  lớp I và yi   1 nếu xl  lớp II. Khi đó để có siêu
phẳng f ta sẽ phải giải bài toán sau:
Tìm min w với w thỏa mãn điều kiện sau:





yi sign( xl .w  b)  1,  i  1, n
Bài toán SVM có thể giải bằng kỹ thuật sử dụng nhân tử Lagrange để
biến đổi về thành dạng đẳng thức. Một đặc điểm thú vị của SVM là mặt
phẳng quyết định chỉ phụ thuộc vào các Support Vector và nó có khoảng cách
đến mặt phẳng quyết định là

1

. Cho dù các điểm khác bị xóa đi thì thuật


w

toán vẫn cho kết quả giống như ban đầu. Đây chính là điểm nổi bật của thuật
toán SVM so với các phương pháp khác vì tất cả các dữ liệu trong tập huấn
luyện đều được dùng để tối ưu hóa kết quả.
Tóm lại, trong trường hợp nhị phân phân tách tuyến tính, việc phân lớp
được thực hiện qua hàm quyết định f ( x)  sign  w.x  b  , hàm này thu
được bằng việc thay đổi véc tơ chuẩn w, đây là véc tơ để cực đại hóa miền
đặc trưng y 

1
w

2

Việc mở rộng SVM để phân đa lớp hiện nay vẫn đang được đầu tư
nghiên cứu. Có một phương pháp tiếp cận để giải quyết vấn đề này là xây
dựng và kết hợp nhiều bộ phân lớp nhị phân SVM (Chẳng hạn: trong quá
trình huấn luyện với SVM, bài toán phân m lớp có thể được biến đổi thành bài
toán 2 * m lớp, khi đó trong mỗi hai lớp, hàm quyết định sẽ được xác định
cho khả năng tổng quát hóa tối đa).
18


2.3.2. Bài toán phân 2 lớp với SVM
Bài toán đặt ra là: Xác định hàm phân lớp để phân lớp các mẫu trong
tương lai, nghĩa là với một mẫu dữ liệu mới xt thì cần phải xác định xt được
phân vào lớp +1 hay lớp 1 ?
Nếu dữ liệu phân chia tuyến tính, hàm quyết định được xác định:

f ( x)  wt x  b

(2.1)

với w là véc tơ n chiều và b là véc tơ vô hướng.
Siêu phẳng phân tách thỏa mãn:
yi (w t xi  b)  1 với i  1, 2, ..., l

(2.2)

Siêu phẳng phân chia tối ưu là siêu phẳng chia hai lớp với với khoảng
cách giữa hai lớp là lớn nhất.

Hình 2.2. Minh họa cho bài toán phân hai lớp
Siêu phẳng tối ưu có thể xác định được bằng việc giải bài toán tối ưu
bậc hai sau:
Cực tiểu

1 2
w
2

(2.3)

19


với mọi ràng buộc yi (wxi  b)  1
Nếu số thuộc tính của các mẫu dữ liệu là lớn, chúng ta có thể đơn giản
hóa phép tính bằng cách chuyển bài toán với điều kiện Kuhn-Tucker tương

đương với phương pháp Lagrange cho (2.3) được mô tả như sau:
L( w, b,  ) 

1
( w, w)   i [ yi ( wi .xi  b)  1]
2

(2.4)

với   (1 , ...,  M ) là nhân tử Lagrange.
Phương trình kép trên trở thành: cực đại L(w, b, α)

(2.5)

với ràng buộc i  0, i  1, ..., M
Vi phân từng phần của (2.4) lần lượt với w và b ta được:
M
L
( w, b,  )  w   yi i xi  0
w
i 1
M
L
( w, b,  )  w   yi i  0
b
i 1

(2.6)
Từ (2.4), (2.5), và (2.6) ta có bài toán tối ưu sau:
M


1 M
Cực đại W(α)   i   i  k yi yk xi xk
2 i ,k  0
i 1

Với ràng buộc

M

 yii  0,
i 1

(2.7)

i  0, i  1,...,M

Số lượng biến trong bài toán tối ưu trên chính là số mẫu trong tập dữ
liệu huấn luyện.
20


Giả sử ta tìm được cặp nghiệm tối ưu là

,

. Theo lý thuyết Karush-

Tucker, điều kiện xảy ra đẳng thức (2.2) tương ứng với mỗi cặp huấn luyện
vào – ra ( ,


) khi và chỉ khi  i* khác 0. Trong trường hợp này, mẫu huấn

luyện chính là một support vector. Giải (2.7) với   (1, ...,  M ) ta có thể
xác định được các support vector của lớp I và lớp II. Do siêu phẳng tối ưu
nằm trong số các support vector vừa tìm được với lớp I và lớp II, nên
được tính bởi:
1 M
b   yk k* ( s1 xk  s2 xk )
2 k 0
*

Với s1 và s2 lần lượt là các support vector của lớp I và lớp II.
Trong trường hợp các mẫu huấn luyện không thể phân chia tuyến tính,
chúng ta đưa thêm một biến phụ không âm  i vào (2.2), cộng thêm vào hàm
(2.5) và tổng của các biến phụ được nhân với tham số C. Điều này tương ứng
với việc cộng biên trên của C và  . Trong cả hai trường hợp trên, hàm ra
quyết định là như nhau và được tính bằng:
f ( x) 

M

  k* yi xi x  b*

i 1

Với mỗi một mẫu dữ liệu ban đầu, nó sẽ được phân lớp như sau:
x
Thuật toán SVM cho bài toán phân lớp được mô tả thông qua ví dụ sau:
Xét trong không gian 2 chiều (n = 2), các điểm của tập mẫu được cho như

hình 2.3:

21


Hình 2.3. Minh họa bài toán phân hai lớp với Thuật toán SVM
Để xác định hàm phân lớp dựa trên thuật toán SVM, ta sẽ tiến hành
tìm hai siêu phẳng song song (tương ứng với 2 đường nét đứt trong hình 2.3
ở trên) sao cho khoảng cách y giữa chúng là lớn nhất có thể để phân tách
hai lớp này ra làm hai phía. Hàm phân tách tương ứng với phương trình siêu
phẳng nằm giữa hai siêu phẳng tìm được (đường nét đậm trên hình 2.3).
Hình 2.3 thể hiện trường hợp có thể tìm được siêu phẳng phân tách, dữ
liệu trong trường hợp này gọi là phân tách tuyến tính. Bây giờ ta xét trường
hợp dữ liệu không phân tách tuyến tính như trong hình 2.4 như sau:

Hình 2.4. Bài toán SVM trong trường hợp dữ liệu mẫu không phân tách tuyến
tính
22


Ta thấy rằng trong hình 2.4 ở trên có những mẫu mặc dù có nhãn +1,
nhưng lại bị “rơi” vào phía các mẫu có nhãn 1 và ngược lại.
Trong trường hợp này, thuật toán SVM sẽ sử dụng một phép ánh xạ dữ
liệu mẫu vào không gian mới có số chiều lớn hơn sao cho tập mẫu này sẽ là
phân tách tuyến tính trong không gian đó (ta gọi không gian mới này là
không gian đặc trưng). Trong không gian đặc trưng này, ta vẫn tiến hành tìm
khoảng cách cực đại giữa hai siêu phẳng song song để phân tách dữ liệu mẫu.
Các điểm mà nằm trên hai siêu phẳng phân tách được gọi là các
Support Vector. Các điểm này sẽ quyết định đến hàm phân tách dữ liệu.
Trong thực tế, để thuận tiện cho quá trình tính toán, dữ liệu mẫu sẽ

được ánh xạ vào không gian đặc trưng bằng cách sử dụng các hàm nhân, cách
làm này sẽ làm tăng tốc độ tính toán và đảm bảo rằng dữ liệu sẽ phân tách
tuyến tính.
Tùy vào từng trường hợp cụ thể của dữ liệu mẫu ta có các biến thể của
SVM như C-SVC và bài toán SVM nhiều lớp.
2.3.3. Phân nhiều lớp với SVM
Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không gian
dữ liệu thành 2 phần và quá trình này lại lặp lại nhiều lần. Khi đó hàm quyết
định phân dữ liệu vào lớp thứ I của tập n 2-lớp sẽ là:

fi (x)  wit x  bi
Những phân tử x là support vector sẽ thỏa mãn điều kiện:
(x)

23


×