Xác định cấu trúc mạng

Một phần của tài liệu Ứng dụng máy học trong nông nghiệp công nghệ cao (Trang 49)

2.1 .1Tổng quan

3.9 Xác định cấu trúc mạng

Số lớp nơron

Dựa trên các cơng trình nghiên cứu tham khảo của một số tác giả làm về dự báo và qua thử nghiệm trên thực tế tác giả nhận thấy về mặt lý thuyết khơng có lý do nào cần sử dụng nhiều hơn 2 lớp ẩn. Mặt khác với bài tốn có số đầu vào, đầu ra và số mẫu nhiều như bài toán dự báo thời tiết, việc lựa chọn 2 lớp ẩn là không hiệu quả do tính tốn lâu và khơng cần thiết. Tác giả đề xuất mơ hình mạng nơron với 3 lớp (1 lớp đầu vào, 1 lớp ẩn, 1 lớp đầu ra).

Số nơron lớp vào

Số nơron lớp ẩn

Hiện tại, chưa có một cơng thức hay lý thuyết nào để xác định được số lượng nơron của lớp ẩn một cách hiệu quả và chính xác. Vì vậy, kích thước của một lớp ẩn thường được xác định theo thử nghiệm dựa trên bài toán cụ thể. Trong ứng dụng dự báo này, tác giả đã thay đổi số nơron lớp ẩn để thử nghiệm bằng phương pháp thử sai.

Số nơron lớp ra

Bài toán đặt ra là dự đoán sự kiện mưa với kết quả là mưa hay không mưa dựa vào dữ liệu đưa vào sau khi mạng đã được huấn luyện do đó số lượng nơron ở lớp ra là một nơron. Giá trị của nơron ở lớp ra chính là dự báo có mưa hoặc khơng mưa tương ứng với giá trị 0 (khơng mưa) và 1 (có mưa).

Hằng số học

Hằng số học ảnh hưởng đến hiệu quả và tốc độ hội tụ của thuật toán lan truyền ngược. Giá trị của hằng số học phụ thuộc vào cấu trúc mạng, số liệu chuẩn hóa và bài tốn cần giải quyết, khơng có một cơng thức hay phương pháp nào để xác định chính xác giá trị hằng số học thích hợp. Do đó, hằng số học thường được lựa chọn bằng phương pháp thực nghiệm. Bằng thực nghiệm đề tài này đã chọn hằng số học 𝛼 = 0,1.

Hàm kích hoạt

Trong đề tài, hàm kích hoạt được sử dụng trong lớp vào và lớp ẩn là hàm Sigmoid, hàm này rất thuận lợi khi sử dụng cho các mạng huấn luyện bằng thuật toán lan truyền ngược, bởi nó rất dễ lấy đạo hàm. Hàm Sigmoid phù hợp với các bài tốn có đầu ra mong muốn rơi vào khoảng [0,1].

Với đầu vào và đầu ra dạng nhị phân, ta sẽ gặp khó khăn để có thể điều chỉnh một lượng nhỏ đầu vào để tạo ra sự thay đổi ở đầu ra. Vậy nên ta có thể mở rộng cả đầu vào và đầu ra trong khoảng [0,1]. Lúc này đầu ra được quyết định bởi hàm Sigmoid có cơng thức ở hình 2.11. Ta có thể thấy mỗi sigmoid neuron cũng tương tự như một bộ phân loại tuyến tính (logistic regression) bởi xác suất khi sử dụng hàm kích hoạt Sigmoid tương tự nhau.

Ngoài hàm Sigmoid, một số hàm khác như Tanh, ReLU có thể thay thế hàm Sigmoid bởi dạng đồ thị của các hàm này cũng tương tự như hàm Sigmoid. Và trong mạng Neural Network, mỗi nút mạng là một sigmoid neuron nhưng hàm kích hoạt của chúng có thể khác nhau. Tuy nhiên trong thực tế để thuận lợi cho tính tốn thì các nơ ron này đều có cùng dạng hàm kích hoạt.

Hàm mất mát

Do đầu ra cuối cùng của hệ thống dự báo có kết quả là 0 (khơng mưa) và 1 (có mưa) thuộc bài tốn phân loại (classification) nên tác giả sẽ áp dụng phương pháp phổ biến nhất cho bài toán này là hàm mất mát Cross-entropy. Sự mất mát tăng khi mà tỉ lệ dự đoán lệch đi so với nhãn thực tế. Như đã đề cập ở phần trên thì mỗi nút mạng có thể coi là một bộ phân loại (logistic regression) có hàm mất mát là:

L = − ∑ (𝑦 ∗ log( 𝑦 ) + (1 − 𝑦 ) ∗ log(1 − 𝑦 )) (3.1)

Trong đó, n là số lượng dữ liệu huấn luyện, 𝑦 là đầu ra thực tế của dữ liệu thứ i trong tập huấn luyện, 𝑦 là kết quả ước lượng ứng với dữ liệu thứ i.

Hàm mất mát của Neural Network cũng tương tự như trên nhưng đầu ra của mạng có thể có nhiều nút nên khi tính tốn đầu ra thì ta cũng cần thực hiện tính tốn hàm mất mát cho từng nút ra đó. Hàm mất mát với toàn bộ nút đầu ra trong mạng:

J = − ∑ ∑ (𝑦 ∗ log( 𝑦 ) + (1 − 𝑦 ) ∗ log(1 − 𝑦 )) (3.2) Trong đó, m là số lượng nút đầu ra, 𝑦 là đầu ra thực tế của nút thứ k, 𝑦 là đầu ra ước lượng của nút thứ k.

Hình dưới đây là cấu trúc của mạng nơron truyền thẳng với 3 lớp (1 lớp vào, 1 lớp ẩn, 1 lớp ra) sau khi đã lựa chọn:

Nơron 1: Nhiệt độ T1 Nơron 2: Độ ẩm T1 Nơron 999: Nhiệt độ T500 Nơron 1 Nơron 2 Nơron n -1 Nơron 1: Giá trị 0 hoặc 1 Nơron 1000: Độ ẩm T500 Nơron n 1000 nơron tương ứng với 1000 thông số nhiệt độ và độ ẩm ở 500 thời điểm khác nhau Số lượng nơron lớp ẩn sẽ được xác định bằng thực nhiệm

Giá trị của nơron lớp ra chính là kết quả dự báo của mơ hình tương ứng với 0 là khơng mưa, 1 là có mưa

Hình 3.6 Mơ hình Neural Network thực nghiệm 3.10 Huấn luyện mơ hình mạng

Bắt đầu

Đọc dữ liệu từ file JSON, CSV và chuẩn hóa

Tách dữ liệu thành 2 phần trainning dataset và testing

dataset

Sử dụng training data là đầu vào của mơ hình mạng Neural

Network

Xử lý và huấn luyện mơ hình mạng bằng thuật toán Back

Probagation

Sử dụng testing dataset để kiểm tra độ chính xác của mơ hình giữa dữ liệu thực tế và dự đốn

Kết thúc

Hình 3.7 Lưu đồ mơ hình thực nghiệm Neural Network

Tập dữ liệu ban đầu được chia thành 2 tập dữ liệu thành phần, bộ dữ liệu thứ nhất dùng làm dữ liệu đầu vào cho bài toán dự báo, bộ dữ liệu thứ hai dùng để kiểm tra kết quả của phương pháp dự báo. Trong bài toán dự báo sử dụng mạng nơron nhân tạo, bộ số liệu thứ nhất sẽ được đưa vào mạng để huấn luyện. Sau mỗi lần lặp của quá trình huấn luyện, mạng sẽ lưu lại ma trận trọng số và đối chiếu sai số của mạng với

3.11 Thuật toán lan truyền ngược Lưu đồ thực nghiệm thuật toán: Lưu đồ thực nghiệm thuật toán:

Bắt đầu

Khởi tạo trọng số tương ứng với toàn bộ nút mạng

Tính tốn đầu ra của mạng sau khi thực thi q trình lan truyền

tiến

Tính tốn sai số giữa đầu ra của mạng với đầu ra mong muốn

Kết thúc

Thực thi quá trình lan truyền ngược để cập nhật giá trị trọng số

mới cho toàn bộ nút của mạng Kiểm tra sai số mạng đã vượt

qua ngưỡng Threshold hoặc số lần lặp huấn luyện đã vượt

ngưỡng Maximum Epoch

Hình 3.8 Lưu đồ thực nghiệm thuật tốn lan truyền ngược

Q trình huấn luyện mạng chính là q trình điều chỉnh trọng số liên kết. Các giá trị trọng số liên kết này sẽ được mặc định ngẫu nhiên ở lần lặp đầu tiên của quá trình huấn luyện.

Quá trình lan truyền ngược để cập nhật giá trị trọng số mới cho toàn bộ nút ở mỗi lớp mạng được thực thi khi sai số mạng chưa vượt qua ngưỡng sai số cho phép Threshold Error hoặc số lần lặp huấn luyện của mạng chưa vượt qua ngưỡng lần lặp cho phép Maximum Epoch. Ngược lại mạng sẽ dừng quá trình huấn luyện khi 1 trong 2 giá trị trên vượt ngưỡng cho phép.

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ự đố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

Ngoà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 để

Một phần của tài liệu Ứng dụng máy học trong nông nghiệp công nghệ cao (Trang 49)

Tải bản đầy đủ (PDF)

(73 trang)