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

PHÂN LOẠI LUỒNG DỮ LIỆU SỬ DỤNG MẠNG NƠ-RON LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

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 (3.33 MB, 80 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------

TRẦN VĂN LÍC

PHÂN LOẠI LUỒNG DỮ LIỆU
SỬ DỤNG MẠNG NƠ-RON

LUẬN VĂN THẠC SĨ
KỸ THUẬT ĐIỆN TỬ

Đà Nẵng – Năm 2019


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------

TRẦN VĂN LÍC

PHÂN LOẠI LUỒNG DỮ LIỆU
SỬ DỤNG MẠNG NƠ-RON

Chuyên ngành
Mã số

:
:

KỸ THUẬT ĐIỆN TỬ


8520203

LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. PHAN TRẦN ĐĂNG KHOA

Đà Nẵng – Năm 2019


i
LỜI CAM ĐOAN
Tơi cam đoan đây là cơng trình 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 ký và ghi rõ họ tên

Trần Văn Líc


ii

LỜI CẢM ƠN
Để hồn thành luận văn này, tơi xin gửi lời cảm ơn đến TS. Phan Trần Đăng
Khoa đã tận tình hướng dẫn trong suốt quá trình thực hiện luận án.
Tôi xin chân thành cảm ơn quý Thầy, Cô trong khoa Điện tử – Viễn thông, Đại
Học Bách Khoa – Đại học Đà Nẵng đã tận tình truyền đạt kiến thức trong suốt thời
gian học.
Tôi cũng gửi lời cảm ơn tới hãng NVIDIA đã gửi tặng GPU Titan V cho nhóm
CIVIC và phục vụ nghiên cứu trong luận án này, giúp cho ra kết quả một cách nhanh

chóng.


iii

MỤC LỤC
LỜI CAM ĐOAN .......................................................................................................i
LỜI CẢM ƠN ........................................................................................................... ii
TÓM TẮT LUẬN VĂN ............................................................................................ v
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ...........................................vi
DANH MỤC CÁC BẢNG ..................................................................................... vii
DANH MỤC CÁC HÌNH...................................................................................... viii
MỞ ĐẦU .................................................................................................................10
CHƯƠNG 1 .............................................................................................................12
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI ............................................................... 12
1.1 Giới thiệu .......................................................................................................12
1.2 Các nghiên cứu liên quan...............................................................................14
1.3 Mục tiêu nghiên cứu ......................................................................................16
CHƯƠNG 2 .............................................................................................................17
LÝ THUYẾT VỀ MẠNG NƠ-RON VÀ LUỒNG DỮ LIỆU MẠNG ...................17
2.1 Luồng dữ liệu mạng .......................................................................................17
2.2 Mạng nơ-ron ..................................................................................................18
Kiến trúc mạng Nơ-ron ...........................................................................18
Thuật toán lan truyền ngược ...................................................................21
Hàm softmax và cross-entropy ............................................................... 23
Overfitting ............................................................................................... 24
2.3 Kết luận chương ............................................................................................. 28
CHƯƠNG 3 .............................................................................................................29
MÔ HÌNH PHÂN LOẠI LUỒNG DỮ LIỆU SỬ DỤNG MẠNG NƠ-RON.........29



iv
3.1 Cơ sở dữ liệu ..................................................................................................29
3.2 Xử lý tập dữ liệu ............................................................................................ 32
Phân tích cơ sở dữ liệu ............................................................................32
Chuẩn hóa thuộc tính định danh ............................................................. 33
Chuẩn hóa dữ liệu đầu vào (kích thước) .................................................34
Phân bố cơ sở dữ liệu ..............................................................................35
Giảm số chiều không gian đặc trưng ......................................................36
Gia tăng cơ sở dữ liệu .............................................................................38
3.3 Cấu hình mạng nơ-ron ...................................................................................39
3.4 Kết luận chương ............................................................................................. 40
CHƯƠNG 4 .............................................................................................................41
KẾT QUẢ MƠ PHỊNG VÀ ĐÁNH GIÁ .............................................................. 41
4.1 Điều kiện tiến hành mô phỏng .......................................................................41
4.2 Tiêu chí đánh giá............................................................................................ 41
4.3 Đánh giá các kiến trúc mạng nơ-ron .............................................................. 41
4.4 Đánh giá ảnh hưởng của số lượng đặc trưng .................................................43
4.5 Đánh giá ảnh hưởng của việc gia tăng dữ liệu...............................................49
4.6 Đánh giá độ ổn định của mơ hình theo thời gian ...........................................52
4.7 Kết luận chương ............................................................................................. 54
KẾT LUẬN VÀ KIẾN NGHỊ .................................................................................55
TÀI LIỆU THAM KHẢO .......................................................................................56
PHỤ LỤC ................................................................................................................58


v
TÓM TẮT LUẬN VĂN

PHÂN LOẠI LUỒNG DỮ LIỆU SỬ DỤNG MẠNG NƠ-RON

Học viên: Trần Văn Líc Chuyên ngành: Kỹ thuật điện tử
Mã số: 8520203 Khóa: K35.KĐT, Trường Đại học Bách khoa - ĐHĐN
Tóm tắt – Với sự phát triển của hạ tầng mạng internet một cách nhanh chóng,
trong những năm gần đây tầm quan trọng của việc phân loại các luồng dữ liệu
mạng nhằm nâng cao về chất lượng cũng như bảo mật cho hệ thống mạng ngày
càng được chú ý tới. Trong đó, các nghiên cứu về phương pháp để phân loại luồng
dữ liệu mạng cũng đã tăng lên và ngày càng được cải thiện giúp cho hoạt động của
hệ thống mạng có thể được dự đốn với độ chính xác cao và nhận diện hành vi
người dùng tốt hơn. Trong đó phương pháp sử dụng các cơng cụ trong học máy
cũng đã được nghiên cứu và phát triển trong lĩnh vực này và đã đạt được những
kết quả đáng chú ý. Trong nghiên cứu này, chúng tôi sử dụng mơ hình học máy, cụ
thể là sử dụng mạng nơ-ron để phát triển một mơ hình có thể đạt được độ chính
xác cao trong việc phân loại luồng dữ liệu mạng, các phương pháp xử lý dữ liệu
cũng được áp dụng để tối ưu thời gian thực hiện và tài nguyên cho hệ thống. Ngoài
ra, các phương pháp khác sử dụng để phân loại luồng dữ liệu mạng cũng được đưa
vào cùng với với mơ hình trong nghiên cứu của chúng tơi để có thể so sánh và
đánh giá.
Từ khóa – Luồng dữ liệu mạng; học máy; mạng nơ-ron; QoS; tập dữ liệu mạng
TRAFFIC CLASSIFICATION USING NEURAL NETWORK
Abstract – Based on the rapid development of the internet infrastructure, in recent
years the importance of network traffic classification have been improved the quality
and security of the network system and has been paid more attention. Since then,
studies on methods to classify network traffic have also increased and improved,
making network operation predictable with high accuracy and identifying human
behavior. In which using machine learning tools has been researched and developed
in this field and has achieved remarkable results. In this research, we use machine
learning models, namely using neural networks to develop a model that can achieve
high accuracy in the classification of network flows, data processing methods is also
applied to optimize execution time and resources for the system. In addition, other
methods used to classify network flows are also included with the model in our study

to be comparable and evaluated.
Key words – traffic flow; machine learning; neural network; QoS; network dataset


vi

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

A
ACK

Acknowledge
I

ICMP

Internet Control Message Protocol

IANA

International Assigned Number Authority
G

GPU

Graphics Processing Unit
H

HTTP


Hypertext Transfer Protocol
N

NCA

Neighborhood Component Analysis
P

P2P

Peer-to-peer network

PCA

Principal Component Analysis
S

SFS

Sequential feature selection

SYN

Synchronous
Q

QoS

Quality of Service
U


UDP

User Datagram Protocol
T

TCP

Transmission Control Protocol
V

VLAN

Virtual Local Area Network


vii

DANH MỤC CÁC BẢNG
Bảng 2.1 Các dạng hàm kích hoạt ...........................................................................20
Bảng 3.1 Thống kê của mỗi tập dữ liệu ...................................................................29
Bảng 3.2 Các nhóm trong phân loại luồng dữ liệu mạng ........................................31
Bảng 3.3 Thống kê tần số xuất hiện của các nhóm .................................................32
Bảng 4.1 Bảng so sánh ảnh hưởng của số lượng đặc trưng .....................................48
Bảng 4.2 Kết quả cho cho tập dữ liệu thu thập từ cùng máy chủ sau 12 tháng .......53


viii

DANH MỤC CÁC HÌNH

Hình 2.1 Cấu trúc một gói tin TCP ..........................................................................17
Hình 2.2 Một mơ hình mạng nơ-ron với hai lớp ẩn .................................................18
Hình 2.3 Các ký hiệu sử dụng trong mạng nơ-ron ..................................................19
Hình 2.4 Mơ phỏng cách tính thuật tốn lan truyền ngược .....................................23
Hình 2.5 Mơ hình Softmax Regression dưới dạng mạng nơ-ron ............................ 24
Hình 2.6 Lựa chọn mơ hình dựa trên validation ......................................................25
Hình 2.7 Đồ thị thể hiện phương pháp Early Stopping ...........................................27
Hình 3.1 Giá trị của các đặc trưng từ một mẫu........................................................35
Hình 3.2 Ví dụ về một cấu trúc mạng nơ-ron được sử dụng ...................................40
Hình 4.1 Sự thay đổi của hàm mất mát với các tập huấn luyện, kiểm thử và
validation ..................................................................................................................42
Hình 4.2 Sự phụ thuộc của kết quả phân loại vào số lượng nơ-ron lớp ẩn và hàm
kích hoạt ...................................................................................................................43
Hình 4.3 Kết quả thực hiện cho việc chọn ra Top 10 đặc trưng .............................. 44
Hình 4.4 Kết quả thực hiện cho việc chọn ra Top 20 đặc trưng .............................. 45
Hình 4.5 Kết quả thực hiện cho việc chọn ra Top 30 đặc trưng .............................. 45
Hình 4.6 Kết quả thực hiện cho việc chọn ra Top 40 đặc trưng .............................. 46
Hình 4.7 Kết quả thực hiện cho việc chọn ra Top 50 đặc trưng .............................. 46
Hình 4.8 Kết quả thực hiện với tất cả đặc trưng ......................................................47
Hình 4.9 Kết quả cho việc sử dụng PCA chọn ra nhóm 50 đặc trưng.....................47
Hình 4.10 Confusion matrix của tập huấn luyện a) trước và b) sau khi gia tăng dữ
liệu ............................................................................................................................ 51
Hình 4.11 Confusion matrix của tập kiểm thử a) trước và b) sau khi gia tăng dữ
liệu ............................................................................................................................ 52


ix
Hình phụ lục B.1. Hình ảnh các bước thực hiện PCA .............................................69



10

MỞ ĐẦU
1. Tính cấp thiết của đề tài
Trong thời đại bùng nổ về công nghệ Internet of Things và số lượng các thiết bị
mạng ngày càng tăng như hiện nay, việc nhận dạng được luồng dữ liệu trong quản lý
hệ thống mạng là vấn đề quan trọng và cần được quan tâm đặc biệt trong nâng cao chất
lượng dịch vụ mạng QoS (Quality of Service) và trong lĩnh vực an ninh mạng.
Phân loại luồng dữ liệu mạng (Network traffic classification) là việc nhận dạng
các loại ứng dụng và giao thức mạng khác nhau tồn tại trong hệ thống mạng. Với chức
năng giám sát, khám phá, điều khiển và tối ưu hệ thống mạng, mục tiêu chung của
phân loại luồng dữ liệu mạng là cải thiện hiệu năng hoạt động mạng. Khi các gói được
phân loại sẽ giúp cho bộ định tuyến (router) tính tốn chính sách (policy) dịch vụ thích
hợp. Điều này cũng cho phép chúng ta dự đoán tốt hơn về luồng dữ liệu mạng trong
tương lai, phát hiện và ngăn chặn các luồng dữ liệu mạng bất thường nhằm tăng bảo
mật dữ liệu cá nhân. Ngoài ra, dựa trên sự phân loại này, các chính sách dịch vụ có thể
được áp dụng như với VoIP, dịch vụ giải trí trực truyến sẽ được cam kết về chất lượng.
Trong những năm gần đây, việc giải quyết vấn đề phân loại luồng dữ liệu mạng
sử dụng các mơ hình học máy thu hút được sự quan tâm nghiên cứu. Dựa trên các
thuộc tính của gói tin như tần suất byte (byte frequencies), kích thước gói tin (packet
sizes), khoảng thời gian gói tin đến (packet inter-arrival time),… và các mơ hình học
máy. Phương pháp này với ưu điểm có độ chính xác cao và xử lý nhanh hơn so với
phương pháp phân loại nêu trên vì khơng đào sâu tới phần nội dung (content) của gói
dữ liệu mà chỉ sử dụng các packet header để phân tích.
Dựa trên tính cấp thiết của bài toán phân loại luồng dữ liệu và các phân tích nêu
trên. tơi chọn đề tài “PHÂN LOẠI LUỒNG DỮ LIỆU SỬ DỤNG MẠNG NƠ-RON”
để có thể tối ưu được việc phân loại luồng dữ liệu mạng với độ chính xác cao và thời
gian xử lý nhanh.
2. Mục tiêu nghiên cứu
Nghiên cứu thuật toán phân loại luồng dữ liệu sử dụng mạng nơ-ron nhằm nâng

cao độ chính xác và tốc độ xử lý.
3. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- Thuật toán phân loại luồng dữ liệu mạng Internet
Phạm vi nghiên cứu
- Mạng máy tinh
- Học máy
4. Phương pháp nghiên cứu
- Nghiên cứu lý thuyết:


11
+ Tìm hiểu và phân tích các tài liệu chuẩn về phân loại luồng dữ liệu mạng.
+ Nghiên cứu kiến trúc mạng nơ-ron, đặc biệt là các thành phần có liên quan
như tập dữ liệu, các thuộc tính cho quá trình phân loại luồng dữ liệu mạng.
- Nghiên cứu mơ phỏng:
+ Sử dụng ngơn ngữ lập trình Python để mơ tả các phương pháp, thuật toán.
+ Chạy thử nghiệm với các trường hợp dựa trên cơ sở dữ liệu và đánh giá kết
quả qua việc tối ưu độ chính xác trong phân loại và thời gian thực thi.
5. Bố cục luận văn
Luận văn được chia thành 4 chương:
CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
CHƯƠNG 2 LÝ THUYẾT VỀ MẠNG NƠ-RON VÀ LUỒNG DỮ LIỆU
CHƯƠNG 3 MƠ HÌNH PHÂN LOẠI LUỒNG DỮ LIỆU SỬ DỤNG MẠNG
NƠ-RON
CHƯƠNG 4 KẾT QUẢ MÔ PHỎNG VÀ ĐÁNH GIÁ


12


CHƯƠNG 1
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu
Phân loại luồng dữ liệu mạng (Network traffic classification) là việc nhận dạng
các loại ứng dụng và giao thức mạng khác nhau tồn tại trong hệ thống mạng. Với
chức năng giám sát, khám phá, điều khiển và tối ưu hệ thống mạng, mục tiêu chung
của phân loại luồng dữ liệu mạng là cải thiện hiệu năng hoạt động mạng. Khi các
gói tin được phân loại sẽ giúp cho bộ định tuyến (router) tính tốn chính sách
(policy) dịch vụ thích hợp. Điều này cũng cho phép chúng ta dự đoán tốt hơn về
luồng dữ liệu mạng trong tương lai, phát hiện và ngăn chặn các luồng dữ liệu mạng
bất thường nhằm tăng bảo mật dữ liệu cá nhân. Ngoài ra, dựa trên sự phân loại này,
các chính sách dịch vụ có thể được áp dụng như với VoIP, dịch vụ giải trí trực
truyến sẽ được cam kết về chất lượng [1].
Phân loại luồng dữ liệu hiện nay vẫn đang là một vấn đề cơ bản trong cộng đồng
mạng. Việc nhận dạng được luồng dữ liệu trong quản lý hệ thống mạng là vấn đề
quan trọng và cần được quan tâm đặc biệt để nâng cao chất lượng dịch vụ mạng
QoS (Quality of Service), đảm bảo an ninh mạng, cung cấp các mô hình, dữ liệu
cho các hoạt động mơ phỏng, dự đốn và cho các ứng dụng cụ thể. Tuy nhiên, với
sự phát triển liên tục và đa dạng của các ứng dụng, số lượng host và khối lượng
luồng dữ liệu trên mạng internet đã tạo nên thách thức lớn trong các phương pháp
phân loại luồng dữ liệu mạng ứng với từng ứng dụng và mức độ phát triển này dự
đoán vẫn tiếp tục tăng trong tương lai.
Xác định chính xác luồng dữ liệu mạng là một bước cần thiết để cải thiện nhiều
ứng dụng mạng: tính tốn, giám sát an ninh, dự đoán luồng dữ liệu và chất lượng
dịch vụ. Tuy nhiên, độ chính xác cao trong phân loại thường yêu cầu bắt buộc một
lượng lớn về dữ liệu và siêu dữ liệu (metadata). Chính vì vậy, mục tiêu cơ bản trong
việc phân loại luồng dữ liệu mạng là phát triển một mơ hình nhẹ và độ chính xác
cao để có thể hoạt động với thời gian thực. Một ví dụ nữa của sự cần thiết trong việc



13

xác định chính xác luồng dữ liệu sẽ là mong muốn của một số nhà cung cấp dịch vụ
internet để đối phó với sự tăng liên tục của giao thức ngang hàng P2P (Peer to Peer)
bằng cách điều tiết lưu lượng truy cập mạng như việc xác định đang tải một tệp P2P
[2]. Vì vậy, đây cũng là thách thức mà các tổ chức phải đối mặt với sự phát triển
của các loại mạng mới trong sử dụng trong các ứng dụng nhận dạng và cần độ chính
xác cao.
Mặc dù đã có một số nghiên cứu về phân loại luồng dữ liệu trong thời gian qua.
Tuy nhiên vẫn còn một số thách thức đáng kể như sau:
-

Đầu tiên, phần lớn bởi vì luồng dữ liệu mạng khơng dễ dàng phân loại dựa
vào chuẩn IANA (International Assigned Number Authority) theo danh sách
các port ứng dụng, các ứng dụng khẩn cấp và proxy thường tránh sử dụng
các port chuẩn [2].

-

Thứ hai, các port ứng dụng và ký hiệu giao thức có thể không đủ để xác định
các ứng dụng thực tế. Về ngun tắc, khơng có ràng buộc rõ ràng giữa các
ứng dụng và giao thức cơ bản. Ví dụ, các ứng dụng như MSN Messenger,
BitTorrent và Gnutella có thể sử dụng giao thức HTTP cổng 80, trong khi
Skype có thể hoạt động ở cả cổng 80 và 443 [2].

-

Thứ ba, việc mã hóa và đóng gói luồng dữ liệu ngày càng tăng như SOCKS
proxy hay VPN làm thay đổi mơ hình trong giao thức gốc, trong khi mã hóa
gói làm cho việc kiểm tra, đào sâu vào dữ liệu không sử dụng được [2].


Chính vì vậy, việc nghiên cứu các thuật toán phân loại luồng dữ liệu phải đảm
bảo các yêu cầu cơ bản sau [3]:
-

Hoạt động không dựa vào Port number. Hơn nữa, giả sử rằng chúng ta khơng
có kiến thức về port của ứng dụng.

-

Không yêu cầu về việc phải xem xét nội dung của luồng dữ liệu

-

Các đặc tính hành vi. Ví dụ như phân bố kích thước gói tin, kính thước cửa
sổ của gói TCP, cờ bit TCP và hướng của gói tin, đều được suy ra từ packet
header


14

1.2 Các nghiên cứu liên quan
Phân loại luồng dữ liệu mạng truyền thống dựa vào các thông số khác nhau như
port number và giao thức truyền nhận để tự động phân loại luồng dữ liệu máy tính,
trong đó hướng tiếp cận cơ bản là sử dụng thông tin của port number. Ví dụ, hầu hết
các kỹ thuật chung cho việc nhận dạng ứng dụng internet thông qua việc giám sát
luồng dữ liệu dựa vào các cổng (port) đã biết trước và nó cịn được biết tới như một
q trình xử lý dẫn tới việc ước tính khơng chính xác của một lượng luồng dữ liệu
được truyền nhận bởi các ứng dụng khác nhau cho giao thức cụ thể, như HTTP,
giao thức mà thường được dùng để chuyển tiếp các luồng dữ liệu khác, ví dụ như

một mạng cục bộ ảo Virtual Local Area Network (VLAN) thơng qua HTTP, thêm
vào đó, các ứng dụng mới nổi thường tránh việc sử dụng các cổng đã được sử dụng
nhiều như một số ứng dụng ngang hàng (P2P) [4]. Nhìn chúng, đây là phương pháp
phân loại nhanh, sử dụng ít tài nguyên và hỗ trợ bởi nhiều thiết bị mạng. Tuy nhiên,
phương pháp này hiệu quả chỉ cho các ứng dụng và dịch vụ sử dụng port numbers
cố định, vì vậy, sẽ dễ dàng để qua mặt được hệ thống phân loại bằng cách thay đổi
cổng (port) của hệ thống.
Phương pháp phân loại luồng dữ liệu khác là sử dụng cơng cụ phân tích gói dữ
liệu (Deep Packet Inspection) để phân tích phần dữ liệu của một gói tin thực tế. Tuy
nhiên, phương pháp này thiếu hỗ trợ cho nhiều ứng dụng như Skype, ứng dụng mà
hầu như rất ít sự hỗ trợ tốt bởi hầu hết cơng cụ phân loại vì thuật tốn kết nối phức
tạp với giao tiếp sử dụng mạng ngang hàng P2P (Peer-to-peer network) [1]. Thời
gian xử lý của phương này khá chậm, yêu cầu nhiều tài nguyên cho việc xử lý bởi
việc đào sâu vào phân tích dữ liệu của gói tin. Nhìn chung cả 2 hướng tiếp cận trên
đều có những hạn chế nhất định về độ chính xác trong việc phân loại và tài nguyên
sử dụng.
Trong những năm gần đây, việc giải quyết vấn đề phân loại luồng dữ liệu mạng
sử dụng các mơ hình học máy thu hút được sự quan tâm nghiên cứu. Dựa trên các
thuộc tính của gói tin như tần suất byte (byte frequencies), kích thước gói tin
(packet sizes), khoảng thời gian giữa các gói tin đến (packet inter-arrival time),…


15

và kết hợp với các mơ hình học máy như (Decision tree, Naïve Bayes, mạng nơron), các phương pháp này có ưu điểm là độ chính xác cao và xử lý nhanh hơn so
với các phương pháp phân loại đã nêu trên vì khơng đào sâu tới phần nội dung
(content) của gói dữ liệu mà chỉ sử dụng các packet header để phân tích [5]. Các
phương pháp này sử dụng các công cụ phân loại thống kê để xây dựng các mơ hình
phân loại dựa trên các cơ sở dữ liệu huấn lụn đã được gắn nhãn. Các mơ hình này
có thể cho ra kết quả là nhóm đối tượng hoặc là phân bố xác suất của nhóm đối với

từng mẫu. Khác với các phương pháp dựa trên giao thức, các phương pháp học máy
sử dụng đặc trưng đầu vào là thành phần siêu dữ liệu của dữ liệu (payload
metadata). Do dựa trên thống kê nên các phương pháp phân loại luồng dữ liệu sử
dụng học máy thường gặp phải vấn đề Overfiting, tương ứng với tỷ lệ phân loại
đúng cao (99%-100%) đối với quá trình huấn luyện, tuy nhiên khơng ổn định khi áp
dụng kết quả mơ hình cho cơ sở dữ liệu được thu thập từ các mạng khác hoặc từ
cùng một mạng nhưng tại các thời điểm khác nhau [5].
Trong nghiên cứu [5], nhóm tác giả đã sử dụng phương pháp học máy có giám
sát với mạng nơ-ron để xây dựng mơ hình phân loại luồng dữ liệu có độ chính xác
cao. Nghiên cứu đã đánh giá độ ổn định của mơ hình đối với các mạng khác nhau
và tại các thời điểm khác nhau. Tuy nhiên, kết quả nghiên cứu cũng cho thấy tỷ lệ
phân loại đúng rất thấp đối với các nhóm có tần suất xuất hiện thấp trong cơ sở dữ
liệu huấn luyện. Trong một nghiên cứu khác cùng hướng, Trivedi, Chow, Nilsson
và Trussell đã sử dụng mạng nơ-ron để phân loại luồng dữ liệu giao thức TCP với
các giao thức khác dựa vào thống kê về thơng tin và thuộc tính ở lớp IP. Với
phương pháp này, tác giả đã đạt đến độ chính xác trên 98% [6].
Kỹ thuật học sâu (Deep learning) đã được áp dụng để phân loại luồng dữ liệu
mạng và đã có một vài nghiên cứu trong những năm gần đây. Wang Z. đã sử dụng
1000 bytes đầu tiên của mỗi luồng dữ liệu Transimisstion Control Protocol (TCP)
làm dữ liệu đầu vào. Kết quả huấn luyện đã chỉ ra các bytes quan trọng cho việc
phân loại. Tỷ lệ phân loại đúng là 55% khi lấy ngưỡng xác suất 90% [7].


16

Singh, Agrawal và Sohi đã áp dụng và so sánh 5 phương pháp học máy (bao
gồm mạng nơ-ron nhiều lớp (Multilayer Perception), Radial Basis Function (RBF),
Decision Tree, Bayes Net và Naive Bayes) để phân loại luồng dữ liệu IP ở thời gian
thưc. Nghiên cứu cho ra được kết quả phân loại với độ chính xác 91.875%, kết quả
này thấp hơn các nghiên cứu liên quan do nhóm tác giả tập trung phát triển thuật

toán hoạt động trong thời gian thực [8].
Tom Auld, Andrew W. Moore và Stephen F. Gull sử dụng phương pháp dựa
trên mạng nơ-ron Bayesian trong phân loại luồng dữ liệu mạng được công bố bởi
Auld, Moore và Gull năm 2007. Họ tìm ra cách tối ưu mạng nơ-ron Bayesian giúp
hệ thống có thể đạt trên 99.3% độ chính xác trong phân loại và giảm xuống 95.3%
khi kiểm thử với nguồn dữ liệu khác [4].
Qua các phân tích nêu trên, có thể thấy rằng, các phương pháp phân loại luồng
dữ liệu dựa trên học máy, đặc biệt là mạng nơ-ron, có tỷ lệ nhận dạng đúng cao.
Tuy nhiên, vấn đề cần được giải quyết là tránh Overfitting và tăng tỷ lệ nhận dạng
đúng đối với các nhóm có tần số xuất hiện thấp và rất thấp trong cơ sở dữ liệu.
Ngồi ra, khả năng thực thi mơ hình trong thời gian thực cũng là một vấn đề cần
được nghiên cứu.
1.3 Mục tiêu nghiên cứu
Dựa trên tính cấp thiết của bài toán phân loại luồng dữ liệu và các phân tích nêu
trên, mục tiêu của luận văn được xác định như sau: nghiên cứu mơ hình phân loại
luồng dữ liệu dựa trên mạng nơ-ron nhằm nâng cao tỉ lệ phân loại đúng và tốc độ
thực thi của mơ hình.
Để thực hiện được mục tiêu đặt ra, cần phải giải quyết các vấn đề sau:
- Xử lý cơ sở dữ liệu
- Giảm số chiều của không gian đặc trưng
- Tối ưu kiến trúc mạng nơ-ron


17

CHƯƠNG 2
LÝ THUYẾT VỀ MẠNG NƠ-RON VÀ LUỒNG DỮ LIỆU MẠNG
Chương này trình bày các lý thuyết về mạng nơ-ron và các kỹ thuật được sử
dụng trong nghiên cứu này và phần trình bày cơ bản về cấu trúc gói tin TCP trong
luồng dữ liệu mạng.

2.1 Luồng dữ liệu mạng
Trong luồng dữ liệu mạng internet, một luồng dữ liệu có thể được định nghĩa
như một hoặc nhiều gói tin (packets) được truyền nhận giữa hai máy tính sử
dụng các giao thức cụ thể như TCP, UDP, ICMP và port kết nối (xác điểm đến
kết thúc của mỗi flow) [9].
Các thông tin như địa chỉ nguồn (host source), địa chỉ đích (host dest), port
nguồn, port đích, giao thức (protocol) là đại diện cho mỗi gói tin (packet) và các
thơng tin khác của gói tin có thể thấy ở Hình 2.1.

Hình 2.1 Cấu trúc một gói tin TCP
Để đơn giản trong định nghĩa, giao thức TCP và luồng dữ liệu TCP được lựa
chọn để tập trung vào giao thức này, dữ liệu UDP sẽ khảo sát trong tương lai.


18

2.2 Mạng nơ-ron
Trong mục này sẽ trình bày các kiến thức cơ bản về mạng nơ-ron, bao gồm
kiến trúc mạng nơ-ron, thuật toán lan truyền ngược, hàm Softmax và CrossEntropy, vấn đề Overfitting và các phương pháp giải quyết. Đa số nội dung của
mục này được tham khảo và trích dẫn từ nguồn [10].
Kiến trúc mạng Nơ-ron
Mạng nơ-ron bao gồm 3 lớp cơ bản: Lớp đầu vào (Input layer), lớp ẩn (Hidden
layer) và lớp đầu ra (Output layer). Mạng nơ-ron có thể có một hoặc nhiều lớp ẩn.
Mỗi lớp được cấu tạo từ một hoặc nhiều nơ-ron, và mỗi nơ-ron ở lớp trước được kết
nối với tất cả các nơ-ron ở lớp kế tiếp như Hình 2.2. Số lượng lớp trong một mạng
nơ-ron được tính bằng số lớp ẩn cộng với 1. Tức là khi đếm số lớp của một mạng
nơ-ron, ta khơng tính lớp đầu vào.

Hình 2.2 Một mơ hình mạng nơ-ron với hai lớp ẩn
Đầu vào của các lớp ẩn được ký hiệu bởi 𝒛, đầu ra của mỗi unit thường được ký

hiệu là 𝒂 (thể hiện activation, tức giá trị của mỗi unit sau khi ta áp dụng hàm kích
(𝒍)

hoạt lên 𝒛). Đầu ra của nơ-ron thứ i trong lớp thứ 𝑙 được ký hiệu là 𝒂𝒊 . Giả sử
thêm rằng số nơ-ron trong lớp thứ 𝑙 (khơng tính độ lệch) là 𝒅(𝒍) . Vector biểu diễn
(𝒍)

lớp đầu ra của lớp thứ 𝑙 được ký hiệu là 𝒂(𝒍) ∈ 𝑹𝒅 .


19

Hình 2.3 Các ký hiệu sử dụng trong mạng nơ-ron
Có 𝐿 ma trận trọng số cho một mạng nơ-ron có 𝐿 lớp. Các ma trận này được ký
(𝒍−𝟏) 𝒙 𝒅(𝒍)

hiệu là 𝑾(𝒍) ∈ 𝑹𝒅

, 𝑙 =1,2,…,𝐿 trong đó 𝑾(𝒍) thể hiện các kết nối từ lớp thứ

𝑙 − 1 tới layer thứ 𝑙 (nếu ta coi lớp đầu vào là lớp thứ 0). Cụ thể hơn, phần tử
(𝒍)

𝒘𝒊𝒋 thể hiện kết nối từ nơ-ron thứ 𝑖 của lớp thứ (𝑙−1) tới nơ-ron từ 𝑗 của lớp thứ
(𝒍)

(𝑙). Các độ lệch của layer thứ (𝑙) được ký hiệu là 𝒃(𝒍) ∈ 𝑹𝒅 . Các trọng số này
được ký hiệu như trên Hình 2.3. Khi tối ưu một mạng nơ-ron cho một cơng việc nào
đó, chúng ta cần đi tìm các trọng số và độ lệch này. Tập hợp các trọng số và độ lệch
lần lượt được ký hiệu là 𝑾 và 𝒃.

Mỗi lớp đầu ra của một nơ-ron (trừ các nơ-ron đầu vào) được tính dựa vào cơng
thức:
(𝒍)

(𝒍)𝑻 (𝒍−𝟏)

𝒂𝒊 = 𝒇(𝒘𝒊

𝒂

(𝒍)

+ 𝒃𝒊 )

(2.1)

Trong đó 𝑓 (. ) là một hàm kích hoạt phi tuyến.
Bảng 2.1 là các dạng hàm kích hoạt thường được sử dụng trong mạng nơ-ron.


20

Bảng 2.1 Các dạng hàm kích hoạt
Tên hàm

Cơng thức
𝑎 = 0 𝑣ớ𝑖 𝑛 < 0

hardlim


𝑎 = 1 𝑣ớ𝑖 𝑛 ≥ 0
𝑎 = −1 𝑣ớ𝑖 𝑛 < 0

hardlims
purelin

𝑎 = 1 𝑣ớ𝑖 𝑛 ≥ 0
𝑎=𝑛
𝑎 = 0 𝑣ớ𝑖 𝑛 < 0

satlin

𝑎 = 𝑛 𝑣ớ𝑖 0 ≤ 𝑛 ≤ 1
𝑎 = 1 𝑣ớ𝑖 𝑛 > 1
𝑎 = −1 𝑣ớ𝑖 𝑛 < 0

satlins

𝑎 = 𝑛 𝑣ớ𝑖 0 ≤ 𝑛 ≤ 1
𝑎 = 1 𝑣ớ𝑖 𝑛 > 1

tansig

𝑒 𝑛 − 𝑒 −𝑛
𝑎=
1 + 𝑒 −𝑛
𝑎 = 0 𝑣ớ𝑖 𝑛 < 0

poslin


𝑎 = 𝑛 𝑣ớ𝑖 𝑛 ≥ 0
𝑎 = −1 𝑣ớ𝑖 𝑛ơ − 𝑟𝑜𝑛 𝑐ó 𝑛 𝑙ớ𝑛 𝑛ℎấ𝑡

compet

logsig

𝑎 = 0 𝑣ớ𝑖 𝑐á𝑐 𝑛ơ − 𝑟𝑜𝑛 𝑐ò𝑛 𝑙ạ𝑖
𝑎=

1
1 + 𝑒 −𝑛


21

Thuật toán lan truyền ngược
Phương pháp phổ biến nhất để tối ưu mạng nơ-ron vẫn là Gradient Descent
(GD). Để áp dụng GD, chúng ta cần tính được gradient của hàm mất mát theo từng
ma trận trọng số 𝑾(𝒍) và vector độ lệch 𝒃(𝒍) . Trước hết, chúng ta cần tính đầu ra dự
̂ với một đầu vào 𝒙 :
đoán 𝒚
𝒂(𝟎) = 𝒙
(𝒍)

(𝒍)𝑻 (𝒍−𝟏)

𝒛𝒊 = 𝒘𝒊

𝒂


(2.2)
(𝒍)

+ 𝒃𝒊

(𝒍)

𝒛(𝒍) = 𝑾(𝒍)𝑻 𝒂(𝒍−𝟏) + 𝒃𝒊 , 𝑙 = 1,2, … , 𝐿
𝒂(𝒍) = 𝒇(𝒛(𝒍) ), 𝑙 = 1,2, … , 𝐿
̂ = 𝒂(𝑳)
𝒚
Bước này được gọi là feedforward vì cách tính tốn được thực hiện từ đầu đến
cuối của mạng.
Giả sử 𝐉(𝐖, 𝐛, 𝐗, 𝐘) một hàm mất mát của bài tốn, trong đó 𝑾, 𝒃 là tập hợp tất
cả các ma trận trọng số giữa các lớp và độ lệch của mỗi lớp. 𝑿, 𝒀 là cặp dữ liệu
huấn luyện với mỗi cột tương ứng với một điểm dữ liệu. Để có thể áp dụng các
phương pháp dựa trên Gradient Descent, chúng ta cần tính được:
(2.3)
Một ví dụ của hàm mất mát là hàm Mean Square Error (MSE) tức là tính trung
bình của bình phương lỗi.

(2.4)

Với N là số cặp dữ liệu (x,y) trong tập huấn luyện.
Theo những công thức ở trên, việc tính tốn trực tiếp giá trị này là cực kỳ phức
tạp vì hàm mất mát khơng phụ thuộc trực tiếp vào các hệ số. Phương pháp phổ biến


22


nhất được dùng có tên là thuật tốn lan truyền ngược giúp tính gradient ngược từ
lớp cuối cùng đến lớp đầu tiên. Lớp cuối cùng được tính tốn trước vì nó gần hơn
với đầu ra dự đốn và hàm mất mát. Việc tính tốn gradient của các lớp trước được
thực hiện dựa trên một quy tắc quen thuộc có tên là quy tắc chuỗi, tức đạo hàm của
hàm hợp.
Stochastic Gradient Descent có thể được sử dụng để tính gradient cho các ma
trận trọng số và độ lệch dựa trên một cặp điểm training 𝒙, 𝒚. Để cho đơn giản, ta coi
𝐽 là hàm mất mát nếu chỉ xét cặp điểm này, ở đây 𝐽 là hàm mất mát bất kỳ, không
chỉ hàm MSE như ở trên.
Đạo hàm của hàm mất mát theo chỉ một thành phần của ma trận trọng số của lớp
cuối cùng:

(2.5)

Trong đó
(𝐿)

𝑧𝑗

(𝐿)𝑇

= 𝑤𝑗

(𝐿)
𝑒𝑗

=

(𝐿)


𝜕𝐽
(𝐿)
𝜕𝑧𝑗

thường là một đại lượng dễ tính tốn và

𝜕𝑧𝑗

(𝐿)
𝜕𝑤𝑖𝑗

(𝐿−1)

= 𝑎𝑖



(𝐿)

𝑎 (𝐿−1 ) + 𝑏𝑗 .

Tương tự như thế, đạo hàm của hàm mất mát theo độ lệch của lớp cuối cùng là:
(2.6)
Với đạo hàm theo hệ số ở các lớp 𝑙 thấp hơn, chúng ta xem ở Hình 2.4.


23

Hình 2.4 Mơ phỏng cách tính thuật tốn lan truyền ngược

Hàm softmax và cross-entropy
Chúng ta cần một mơ hình xác suất sao cho với mỗi đầu vào 𝒙, 𝒂𝒊 thể hiện xác
suất để đầu vào đó rơi vào lớp 𝒊. Vậy điều kiện cần là các 𝒂𝒊 phải dương và tổng
của chúng bằng 1. Để có thể thỏa mãn điều kiện này, chúng ta cần nhìn vào mọi giá
trị 𝒛𝒊 và dựa trên quan hệ giữa các 𝒛𝒊 này để tính tốn giá trị của 𝒂𝒊 . Ngồi các điều
kiện 𝒂𝒊 lớn hơn 0 và có tổng bằng 1, chúng ta sẽ thêm một điều kiện cũng rất tự
nhiên nữa, đó là: giá trị 𝒛𝒊 = 𝒘𝑻𝒊 𝒙 càng lớn thì xác suất dữ liệu rơi vào lớp 𝒊 càng
cao. Điều kiện cuối này chỉ ra rằng chúng ta cần một hàm đồng biến ở đây.
Chú ý rằng 𝒛𝒊 có thể nhận giá trị cả âm và dương. Một hàm số mượt đơn giản
có thể chắc chắn biến 𝒛𝒊 thành một giá trị dương, và hơn nữa, đồng biến, là hàm
exp(𝑧𝑖 ) = 𝑒 𝑧𝑖 . Điều kiện mượt để thuận lợi hơn trong việc tính đạo hàm sau này.
Điều kiện cuối cùng, tổng các 𝒂𝒊 bằng 1 có thể được đảm bảo nếu:

exp(𝑧𝑖 )

(2.7)

∑𝐶𝑗=1 exp(𝑧𝑗 )
Hàm số này, tính tất cả các 𝒂𝒊 dựa vào tất cả các 𝑧𝑖 , thõa mãn tất cả các điều
kiện đã xét: dương, tổng bằng 1, giữ được thứ tự của 𝑧𝑖 . Hàm số này được gọi


×