Đăng ký Đăng nhập
Trang chủ Phân loại luồng dữ liệu sử dụng mạng nơ ron...

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

.PDF
76
5
106

Mô tả:

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ự đ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 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 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 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 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: 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 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 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ề 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 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 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),… 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 luyệ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. 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 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 toá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 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: (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 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 22 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: (2.5) Trong đó (𝐿) 𝑧𝑗 (𝐿)𝑇 = 𝑤𝑗 (𝐿) 𝑒𝑗 = (𝐿) 𝜕𝐽 (𝐿) 𝜕𝑧𝑗 thường là một đại lượng dễ tính toán và 𝜕𝑧𝑗 (𝐿) 𝜕𝑤𝑖𝑗 (𝐿−1) = 𝑎𝑖 vì (𝐿) 𝑎 (𝐿−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.
- Xem thêm -

Tài liệu liên quan