Để xây dựng phần mềm trong luận văn này tôi sử dụng công cụ Matlab GUIDE cùng các lệnh để mô phỏng mạng nơ ron:
a. Đọc dữ liệu từ file excel:
Vì các thông số tôi thu thập được lưu vào trong file excel nên từ Matlab ta phải dùng lệnh :
Num=xlsread(filename,sheet,‟range‟) Trong đó: Num là mảng dữ liệu cần tạo
+ Filename là tên file excel chứa dữ liệu ( tên file viết liền không dấu)
- 67 -
+ Sheet là trang chứa dữ liệu trong file excel ( có thể không có nêu file excel chỉ có một sheet)
+ Range khoảng chứa dữ liệu cần thiết trong file excel b. Chuẩn hóa dữ liệu:
[pn,mip,maxp,tn,mint,maxt] = premnmx(p,t) Trong đó:
+ pn,tn: Véc tơ đầu vào và đầu ra mạng Nơ ron đã được chuẩn hóa.
+ minp,maxp,mint,maxt: giá trị lớn nhất và nhỏ nhất của các phần tử trong véc tơ đầu vào và đầu ra mạng Nơ ron
c. Tạo mạng:
net = newff(minmax(pn),[17 24], {„tansig‟, „purelin‟}, „trainlm‟) . Trong đó:
+ Net: Là mạng nowrron ta đã tạo
+ [17 24]: Số nơ ron lớp ẩn và số nơ ron đầu ra + {„tansig‟, „purelin‟}: Các hàm kích hoạt + trainlm: Thuật toán huấn luyện mạng. d. Đặt các thông số huấn luyện mạng:
net.divideParam.trainRatio = 60/100; Đặt tập huấn luyện chiếm 60% tập mẫu net.divideParam.valRatio = 20/100; Đặt tập kiểm tra chiếm 20% tập mẫu net.divideParam.testRatio = 20/100; Đặt tập kiểm tra chiếm 20% tập mẫu net.trainParam.show; - sau 50 lần học kết quả sẽ hiển thị một lần
net.trainParam.epochos = 1000; - đặt số vòng cho một quá trình luyện mạng, khi đạt được 1000 vòng lặp thì vòng lặp kết thúc.
net.traimParam.goal = 1e-5; - đặt sai số cho quá trình luyện mạng là 10-5 khi đạt sai
số này thì quá trình luyện kết thúc. e. Huấn luyện mạng:
[net,tr]=train(net,pn,tn)
+ pn,tn: Các véc tơ đầu vào và đầu ra mạng đã được chuẩn hóa. f. Lưu trữ mạng và dự báo:
- 68 - Save net;
o=sim(net,pn) Trong đó:
+ net: Mạng nơ ron ta đã lưu + pn: Véc tơ đầu vào đã chuẩn hóa
g. Chuyển kết quả chuẩn hóa về kết quả thực: A=postmnmx(o,mint,maxt)
Trong đó:
+ A: Giá trị véc tơ thực dự báo + o: Kết quả đầu ra dự báo
+ mint,maxt: Giá trị lớn và nhỏ nhất của các phần tử trong véc tơ đầu ra. h. Ghi kết quả dự báo ra file:
[status msg]=xlswrite(filename,a(iiforecast)) Trong đó:
+ Filename: Tên file ghi kết quả dự báo + a(iiforecast): Giá trị dự báo