Thiết kế và chạy mô hình FFNN

Một phần của tài liệu Nghiên cứu ứng dụng thuật toán di truyền (genetic algorithm) trong dự (Trang 32)

2.2.1.1 Cấu trúc mạng

Mô hình dự báo đƣợc xây dựng trên nền Matlab©2010b dựa trên kiến trúc chuẩn FFNN bao gồm 3 lớp:

01 lớp đầu vào (input layer): với 01 nơ-ron (nồng độ chất ô nhiễm Ct-n trong quá khứ)

28

01 lớp đầu ra (output layer): là nồng độ chất ô nhiễm cần dự báo. Cụ thể đối với từng chất ô nhiễm nghiên cứu

Bảng 2.3. Cấu trúc mạng cho các chất ô nhiễm

Thông số Lớp đầu vào Lớp ẩn Lớp đầu ra

PM10 PM10 (μg/m3) 01 layer (02,05,10,20

nơ-ron) PM10 (μg/m 3)

SO2 SO2 (ppb) 01 layer (02, 05, 10, 20

nơ-ron) SO2(ppb)

2.2.1.2. Thiết kế mạng trên chƣơng trình Matlab

Mô hình đƣợc thiết kế trên Matlab với trình tự sau:

- Nhập số liệu: Dữ liệu quan trắc chất lƣợng không khí đƣợc lƣu lại dƣới dạng bảng tính Microsoft Excel, quá trình nhập liệu đƣợc thực hiện theo cú pháp:

data=xlsread (‘đƣờng dẫn file exel’)

- Tạo mạng theo cú pháp:

net=feedforwardnet(số nơ-ron)

- Truy xuất kết quả đầu ra của mô hình trên bộ dữ liệu kiểm tra (testing) theo cú pháp:

outputs=net(input_test)

- Biểu diễn code trên Matlab với số nơ-ron trong lớp ẩn là n=2 đối với chất ô nhiễm SO2:

net=feedforwardnet(2);

data=xlsread('so2_0708.xls');

so2=data(:,1)'; %cột chứa dữ liệu SO2 inputs=[so2(1:17000)']';

29 ………. net=train(net,inputs,targets); input_test=[so2(17100:17200)’]’; target_test=[so2(17101:17201)]; output=net(input_test); target_test=target_test'; output=output'; 2.2.1.3. Đào tạo mạng

Có nhiều phƣơng pháp huấn luyện ANN có sẵn trong bộ công cụ trí tuệ nhân tạo của Matlab. Tuy nhiên, thuật toán Levenberg-Marquardt (trainlm) đƣợc đánh giá là có thời gian huấn luyện nhanh và đơn giản nhất. Mặt khác, theo một số thử nghiệm trong nghiên cứu đối với phạm vi và đối tƣợng đã đề ra, thì thuật toán Levenberg- Marquardt cho kết quả tƣơng đƣơng với thuật toán Bayesian Regularization nhƣng thời gian huấn luyện nhanh hơn đáng kể. Thử nghiệm với một số thuật toán khác cho thấy, đối với phạm vi đã cho độ tin cậy đạt đƣợc là không phù hợp xét trên cả phƣơng diện giá trị dự báo lẫn thời gian huấn luyện. Chính vì vậy, thuật toán Levenberg-Marquardt đã đƣợc lựa chọn, quá trình huấn luyện mạng đƣợc thực hiện theo cú pháp sau:

net=train(net, inputs, targets)

2.2.2. Thiết kế và chạy mô hình FFNN có kết hợp GA

Nhƣ đã trình bày ở trên, thuật toán di truyền (GA) đƣợc sử dụng để tối ƣu hóa cấu trúc của mạng FFNN, mà cụ thể là tối ƣu hóa số lƣợng nơ-ron trong lớp ẩn.

30

Mã hóa nhị phân các cá thể Từ các giá trị số nơ-ron lớp ẩn ngẫu nhiền, giá trị nhỏ hơn 255

Hàm thích nghi: nRMSE Không g Chọn tỉ lệ chọn lọc Chọn tỉ lệ đột biến Kết thúc Bắt đầu (adsbygoogle = window.adsbygoogle || []).push({});

Khởi tạo quần thể

Đột biến Mã hóa các biến

Báo cáo giá trị cuối cùng Lựa chọn cá thể thích nghi nhất Lai ghép Đánh giá độ thích nghi Chọn lọc Thỏa Điều kiện dừng(sốbƣớc lặp hoặc độ thích nghi tốt nhất)

31

2.2.2.1. Tham số của GA

Trong nghiên cứu này, GA đƣợc sử dụng để tối ƣu hóa cấu trúc của FFNN, mà cụ thể là xác định số nơ-ron tối ƣu trong lớp ẩn.

Các tham số quan trọng của GA đƣợc nghiên cứu bao gồm kích thƣớc quần thể (số lƣợng cá thể-population size), tỷ lệ chọn lọc tự nhiên (selection rate-Pc), tỷ lệ đột biến (mutation rate-Pm).

Theo các nghiên cứu đã đƣợc tiến hành trên thế giới cho thấy các tham số đƣợc lựa chọn dựa trên kinh nghiệm và thử nghiệm nhiều lần cũng nhƣ dựa vào khả năng đáp ứng của thiết bị thực hiện ở đây là cấu hình, dung lƣợng bộ nhớ máy tính. Nhƣ phần nghiên cứu tổng quan đã thấy phần lớn các nghiên cứu chọn kích thƣớc quần thể nhỏ hơn 100, tỷ lệ chọn lọc Pc là 0,5 đến 0,75, tỷ lệ đột biến là nhỏ hơn 0,2 là các tham số đƣợc cân nhắc lựa chọn cho GA. Do đó, trong điều kiện nghiên cứu của luận văn cùng đáp ứng của thiết bị, tham số kích thƣớc quần thể pop_size đƣợc chọn trong luận văn là 20 và 30; tỷ lệ chọn lọc (Pc) đƣợc chọn là 0,5 và 0,75; tỷ lệ đột biến (Pm) đƣợc chọn là 0,15 và 0,2. Mục đích của việc lựa chọn các tham số GA nhƣ trên là để đánh giá mức độ ảnh hƣởng của các tham số đến kết quả dự báo. Việc lựa chọn tham số trong phạm vi luận văn này vẫn dựa trên giới hạn giá trị đã đƣợc cân nhắc từ các nghiên cứu đi trƣớc.

2.2.2.2. Thiết kế mạng trên chƣơng trình Matlab

GA sẽ thực hiện bƣớc huấn luyện cho FFNN để đƣa ra số nơ-ron tối ƣu cho lớp ẩn.

Một hàm GA đã đƣợc xây dựng trên nền Matlab©2010b để tối ƣu hóa số lƣợng nơ-ron trong lớp ẩn của mạng FFNN đã lựa chọn, với cấu trúc và thông số nhƣ sau:

Cấu trúc mã nguồn hàm GA_ANN_struct():

function [results]=GA_ANN_struct(…)

32

2) Tính độ thích nghi (fitness_value)của các cá thể bằng hàm fitness;

3) Khi (fitness_value <> mincost) Chọn lọc tự nhiên (Selection); Lai ghép chéo (Crossover); Đột biến (Mutation);

Tính fitness_value; end

Cú pháp gọi hàm và ý nghĩa của các thông số đƣợc sử dụng trong hàm: - Cú pháp gọi hàm:

neur=GA_ANN_struct(interation, popsize,min_cost, …,

mutation_rate, select_rate, inputs, targets, bits, nOvar, ff)

Trong đó:

- interation = số vòng lặp tối đa (số thế hệ tiến hóa tối đa)

- popsize = số lƣợng cá thể (mỗi cá thể tƣơng ứng với một dãy nhị phân 0-

1 mã hóa một số nguyên chính là số nơ-ron);

min_cost = chi phí nhỏ nhất (mỗi một cá thể mã hóa bởi một số nơ-ron trong

lớp ẩn sẽ đƣợc tính toán chi phí, theo hàm chính là nRMSE. min_cost chính là chi phí mong muốn

- mutation_rate = tỷ lệ cá thể sẽ bị đột biến

- select_rate = tỷ lệ cá thể ƣu thế nhất đƣợc giữ lại sau mỗi thế hệ;

- inputs= dữ liệu đầu vào cho FFNN

- target= kết quả mong muốn của FFNN (adsbygoogle = window.adsbygoogle || []).push({});

- bits= số bít mã hóa của số nơ-ron trong lớp ẩn (độ dài của nhiễm sắc thể- cá thể)

- nOvar = số biến cần tối ƣu

33

Ví dụ mã nguồn trên chƣơng trình Matlab cho PM10 với kích thƣớc quần thể là 20, tỉ lệ chọn lọc 0,5; tỷ lệ đột biến 0,15 nhƣ sau: data=xlsread('d:/PM10/PM10_0708.xlsx'); data(isnan(data(:,1)),:)=[]; PM10=data(:,1)'; inputs=[PM10(1:16000)']'; targets=[PM10(2:16001)']' %...GA parameters...% inter=100; %số vòng lặp sPop=20; %popsize min_cost=[]; %min_cost mutation_rate=0.13; %tỷ lệ đột biến

select_rate=0.5; %tỷ lệ cá thể được giữ lại bits=[];

nOvar=[]; ff=@mse_test;

neur=GA_ANN_struct(inter,sPop,min_cost,mutation_rate,… …, select_rate,inputs,targets,bits,nOvar,ff);

2.3. Đánh giá độ tin cậy của mô hình

Các chỉ tiêu thống kê gồm: Độ lệch trung bình tuyệt đối (MAE), căn bậc hai sai số bình phƣơng trung bình (RMSE, nRMSE), độ chính xác tuyệt đối (MAPA) và chỉ số tƣơng đồng (IA) đƣợc sử dụng để đánh giá độ tin cậy của kết quả dự báo từ mô hình nghiên cứu, theo các phƣơng trình sau:

a. Độ lệch trung bình tuyệt đối: MAE (Mean Absolute Error)

1 1 N i i i MAE O P N

34

Chỉ số MAE cho biết biên độ trung bình của sai số mô hình. Khi MAE=0, giá trị mô hình hoàn toàn trùng khớp với giá trị quan trắc.

b. Căn bậc hai sai số bình phƣơng trung bình- RMSE (Root Mean Square Error)

2 1 1 N i i i RMSE O P N

Trong đó Oi là giá trị đo đạc, Pi là giá trị dự báo

RMSE là thƣớc đo biên độ sai số. Giá trị tối ƣu bằng 0 (Jacovides & Kontoyiannis, 1995). Khi sai số biến động càng mạnh thì RMSE càng lớn. Nếu RMSE càng gần MAE sai số mô hình càng ổn định. Tồn tại bất đẳng thức: MAE<= RMSE, dấu”=” xảy ra khi và chỉ khi mô hình hoàn toàn không có sai số, khi đó MAE=RMSE=0.

c. Căn bậc hai sai số bình phƣơng trung bình chuẩn hóa: nRMSE

1 .100% 1 N observ i i RMSE nRMSE C N Trong đó:

RMSE: căn bậc hai sai số bình phƣơng trung bình tính nhƣ công thức ở phần trên

Ciobserv: giá trị đo đạc của thông số.

nRMSE có giá trị từ 0-100%, nRMSE càng nhỏ thì mô hình càng có độ tin cậy cao.(Raes et al, 2012).

d. Độ chính xác trung bình tuyệt đối-MAPA (Mean Absolute Percentage Accuracy)

1 1 *100% 1 N observ i i MAE MAPA C N

MAPA có giá trị từ 0-100%, ngƣợc lại với nRMSE, MAPA càng lớn thì độ chính xác của mô hình càng cao.

35 2 1 2 1 1 N i i i N i i i P O IA P O O O

IA có giá trị nằm trong khoảng từ 0 đến 1. Càng gần giá trị 1 thì sự tƣơng đồng giữa giá trị dự báo và giá trị đo đạc càng tốt (Willmott et al, 1985) [7].

36

CHƢƠNG 3: KẾT QUẢ VÀ THẢO LUẬN 3.1. Dự báo chất lƣợng không khí sử dụng FFNN 3.1.1. Dự báo đối với SO2

3.1.1.1. Mối tƣơng quan về xu hƣớng diễn biến của SO2 (adsbygoogle = window.adsbygoogle || []).push({});

Kết quả dự báo của mô hình đƣợc đánh giá qua mối tƣơng quan về xu hƣớng diễn biến và độ tin cậy (bằng các chỉ số thống kê). Mối tƣơng quan về xu hƣớng diễn biến của giá trị dự báo sử dụng FFNN với các số nơ-ron khác nhau và giá trị đo của SO2 đƣợc thể hiện trong Hình 3.1 đến Hình 3.4.

Với số nơ-ron trong lớp ẩn là 02

Hình 3.1. Tƣơng quan với giá trị đo của kết quả dự báo bằng mô hình FFNN(1-2-1) đối với SO2

37 Với số nơ-ron trong lớp ẩn là 05

Hình 3.2. Tƣơng quan với giá trị đo của kết quả dự báo bằng mô hình FFNN(1-5-1) đối với SO2

Trong đó: Pi: diễn biến nồng độ SO2 dự báo từ mô hình FFNN; Oi: giá trị đo Với số nơ-ron trong lớp ẩn là 10

Hình 3.3. Tƣơng quan với giá trị đo của kết quả dự báo bằng mô hình FFNN(1-10- 1) đối với SO2

38 Với số nơ-ron trong lớp ẩn là 20

Hình 3.4. Tƣơng quan với giá trị đo của kết quả dự báo bằng mô hình FFNN(1-20- 1) đối với SO2

Trong đó: Pi: diễn biến nồng độ SO2 dự báo từ mô hình FFNN; Oi: giá trị đo

Từ Hình 3.1 đến Hình 3.4 ta thấy, tƣơng quan giữa giá trị SO2 dự báo bằng mô hình FFNN và nồng độ đo là tƣơng đối tốt thể hiện qua sự đồng nhất về xu hƣớng diễn biến của chúng trong tất cả các trƣờng hợp cấu trúc mạng (số nơ-ron trong lớp ẩn) khác nhau. Điều này cho thấy, mô hình FFNN có thể dự báo đƣợc khá tốt xu thế diễn biến của chất ô nhiễm theo thời gian. Khi thay đổi cấu trúc của mô hình FFNN thì sự chênh lệch về kết quả dự báo giữa các mô hình chƣa rõ ràng vì việc xác định sự chênh lệch này thông qua xu hƣớng diễn biến là khó khăn, do đó cần phải xác định độ tin cậy để đánh giá định lƣợng sự khác nhau về kết quả dự báo của các mô hình có cấu trúc khác nhau.

3.1.1.2. Độ tin cậy của mô hình đối với SO2

Độ tin cậy của mô hình đƣợc định lƣợng thông qua các chỉ số thống kê nhƣ đƣợc trình bày trong Bảng 3.1.

39

Bảng 3.1. Độ tin cậy của FFNN với SO2 Số nơ-ron

trong lớp ẩn

Chỉ số

MAE( ppb) RMSE (ppb) nRMSE(%) MAPA(%)

02 2,9 3,52 45,2 62,8

05 2,8 3,37 43,2 64,1

10 2,8 3,35 43,0 64,1

20 2,8 3,36 43,1 64,1

Bảng 3.1 cho thấy, trong tất cả các trƣờng hợp đã nghiên cứu, độ chính xác (MAPA) của kết quả dự báo từ mô hình FFNN với các cấu trúc khác nhau đều đạt trên 62% là tƣơng đối tốt.Với kết quả tốt hơn cả khi số nơ-ron lớp ẩn là 10 với độ chính xác MAPA cao nhất là 64,1% và sai số chuẩn nRMSE thấp nhất là 43%. Nếu so sánh kết quả này với kết quả dự báo của các nghiên cứu trên thế giới (độ chính xác MAPA trên 80%) thì nó còn khá khiêm tốn do một số hạn chế về mặt thời gian, cho nên, luận văn mới chỉ khảo sát mối tƣơng quan giữa nồng độ của chất ô nhiễm trong quá khứ đến nồng độ của nó tại thời điểm cần dự báo. Điều này là chƣa đủ vì theo [35], nồng độ của một chất ô nhiễm không khí còn phụ thuộc vào các thông số khí tƣợng (mức độ lan truyền chất ô nhiễm), và quá trình hóa học của nó trong không khí… Chính vì vậy, có thể khẳng định độ tin cậy của mô hình FFNN có thể đạt cao hơn khi xem xét đầy đủ các mối liên hệ này.

3.1.2. Dự báo đối với PM10

3.1.2.1. Mối tƣơng quan về xu hƣớng diễn biến của PM10

Mối tƣơng quan về xu hƣớng diễn biến của giá trị dự báo sử dụng FFNN với các số nơ-ron khác nhau và giá trị đo của PM10 đƣợc thể hiện trong Hình 3.5 đến Hình 3.8.

40 Với số nơ-ron lớp ẩn là 02

Hình 3.5. Tƣơng quan với giá trị đo của kết quả dự báo bằng mô hình FFNN (1-2-1) đối với PM10

Trong đó: Pi: diễn biến nồng độ SO2 dự báo từ mô hình FFNN; Oi: giá trị đo

Với số nơ-ron lớp ẩn là 05 (adsbygoogle = window.adsbygoogle || []).push({});

Hình 3.6. Tƣơng quan với giá trị đo của kết quả dự báo bằng mô hình FFNN (1-5-1) đối với PM10

41 Với số nơ-ron lớp ẩn là 10

Hình 3.7. Tƣơng quan với giá trị đo của kết quả dự báo bằng mô hình FFNN (1-10- 1) đối với PM10

Trong đó: Pi: diễn biến nồng độ SO2 dự báo từ mô hình FFNN; Oi: giá trị đo Với số nơ-ron lớp ẩn là 20

Hình 3.8. Tƣơng quan với giá trị đo của kết quả dự báo bằng mô hình FFNN (1-20- 1) đối với PM10

42

Hình 3.5 đến Hình 3.8 cho thấy, cũng giống nhƣ SO2, sự tƣơng quan diễn biến nồng độ dự báo PM10 và nồng độ đo có sự tƣơng quan tốt. Hơn nữa, kết quả này còn có phần tốt hơn so với SO2.Từ những kết quả này, có thể bƣớc đầu khẳng định, FFNN là một công cụ tiềm năng để dự báo diễn biến nồng độ theo thời gian. Điều này sẽ có ý nghĩa trong việc quản lý chất lƣợng không khí và dự báo các tình huống xấu có thể sảy ra để xây dựng các kịch bản ứng phó cần thiết. Để đánh giá mức độ tƣơng quan cụ thể thì cần xác định độ tin cậy của mô hình.

3.1.2.2. Độ tin cậy của mô hình đối với PM10

Bảng 3.2. Độ tin cậy của FFNN cho PM10

Số nơ-ron lớp ẩn trong FFNN Chỉ số MAE (μg/m3 ) MAPA (%) RMSE (μg/m3) nRMSE (%) IA 02 22,3 83,1 30,7 23,3 0,89 05 22,0 83,3 30,3 23,0 0,89 10 22,1 83,2 30,6 23,2 0,89 20 22,1 83,2 30,6 23,2 0,89

Từ Bảng 3.2 cho thấy, kết quả dự báo nồng độ PM10 từ mô hình FFNN là rất khả quan. Độ chính xác (MAPA) trong tất cả các trƣờng hợp nghiên cứu đều trên 83%, cao nhất đạt 83,3% khi số nơ-ron trong lớp ẩn là 5, với MAE và RMSE tƣơng ứng nằm trong khoảng 22 (μg/m3) đến 22,3 (μg/m3

) và 30,3 (μg/m3) đến 30,7 (μg/m3 ). Mô hình FFNN cho kết quả dự báo PM10 tốt hơn cả với cấu trúc gồm 05 nơ-ron trong lớp ẩn, trong đó, SO2 là 10 nơ-ron. Điều này cho thấy, cấu trúc của FFNN đối với mỗi đối tƣợng (chất ô nhiễm) là khác nhau, phụ thuộc vào bản chất của từng đối tƣợng nghiên cứu. Mà việc xác định cấu trúc mạng tối ƣu là tƣơng đối phức tạp và tốn nhiều thời gian, vì vậy, việc ứng dụng các phƣơng pháp để tối ƣu cấu trúc mạng là rất cần thiết.

43

3.2. Dự báo chất lƣợng không khí sử dụng FFNN kết hợp với GA

Nhƣ đã trình bày ở trên, GA là một trong những phƣơng pháp tối ƣu hóa đƣợc ứng dụng rộng rãi để tối ƣu hóa cấu trúc của mạng thần kinh nhân tạo, trong đó có FFNN. Chính vì vậy, trong nghiên cứu này, GA đã đƣợc sử dụng để xác định số nơ- ron trong lớp ẩn cho mạng FFNN. Kết quả thực nghiệm trên hai thông số SO2 và PM10 đƣợc trình bày dƣới đây.

Một phần của tài liệu Nghiên cứu ứng dụng thuật toán di truyền (genetic algorithm) trong dự (Trang 32)