(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây(Luận văn thạc sĩ) Ứng dụng mạng Neuron để dự báo mưa với cơ sở dữ liệu được thu thập trong khu vực triển khai mạng cảm biến không dây
LỜI CAM ĐOAN Học viên cam đoan công trình nghiên cứu học viên Các số liệu, kết nêu luận văn trung thực chưa công bố công trình khác Tp Hồ Chí Minh, ngày … tháng … năm 2020 (Ký tên ghi rõ họ tên) ix LỜI CẢM ƠN Học viên xin bày tỏ lòng kính trọng biết ơn sâu sắc tới Thầy PGS.TS Võ Minh Huân, người tận tình hướng dẫn suốt thời gian học viên bắt đầu thực hoàn thành luận văn Xin chân thành gửi lời cảm ơn đến q Thầy, Cơ chủ nhiệm ngành, môn, Khoa Điện Trường Đại học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh tạo điều kiện để học viên học tập, nghiên cứu hoàn thành luận văn Sau học viên xin gửi lời cảm ơn chân thành đến gia đình, đồng nghiệp, bạn bè tạo điều kiện tốt nhất, việc trao cho học viên niềm tin nổ lực cố gắng để hoàn thành luận văn khóa học thân học viên Tp Hồ Chí Minh, ngày: … tháng: … năm 2020 (Ký ghi rõ họ tên) Học viên x TÓM TẮT Hiện giới hệ thống dự báo thời tiết thực nhiều phương pháp khác như: Synop, thống kê, phân tích ảnh mây vệ tinh, sản phẩm Radar thời tiết, dự báo thời tiết mơ hình số trị,… Trong phương pháp lại có nhiều hình thức triển khai mơ hình dự báo cụ thể Mỗi phương pháp có ưu điểm nhược điểm riêng Việc ứng dụng phương pháp tùy thuộc vào tài nguyên hệ thống, trang thiết bị kỹ thuật, kiến thức chuyên mơn người triển khai, u cầu mục đích mà hệ thống hướng đến Trong thời gian gần đây, thuật toán máy học ứng dụng rộng rãi cho việc giải toán dự đoán phức tạp có dự báo thời tiết Với ưu điểm vượt trội tính linh hoạt, độ xác cao, đa dạng ứng dụng, xử lý liệu có tính biến động theo thời gian,… Các thuật tốn máy học mang tính khách quan đáp ứng nhiều yêu cầu thực tiễn so với phương pháp trước Phương pháp dự báo sử dụng mạng nơron nhân tạo phương pháp dự báo sử dụng mơ hình có khả tiếp thu ghi nhớ liệu khứ để cập nhật tham số Nếu lựa chọn tham số tối ưu kết dự báo có độ xác cao Đây mơ hình lựa chọn cho toán dự báo mưa luận văn Mục đích luận văn thiết kế hệ thống dự báo mưa dựa mạng nơron nhân tạo kết hợp với mạng cảm biến không dây Mạng nơron nhân tạo xử lý thông số môi trường thu thập từ mạng cảm biến để đưa dự báo kiện mưa Mơ hình mạng nơron xây dựng lựa chọn thông số phù hợp sai số dự đoán Hiệu suất hệ thống dự báo thời tiết với mơ hình mạng nơron xây dựng kiểm chứng thông qua trình thực nghiệm với lượng liệu thu thập từ thực tế Kết dự báo đánh giá so sánh độ xác với mơ hình thuật tốn máy học khác Các kết dự báo giúp người dùng hệ thống tự động đưa định phù hợp để đảm bảo sản phẩm môi trường tốt để phát triển xi ABSTRACT Currently in the world weather forecast systems are implemented by many different methods such as: Synop, statistics, satellite image analysis, weather radar, numerical weather prediction, … In each of these methods, there are many specific implementation forms and prediction models Each method has its own advantages and disadvantages The application of the method depends on the resources of the system, technical equipment, the professional knowledge of the implementers, requirements and purposes that the system aims to In recent times, machine learning algorithms are widely applied to solve complex nonlinear problems including weather forecasting With outstanding advantages such as flexibility, high accuracy, variety of applications, data processing with time fluctuations, … Machine learning algorithms are objective and meet many requests practical requirement than the previous methods Prediction method using artificial neural networks is a predictive method using a model capable of “learning” from past data, able to update parameters If the optimal parameters are selected, the forecast results are also highly accurate This is the model chosen for the rain forecast problem of the thesis The purpose of the thesis is to design a rain forecasting system based on artificial neural networks combined with wireless sensor networks The neural network will process the environmental parameters collected from the sensor network to make a forecast of the rain event Neural network model will be built and selected suitable parameters based on prediction errors Predictive error is the difference between the real value and the forecasted value in order to assess the quality or suitability of the forecasting model The performance of the weather forecasting system with the built neural network model will be verified through an experimental process with the amount of data collected from reality The forecast results will be evaluated and compared the accuracy with other machine learning algorithm models The forecast results help users or automative systems make the right decisions to ensure the product is always in the best environment for development xii MỤC LỤC LÝ LỊCH KHOA HỌC i LỜI CAM ĐOAN ix LỜI CẢM ƠN x TÓM TẮT xi ABSTRACT xii MỤC LỤC xiii DANH SÁCH CHỮ VIẾT TẮT xvii DANH MỤC HÌNH xviii DANH MỤC BẢNG xx Chương TỔNG QUAN Đặt vấn đề Mục tiêu giới hạn đề tài Phương pháp nghiên cứu Tổng quan tình hình nghiên cứu Nội dung luận văn Chương CƠ SỞ LÝ THUYẾT Mạng cảm biến không dây 2.1.1 Khái niệm 2.1.2 Nút cảm biến 2.1.3 Đặc điểm cấu trúc mạng cảm biến 2.1.4 Kiến trúc giao thức mạng cảm biến không dây 10 2.1.5 Ưu điểm, nhược điểm mạng cảm biến không dây 11 xiii 2.1.6 Sự khác WSN mạng truyền thống 12 Công nghệ truyền thông không dây Zigbee 12 2.2.1 Tổng quan 12 2.2.2 Đặc điểm 13 2.2.3 Cấu trúc tầng Zigbee 13 2.2.4 Thành phần mạng Zigbee 15 2.2.5 Mơ hình mạng Zigbee 16 2.2.6 Zigbee giao thức truyền thông khác 18 Mạng nơron nhân tạo 18 2.3.1 Tổng quan 18 2.3.2 Nơron sinh vật 19 2.3.3 Nơron nhân tạo 20 2.3.4 Mạng nơron nhân tạo 23 2.3.5 Quá trình học 26 2.3.6 Mạng perceptron lớp 28 2.3.7 Mạng perceptron nhiều lớp 29 2.3.8 Thuật toán lan truyền ngược 30 2.3.9 Thiết kế cấu trúc mạng 34 2.3.10 Một số yếu tố ảnh hướng đến trình học 34 Các thuật toán máy học khác 36 2.4.1 Mơ hình thuật tốn SVM 36 2.4.2 Mơ hình thuật tốn Naive Bayes 37 2.4.3 Mơ hình thuật tốn Decision Tree 37 xiv 2.4.4 Mơ hình thuật tốn Logistic Regression 38 2.4.5 Mơ hình thuật tốn K-Nearest Neighbor 39 2.4.6 Mơ hình thuật toán Random Forest 39 Chương THIẾT KẾ HỆ THỐNG 41 Tổng quan mơ hình 41 3.1.1 Thu thập liệu 43 3.1.2 Máy chủ lưu trữ 44 3.1.3 Thuật toán 44 Sơ đồ phần cứng hệ thống 45 Thiết kế phần cứng 46 3.3.1 Khối xử lý trung tâm 46 3.3.2 Nút cảm biến 47 3.3.3 Khối truyền nhận liệu 48 3.3.4 Truyền nhận liệu đến máy chủ 49 Lưu đồ hoạt động hệ thống 50 Xây dựng mơ hình dự báo sử dụng mạng nơron 52 3.5.1 Các bước xây dựng mơ hình 52 3.5.2 Xác định cấu trúc mạng 52 3.5.3 Huấn luyện mơ hình mạng 55 3.5.4 Thuật toán lan truyền ngược 56 Sai số mô hình dự báo 57 Độ xác mơ hình 58 Chương THỰC NGHIỆM ĐÁNH GIÁ 60 xv Tiền xử lý liệu 60 Lựa chọn liệu 61 Thực nghiệm thuật toán 62 Kiểm thử thuật toán 65 So sánh thuật toán 66 Nhận xét thuật toán 69 Đánh giá hệ thống 70 4.7.1 Ưu điểm 70 4.7.2 Nhược điểm 70 Chương KẾT LUẬN 71 Kết luận 71 5.1.1 Kết đạt 71 5.1.2 Hạn chế 71 Hướng phát triển 72 Tài Liệu Tham Khảo 73 Phụ Lục 77 A Code Neural Network 77 xvi DANH SÁCH CHỮ VIẾT TẮT NN: Neural Network ANN: Artificial Neural Network BPA: Back Propagation Algorithm MLP: Multilayer Layer Perceptron IEEE: Institute of Electrical and Electronics Engineers MAE: Mean Absolute Error MSE: Mean Square Error MAPE: Mean Absolute Percent Error RMSE: Root Mean Square Error SVM: Support Vector Machine WSN: Wireless Sensor Network K-NN: K-Nearest Neighbors UART: Universal Asynchronous Receiver – Transmitter WIFI: Wireless Fidelity xvii DANH MỤC HÌNH Hình 2.1 Thành phần nút cảm biến [10] Hình 2.2 Cấu trúc mạng cảm biến khơng dây [10] Hình 2.3 Kiến trúc mạng cảm biến khơng dây [11] 10 Hình 2.4 Cấu trúc tầng Zigbee [13] 14 Hình 2.5 Thành phần mạng Zigbee [13] 15 Hình 2.6 Mơ hình mạng Zigbee [13] 17 Hình 2.7 Các giao thức khơng dây phổ biến [14] 18 Hình 2.8 Nơron sinh học [16] 20 Hình 2.9 Nơron nhân tạo [17] 20 Hình 2.10 Hàm chuyển đổi [17] 22 Hình 2.11 Các hàm chuyển đổi phổ biến [18] 23 Hình 2.12 Kiến trúc tổng quát ANN [17] 23 Hình 2.13 Kiến trúc ANN [16] 24 Hình 2.14 Các kiểu mạng nơron 25 Hình 2.15 Mạng truyền thẳng [19] 25 Hình 2.16 Mạng phản hồi [19] 26 Hình 2.17 Các phương pháp học máy [15] 27 Hình 2.18 Mạng perception lớp [20] 29 Hình 2.19 Mạng perception nhiều lớp [20] 30 Hình 2.20 Thuật tốn lan truyền ngược [15] 31 Hình 2.21 Phân tích thuật tốn SVM [22] 36 Hình 2.22 Cấu trúc mơ hình Decision Tree [24] 38 xviii mẫu học Khi đó, nên xem xét đến khả sử dụng thêm lớp ẩn với số nơron nhỏ giảm bớt số nơron lớp ẩn thứ Đánh giá hệ thống 4.7.1 Ưu điểm - Hệ thống có mức tiêu thụ lượng thấp - Xây dựng hệ thống truyền nhận công nghệ Zigbee với nhiều nút cảm biến đặt nhiều khoảng cách xa - Hệ thống thu thập lưu trữ thông số môi trường diễn ổn định - Khối cảm biến có khả mở rộng phạm vi số cảm biến - Có khả cập nhật dự báo thời tiết tức thời 4.7.2 Nhược điểm - Vì hệ thống dự báo thời tiết nên ln đặt ngồi trời, thời tiết xấu mưa to, gió lớn làm hỏng hệ thống dẫn đến làm gián đoạn việc lấy liệu từ cảm biến - Thông số liệu huấn luyện thu thập chưa nhiều, chưa đủ đặc trưng nên số trường hợp dự báo sai 70 Chương 5: KẾT LUẬN Kết luận 5.1.1 Kết đạt Xây dựng mơ hình thu thập liệu ổn định, tiêu tốn lượng điểm thu thập hoạt động nhiều khu vực khác Xây dựng thành công hệ thống dự báo thời tiết thuật toán máy học áp dụng vấn đề lý thuyết tìm hiểu mơ hình thu thập liệu khơng dây, mạng nơron truyền thẳng nhiều lớp, thuật toán lan truyền ngược bước cần thực phân tích, thiết kế xây dựng ứng dụng cho toán dự báo thời tiết Thuật toán để dự đoán kiện mưa thông số thời tiết đáp ứng yêu cầu đặt ra, dự đốn với độ xác cao Các thực nghiệm cho thấy, huấn luyện tốt tập liệu đầy đủ hoàn thiện với tham số lựa chọn cẩn thận kết dự báo đạt độ xác cao Luận văn có nghiên cứu để thực nghiệm dự báo thông số thu thập với mơ hình thuật tốn khác như: Logistic Regression, Naive Bayes, K-Nearest Neighbor, Decision Tree, Random Forest, Support Vector Machine Đồng thời, so sánh hiệu khả dự báo mơ hình thuật tốn với mơ hình mạng nơron nhân tạo nhiều lớp sử dụng thuật toán lan truyền ngược mà học viên đề xuất cho hệ thống luận văn 5.1.2 Hạn chế Với thời gian có hạn, liệu huấn luyện thu thập chưa nhiều, chưa đủ đặc trưng nên mơ hình đưa kết thời điểm mùa khơng có ý nghĩa lớn thực tiễn, lúc giao mùa phải huấn luyện lại mạng Để mơ hình dự báo thu kết cao tập liệu huấn luyện phải lớn, phải đặc trưng cho mùa 71 Hệ thống đôi lúc truyền nhận chưa ổn định, số thời điểm thông số từ nút cảm biến gửi đến xử lý trung tâm thông số lỗi Hướng phát triển Trong tương lai, học viên tiếp tục nghiên cứu sâu rộng mạng nơron nhân tạo Kết hợp lai ghép mạng nơron nhân tạo với phương pháp khác để tối ưu khả tiên đoán mạng nơron nhân tạo nhằm hướng tới việc áp dụng mạng nơron vào dự báo vấn đề thực tế Mở rộng phạm vi thu thập liệu cách gia tăng số lượng khối cảm biến nhiều khu vực với khoảng cách lớn hơn, đồng thời tích hợp mạch pin để tiết kiệm lượng Cải thiện khả dự đoán với tập liệu lớn Mở rộng thời gian thu thập liệu thu thập thêm nhiều thông số môi trường khác để tăng khả tổng qt hóa mơ hình dự báo đa dạng yếu tố đầu vào với nhiều liệu thời tiết diễn thời điểm năm Hệ thống tích hợp chức cảnh báo cố, ghi nhận thay đổi bất thường xảy hệ thống máy chủ 72 Tài Liệu Tham Khảo [1] Tác động biến đổi khí hậu đến tự nhiên xã hội Internet: Tác động biến đổi khí hậu đến tự nhiên xã hội (quangnam.gov.vn), 12/06/2018 [2] Cảnh báo thời tiết cực đoan ảnh hưởng đến sản xuất nông nghiệp Internet: Cảnh báo thời tiết cực đoan ảnh hưởng đến sản xuất nông nghiệp (nongdan.com.vn), 15/02/2019 [3] Tăng liệu thời tiết nơng nghiệp, giảm rủi ro biến đổi khí hậu Internet: Tăng liệu thời tiết nông nghiệp,giảm rủi ro biến đổi khí hậu | baotintuc.vn, 20/08/2017 [4] Các phương pháp dự báo thời tiết hàng không Việt Nam Internet: Các phương pháp dự báo thời tiết hàng không Việt Nam (vatm.vn), 20/09/2018 [5] S Ray A Quick Review of Machine Learning Algorithms 2019 International Conference on Machine Learning, Big Data, Cloud and Parallel Computing (COMITCon), 2019, pp 35-39 [6] T Truong, A Dinh and K Wahid An IoT environmental data collection system for fungal detection in crop fields, 2017 IEEE 30th Canadian Conference on Electrical and Computer Engineering (CCECE), 2017, pp 1-4 [7] J K Roy, D Gupta and S Goswami An improved flood warning system using WSN and Artificial Neural Network 2012 Annual IEEE India Conference, 2012, pp 770-774 [8] Mohsen Hayati, Zahra Mohebi Application of Artificial Neural Networks for Temperature Forecasting World Academy of Science, Engineering and Technology, Vol 4, Issue 1, pp 662-666, 2007 73 [9] L P Dinesh Kumar, S Shakena Grace, A Krishnan, V M Manikandan, R Chinraj and M R Sumalatha Data filtering in wireless sensor networks using neural networks for storage in cloud, 2012 International Conference on Recent Trends in Information Technology, 2012, pp 202-205 [10] Trịnh Lương Miên Tổng quan mạng cảm biến khơng dây Tạp chí tự động hóa ngày nay, số 157, tr 1-2, 2014 [11] Ian F Akyildiz and Mehmet Can Vuran Wireless Sensor Network John Wiley & Sons Ltd, 2010, pp 10-15 [12] Jose A Gutierrez; Edgar H Callaway; Raymond L Barrett IEEE Std 802.15.4 Technical Overview Low-Rate Wireless Personal Area Networks: Enabling Wireless Sensors with IEEE 802.15.4, 2007 [13] C M Ramya, M Shanmugaraj and R Prabakaran Study on ZigBee technology 2011 3rd International Conference on Electronics Computer Technology, 2011, pp 297-301 [14] M Hasan, P Biswas, M T I Bilash and M A Z Dipto Smart Home Systems: Overview and Comparative Analysis 2018 Fourth International Conference on Research in Computational Intelligence and Communication Networks (ICRCICN), 2018, pp 264-268 [15] Tạ Quốc Dũng, Lê Thế Hà, Phạm Duy Khang Ứng dụng mạng Neural nhân tạo dự báo độ rỗng Tạp chí dầu khí, số 7, tr 18-27, 2019 [16] A Sperduti An overview on supervised neural networks for structure Proceedings of International Conference on Neural Networks, 1997, pp 2550-2554 [17] M Chen, U Challita, W Saad, C Yin and M Debbah Artificial Neural Networks-Based Machine Learning for Wireless Networks: A Tutorial IEEE Communications Surveys & Tutorials, vol 21, no 4, pp 3039-3071, 2019 74 [18] C Bircanoğlu and N Arıca A comparison of activation functions in artificial neural networks 2018 26th Signal Processing and Communications Applications Conference (SIU), 2018, pp 1-4 [19] M Verhelst and B Moons, Embedded Deep Neural Network Processing: Algorithmic and Processor Techniques Bring Deep Learning to IoT and Edge Devices IEEE Solid-State Circuits Magazine, vol 9, no 4, pp 55-65, Fall 2017 [20] I R Widiasari, L E Nugroho and Widyawan Deep learning multilayer perceptron (MLP) for flood prediction model using wireless sensor network based hydrology time series data mining 2017 International Conference on Innovative and Creative Information Technology (ICITech), 2017, pp 1-5 [21] A J Smola B Schölkopf A tutorial on support vector regression Statistics and Computing, tập 14, số 3, pp 199-222, 2004 [22] S Nurunnahar, D B Talukdar, R I Rasel and N Sultana A short term wind speed forcasting using SVR and BP-ANN: A comparative analysis 2017 20th International Conference of Computer and Information Technology (ICCIT), 2017, pp 1-6 [23] M Muthmainnah, M Ashar, I M Wirawan and T Widiyaningtyas Time Series Forecast for Rainfall Intensity in Malang City with Naive Bayes Methodology 2018 International Conference on Sustainable Information Engineering and Technology (SIET), 2018, pp 137-14 [24] A Geetha and G M Nasira.Data mining for meteorological applications: Decision trees for modeling rainfall prediction 2014 IEEE International Conference on Computational Intelligence and Computing Research, 2014, pp 1-4 [25] S C Sreenivasa, S K Agarwal and R Kumar Short term wind forecasting using logistic regression driven hypothesis in artificial neural network 2014 6th IEEE Power India International Conference (PIICON), 2014, pp 1-6 75 [26] Z Liu and Z Zhang Solar forecasting by K-Nearest Neighbors method with weather classification and physical model 2016 North American Power Symposium (NAPS), 2016, pp 1-6 [27] Y Liu and H Wu Prediction of Road Traffic Congestion Based on Random Forest 2017 10th International Symposium on Computational Intelligence and Design (ISCID), 2017, pp 361-364 76 Phụ Lục A Source code Neural Network Chương trình viết ngôn ngữ python biên dịch phần mềm biên dịch Visual Studio Code: """ @author: Duong Cao Trong Nhan """ # Thêm thư viện import numpy as np import pandas as pd import json import matplotlib.pyplot as plt from sklearn.metrics import mean_absolute_error, mean_squared_error # Hàm lỗi def mean_absolute_percentage_error(y_true, y_pred): y_true, y_pred = np.array(y_true), np.array(y_pred) return np.mean(np.abs((y_true - y_pred) / y_true)) * 100 def root_mean_squared_error(y_true, y_pred): mean = mean_squared_error(y_true, y_pred) return np.sqrt(mean) # Hàm sigmoid def sigmoid(x): return 1/(1+np.exp(-x)) # Đạo hàm hàm sigmoid def sigmoid_derivative(x): return x*(1-x) # Lớp neural network class NeuralNetwork: def init (self, layers, alpha=0.1): # Mơ hình layer ví dụ [2,2,1] self.layers = layers 77 # Hệ số learning rate self.alpha = alpha # Tham số W, b self.W = [] self.b = [] # Khởi tạo tham số layer for i in range(0, len(layers)-1): w_ = np.random.randn(layers[i], layers[i+1]) b_ = np.zeros((layers[i+1], 1)) self.W.append(w_/layers[i]) self.b.append(b_) # Tóm tắt mơ hình neural network def repr (self): return "Neural network [{}]".format("".join(str(l) for l in self.layers)) # Train mơ hình với liệu def fit_partial(self, x, y): A = [x] # trình feedforward out = A[-1] for i in range(0, len(self.layers) - 1): out = sigmoid(np.dot(out, self.W[i]) + (self.b[i].T)) A.append(out) # trình backpropagation y = y.reshape(-1, 1) dA = [-(y/A[-1] - (1-y)/(1-A[-1]))] dW = [] db = [] for i in reversed(range(0, len(self.layers)-1)): dw_ = np.dot((A[i]).T, dA[-1] * sigmoid_derivative(A[i+1])) db_ = (np.sum(dA[-1] * sigmoid_derivative(A[i+1]), 0)).reshape(1,1) dA_ = np.dot(dA[-1] * sigmoid_derivative(A[i+1]), self.W[i].T) dW.append(dw_) db.append(db_) dA.append(dA_) # Đảo ngược dW, db 78 dW = dW[::-1] db = db[::-1] # Gradient descent for i in range(0, len(self.layers)-1): self.W[i] = self.W[i] - self.alpha * dW[i] self.b[i] = self.b[i] - self.alpha * db[i] def fit(self, X, y, epochs=20, verbose=10): error = np.zeros((1, epochs)) epoch_train = np.zeros((1, epochs)) out_put = np.zeros((1, epochs)) for epoch in range(0, epochs): self.fit_partial(X, y) if epoch % verbose == 0: loss = self.calculate_loss(X, y) print("Epoch {}, loss {}".format(epoch, loss)) error[0,epoch] = float(loss) epoch_train[0,epoch] = int(epoch) out_put[0,epoch] = self.predict(X) return error, epoch_train, out_put # Dự đoán def predict(self, X): for i in range(0, len(self.layers) - 1): X = sigmoid(np.dot(X, self.W[i]) + (self.b[i].T)) return X # Tính loss function def calculate_loss(self, X, y): y_predict = self.predict(X) #return np.sum((y_predict-y)**2)/2 return -(np.sum(y*np.log(y_predict) + (1-y)*np.log(1-y_predict))) #============= Input Data from csv =============== data_csv= pd.read_csv('weatherdata.csv') len_csv = for i in range(len(data_csv)): if data_csv.loc[i,"Precipitation"]> 0: len_csv += Weather_csv = np.zeros((1, len_csv)) print ("Weather_csv", Weather_csv) Temp = [] Humi = [] 79 j = for i in range(len(data_csv)): if data_csv.loc[i,"Precipitation"]> 0: Weather_csv[0,j] = data_csv.loc[i,"Temperature"] j += Weather_csv[0,j] = data_csv.loc[i,"Humidity"] j += Temp.append(data_csv.loc[i,"Temperature"]) Humi.append(data_csv.loc[i,"Humidity"]) print ("Weather_csv_update", Weather_csv) Max_temp_csv = max(Temp) Min_temp_csv = min(Temp) Max_humi_csv = max(Humi) Min_humi_csv = min(Humi) X = Weather_csv #X = np.array([[80,90,100,98]]) y = np.array([[1]]) print ("XXX",X) print ("yyy",y) #======================== Tranning Json ================ p = NeuralNetwork([len_csv, 100, 1], 0.1) loss, epoch, out_put = p.fit(X, y, 100, 10) print ("error",loss) print ("epoch_train",epoch) print("out put of each loop", out_put) #======================== Final output ================ print("output:",p.predict(X)) #======================== Error ================ mae_predict = mean_absolute_error(y, p.predict(X)) mse_predict = mean_squared_error(y, p.predict(X)) mape_predict = mean_absolute_percentage_error(y, p.predict(X)) rmse_predict = root_mean_squared_error(y, p.predict(X)) print('MSE Predict = %f' % mse_predict) print('MAE Predict = %f' % mae_predict) print('MAPE Predict = %f' % mape_predict) print('RMSE Predict = %f' % rmse_predict) #============= Input Data from json =============== with open('db_sensorTest.json', 'r') as myfile: data = json.load(myfile) len_temp = len_humi = 80 for data_json in data: if (data_json['Name'] == "DQSMART02028327F5_temp" or data_json['Name'] == "DQSMART-02025CE097_temp"): len_temp += elif (data_json['Name'] == "DQSMART02028327F5_humi" or data_json['Name'] == "DQSMART-02025CE097_humi"): len_humi += Weather = np.zeros((1, len_temp + len_humi)) print ("Len Weather",len_temp + len_humi) print ("Weather", Weather) i = for data_json in data: if (data_json['Name'] == "DQSMART02028327F5_temp" or data_json['Name'] == "DQSMART-02025CE097_temp"): if (Min_temp_csv < int(data_json['Temp']) < Max_temp_csv): Weather[0,i] = int(data_json['Temp']) i += # continue else: Weather[0,i] = int((Min_temp_csv + Max_temp_csv)/2) i += # continue elif (data_json['Name'] == "DQSMART02028327F5_humi" or data_json['Name'] == "DQSMART-02025CE097_humi"): if (Min_humi_csv < int(data_json['Humi']) < Max_humi_csv): Weather[0,i] = int(data_json['Humi']) i += # continue else: Weather[0,i] = int((Min_humi_csv + Max_humi_csv)/2) i += # continue print ("Weather_update", Weather) print ("i", i) X = Weather #X = np.array([[80,90,100,98]]) y = np.array([[1]]) print ("XXX",X) print ("yyy",y) #======================== Tranning Json ================ p = NeuralNetwork([len_temp + len_humi, 100, 1], 0.1) 81 loss, epoch, out_put = p.fit(X, y, 100, 10) print ("error",loss) print ("epoch_train",epoch) print("out put of each loop", out_put) #======================== Final output ================ print("output:",p.predict(X)) #======================== Error ================ mae_predict = mean_absolute_error(y, p.predict(X)) mse_predict = mean_squared_error(y, p.predict(X)) mape_predict = mean_absolute_percentage_error(y, p.predict(X)) rmse_predict = root_mean_squared_error(y, p.predict(X)) print('MSE Predict = %f' % mse_predict) print('MAE Predict = %f' % mae_predict) print('MAPE Predict = %f' % mape_predict) print('RMSE Predict = %f' % rmse_predict) #============================Testing ===================== with open('file-json.json', 'r') as myfile: data = json.load(myfile) Weather_test = np.zeros((1, len_temp + len_humi)) print ("Len Weather test",len_temp + len_humi) print ("Weather test", Weather_test) i = for data_json in data: if i > len_temp + len_humi: break else: if (data_json['Name'] == "DQSMART02028327F5_temp" or data_json['Name'] == "DQSMART02025CE097_temp") and (Min_temp_csv < int(data_json['Temp']) < Max_temp_csv) : Weather_test[0,i] = int(data_json['Temp']) i += continue if (data_json['Name'] == "DQSMART02028327F5_humi" or data_json['Name'] == "DQSMART02025CE097_humi") and (Min_humi_csv < int(data_json['Humi']) < Max_humi_csv) : Weather_test[0,i] = int(data_json['Humi']) i += continue 82 print ("Weather_test_update", Weather_test) test = Weather_test print("predict:",p.predict(test)) #====================== Picture ====================== plt.plot(epoch[0],loss[0], 'b-', lw=2, label='Loss') plt.xlabel('Epoch') plt.ylabel('Loss') plt.title('Cross Entropy Loss') plt.legend() plt.show() plt.plot(epoch[0],out_put[0], 'r-', lw=2, label='Output') plt.xlabel('Epoch') plt.ylabel('Output') plt.title('Neural network trainning') plt.legend() plt.show() 83 ... luận văn thiết kế hệ thống dự báo mưa dựa mạng nơron nhân tạo kết hợp với mạng cảm biến không dây Mạng nơron nhân tạo xử lý thông số môi trường thu thập từ mạng cảm biến để đưa dự báo kiện mưa. .. Hình 2.2 Cấu trúc mạng cảm biến không dây [10] Các nút cảm biến triển khai trường cảm biến Mỗi nút cảm biến phát tán mạng có khả thu thập thông số liệu, định tuyến số liệu thu nhận để chuyển tới... hướng phát triển đề tài tương lai Chương CƠ SỞ LÝ THUYẾT Mạng cảm biến không dây 2.1.1 Khái niệm Mạng cảm biến không dây hệ thống nút cảm biến kết nối với sóng vơ tuyến từ hình thành mạng lưới