đua mô hình mờ vào cấu trúc mạng, thông qua mô hình ANFIS, đem lại kết quả vượt trội
2.5 Xây dựng ứng dụng web phân tích và dự đoántảo nở tảo nở
Việc phân tích và xây dựng mô hình học sâu, cũng như sử dụng nó trong thực tế là vô cùng khó khăn và phức tạp với người dùng phổ thông. Em đã xây dựng một ứng dụng web cơ bản, nhằm mục đích đơn giản hóa việc sử dụng và dự đoán mô hình, giúp cho những người cần truy xuất thông tin về dự đoán độ nở hoa của tảo có thể dễ dàng truy cập và sử dụng. Người dùng sẽ nhập các thống số DTP, DTN, pH, DO, BOD, nhiệt độ, lượng mưa và tốc độ dòng chảy lên hệ thống, sau đó nhận được trực tiếp kết quả TSI-chla trả về. Hệ thống cung cấp cho người dùng 3 mô hình để chọn lựa, bao gồm mô hình hồi quy tuyến tính, mô hình học sâu, và mô hình ANFIS
Hệ thống viết bằng ngôn ngữ lập trình PHP, gọi trực tiếp tới các chương trình python trên máy chủ để xử lý và trả về các kết quả tương ứng, chi tiết website có thể xem lạihttp://sami.hust.edu.vn/water-quality/
Hình 2.4: Giao diện ứng dụng web
Hình 2.5: Kết quả trả về từ mô hình tuyến tính trên ứng dụng Web
Hình 2.6: Kết quả trả về từ mô hình học sâu trên ứng dụng Web
Website thuộc bản quyền của Viện Toán Ứng Dụng và Tin học, Đại Học Bách Khoa Hà Nội
Một số ứng dụng của mạng mờ - tự mã hóa
3.1 Mạng tự mã hóa và ứng dụng
Mạng tự mã hóa (Autoencoder) [5] là một mạng nơ-ron nhân tạo, tự cấu trúc lại tập dữ liệu đầu vào dựa trên các đặc trưng chính. Mạng được cấu tạo từ hai bộ phận chính:
• Encoder: dùng để chuyển hóa đầu vào x vào lớp ẩnH thông qua hàm chuyển h= f(x) =σ(W1x+b1)
• Decoder:dùng để tái cấu trúc dữ liệu đầu vàox’=g(h) =σ(W2h+b2)
Trong đó σ là hàm kích hoạt và bi là bộ vec-tơ trọng số tương ứng.
WiεℜIdi×Odi là ma trận tham số cho lớp thứ i, biến đổiIdi chiều đầu vào thành
Odi chiều đầu ra tương ứng. Hàm mất mát của mạng được tính thông qua giá trị đầu vào x và giá trị tự cấu trúc x’. Công thức xác định hàm mất mát của
mạng thường được sử dụng bởi 2 công thức sau:
minL =minE(x,x’) =minkx−x’k (3.1)
L(x−x’) =−
M ∑ c=1
Decoder Encoder Original Input x Reconstructed Output x Latent Representation H Hình 3.1: Mô hình mạng Autoencoder [39]
Có rất nhiều loại mạng tự mã hóa khác nhau, một vài mô hình thường được sử dụng phổ biến bao gồm mạng mạng tự mã hóa cơ bản (Vanilla Au- toencoder), mạng tự mã hóa nhiều lớp (Deep Autoencoder) và mạng tự mã hóa đặc chỉnh (Regularized Autoencoder) [18].
• Mạng tự mã hóa cơ bản (VA) là mô hình mạng bao gồm duy nhất một lớp ẩn H với số chiều nhỏ so với dữ liều đầu vào. VA tự cấu trúc lại đầu vào dựa vào hàm tối ưu Adam và hàm mất mát được tính bằng trung bình bình phương sai số.
• Mạng tự mã hóa nhiều lớp (DA) được coi là sự kế thừa từ VA với 3 lớp ẩn đẩy đủ. Do đó, DA nhận biết được nhiều đặc trưng hơn trong quá trình phân lớp, nâng cao được hiệu năng của bài toán phân lớp.
• Mạng tự mã hóa đặc chỉnh (RA) được tạo rằng bằng cách thêm một số thuộc tính khác vào mạng, như độ thưa thớt và thứ hạng đầu vào. Từ đó, mạng có thể nhận biết và tổng hợp được các trường hợp không được
thể hiện rõ ở tập dữ liệu đầu vào. Ngoài ra, RA cũng được sử dụng như một bộ giải mã hoặc khữ nhiễu dữ liệu khi cần thiết.
Ngoài ra, RA cũng có thể sử dụng kết hợp cùng một kiến trúc học sâu khác để hình thành mạng tự mã hóa đặc chỉnh nhiều lớp (Regularized Deep Autoencoder - RDA). Mạng Autoencoer có thể sử dụng theo nhiều cách khác nhau như lọc nhiễu, trích chọn đặc trưng dữ liệu.
Mạng tự mã hóa có nhiều biến thế và nhiều thiết kế khác nhau, việc số chiều đầu vào và đầu ra bằng nhau là không cần bắt buộc, đồng thời tính đối xứng của mạng cũng có thể được tùy biến trong một số trường hợp.
Mạng tự mã hóa được ứng dụng trong nhiều lĩnh vực khác nhau nhờ khả năng tái cấu trúc cũng với độ linh hoạt của mạng. Một số ứng dụng có thể kể đến bao gồm:
• Giảm chiều dữ liệu và trích chọn đặc trưng: Một trong những điểm mạnh nhất của mạng là khả năng giảm chiều và trích chọn đặc trưng một cách tự động [55]. Nếu các bài toán trích chọn đặc trưng thông thường cần sự góp mặt của chuyên gia, cả về toán học và bài toán chuyên môn, thì mạng Autoencoder cho phép tách từng phần của mạng để làm trích chọn đặc trưng. Sau quá trình huấn luyện, việc giữ lại toàn bộ các lớp Encoder giúp thu được một mạng trích chọn đặc trưng, với các đặc trưng thu được là các đặc trưng tốt nhất cho quá trình tái cấu trúc, kỳ vọng sẽ hiệu quả với các bài toán khác. Đi sâu hơn, không chỉ là lớp giữa, mà việc cắt bất kỳ phân lớp nào trong mạng cũng giúp thu được một mạng trích chọn đặc trưng
• Phân lớp và nhận biết bất thường: Có nhiều phương khác nhau để tiến hành phân lớp với mạng tự mã hóa. Phương thức đơn giản nhất là kết hợp với các thuật toán phân lớp khác sau quá trình trích chọn đặc trưng [55]. Một cách tiếp cận khác, đối với bài toán phân lớp và nhậm biết bất trường, mạng sẽ tự học và tái cầu trúc lại chính mạng, và giá trị sai số có thể được dùng để là mốc tìm kiếm cho việc phân lớp và nhận
biết bất thường, chi tiết về ngưỡng sẽ được trình bày trong bài toán cụ thể
• Tiền xử lý dữ liệu:Mạng tự mã hóa có nhiều ứng dụng trong việc tiến xử lý dữ liệu. Đầu tiên, mạng cho phép lọc bớt hoặc thêm một số đặc trưng riêng vào các đặc trưng, trước khi tiến hành tái cầu trúc. Điều này giúp mạng có khẳ năng tinh chỉnh dữ liệu vô cùng hiệu quả, với việc lọc nhiễu hoặc thêm nhiễu tùy ý, phụ thuộc vào mục đích sử dụng. Đặc biệt, với việc thêm vào một số đặc trưng, mạng hoàn toán có thể tạo ra các dữ liệu mới, giúp đa dạng hóa dữ liệu cho việc huấn luyện. Quá trình tiền xử lý sử dụng mạng Autoencode được sử dụng phổ biến trong quá trình lọc ảnh [66].
• Máy dịch: Máy dịch (Neural machine translation), là một ứng dụng đặc biệt của khai phá dữ liệu, với việc dịch các chuỗi từ từ ngôn ngữ A sang ngôn ngữ B. Mạng Autoencode có thể được áp dụng cho bài toán bằng cách mô hình hóa ngồn ngữ A ở đầu vào và ngôn ngữ B ở đầu ra. Quá trình mã hóa - giải mã (Encoder-Decoder) chính là quá trình chuyển đổi ngôn ngữ [6]. Ngôn ngữ B có thể là ngôn ngữ có văn phong tốt hơn, đẩy đủ hơn cho bài toán gợi ý, hoặc một ngôn ngữ khác trong bài toán về dịch thuật
Việc thêm logic mờ vào mạng tự mã hóa được em kỳ vọng sẽ tăng thông tin đặc trưng đầu vào, giúp mô hình có thể tái cầu trúc tốt hơn, từ đó có hiệu năng cao hơn trong các bài toán thực tế. Cấu trúc mạng được đề xuất và trình bày chi tiết trong mục tiếp theo
3.2 Mạng học sâu mờ - tự mã hóa
Mạng mở - tự mã hóa (Fuzzy-Autoencoder), phát triển được từ mạng tự mã hóa, được thiết kế như Hình 3.2. Giống như mạng tự mã hóa truyền thống, mạng gồm hai pha chính là mã hóa (Encoder) và giải mã (Decoder), với mục
đích là tái cấu trúc là đầu vào cho các mục đích khác nhau. Trong quá trình thiết kế, mạng mờ - tự mã hóa được thêm vào một lớp mờ (Fuzzy layer), có nhiệm vụ chi tiết hóa đầu vào, với kỳ vọng giúp quá trình mã hóa, trích chọn được nhiều đặc trưng tốt hơn, phục vụ mục đích tái cấu trúc. Quá trình giải mờ được tích hợp luôn vào quá trình tái cấu trúc, việc tái cấu trúc với đầu ra là mục tiêu học đã thể hiện rõ điều này
Hình 3.2: Mô phỏng mạng Fuzzy-Autoencoder
Thêm vào đó, đối với các lớp mã hóa và giải mã, không chỉ có thể áp dụng mạng nơ-rơn truyền thống, mà các mô hình học sâu đã đề cập như LSTM, RNN. GRU cũng có thể thử dụng trong cấu trúc Autoencoder, thường được đối xứng hai bên để phục vụ quá trình tái cấu trục được tốt nhất
3.3 Ứng dụng mạng mờ - tự mã hóa trong bàitoán phân lớp và phát hiện bất thường toán phân lớp và phát hiện bất thường
3.3.1 Xác định ngưỡng bất thường
Một trong những vấn đề cốt lõi nhất, của bài toán phân lớp nói chung, hay bài toán xác định bất thường nói riêng, chính là tìm được một ngưỡng để phân tích bộ dữ liệu. Đơn giản nhất, với mô hình hai lớp, hoặc mô hình phát hiện bất thường, ngưỡng phân tách sẽ phân tách được tập dữ liệu đầu vào thành hai lớp riêng biết dựa theo các dữ liệu đã được gán nhãn. Các bài toán đã lớp tuy việc tìm ngưỡng có phức tạp hơn nhưng về bản chất là tương tự.
Việc xác định ngưỡng, thông thường được để xác định dựa trên trung bình của các lớp dữ liệu khác nhau. Tuy nhiên, việc tách lớp như vậy, cũng mang những đặc thù và tính chất của logic mờ, khi không phải lúc nào cũng thu được kết quả tốt nhất từ các làm đó. Việc xác định ngưỡng bất thường, được tùy chỉnh đặc thù cho các bài toán khác nhau, có thể dựa trên quan sát hoặc tình toán thực nghiệm, hoặc kinh nghiệm của nhà nghiên cứu. Ngưỡng được chọn có thể không cho kết quả chính xác cao nhất trong lý thuyết, nhưng lại đem hiệu năng sử dụng trong thực tế.
Ngưỡng luôn là việc chọn một hay nhiều phần của tập dữ liệu, khi ngưỡng không nằm ở trung bình tập, nghĩa là có thể chấp nhận một vùng trong toàn tập cho kết quả kém chính xác để một vài tập khác cho kết quả tốt hơn. Ví dụ như trong một bài toán về phát hiện hành vi bất thường trong tín dụng, ta có thể điều chỉnh ngưỡng sao cho các truy vấn có ít dấu hiệu khả nghi là bình thường, với độ rủi ro thấp, đồng thời cũng giảm tình trạng cảnh báo giả trong hệ thống. Nhưng trong một ví dụ khác, bài toán về phát hiện tội phạm, hoặc khủng bố, những hành đồng dù chỉ mang một chút hành vi cũng nên được điều tra và ngăn chặn, vì hậu quả khi để lọt một trường hợp là vô cùng lớn. Tổng quan, việc xác định ngưỡng chính là vấn đề quan trọng, ảnh hưởng đến các vấn đề về quyết định trong toán bộ hệ thống. Không chỉ trong phân tích và khai phá dữ liệu, việc xác định ngưỡng ra quyết định còn hiển hiện trong
chính những quyết định thường ngày của mỗi con người
Quay trở lại với với quá trình học huấn luyện mô hình một lớp, cụ thể là các mạng Autoencoder, dữ liệu được đưa vào là tập dữ liệu bình thường, sử dụng mô hình học một lớp. Mục tiêu là thu được Threshold (Ngưỡng bất thường) nhằm so sánh, xác định một truy vấn mới đến hệ thống có dấu hiệu tấn công không. Ngưỡng bất thường do em đề xuất có công thức dựa theo hàm mất mát của mạng Autoencoder.
Trong bài toán phân lớp, mạng Autoencoder tái cấu trúc lại bộ dữ liệu ban đầu, thu được tập các giá trị đầu vào xvà tập giá trị tái cấu trúcx’. Giá trị tái
cấu trúc lỗi (Reconstruction error) của mỗi truy vấn đầu vào được tính toán dựa hàm mất mát của mạng [39].
Thông qua tập Reconstruction error của quá trình huấn luyện, Threshold được đề xuất tính toán dựa trên giá trị kỳ vọngE¯ và phương sai s trung bình theo các công thức như sau:
¯ E = 1 N N ∑ i=1 kx−x’k= 1 N N ∑ i=1 ( n ∑ j=1 (xj−x0j)2) (3.3) s= s ∑Ni=1(Ei−E¯)2 N−1 (3.4) θ =E¯+α×s (3.5)
Trong đó,N vànlần lượt là số lượng mẫu và số chiều của dữ liệu đầu vào, sử dụng trong quá trình kiểm thử mô hình. hệ sốα được xác định dựa vào tập huấn luyện. Từ các kết quả thực nghiệm, Có thể nhận thấy nhận thấy với mỗi tập dữ liệu đầu vào khác nhau sẽ có một ngưỡng α khác nhau. Việc thiết lập được một α cho từng hệ thống khác nhau được xác định thông qua tính toán lặp trên tập dữ liệu đầu vào.
Một dữ liệu mới đến hệ thống được đưa qua quá trình tiền xử lý dữ liệu. Sau quá trình xử lý của mạng Autoencoder, thu được chỉ số Reconstruction error tương ứng. Dữ liệu được phân vào lớp bất thường khi Reconstruction error lớn hơn Threshold đã thu được từ quá trình huấn luyện.
3.3.2 Bài toán phát hiện bất thường trong môi trường mạng
Trong thời đại công nghiệp 4.0, cùng với sự bùng nổ của các thiết bị mạng là sự gia tăng các website phục vụ mọi ngành nghề. Rất nhiều website trong số đó tồn tại các lỗ hổng dễ dàng bị khai thác mà không có biện pháp phòng vệ hiệu quả. Các loại tường lửa ra đời nhằm ngăn chặn những hành vi khai thác trái phép tài nguyên này. Tuy nhiên, với sự phát triển quá nhanh của công nghệ, các tường lửa truyền thống không có khả năng giải quyết được vấn đề này nữa. Các dạng tấn công hiện nay là quá đa dạng và tinh vi, con người khó có thể nhận biết được. Chính vì vậy, trí tuệ nhân tạo được áp dụng như một nhân tố không thể thiếu trong việc phát triển tường lửa.
Phat hiện tấn công ứng dụng web là một lĩnh vực nghiên cứu với nhiều thách thức, đang được quan tâm trong nhiều năm trở lại. Kruegel và cộng sự [31] đã phát triển một IDS phân tích tấn công dựa trên đánh giá độ bất thường của các truy vấn trong nhật ký dữ liệu thu thập, phương pháp này không yêu cầu chương trình phát hiện thời gian thực, đồng thời tận dụng tối đa cấu trúc truy vấn nhằm làm bất lên sự bất thường. Ingham và cộng sự [23] đã giới thiệu một máy Otomat hữu hạn (DFA) sử dụng luật kết hợp nhằm giảm sự đa dạng ngôn ngữ của truy vấn và thuật toán Heuristics nhằm phát hiện và phân tách truy vấn bất thường. Tiếp đó, nhóm nghiên cứu của Wang đã giới thiệu một phương pháp phát hiện dựa trên tải trọng, gọi tắt là PAYL. Quá trình phát hiện tấn công là quá trình đánh giá sự tương quan giữa dữ liệu mới và bộ dữ liệu ban đầu. Một phương pháp khác được đề xuất bởi Chen [11], đã sử dụng 20 luật logic mờ để phát hiện tấn công XML với tỉ lệ nhận biết tiệm cận 100%. Nhìn chung, các phương pháp này đều dựa trên các nền tảng toán học cơ bản.
Hiện đại hơn, các phương pháp phát hiện bất thường công bố trong những năm gần đây do phần đều áp dụng trí tuệ nhân tạo. Để phát hiện được các truy vấn tấn công, các phương pháp truyền thống sẽ tiến hành trích chọn các đặc trưng của truy vấn HTTP giúp phân biệt sự sai khác giữa các truy vấn bình thường và bất thường. Các vec-tơ đặc trưng này là đầu vào cho các mô hình
phân lớp và ảnh hưởng trực tiếp đến độ chính xác của của chúng. Nguyễn Hải Thanh và cộng sự [42][53] đã trích chọn ra 30 đặc trưng đại diện cho một truy vấn HTTP, sau đó dùng các mô hình học có giám sát như C4.5, Random Forest, Random Tree, ... để phân loại truy vấn bất thường và bình thường. Tuy kết quả đánh giá trên bộ dữ liệu thử nghiệm tương đối tốt, nhưng các tác giả chưa chứng minh được tập đặc trưng này là phù hợp cho tất cả các hệ thống. Việc trích chọn tập đặc trưng phù hợp là một thách thức đối với các bài toán sử dụng phương pháp học máy truyền thống nói chung.
Trong những năm gần đây, các mô hình học sâu phát triển mạnh mẽ, được