1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phân loại luồng dữ liệu sử dụng mạng nơ ron

80 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân Loại Luồng Dữ Liệu Sử Dụng Mạng Nơ-Ron
Tác giả Trần Văn Líc
Người hướng dẫn TS. Phan Trần Đăng Khoa
Trường học Đại Học Bách Khoa - Đại Học Đà Nẵng
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2019
Thành phố Đà Nẵng
Định dạng
Số trang 80
Dung lượng 3,26 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ự đoá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á

Trang 2

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS PHAN TRẦN ĐĂNG KHOA

Đà Nẵng – Năm 2019

Trang 3

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

Trang 4

LỜI CẢM ƠN

Để hoà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

Trang 5

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

Trang 6

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

Trang 7

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ự đoá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

Trang 8

A

I

Trang 9

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

Trang 10

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 toá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

Trang 12

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 toá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:

Trang 13

+ 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Á

Trang 14

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 toá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ự đoá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 toá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

Trang 15

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ề nguyên 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

Trang 16

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 quá 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 toá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),…

Trang 17

và kết hợp với các mơ hình học máy như (Decision tree, Nạve Bayes, mạng 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 luyện đã được gắn nhãn Các mơ hình này

nơ-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]

Trang 18

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 Ngoà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

Trang 19

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

Trang 20

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à Cross-Entropy, 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à 𝒂(𝒍) ∈ 𝑹𝒅(𝒍)

Trang 21

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:

𝒂𝒊(𝒍) = 𝒇(𝒘𝒊(𝒍)𝑻𝒂(𝒍−𝟏)+ 𝒃𝒊(𝒍))

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

(2.1)

Trang 23

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ự

đoán 𝒚̂ với một đầu vào 𝒙 :

Giả sử 𝐉(𝐖, 𝐛, 𝐗, 𝐘) một hàm mất mát của bài toá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:

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

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 toá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

(2.2)

(2.3)

(2.4)

Trang 24

nhất được dùng có tên là thuật toá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 toán trước vì nó gần hơn với đầu ra dự đoán và hàm mất mát Việc tính toá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:

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

Với đạo hàm theo hệ số ở các lớp 𝑙 thấp hơn, chúng ta xem ở Hình 2.4

(2.5)

(2.6)

Trang 25

Hình 2.4 Mô phỏng cách tính thuật toá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 toán giá trị của 𝒂𝒊 Ngoà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:

Trang 26

là softmax function Chú ý rằng với cách định nghĩa này, không có xác suất 𝒂𝒊 nào tuyệt đối bằng 0 hoặc tuyệt đối bằng 1, mặc dù chúng có thể rất gần 0 hoặc 1 khi 𝑧𝑖rất nhỏ hoặc rất lớn khi so sánh với các 𝑧𝑗, 𝑗 ≠ 𝑖

Lúc này, ta có thể giả sử rằng:

𝑃(𝑢𝑘 = 𝑖|𝑥𝑘; 𝑾) = 𝑎𝑖Trong đó, 𝑃(𝑢𝑘 = 𝑖|𝑥𝑘; 𝑾) được hiểu là xác suất để một điểm dữ liệu 𝒙 rơi vào lớp thứ 𝒊 nếu biết tham số mô hình (ma trận trọng số) là 𝑾

Hình 2.5 dưới đây thể hiện mạng Softmax Regression dưới dạng mạng nơ-ron

Hình 2.5 Mô hình Softmax Regression dưới dạng mạng nơ-ron Khi cả hai vector thể hiện xác xuất, khoảng cách giữa chúng thường được đo bằng đại lượng gọi là cross-entropy, hàm này được sử dụng làm hàm mất mát trong việc huấn luyện mạng nơ-ron

Overfitting

Overfitting là hiện tượng mô hình tìm được quá khớp với dữ liệu huấn luyện Việc quá khớp này có thể dẫn đến việc dự đoán nhầm nhiễu, và chất lượng mô hình không còn tốt trên dữ liệu kiểm thử nữa Về cơ bản, overfitting xảy ra khi mô hình

(2.8)

Trang 27

quá phức tạp để mô phỏng dữ liệu huấn luyện Điều này đặc biệt xảy ra khi lượng

dữ liệu huấn luyện quá nhỏ trong khi độ phức tạp của mô hình quá cao

Các phương pháp để tránh overfitting được trình bày ở các mục bên dưới

2.2.4.1 Validation

Phương pháp đơn giản nhất là trích từ tập training data ra một tập con nhỏ và thực hiện việc đánh giá mô hình trên tập con nhỏ này Tập con nhỏ được trích ra từ training set này được gọi là validation set Lúc này, training set là phần còn lại của training set ban đầu Train error được tính trên training set mới này, và có một khái niệm nữa được định nghĩa tương tự như trên validation error, tức error được tính trên tập validation

Với khái niệm mới này, ta tìm mô hình sao cho cả train eror và validation error đều nhỏ, qua đó có thể dự đoán được rằng test error cũng nhỏ Phương pháp thường được sử dụng là sử dụng nhiều mô hình khác nhau Mô hình nào cho validation error nhỏ nhất sẽ là mô hình tốt

Hình 2.6 dưới đây mô tả ví dụ phía trên với bậc của đa thức tăng từ 1 đến 8 Tập validation bao gồm 10 điểm được lấy ra từ tập training ban đầu

Hình 2.6 Lựa chọn mô hình dựa trên validation 2.2.4.2 Cross-validation

Trong nhiều trường hợp, chúng ta có rất hạn chế số lượng dữ liệu để xây dựng

mô hình Nếu lấy quá nhiều dữ liệu trong tập training ra làm dữ liệu validation,

Trang 28

phần dữ liệu còn lại của tập training là không đủ để xây dựng mô hình Lúc này, tập validation phải thật nhỏ để giữ được lượng dữ liệu cho training đủ lớn Tuy nhiên, một vấn đề khác nảy sinh Khi tập validation quá nhỏ, hiện tượng overfitting lại có thể xảy ra với tập training còn lại

Cross validation là một cải tiến của validation với lượng dữ liệu trong tập validation là nhỏ nhưng chất lượng mô hình được đánh giá trên nhiều tập validation khác nhau Một cách thường đường sử dụng là chia tập training ra 𝒌 tập con không

có phần tử chung, có kích thước gần bằng nhau Tại mỗi lần kiểm thử, được gọi là

run, một trong số 𝒌 tập con được lấy ra làm validata set Mô hình sẽ được xây dựng

dựa vào hợp của 𝒌 − 𝟏 tập con còn lại Mô hình cuối được xác định dựa trên trung

bình của các train error và validation error Cách làm này còn có tên gọi là k-fold

cross validation

2.2.4.3 Regularization

Regularization thay đổi mô hình để tránh overfitting trong khi vẫn giữ được tính tổng quát của nó Một cách cụ thể hơn, ta sẽ tìm cách di chuyển nghiệm của bài toán tối ưu hàm mất mát tới một điểm gần nó Hướng di chuyển sẽ là hướng làm cho mô hình ít phức tạp hơn mặc dù giá trị của hàm mất mát có tăng lên một chút

a) Early Stopping

Trong nhiều bài toán học máy, chúng ta cần sử dụng các thuật toán lặp để tìm ra nghiệm, ví dụ như Gradient Descent Nhìn chung, hàm mất mát giảm dần khi số vòng lặp tăng lên Early stopping tức dừng thuật toán trước khi hàm mất mát đạt giá trị quá nhỏ, giúp tránh overfitting

Một kỹ thuật thường được sử dụng là tách từ training set ra một tập validation set như trên Sau một (hoặc một số, ví dụ 50) vòng lặp, ta tính cả train error và validation error, đến khi validation error có chiều hướng tăng lên thì dừng lại, và quay lại sử dụng mô hình tương ứng với điểm và validation error đạt giá trị nhỏ

Trang 29

Hình 2.7 Đồ thị thể hiện phương pháp Early Stopping

Hình 2.7 thể hiện phương pháp Early Stoping với đường màu xanh là train error, đường màu đỏ là validation error Trục x là số lượng vòng lặp, trục y là error Mô hình được xác định tại vòng lặp mà validation error đạt giá trị nhỏ

nhất

b) Thành phần ổn định hóa

Kỹ thuật regularization phổ biến nhất là thêm vào hàm mất mát một số hạng nữa Số hạng này thường dùng để đánh giá độ phức tạp của mô hình Số hạng này càng lớn, thì mô hình càng phức tạp Hàm mất mát mới này thường được gọi là regularized loss function, thường được định nghĩa như sau:

𝑱𝒓𝒆𝒈(𝜽) = 𝑱(𝜽) + 𝝀𝑹(𝜽) Nhắc lại rằng θ được dùng để ký hiệu các biến trong mô hình, chẳng hạn như các hệ số 𝒘 trong mạng nơ-ron 𝐽(𝜃) ký hiệu cho hàm mất mát (loss function) và

R(θ) là số hạng regularization λ thường là một số dương để cân bằng giữa hai đại lượng ở vế phải

Việc tối thiểu regularized loss function, nói một cách tương đối, đồng nghĩa với việc tối thiểu cả hàm mất mát và số hạng regularization

Một trong những thành phần ổn định hóa thường được sử dụng đối với mạng nơ-ron là l2-norm có dạng:

(2.9)

Trang 30

𝐑(𝐰) = ||𝐰||

𝟐

𝟐, trong đó, W là các trọng số của mạng nơ-ron

Khi đó, hàm mất mát sẽ có dạng:

𝟐||𝒚 − 𝑿𝒘||𝟐𝟐+ 𝝀||𝒘||

𝟐 𝟐

Việc tối thiểu ||𝒘||

𝟐

𝟐

đồng nghĩa với việc khiến cho các giá trị của hệ số 𝒘 trở nên nhỏ gần với 0 Với mạng nơ-ron nhiều lớp, việc các hệ số này nhỏ giúp cho nhiều hệ số trong các ma trận trọng số là nhỏ Điều này tương ứng với việc số lượng các nơ-ron ẩn hoạt động (khác không) là nhỏ, cũng giúp cho mạng nơ-ron tránh được hiện tượng overfitting

2.3 Kết luận chương

Trong chương này, chúng tôi đã trình bày các cơ sở lý thuyết về mạng ron và luồng dữ liệu mạng Qua đó, các cơ sở lý thuyết này sẽ được ứng dụng vào việc thiết lập mô hình mạng nơ-ron cho phân loại luồng dữ liệu được thực hiện trong Chương 3

(2.10)

(2.11)

Trang 31

CHƯƠNG 3

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

Chương này trình bày mô hình phân loại luồng dữ liệu sử dụng mạng nơ-ron Các bước xây dựng mô hình như sau:

1 Phân tích cơ sở dữ liệu

2 Xử lý cơ sở dữ liệu

3 Giảm số chiều của không gian đặc trưng

4 Xây dựng kiến trúc mạng nơ-ron

3.1 Cơ sở dữ liệu

Cơ sở dữ liệu được sử dụng trong nghiên cứu này được lấy từ nguồn [11] Đây là cơ sở dữ liệu được nhiều nghiên cứu liên quan sử dụng, do đó việc sử dụng cơ sở dữ liệu này tạo điều kiện thuận lợi cho việc đánh giá và so sánh với các nghiên cứu khác

Cơ sở dữ liệu được thu thập từ máy chủ tại trung tâm nghiên cứu của Đại học Cambridge với khoảng 1,000 người dùng kết nối với internet thông qua đường kết nối Full-duplex Gigabit Ethernet Tổng số mẫu của cơ sở dữ liệu là 190748 mẫu Dữ liệu này được ghi lại với sự hỗ trợ của phần mềm Weka và tải đầy đủ vào ổ đĩa với độ phân giải lớn hơn 35 nano giây Thời gian lấy mẫu là 24 giờ và

dữ liệu được phân chia thành 10 tập con tương ứng với các thời điểm khác nhau trong ngày và được thống kê như Bảng 3.1

Bảng 3.1 Thống kê của mỗi tập dữ liệu

Tập dữ

liệu Thời gian bắt đầu

Thời gian kết thúc

Khoảng thời gian Số Flows

Trang 32

có thể được xác định bằng một hoặc nhiều gói tin truyền nhận giữa hai máy tính

sử dụng một giao thức cụ thể (ví dụ: TCP, UDP, ICMP) và cổng tương thích phù hợp (xác định cho mỗi điểm kết thúc của luồng dữ liệu)

Ngoài 10 Entry như ở Bảng 3.1, chúng tôi còn sử dụng Entry12 là tập dữ liệu thu thập trên cùng máy chủ sau 12 tháng để đánh sau độ ổn định của mô hình sau này

Cơ sở dữ liệu cung cấp 248 đặc trưng đối với mỗi luồng dữ liệu Danh sách các đặc trưng có thể xem ở PHỤ LỤC A Mô tả tóm tắt về các đặc trưng như sau

Cơ sở dữ liệu cung cấp một lượng lớn đặc tính khác nhau của luồng dữ liệu, bao gồm các thống kê đơn giản về chiều dài gói dữ liệu (packet length), khoảng thời gian giữa các gói dữ liệu (inter-packet timings) và các thông tin khác được suy ra từ giao thức lớp vận chuyển (transport protocol) TCP như số lượng SYN và ACK, Những thông tin này được cung cấp dựa trên tất cả các gói tin (2 chiều) và trên mỗi hướng của nó (từ server tới client và từ client tới server)

Trang 33

Nhiều thông tin thống kê về gói tin được trực tiếp suy ra bởi bộ đếm gói tin

và kích thước của header Một số lượng đáng kể đặc trưng (như ước lượng RRT- Round-Trip Time, kích thước TCP segments, và tổng số gói tin truyền lại) được suy ra từ TCP headers

Đặc trưng liên quan đến băng thông sử dụng (effective bandwidth utilization) được tính dựa trên entropy nhằm đánh giá đặc tính thông tin của luồng dữ liệu Các thông tin liên quan đến thời gian đến giữa các gói tin (2 chiều) được thể hiện thông qua 10 thành phần tần số của biến đổi Fourier Các luồng dữ liệu được phân loại thành 12 nhóm và đươc gắn nhãn Việc gắn nhãn cho các luồng dữ liệu được thực hiện bằng tay thông qua giám sát các nội dung của các luồng dữ liệu cũng như các thông tin biết trước về hệ thống Danh sách các nhóm có thể xem ở Bảng 3.2 Lưu ý nhóm BULK được phân thành 3 nhóm FTP-CONTROL, FTP-PASV, FTP-DATA

Bảng 3.2 Các nhóm trong phân loại luồng dữ liệu mạng

KaZaA, BitTorrent, GnuTella Internet worm and virus attacks Microsoft Direct Play

Windows Media Player, Real

Trang 34

3.2 Xử lý tập dữ liệu

Phân tích cơ sở dữ liệu

Để đánh giá tổng quan về cơ sở dữ liệu, ta thực hiện thống kê tần số xuất hiện của các nhóm Kết quả thống kê cho ở Bảng 3.3 Có thể nhận thấy rằng, cơ

sở dữ liệu không cân bằng giữa các nhóm, trong đó một số ít nhóm chiếm số lượng mẫu đa số như WWW (84.912 %), MAIL (8.277 %), còn các nhóm còn lại chiếm số lượng rất thấp như INTERACTIVE (0.017%), MULTIMEDIA (0.285%) Đặc biệt, nhóm GAMES chỉ có 4 mẫu, do đó việc huấn luyện mô hình

để phân loại nhóm này là khó khăn

Bảng 3.3 Thống kê tần số xuất hiện của các nhóm

hiện

Tỷ lệ phần trăm (%)

Trang 35

Thông qua khảo sát danh sách các đặc trưng của cơ sở dữ liệu ta nhận thấy rằng một số đặc trưng chỉ mang tính chất định danh như server port và client port Rõ ràng rằng, các đặc trưng định danh không phù hợp để đưa trực tiếp vào mô hình do không thể hiện được sự đối sánh tương đối giữa các giá trị định danh Ví dụ port 80 không phải gần hơn hay liên quan gì tới port 20 hay con số lớn hơn là port 1280 Con số này chỉ đại diện cho một ứng dụng mạng Tuy cơ sở dữ liệu thu thập được số lượng lớn các đặc trưng nhưng không chắc chắn rằng tất cả các đặc trưng này là phù hợp để làm đầu vào cho mô hình

Có thể một số đặc trưng có mối quan hệ tương quan dẫn tới sự thừa thông tin Qua các phân tích cơ sở dữ liệu nêu trên, ta cần phải tiến hành xử lý cơ sở dữ liệu nhằm nâng cao tỷ lệ phân loại đối với tất cả các nhóm Ngoài ra, ta cũng có thể tiến hành khảo sát dữ liệu nhằm rút ra một nhóm nhỏ hơn các đặc trưng, trong đó đảm bảo các đặc trưng không hoặc ít tương quan và có tầm ảnh hưởng lớn đến mô hình Từ đó, ta có thể xây dựng mô hình phân loại đơn giản hơn, dấn tới rút ngắn thời gian thực thi của mô hình

Chuẩn hóa thuộc tính định danh

Như đã trình bày ở trên, ta cần phải biến đổi các đặc trưng định danh (cụ thể

là server port và client port) sang giá trị định lượng để có thể sử dụng làm đầu vào của mô hình Việc biến đổi cần đảm bảo tầm quan trọng tương đối giữa các giá trị định danh

Việc biến đổi này được thực hiện dựa trên tần xu xuất hiện của các đặc trưng định danh trong cơ sở dữ liệu Ví dụ đối với Port number, giá trị định lượng được xác định bằng biểu thức:

∑𝑁𝑖=1𝑛𝑖 , trong đó, 𝑛𝑖 – tần số xuất hiện của Port number thứ i

Việc biến đổi này đảm bảo các Port có tần số xuất hiện lớn sẽ có giá trị định lượng lớn tương ứng, và các giá trị này được chuẩn hóa trong khoảng [0 1]

(3.1)

Trang 36

Chuẩn hóa dữ liệu đầu vào (kích thước)

Cơ sở dữ liệu bao gồm các đặc trưng có giá trị nằm ở các tỷ lệ (scale) khác nhau Hình 3.1 cho thấy sự khác nhau giữa các khoảng giá trị của các đặc trưng

Để đảm bảo công bằng giữa các đặc trưng, ta cần phải chuẩn hóa các giá trị của

cơ sở dữ liệu đối với từng đặc trưng Việc chuẩn hóa nhằm đảm bảo các giá trị của mỗi đặc trưng có giá trị trung bình bằng 0 và độ lệch chuẩn bằng 1 Biểu thức để chuẩn hóa cơ sở dữ liệu như sau:

𝑥𝑖 =𝑥𝑖 − 𝜇𝑖

𝜎𝑖 , trong đó, 𝑥𝑖 – các giá trị đối với đặc trưng thứ i; 𝜇𝑖 và 𝜎𝑖 lần lượt là giá trị trung bình và độ lệch chuẩn của các giá đối với đặc trưng i

(3.2)

Trang 37

Hình 3.1 Giá trị của các đặc trưng từ một mẫu

Phân bố cơ sở dữ liệu

Bảng 3.3 cho thấy cơ sở dữ liệu không cân bằng, đa số các mẫu thuộc về một vài nhóm Do đó, nếu ta thực hiện việc phân chia cơ sở dữ liệu thành các tập huấn luyện (train set) và tập kiểm thử (test set) theo phương thức ngẫu nhiên (random) thì có thể dẫn tới một số mẫu thuộc nhóm có tần số xuất hiện thấp không có mặt hoặc có mặt với số lượng không phù hợp trong tập huấn luyện hoặc tập kiểm thử Từ đó, gây ảnh hưởng lên kết quả huấn luyện và kiểm thử

Để đảm bảo mẫu của tất cả các nhóm của cơ sở dữ liệu được phân bố vào tập huấn luyện và kiểm thử, ta thực hiện việc phân chia ngẫu nhiên nhưng phải dựa trên tần số xuất hiện của nhóm trong cơ sở dữ liệu Ví dụ, nhóm P2P có 652 mẫu chiếm 0.488% trong tập huấn luyện thì nhóm P2P trong tập kiểm thử với 280 mẫu cũng sẽ chiếm 0.488% trong tập kiểm thử

Trang 38

Điều này đảm bảo trong tập huấn luyện và tập kiểm thử, mẫu của tất cả các nhóm đều có mặt với số lượng phù hợp

Giảm số chiều không gian đặc trưng

Giảm số chiều không gian đặc trưng đóng vai trò quan trọng trong học máy Thông thường đối với các cơ sở dữ liệu với số lượng lớn các đặc trưng, nhiều đặc trưng không hữu ích trong việc nâng cao kết quả huấn luyện, thậm chí còn đóng vai trò của nhiễu Việc giảm số chiều không gian đặc trưng còn giúp giảm thời gian và khối lượng tính toán, và giúp làm rõ vai trò của các đặc trưng lựa chọn

Có 2 hướng tiếp cận chính để giảm số chiều không gian đặc trưng: chọn lọc đặc trưng (feature selection) và biến đổi không gian đặc trưng (feature transformation) Các thuật toán chọn lọc đặc trưng trích xuất một tập con các đặc trưng từ tập gốc; còn phương pháp biến đổi không gian đặc trưng thực hiện chuyển đổi dữ liệu từ không gian đặc trưng với số lượng chiều lớn sang không gian mới có số chiều ít hơn

Khác với các nghiên cứu liên quan, trong nghiên cứu này, chúng tôi thực hiện việc giảm số chiều không gian đặc trưng theo hướng chọn lọc đặc trưng thông qua 2 bước:

o Tập các đặc trưng được chọn lọc sơ bộ dựa trên thuật toán Neighborhood Component Analysis (NCA)

o Tập các đặc trưng được tiếp tục chọn lọc từ tập thu được từ bước 1 thông qua phương thức chọn lọc đặc trưng tuần tự Sequential Feature Selection (SFS)

Phương thức chọn lọc đặc trưng tuần tự cho phép lựa chọn các đặc trưng có ảnh hưởng đối với mô hình học cụ thể Tuy nhiên, phương pháp này đòi hỏi khối lượng tính toán lớn khi tuần tự đánh giá ảnh hưởng của từng đặc trưng đối với mô hình Do đó, việc sử dụng thuật toán NCA (hoạt động chỉ dựa vào bản chất của dữ liệu) cho phép nhanh chóng chọn lọc sơ bộ các đặc trưng tốt

Trang 39

3.2.5.1 Thuật toán NCA

Xem xét bài toán phân loại nhiều lớp với tập huấn luyện gồm n mẫu

𝑺 = {𝒙𝒊, 𝒚𝒊), 𝒊 = 𝟏, 𝟐, 𝟑, , 𝒏},

Với 𝒙𝒊 ∈ 𝑹𝒑 là vector đặc trưng và 𝒚𝒊 ∈ {𝟏, 𝟐, … , 𝒄} là nhãn của nhóm, và c là

số nhóm

Thuật toán NCA gồm các bước cơ bản sau:

- Chọn ngẫu nhiên một điểm Ref(x) từ S làm điểm tham chiếu (reference

point) cho x

- Gán nhãn cho x dựa trên nhãn của điểm tham chiếu Ref(x)

Điểm tham chiếu được lựa chọn ngẫu nhiên và mọi điểm trong S được gán với một xác suất được lựa chọn Xác suất 𝑷(𝑹𝒆𝒇(𝒙) = 𝒙𝒋|𝑺 của điểm 𝒙𝒋 được lựa

chọn từ S làm điểm tham chiếu sẽ có giá trị lớn nếu 𝒙𝒋 nằm gần với x theo hàm

Trang 40

Xem xét bài toán phân loại cho mẫu 𝑥𝑖 sử dụng dữ liệu 𝑆−𝑖 (tức dữ liệu S trừ điểm (𝑥𝑖,𝑦𝑖) Xác suất mà điểm xj được chọn làm điểm tham chiếu cho xi là:

3.2.5.2 Chọn lọc đặc trưng tuần tự

Phương pháp chọn lọc đặc trưng tuần tự lựa chọn tập các đặc trưng sao cho dự đoán tốt nhất cơ sở dữ liệu thông qua tuần tự đánh giá ảnh hưởng của từng đặc trưng đến khi không thể cải thiện thêm kết quả dự đoán Phương thức chọn lọc đặc trưng bắt đầu bằng tập đặc trưng rỗng và lần lượt đưa các đặc trưng chưa được lựa chọn vào Đối với mỗi đặc trưng, ta thực hiện k-fold cross-validation trên tập huấn luyện đối với mô hình học là mạng nơ-ron Tiêu chí đánh giá là tỷ lệ nhận dạng đúng trên tập kiểm thử Quy trình này được thực hiện cho đến khi tìm được tập đặc trưng tối ưu hóa hàm mất mát

Gia tăng cơ sở dữ liệu

Trong cơ sở dữ liệu sử dụng, một số nhóm có số lượng mẫu rất ít như GAME (0.002%), INTERACTIVE (0.017%) Kết quả huấn luyện và kiểm thử được trình bày trong mục 4.5 cho thấy mô hình chỉ tập trung học các đặc trưng để

(3.8)

(3.9)

(3.10)

Ngày đăng: 27/04/2021, 18:27

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Cấu trúc một gói tin TCP - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Hình 2.1 Cấu trúc một gói tin TCP (Trang 19)
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 - Phân loại luồng dữ liệu sử dụng mạng nơ ron
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 (Trang 20)
Hình 2.3 Các ký hiệu sử dụng trong mạng nơ-ron - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Hình 2.3 Các ký hiệu sử dụng trong mạng nơ-ron (Trang 21)
Bảng 2.1 Các dạng hàm kích hoạt - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Bảng 2.1 Các dạng hàm kích hoạt (Trang 22)
Hình 2.4 Mô phỏng cách tính thuật toán lan truyền ngược - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Hình 2.4 Mô phỏng cách tính thuật toán lan truyền ngược (Trang 25)
Hình 2.5 dưới đây thể hiện mạng Softmax Regression dưới dạng mạng nơ-ron - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Hình 2.5 dưới đây thể hiện mạng Softmax Regression dưới dạng mạng nơ-ron (Trang 26)
Hình 2.6 dưới đây mô tả ví dụ phía trên với bậc của đa thức tăng từ 1 đến 8. Tập  validation bao gồm 10 điểm được lấy ra từ tập training ban đầu - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Hình 2.6 dưới đây mô tả ví dụ phía trên với bậc của đa thức tăng từ 1 đến 8. Tập validation bao gồm 10 điểm được lấy ra từ tập training ban đầu (Trang 27)
Hình 2.7 Đồ thị thể hiện phương pháp Early Stopping - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Hình 2.7 Đồ thị thể hiện phương pháp Early Stopping (Trang 29)
Bảng 3.1 Thống kê của mỗi tập dữ liệu - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Bảng 3.1 Thống kê của mỗi tập dữ liệu (Trang 31)
Bảng 3.2 Các nhóm trong phân loại luồng dữ liệu mạng - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Bảng 3.2 Các nhóm trong phân loại luồng dữ liệu mạng (Trang 33)
Bảng 3.3 Thống kê tần số xuất hiện của các nhóm - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Bảng 3.3 Thống kê tần số xuất hiện của các nhóm (Trang 34)
Hình 3.1 Giá trị của các đặc trưng từ một mẫu - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Hình 3.1 Giá trị của các đặc trưng từ một mẫu (Trang 37)
Hình 3.2 Ví dụ về một cấu trúc mạng nơ-ron được sử dụng - Phân loại luồng dữ liệu sử dụng mạng nơ ron
Hình 3.2 Ví dụ về một cấu trúc mạng nơ-ron được sử dụng (Trang 42)
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à - Phân loại luồng dữ liệu sử dụng mạng nơ ron
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à (Trang 44)
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à - Phân loại luồng dữ liệu sử dụng mạng nơ ron
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à (Trang 45)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w