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 2NGƯỜI HƯỚNG DẪN KHOA HỌC
TS PHAN TRẦN ĐĂNG KHOA
Đà Nẵng – Năm 2019
Trang 3Tô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 4LỜ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 5MỤ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 63.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 7PHÂ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 8A
I
Trang 9Bả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 10DANH 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 12MỞ ĐẦ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 14CHƯƠ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 15xá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 161.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 17và 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 18Singh, 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 19CHƯƠ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 202.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 21Hì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 23Thuậ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 24nhấ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 25Hì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 26là 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 27quá 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 28phầ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 29Hì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 31CHƯƠ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 32có 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 33Nhiề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 343.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 35Thô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 36Chuẩ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 37Hì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 393.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 40Xem 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)