Đặt vấn đề và trình bày sơ lược về mục đích, đối tượng và phạm vi nghiên cứu. Chương2 - Cở sở lý thuyết và các nghiên cứu liên quan Trình bày và giải thích các cơ sở lý thuyết liên quan đến học sâu, mạng nơ-ron nhân tạo, mạng nơ-ron tích chập. Trình bày khái niệm một số tấn công ứng dụng web phổ biến và nguy cơ của chúng. Trình bày một số phương pháp phát hiện và ngăn chặn tan công ứng dụng web truyền thống.
Bên cạnh đó, trình bày về tình hình nghiên cứu về phát hiện tan công ứng dụng web có sử dung học sâu. Chương3 - Phân tích và thiết kế mô hình Tiến hành phân tích và xây dựng mô hình để huấn luyện. Giải thích các tiêu chí đánh giá một mô hình. Cách tính toán đánh giá một mô hình.
Thực hiện thiết kế và triển khai môi trường thực nghiệm. Chương 4 - Thực nghiệm Trinh bày về các nguồn thu thập tập dữ liệu và cách xử lý dữ liệu. Triển khai môi trường huấn luyện mô hình. Dua ra đánh giá kết quả của mô hình đã huấn luyện với các tiêu chí đã trình bày.
So sánh mô hình của nhóm tác giả với mô hình của nghiên cứu khác bằng cách sử dụng cùng tập dữ liệu để huấn luyện và thực nghiệm. Chương5 - Kết luận và hướng phát triển Tổng kết các nội dung đã nghiên cứu trong đề tài. Từ đó đề xuất các hướng phát triển của đề tài có thể tiếp tục thực hiện trong tương lai. Chương 2 CƠ SỞ LÝ THUYET VA CÁC NGHIÊN CỨU LIÊN QUAN 2.1 Học sâu và mang nơ-ron nhân tạo 2.1 Giới thiệu Học sâu (Deep Learning - DL) là một phương pháp trong học máy (Machine Learning - ML) và (Artificial Intelligence - AI).
Trong những năm gần đây học sâu phát triển mạnh vì sự phát triển của dữ liệu lớn (Big data) và GPU cho phép giải quyết nhiều bài toán phức tạp và nhanh. Họ đặt tên cho kỹ thuật này là “Deep Learning”. Bài báo này thu hút sự quan tâm của cộng đồng khoa học và trước đó không lâu, nhiều bài báo mới đã chứng minh rằng học sâu có khả năng đạt được những thành tựu đáng kinh ngạc mà không có kỹ thuật học máy nào khác có thể đạt được (với sự trợ giúp của sức mạnh tính toán to lớn và một lượng lớn dữ liệu). Shallow ` Example: Example: Example: autoencoders MLPs Logistic Knowledge regression bases Representation learning Machine learning Hình 2.1: Hình thể hiện học sâu là một nhánh của ML va DL [5].
Học sâu không chỉ giải quyết được những bài toán của toán học truyền thống trong học máy như phân lớp (Classification), hồi quy (Regression), học tăng cường (Reinforcement Learning) mà còn có khả năng: «Biểu diễn dữ liệu dưới dang vector (Representation Learning): Ví du ta có hai từ gần nghĩa với nhau khi biểu diễn ra vector thì hai vector phải gần nhau. Đối với phương pháp học máy truyền thống khó làm được điều này. * Có thể huấn luyện trên dữ liệu không được gán nhãn (Data Synthesis): Ví dụ đưa vào một tập dữ liệu mặt người và mô hình sau khi huấn luyện có thể tự sinh ra những hình ảnh mặt người khác. ¢ Dùng mô hình đã huấn luyện của bài toán này giải quyết bài toán khác (Tranfer Learning).
Ban đầu hoc sâu chính là mạng nơ-ron nhân tao (Artificial Neural Network - ANN) hay còn gọi ngắn gọn là mang nơ-ron (Neural Network - NN), sau đó được phat triển thêm và có nhiều loại cải tiến như mạng nơ-ron tích chập (Convolutional Neural Network - CNN), mạng nơ-ron hồi quy (Recurrent Neural Network - RNN), mạng bộ nhớ dài ngắn (Long Short-Term Memory - LSTM), .2 Mang nơ ron nhân tao Mang nơ-ron nhân tao (Artificial Neural Network - ANN) là các hệ thông thần kinh nhân tạo được lấy cảm hứng từ các quá trình hoạt động của não người [6]. Theo [4], ANN đã tổn tại khá lâu và lần đầu tiên chúng được giới thiệu trở lại năm 1943 bởi Warren McCulloch và nhà toán hoc Walter Pitts. Trong bài báo "A Logical Calculus of Ideas Immanent in Nervous Activity", McCulloch va Pitts đã trình bày một mô hình tinh toán đơn giản về cách các tế bao nơ-ron sinh hoc có thể hoạt động cùng nhau trong não động vật để thực hiện tính toán sử dung propositional logic. Đây là kiến trúc mạng nơ-ron nhân tạo đầu tiên.
Tuy nhiên ANN đã bị lãng quên trong một thời gian dài và ngày nay, sự phát triển của lượng dif liệu lớn và sự gia tăng mạnh mẽ về sức mạnh tính toán, các thuật toán huấn luyện được cải thiện đã khiến cho ANN được quan tâm trở lại và ngày càng tạo ra nhiều sản phẩm tuyệt vời. Mô hình ANN Một mô hình ANN gồm có lớp đầu vào (input layer), lớp ẩn (hidden layer) và lớp đầu ra (output layer) như hình 2. Lớp input và output chỉ có một lớp nhưng có thể có nhiều lớp ẩn. Mỗi hình tròn trong hình 2.2 được gọi là một node.
eat Input Layer Hidden Layer Output Layer Hình 2.2: Các lớp của mô hình ANN. Perceptron Hoạt động của mỗi node trong lớp ẩn còn được gọi là perceptron. Perceptron là một trong những kiến trúc ANN đơn giản nhất, được phát minh vào năm 1957 bởi Frank Rosenblatt [4]. Mạng nơ-ron một lớp cũng được gọi là perceptron.
Trong một perceptron sẽ cho một đầu ra duy nhất. Hoạt động của một perceptron được thể hiện trong hình 2. 10 n ẩ : a a >» MiXi i=0 ƒ@) = Py " Hình 2.3: Hoạt động trong một perceptron. Một mẫu dữ liệu đầu vào là một vector có n chiều gồm từ x; đến x, và 1.
Các dữ liệu đầu vào của một mô hình luôn có vector bằng nhau. Một mẫu dé liệu có n chiều thì perceptron có n trọng sô (weight) là các wo, w\,. Chú ý đầu vào còn có thêm một hệ số 1. Tiếp theo ta tính tổng các weight và x tương ứng.
Nhận thấy 1 x wo luôn bằng wo, giá trị wo này được gọi là bias. Giả sử giá trị đầu ra của ta là y, rõ ràng y = w.x luôn đi qua gốc tọa độ nên việc cộng thêm bias giúp mô hình linh hoạt hơn. Sau đó ta cho kết quả đó vào hàm kích hoạt (activation function). Ham này để giả lập kích hoạt điện nơ-ron trong não người.
Khi cho kết quả đầu ra qua hàm này sẽ giúp khống chế đầu ra trong khoảng [0,1] hay [-1, 1], tùy theo hàm kích hoạt mà ta sử dung. Nếu không có activation function thì mô hình rất lâu mới có thể hội tu. Activation function trong ví dụ hình 2.3 là hàm binary. Có một số hàm kích hoạt thông dung: * Binary function: là một hàm kích hoạt dựa trên ngưỡng.
Nếu giá trị đầu vào cao hơn hoặc thấp hơn một ngưỡng nhất định, tế bào thần kinh sẽ được kích hoạt và gửi chính xác cùng một tín hiệu đến lớp tiếp theo. ¢ Sigmoid: là một hàm toán học có đường cong hình chữ “S” đặc trưng, đường cong này nằm trong khoảng từ 0 đến 1. ¢ Tanh: có phạm vi trong khoảng [-1,1]. ReLU đã trở nên rất phổ biến trong vài năm gần đây, nó thường được triển khai trong các lớp ẩn của ANN, đặc biệt là trong hầu hết các mạng nơ-ron tích chập [7].
Sigmoid Tanh ReLU “¿50 2)=+ = 74s HW) -== = aes (2) = 9(z) = max(0, max(0,z)z + + 0 1 Hình 2.5: Sigmoid, Tanh, ReLu activation function’.com/getting-started/150450 12 * Softmax: là hàm kích hoạt thường thấy trong bài toán phân loại nhiều lớp trong học sâu. Softmax thường được dùng ở lớp output của mạng nơ-ron. Hàm softmax tính giá trị đầu ra là xác xuất của các lớp [8]. Hàm softmax được định nghĩa như sau [9]: es P(y = jx) = ,Với zj = w¿x, K là số lớp, z € R* ve, c* Mô hình tổng quát của ANN được thể hiện trong hình 2.
Mỗi node trong lớp ẩn (màu tim) và node trong lớp đầu ra (màu đỏ) được tính như cách hoạt động trong một perceptron. Kết quả đầu ra của lớp này lại là đầu vào của lớp tiếp theo. Như vậy, mỗi node trong lớp ẩn và lớp đầu ra đều liên kết với tất cả các node ở lớp phía trước đó với các hệ so weight va bias riêng. input values a! eEv output values igh Hình 2.6: Mô hình tổng quát ANN [10].
13 Lan truyền tiễn (Forward Propagation) Đầu tiên ta bat đầu với một số kí hiệu để đề cập đến các trọng số một cách rõ ràng. Gọi wit là weight từ nơ-ron thứ k ở lớp (1-1) đến nơ-ron thứ j của lớp 1. Bias kí hiệu là bi là vi tri bias để tính giá trị của node thứ j tại lớp 1. Giá trị tai một node tại vi trí thứ k ở lớp I là dị.
Cách tính giá trị này đã được mô tả trong phần percepfron ở trên.7 là ví dụ về các kí hiệu trên. Ta có công thức tổng quát tinh output cho node tại lớp | vị trí thứ j là: l I I-14 pl Ví du tai node thứ 1 của lớp thứ 2 của hình 2.7 ta thực hiện tinh như tính một perceptron đã trình bay ở trên. Ta tính tổng các weight và a (giá trị của một node) tương ứng rồi cộng bias. 14 Zi =} _w7iai + bƒ = wir xa] + w1a X 42 + WTa x a3 + bị 2 2 2 2 2 1 2 1 2 1 2 k Sau đó cho kết quả tính được qua hàm kích hoạt: aj = Ø(21) = GÖỒ w,a + b7) 2 2 2 2 k Quá trình lần lượt tính ra các giá tri a và Z của các node trong lớp ẩn lần lượt từ trái qua phải cho đến node output được gọi là quá trình lan tryén tiến.
Output cuối cùng của mô hình chính là giá trị dự đoán. Ban dau ta chỉ cần nhập số lớp, số node trong một lớp và máy tính sé random weight và bias. Dé máy tự tìm được weight va bias tốt cần sử dụng thuật toán lan truyền ngược. Lan truyền ngược (Back Propagation) Cần một ham để đánh giá độ tốt của mô hình tức là giá tri dự đoán càng gần giá tri thực tế càng tốt.
Sau khi có giá trị dự đoán của một đối tượng ta cần kiểm tra giá trị dự đoán sai số bao nhiêu so với giá trị thực tế. Dé làm điều này ta sử dụng hàm mat mát (lost function) hay còn được gọi là hàm lỗi (error function) để kiểm tra. Hàm mất mát trong bài này sẽ kí hiệu C là tổng giá trị hàm lỗi của các output. Một ví dụ về hàm lỗi là lỗi bình phương trung bình ( mean squared error cost function) [9].
C= 2 giá trị dự đoán — giá trị thực tế)” Để dự đoán chính xác, người ta cần giảm thiểu sai số tính toán. Rõ ràng giá trị lỗi hay giá trị của loss function càng nhỏ càng tốt.