Tổng quan
IoT (Internet of Things) đang thể hiện những tiềm năng của nó bằng cách kết hợp những công nghệ hiện đại như Trí tuệ nhân tạo, mạng không dây 5G, hệ thống tự động hoá và ứng dụng vào nhiều lĩnh vực khác nhau. Trong một hệ thống IoT có các thiết bị biên được kết nối với nhau thông qua một mạng không dây từ đó có thể truyền và xử lý dữ liệu. Như vậy để có được hiệu suất hoạt động ổn định và có hiệu quả cao, cần chú trọng đến khả năng kết nối không dây của các thiết bị trong mạng IoT.
Hiện nay có hai phương pháp chính để đánh giá chất lượng kết nối không dây là phương pháp dựa trên phần cứng/mềm và phương pháp sử dụng máy học. Phương pháp đầu tiên tỏ ra không hiệu quả khi không thể bao quát hết tất cả các trường hợp và đưa ra một độ đánh giá chung, ngoài ra phụ thuộc nhiều vào yếu tố phần cứng hoặc phần mềm. Để khắc phục những vấn đề đó thì phương pháp sử dụng các mô hình máy học được áp dụng, để hiệu quả của các mô hình này cao thì cần có một bộ dữ liệu đa dạng về số mẫu và các đặc trưng thể hiện các tính chất của đường liên kết không dây.
Trong khoá luận này tôi sử dụng thiết bị biên Raspberry Pi 4 để thu thập dữ liệu, lựa chọn các đặc trưng thích hợp, sau đó thực hiện các phương pháp tiền xử lý dữ liệu. Từ tập dữ liệu đã xử lý, thực hiện thiết kế gợi ý (là quy trình thường được thực hiện trong các bài toán xử lý ngôn ngữ tự nhiên) và áp dụng mô hình ngôn ngữ DistilBert trên tập dữ liệu gợi ý để thu được một tập dữ liệu khác chứa các vector embedding (nhúng). Sau đó sử dụng thuật toán PCA để giảm kích thước đặc trưng của tập dữ liệu chứa các vector embedding và nối vào tập dữ liệu chính. Để biết được giảm còn bao nhiêu đặc trưng thì phù hợp, tôi giảm số đặc trưng lần lượt về 1, 2, …, 100 đặc trưng sau đó nối với tập dữ liệu chính và sử dụng tập dữ liệu mới để huấn luyện cho các mô hình máy học, nếu số lượng đặc trưng sau khi giảm nào khiến cho mô hình có độ chính xác cao nhất thì đó chính là số đặc trưng cần tìm.
Ngoài ra tôi sử dụng thêm 9 mô hình máy học, 5 mô hình giám sát để thực hiện tác vụ phân loại và 4 mô hình không giám sát để thực hiện tác vụ phân cụm, đa số mỗi mô hình sẽ được chọn một hoặc nhiều giá trị siêu tham số khác nhau để so sánh chất lượng một cách tổng quan nhất. Để đánh giá các mô hình phân loại tôi sử dụng độ đo Accuracy, Precision, Recall và F1-score, các mô hình phân cụm tôi sử dụng độ đo ARI. Như vậy mỗi mô hình sẽ có độ chính xác cao nhất ứng với số lượng đặc trưng của tập dữ liệu phụ, từ đó biết được cần bao nhiêu đặc trưng từ dữ liệu phụ để mô hình hoạt động tốt nhất.
Mục tiêu nghiên cứu
Để đánh giá một cách toàn diện được chất lượng của kết nối không dây, có hai thành phần không thể thiếu đó là tập dữ liệu để huấn luyện và thuật toán máy học được sử dụng. Đây là hai thành phần rất quan trọng, tập dữ liệu phải có tính đa dạng và phản ánh tốt chất lượng của mạng không dây thông qua các đặc trưng, trong khi đó một thuật toán máy học có khả năng học được một cách tổng quát tập dữ liệu và đưa ra độ chính xác cao, nhưng không xảy ra tình trạng quá khớp. Nếu hai yếu tố này được đáp ứng tốt thì kết quả cuối cùng rất đáng tin cậy, mặt khác củng cố phương pháp đánh giá đường liên kết không dây bằng các mô hình máy học tiềm năng hơn phương pháp cũ và sẵn sàng áp dụng trong môi trường công nghiệp.
Khoá luận này sử dụng tập dữ liệu tự thu thập để đảm bảo khác với những tập dữ liệu đã được cung cấp trên Internet, đồng thời mang tính đa dạng, chứa nhiều đặc trưng. Ngoài ra khoá luận này sử dụng các mô hình máy học giám sát và không giám sát khác nhau để đánh giá trên tập dữ liệu thu được và thực hiện so sánh các kết quả thu được. Các độ đo cũng được sử dụng để thể hiện được chất lượng của mô hình.
Qua nghiên cứu này tôi muốn cung cấp một tập dữ liệu hoàn toàn mới, phương pháp tăng cường đối với tập dữ liệu này và phương pháp tăng cường đối với các mô hình máy học, và thu được các mô hình cho ra độ chính xác hoặc độ ARI tốt nhất.
Phạm vi nghiên cứu
Đường liên kết không dây trong hệ thống IoT sử dụng rất nhiều công nghệ khác nhau như sóng Wifi, ZigBee, LoRa, Bluetooth, … nhưng trong khoá luận này tôi chỉ tập trung vào sóng Wifi, vì đây là một trong những công nghệ được sử dụng rộng rãi trong hệ thống IoT. Tuy Wifi có những nhược điểm nhất định, nhưng đây là công nghệ dễ dàng triển khai hệ thống IoT, ngoài ra còn giúp giảm chi phí triển khai khi sử dụng môi trường Wifi có sẵn.
Nghiên cứu được thực hiện trên tập dữ liệu tự thu thập với 62447 mẫu và 21 đặc trưng bao gồm nhãn, sử dụng thêm các bước tiền xử lý là điền giá trị thiếu, mã hoá dữ liệu, chuẩn hoá dữ liệu, cân bằng dữ liệu trên tập dữ liệu này. Xây dựng tập dữ liệu phụ với 62447 mẫu và 768 đặc trưng không bao gồm nhãn bằng cách thực hiện thiết kế gợi ý (prompt) trên tập dữ liệu chính từ đó thu được các vector embedding của tập dữ liệu chính. Dữ liệu cuối cùng sẽ được kết hợp từ hai tập dữ liệu này thông qua các thực nghiệm để tìm các kết hợp tốt nhất.
Sử dụng thêm 5 mô hình phân loại là Decision Tree, Random Forest, SVC, KNN, Gradient Boosting và 4 mô hình phân cụm là Gaussian Mixture, Bayesian Gaussian Mixture, K-means, Bisecting K-means để huấn luyện trên tập dữ liệu. Độ chính xác hoặc độ ARI của các mô hình sẽ là thước đo để tìm ra cách kết hợp dữ liệu chính và dữ liệu phụ tốt nhất. Ngoài ra sử dụng thêm phương pháp phân loại phân tầng và phân cụm theo tầng để cải thiện chất lượng cho ra của từng mô hình.
Nội dung đề tài
Hình 3.19 thể hiện quy trình thu thập dữ liệu được sử dụng trong khoá luận này, quy trình này bao gồm 4 bước chính được miêu tả sơ bộ ở dưới và cụ thể ở các mục sau.
Bước 1
Để bộ dữ liệu đánh giá chất lượng Wifi tổng quát nhất, thiết bị Raspberry Pi 4 được kết nối vào Wifi ở môi trường trong nhà (chiếm khoảng 80% bộ dữ liệu) và môi trường công cộng (chiếm khoảng 20% bộ dữ liệu). Đối với môi trường trong nhà, chất lượng mạng Wifi luôn tốt nhất bời vì không gian nhỏ và kín, đặc biệt trong các căn hộ chung cư, tạo điều kiện cho các sóng Wifi có thể bao phủ được khắp căn nhà, vì thế thay vì chỉ thu các mẫu tốt của chất lượng Wifi, tôi thu thêm các mẫu có chất lượng tệ hơn bằng cách đặt Raspberry Pi vào trong những chỗ khuất hoặc bao bọc bằng hộp nhôm hoặc đặt ra xa khỏi các modem phát Wifi để hạn chế thiết bị thu được sóng Wifi. Đối với môi trường công cộng thì đa số chất lượng Wifi khá thấp vì điều kiện phức tạp, môi trường rộng và ít kín đáo, ngoài ra số lượng người dùng truy cập mạng rất nhiều vì thế môi trường công cộng luôn phù hợp để thu các mẫu dữ liệu có chất lượng xấu. Ngoài ra các Wifi ở môi trường công cộng rất dễ bị tác động của các yếu tố môi trường xung quanh như sóng của các thiết bị điện tử làm nhiễu tín hiệu, chồng lấn kênh của các Wifi xung quanh, vật cản như tường, đồ nội thất, cây cảnh, thời tiết, … vì thế các mẫu thu được ở môi trường công cộng sẽ tăng tính đa dạng của tập dữ liệu.
Sau khi thu được một mẫu dữ liệu thì sử dụng các câu lệnh hiển thị thông tin của mạng không dây trong hệ điều hành Raspberry Pi OS14 (các câu lệnh có thể sử dụng ở hệ điều hành họ Linux). Các câu lệnh được sử dụng là: “iw dev wlan0 station dump”, “iwconfig wlan0”, “iwlist wlan0 scan”, “nmcli -f GENERAL,WIFI-PROPERTIES dev show wlan0″và “nmcli connection show “Wifi name””. Nhãn ban đầu của tập dữ liệu sẽ được gán dựa trên đặc trưng ”Link Quality”, nhãn này chỉ dùng để thống kê số lượng mẫu thu được ứng với từng nhãn, nhãn mới sẽ được gán lại ở mục 3.5, cụ thể nhãn ban đầu được gán theo quy tắc sau:
- Nếu ”Link Quality” ≥ 60 thì nhãn sẽ nhận giá trị 2.
- Ngược lại nếu ”Link Quality” ≥ 40 thì nhãn sẽ nhận giá trị 1.
- Ngược lại nhãn nhận giá trị 0.
Bước 2
Một đoạn code bash script được lưu ở trong thiết bị Raspberry Pi để tự động thực thi các câu lệnh ở trên, mỗi câu lệnh sẽ cho ra nhiều đặc trưng khác nhau của mạng Wifi. các đặc trưng của mạng không dây sẽ được chọn lọc thủ công, loại bỏ các đặc trưng không cần thiết như tên của mạng không dây được kết nối (SSID), IPv4, IPv6, địa chỉ MAC, … Sau đó lưu các đặc trưng này thành một danh sách và gán vào một biến trong bash script. Khi thực thi, đoạn code yêu cầu nhập số mẫu muốn thu thập, mỗi mẫu được thu cách nhau 3 giây để đảm bảo thu được đa dạng các thông tin của mạng không dây nhiều nhất có thể và đồng thời không tốn quá nhiều thời gian cho mỗi lần thu một mẫu mới.
Bước 3
Đoạn code Bash script sẽ tạo ra hai tệp là output.txt và data.csv:
- output.txt: Đây là tệp lưu các đặc trưng và giá trị của đặc trưng đó có được từ các câu lệnh chứa thông tin về sóng Wifi đã đề cập ở trên.
- data.csv: Đây là tệp chứa giá trị về các đặc trưng của sóng Wifi, đoạn code sẽ lưu danh sách đặc trưng vào đầu tệp này, sau đó mỗi mẫu sẽ được lưu cách nhau một dòng và từng giá trị cách nhau một dấu phẩy. Tập dữ liệu cuối cùng là tập được nối từ nhiều tệp dữ liệu con được thu ở nhiều nơi sẽ được sử dụng trong quá trình huấn luyện các mô hình.
Bước 4
Trong đoạn code có một vòng lặp để lặp qua từng phần tử trong danh sách đặc trưng, ứng với mỗi phần tử đặc trưng, sử dụng biểu thức chính quy (regex) để lấy ra thông tin tương ứng trong tệp outptut.txt, đối với các đặc trưng không có thông tin sẽ được gán cho giá trị chuỗi rỗng (giá trị “”). Khi vòng lặp kết thúc, tệp output.txt tự động xoá, các thông tin lấy được từ regex và danh sách đặc trưng sẽ được lưu vào tệp data.csv. Các nhãn của data.csv bao gồm 3 giá trị là ’0’, ’1’ và ’2’, đây là các nhãn gốc và các nhãn này sẽ được thay đổi để phù hợp hơn với bài toán.
(embedding_data).
Kết luận
Dựa trên các phương pháp và thực nghiệm đã trình bày ở các chương trước, chương cuối cùng được chia thành ba phần chính. Phần đầu tiên tập trung vào kết quả đạt được trong việc cải thiện chất lượng dữ liệu. Trong phần thứ hai, tôi tóm tắt kết luận của mình về tính hiệu quả của việc áp dụng các mô hình học máy vào tập dữ liệu kết hợp. Cuối cùng, phần thứ ba trình bày những quan sát liên quan đến việc cải thiện độ ARI của các mô hình học máy bằng cách tích hợp thêm mô hình cơ sở để hỗ trợ trong việc phân loại hoặc phân cụm.