2.1 .1Tổng quan
3.12 Sai số mơ hình dự báo
Để đánh giá chất lượng của mơ hình dự báo, tác giả dựa vào sai số dự báo của mơ hình đó. Sai số dự báo là sai lệch giữa giá trị thực và giá trị dự báo nhằm đánh giá chất lượng hay sự phù hợp của mơ hình dự báo. Sai số dự báo cũng nhằm giúp điều chỉnh các thơng số của mơ hình dự báo. Để đánh giá sai số của phương pháp dự báo có thể dùng một trong số các sai số sau:
MSE (Mean Square Error)
𝑀𝑆𝐸 = 1
𝑁 (𝑑 − 𝑧 ) (3.3)
MAE (Mean Absolute Error)
𝑀𝐴𝐸 = 1
𝑁 |𝑑 − 𝑧 | (3.4)
RMSE (Root Mean Square Error)
𝑅𝑀𝑆𝐸 = 1
𝑁 (𝑑 − 𝑧 ) (3.5)
Với N là tổng số các mẫu được dự đoán. dt là giá trị nhiệt độ thực tại thời điểm t zt là giá trị nhiệt độ dự đoán tại thời điểm t. 3.13 Độ chính xác của mơ hình
Trong các bài tốn phân loại, confusion matrix là một bảng đặc biệt dùng để minh họa hiệu suất của các thuật toán. Đây là một phương pháp đánh giá kết quả của những
Hình 3.9 Confusion matrix
Tác giả sẽ giải thích các chỉ số này trên phương diện áp dụng cho bài toán dự báo sự kiện mưa của đề tài.
- TP (True Positive): Số lần dự đốn chính xác sự kiện mưa. Nghĩa là mơ hình đã dự đốn mưa sẽ xảy ra dựa trên những thông số đưa vào mạng và thực tế mưa đã xảy với những thông số này.
- TN (True Negative): Số lần dự đốn chính xác sự kiện khơng mưa. Nghĩa là mơ hình đã dự đốn sẽ khơng có mưa xảy ra dựa trên những thơng số đưa vào mạng và thực tế mưa đã không xảy với những thông số này.
- FP (False Positive): Số lần dự đoán sai sự kiện mưa. Nghĩa là mơ hình đã dự đốn mưa sẽ xảy ra dựa trên những thơng số đưa vào mạng nhưng thực tế mưa đã không xảy với những thông số này.
- FN (False Negative): Số lần dự đốn sai sự kiện khơng mưa. Nghĩa là mơ hình đã dự đốn sẽ khơng có mưa xảy ra dựa trên những thông số đưa vào mạng nhưng thực tế mưa đã xảy ra với những thông số này.
Từ 4 chỉ số trên, ta có thể đánh giá mức độ chính xác của mơ hình thơng qua chỉ số Accuracy là phần trăm các lớp đã phân loại đúng trên tổng số dự đoán.
Accuracy =
( )
Chương 4:
THỰC NGHIỆM và ĐÁNH GIÁ 4.1 Tiền xử lý dữ liệu
Như đã trình bày ở 3.1, dữ liệu cần thiết để làm đầu vào cho mơ hình dự đốn là nhiệt độ: đơn vị là ºC và độ ẩm khơng khí: đơn vị là %. Hai Module cảm biến AQARA sẽ được đặt ở 2 khu vực cách xa nhau khoảng 500m và thu thập dữ liệu liên tục với thời gian cách nhau là 5 phút giữa các lần đo, sau đó gửi đến khối xử lý trung tâm, dữ liệu tại đây sẽ được lưu trữ lên máy chủ dưới dạng file json và sẵn sàng để đưa đến đầu vào của mơ hình huấn luyện dự báo.
Hình 4.1 Thơng số thời tiết json file
Ngồi ra, dữ liệu nhiệt độ và độ ẩm khơng khí trên website dự báo thời tiết tại thành phố Hồ Chí Minh cũng sẽ là đầu vào của mơ hình huấn luyện dự báo. Các dữ liệu này được thu thập với thời gian cách nhau là 1 tiếng và được lưu dưới dạng file csv.
Hình 4.2 Thơng số thời tiết csv file
Các giá trị của hai thông số này tương đối chênh lệch nhau. Giá trị của độ ẩm dao động từ 66 đến 88, giá trị nhiệt độ chỉ dao động trong khoảng từ 19 đến 38. Sự chênh lệch này yêu cầu phải chuẩn hóa dữ liệu đầu vào để các thông số đầu vào của mạng có vai trị như nhau và chúng ảnh hưởng đến kết quả đầu ra ở mức độ nhất định. Các đầu vào, đầu ra của mạng nơron hiếm khi được đưa trực tiếp vào mạng. Chúng thường được chuẩn hóa vào khoảng giữa cận trên và cận dưới của hàm chuyển (thường là giữa đoạn [0;1] hoặc [-1;1]). Chuẩn hóa min-max là phương pháp đơn giản nhất trong việc co giãn phạm vi của đặc trưng bằng việc co giãn chúng về phạm vi [0,1] hoặc [- 1,1]. Công thức chung được cho như sau:
𝑥′ = 𝑥 − 𝑚𝑖𝑛 (𝑥) max(𝑥) − min(𝑥)
(4.1)
Với x là giá trị ban đầu, x’ là giá trị sau khi chuẩn hóa, min(x) là giá trị nhỏ nhất của đặc trưng và max(x) là giá trị lớn nhất của đặc trưng.
4.2 Lựa chọn dữ liệu
Các dữ liệu nhiệt độ, độ ẩm sẽ được chia thành 2 tập dữ liệu bao gồm Training dataset và Testing dataset. Với Training dataset dùng để làm đầu vào để thực thi thuật toán huấn luyện mơ hình mạng. Testing dataset dùng để đánh giá độ chính xác của mơ
hình mạng sau khi huấn luyện. Hai tập dữ liệu này sẽ tập hợp các dữ liệu được lấy từ 2 nguồn sau:
- Dữ liệu nhiệt độ, độ ẩm từ cơ sở dữ liệu trên website dự báo thời tiết tại thành phố Hồ Chí Minh (từ 0h 1/4/2020 đến 0h 1/9/2020) và lưu trữ ở máy chủ dưới dạng file csv.
- Dữ liệu nhiệt độ, độ ẩm từ các nút cảm biến được thu thập tại các khu vực đặt nút cảm biến (từ 0h 20/4/2020 đến 0h 25/7/2020) và lưu trữ trên máy chủ dưới dạng file json.
Các dữ liệu này sẽ được tập hợp vào tập dữ liệu Training dataset và Testing dataset như bảng 4.1. Với tỉ lệ giữa training dataset và testing dataset của dữ liệu từ website là 70:30 và từ các nút cảm biến lưu trữ tại máy chủ là 70:30
Bảng biểu 4.1: Bảng phân chia dữ liệu huấn luyện và kiểm thử
Dataset Training dataset Testing dataset
Website 5000 data (70%) 2000 data (30%)
Sensor 65000 data (70%) 28000 data (30%)
4.3 Thực nghiệm thuật toán
Huấn luyện mạng sẽ được thực nhiệm nhiều lần với số nơron trong lớp ẩn khác nhau để tìm ra mơ hình mạng với thơng số tốt nhất.
Mơ hình sẽ được đưa vào tập dữ liệu training datatset đã được lựa chọn ở bảng 4.1 và phân loại thành 2 nhóm dữ liệu bao gồm:
- Dữ liệu với thuộc tính khơng gây mưa: các thông số thời tiết này được thu thập vào các ngày không mưa.
mảng dữ liệu này sẽ lần lượt được đưa vào để huấn luyện cho mạng và tăng khả năng học của mạng với nhiều trường hợp thời tiết khác nhau. Để thực nghiệm, tác giả sẽ thực hiện đưa vào 70 mảng (mỗi mảng tương ứng với 1000 thông số nhiệt độ và độ ẩm ở 500 thời điểm khác nhau) với 35 mảng dữ liệu ở nhóm khơng mưa và 35 mảng dữ liệu ở nhóm có mưa để thực hiện việc huấn luyện.
Đầu ra mong muốn của mơ hình này là 0 (khơng mưa) và 1 (có mưa) sẽ được so sánh với đầu ra huấn luyện của mơ hình sau mỗi vịng lặp để tính tốn sai số của mạng ở mỗi lần lặp. Sai số hàm lỗi và đầu ra huấn luyện sẽ được cập nhật sau mỗi vòng lặp huấn luyện khi ma trận trọng số đã được thay đổi ở lần lặp trước. Ma trận trọng số sẽ được khởi tạo ngẫu nhiên ở lần lặp đầu tiên.
Trong ứng dụng dự báo này, tác giả đã lần lượt thay đổi số nơron lớp ẩn để thử nghiệm. Để đánh kết quả dự báo của từng số lượng nơron lớp ẩn, tác giả sử dụng công thức (3.3), (3.4) và (3.5) và thu được kết quả như bảng 4.2:
Bảng biểu 4.2: Huấn luyện mơ hình mạng với số nơron lớp ẩn khác nhau Số liệu của Số liệu của
mơ hình mạng
Số liệu dự báo ứng với số lượng nơron lớp ẩn
5 10 20 50 100 200 500 1000 Đầu ra mơ hình (rain node) 0.9886 5475 0.9886630 9 0.988 1167 2 0.988 8765 5 0.988 8519 9 0.988 0482 3 0.9876 9783 0.98840805 Đầu ra mơ hình (no rain node) 0.0125 3389 0.0131913 2 0.012 8904 3 0.012 6587 1 0.012 1535 6 0.012 9603 0.01350966 0.01261208 Sai số hàm mất mát 0.047 0.048 0.049 0.047 0.046 0.049 0.05 0.048 Sai số MSE 0.0000 97 0.000 102 0.000 103 0.000 096 0.000 093 0.000 105 0.0001 12 0.0000 99 Sai số MAE 0.0098 0.010 1 0.010 2 0.009 8 0.009 6 0.010 2 0.0106 0.0099 Sai số RMSE 0.0098 0.0101 0.0102 0.0098 0.0097 0.0103 0.0106 0.009948
Thực nghiệm cho thấy, số nơron lớp ẩn là 100 nơron dự báo tốt nhất với sai số thấp nhất trên cả 3 phương pháp đánh giá sai số MSE, RMSE và MAE. Trong 3 phương pháp trên thì phương pháp tính sai số MSE cho sai số thấp nhất. Từ bảng 4.2, ta thấy nếu số lượng nơron lớp ẩn q ít hoặc q nhiều thì mạng sẽ cho độ chính xác khơng cao. Đặc biệt số lượng nơron lớp ẩn q lớn thì sai số giảm khơng đáng kể và quá trình học sẽ diễn ra lâu hơn dẫn đến việc tiêu tốn tài nguyên phần cứng.
Với kết quả trên, ta thực hiện huấn luyện mơ hình 100 noron ẩn với 100 vịng lặp để quan sát được quá trình huấn luyện của mạng. Đồng thời theo dõi kết quả ở từng lần lặp để đánh giá quá trình học.
Hình 4.3 Hàm mất mát Cross Entropy với 100 vòng lặp
Hàm mất mát Cross Entropy sẽ cho ta thấy được sự chênh lệch giữa đầu ra thực tế và đầu ra dự đốn. Qua mỗi lần lặp, mơ hình sẽ cố gắng cải thiện tỉ lệ của hàm mất mát tiến đến cực tiểu lý tưởng là 0. Với kết quả ở hình 4.3, ta có thể thấy hàm mất mát
Hình 4.4 Đầu ra mơ hình với 100 vịng lặp
Sau 100 lần lặp của quá trình huấn luyện ta thấy được đầu ra của mạng giảm từ 0.5187375 xuống 0.01352171 với nút đầu ra dự đốn khơng mưa và tăng từ 0.51940666 lên 0.98767733 với nút đầu ra dự đốn có mưa. Với kết quả ở hình 4.3, ta có thể thấy các nút đầu ra của mạng đang tiến dần đến dự đoán lý tưởng sau mỗi vòng lặp huấn luyện.
- Đầu ra dự đoán lý tưởng của nút ra dự đoán mưa là 1.
- Đầu ra dự đốn lý tưởng của nút ra dự đốn khơng mưa là 0.
Từ hai kết quả trên ở hình 4.3 và 4.4, ta có thể đánh giá mạng đang được huấn luyện có hiệu quả với các cấu trúc và tham số đã lựa chọn.
4.4 Kiểm thử thuật toán
Ta tiến hành kiểm thử mơ hình đã được huấn luyện trên với tập dữ liệu testing dataset đã được lựa chọn ở bảng 4.1 để kiểm tra khả năng dự đốn của mơ hình mạng so với dữ liệu thực tế.
Tập dữ liệu testing dataset sẽ được chia thành 30 tập test với mỗi tập test là 1000 dữ liệu nhiệt độ và độ ẩm ở 500 thời điểm khác nhau. Ta sẽ thực hiện 30 lần kiểm thử
tương ứng với 30 tập test này bằng mơ hình mạng đã được huấn luyện để đánh giá khả năng dự đoán của mạng sau khi đã huấn luyện.
Bảng biểu 4.3: Kiểm thử với tập dữ liệu testing dataset Confusion matrix Predict: No Predict: Yes Confusion matrix Predict: No Predict: Yes
Actual: No 13 0
Actual: Yes 3 14
Sau khi tiến hành kiểm thử lần lượt với 30 tập test, bảng 4.3 cho ta thấy được kết quả dự đoán so với thực tế của 30 lần thực hiện kiểm thử mơ hình huấn luyện.
Với bảng 4.3, ta có 27 lần dự đốn đúng trên tổng số 30 lần kiểm thử. Trong đó, 13 đại diện cho số lần dự đốn đúng rằng mưa sẽ khơng xảy ra và 14 là số dự đoán đúng rằng mưa sẽ xảy ra. Ngược lại, ta có 3 dự đốn sai trên tổng số 30 lần kiểm thử. Trong đó, 3 là số lần dự đốn khơng mưa nhưng thực tế là mưa đã xảy ra và 0 là số lần dự đốn có mưa nhưng thực tế là mưa đã khơng xảy ra. Độ chính xác của thuật tốn lan truyền ngược với mơ hình mạng nơron nhiều lớp là 90.0%.
4.5 So sánh thuật toán
Để chứng minh tính hiệu quả của thuật tốn lan truyền ngược với mơ hình mạng nơron, tác giả tiến hành huấn luyện và kiểm thử bằng các thuật toán khác với cùng tập dữ liệu huấn luyện và kiểm thử đã thực nhiệm như trên. Các thuật toán phổ biến dùng giải quyết các bài toán dự đoán như Logistic Regression, Naive Bayes, K- Nearest Neighbor, Decision Tree, Random Forest, Support Vector Machine lần lượt sẽ được huấn luyện và kiểm thử.
Sau khi thực hiện huấn luyện với tập dữ liệu training dataset cho tất cả thuật tốn, ta có được thời gian huấn luyện của từng thuật toán như sau:
Algorithm Training time (s) Neural Network 0.57
Naive Bayes 0.007
Support Vector Machine 0.005
K – Nearest Neighbor 0.003
Decision Tree 0.008
Random Forest 0.028
Logistic Regression 0.048
Với bảng 4.4, ta có thể thấy được mơ hình Neural Network có thời gian huấn luyện lâu nhất với 0.57 giây. Tiếp đến là mơ hình thuật tốn Logistic Regression với 0.048 giây và Random Forest với 0.028 giây. Các mơ hình Naive Bayes, SVM, KNN, Decision Tree có thời gian huấn luyện giao động trong khoảng thời gian từ 0.003 – 0.008 giây. Với kết quả trên, có thể thấy rằng mơ hình Neural Network có thời gian huấn luyện lâu nhất bởi tính chất tính tốn phức tạp và khả năng học sâu của mơ hình. Tác giả cũng tiến hành kiểm thử bằng testing dataset ở phần 4.1 với tất cả mơ hình đã huấn luyện trước đó bằng training dataset. Tỉ lệ dự đốn chính xác giữa các thuật tốn sẽ được thể hiện theo cơng thức tỉ lệ phần trăm độ chính xác Accuracy (3.5).
Bảng biểu 4.5: Phần trăm dự đoán của các thuật toán
Algorithm Accuracy (%)
Neural Network 90
Naive Bayes 76.6
Support Vector Machine 80
K – Nearest Neighbor 76.6
Decision Tree 83.3
Random Forest 60
Bảng 4.5 cho ta thấy được phần trăm dự đốn đúng của 7 mơ hình thuật tốn khi thực hiện kiểm thử với tập dữ liệu testing dataset.
Hình 4.5 Số phần trăm dự đốn chính xác của các thuật tốn
Sau khi thực hiện kiểm thử, ta có thể thấy rằng thuật tốn lan truyền ngược có tỷ lệ phần trăm độ chính xác cao hơn so với các thuật tốn cịn lại với 90%. Tiếp đến là thuật toán Logistic Regression với 86.6%. Các thuật toán Naive Bayes, SVM, KNN, Decision Tree có tỉ lệ dao động từ 76.6% đến 83.3%. Và cuối cùng là Random Forest với tỉ lệ thấp nhất là 60%.
So sánh kết quả độ chính xác của các thuật tốn ở bảng 4.5 với thời gian huấn luyện ở bảng 4.4, ta có thể thấy rằng các thuật tốn có thời gian huấn luyện dài sẽ cho kết quả dự đốn tốt hơn so với các mơ hình thuật tốn có thời gian huấn luyện ngắn. Mơ
từ 76.6% đến 83.3% nhưng có thời gian huấn luyện ngắn hơn so với 2 mơ hình thuật tốn trước, dao động từ 0.003 – 0.008 giây. Điều này cho ta thấy rằng thời gian huấn luyện mơ hình sẽ tỷ lệ nghịch với độ chính xác của mơ hình thuật tốn.
Tuy nhiên, mơ hình thuật tốn Random Forest có thời gian huấn luyện lâu hơn các thuật toán Naive Bayes, SVM, KNN, Decision Tree nhưng độ chính xác dự đốn lại khá thấp với 60%. Điều này chứng tỏ Random Forest chưa huấn luyện hiệu quả với các thông số đã chọn hoặc mơ hình này chưa thích hợp để xử lý các thông số dự liệu về thời tiết.
Từ hai kết quả trên ở bảng 4.4 và 4.5, ta có thể đánh giá mơ hình thuật tốn Neural Network đang được huấn luyện có hiệu quả. Đồng thời, mơ hình cũng phù hợp để xử lý các thơng số dữ liệu thời tiết và thích hợp để tích hợp vào hệ thống dự báo thời tiết mà tác giả đang xây dựng.
4.6 Nhận xét thuật toán
Qua thực nghiệm ta thấy hệ thống dự báo thời tiết đã lựa chọn được những tham số để mạng huấn luyện tốt nhất: hằng số học 0.1, số nơron lớp ẩn là 100. Đồng thời, cập nhật trọng số ngay khi huấn luyện từng mẫu với hàm tính lỗi, thời gian dự báo gần như tức thời.
Ngoài đặc trưng về dữ liệu, một yếu tố khác trong quá trình huấn luyện mạng cần quan tâm là nếu số lần thực hiện điều chỉnh các tham số của mạng q ít sẽ dẫn đến tình trạng là khả năng tổng quát hóa của mạng rất kém.
Để có thể xem xét, đánh giá được khả năng tổng quát hóa của mạng, cần thực hiện