Phương pháp mạng noron nhân tạo

Một phần của tài liệu Thuật toán hồi quy đa biến (Trang 23 - 29)

II. Phương pháp hồi quy đa biến

2. Hồi quy đa biến phi tuyến tính

2.1. Phương pháp mạng noron nhân tạo

Mạng nơron nhân tạo (ANN) là một hệ mô phỏng xử lý thông tin, được nghiên cứu từ hệ thống thần kinh của sinh vật, trong đó một mô hình toán học được tạo ra giống như bộ não để xử lý thông tin. ANN là công cụ phân tích số liệu dựa trên mô hình tính toán để giải quyết những vấn đề phức tạp.

ANN gồm những đơn vị xử lý số liệu dầy đặc liên quan mật thiết với nhau. Mỗi đơn vị được nối với đơn vị bên cạnh bằng lực (weight). Việc xem xét được kết hợp bằng cách chuẩn hoá những lực này để tạo ra mạng có kết quả thích hợp. Trong đó các nơron truyền tải dữ liệu bằng cách tính hay dự đoán đầu ra (output) dự trên các dữ liệu đầu vào (input), trọng lượng (weight) và độ lệch (bias). Phương pháp này rất thích hợp để mô hình hoá hệ phi tuyến tính.

Mô hình một nơron nhân tạo

- Giả sử có N dữ liệu đầu vào (inputs),

- Nơron sẽ có N trọng số (weights) tương ứng với N đường truyền inputs. Nơron sẽ lấy input thứ nhất, nhân với trọng số trên đường input thứ nhất, lấy input thứ hai nhân với trọng số của đường input thứ hai v.v..., rồi lấy tổng của tất cả các kết quả thu được.

- Đầu ra là một hàm của tổng tất cả kết quả thu được đó.

Mạng nơron bao gồm vô số các nơron được liên kết, truyền thông với nhau trong mạng.

X0, X1,…Xn: các thông tin đầu vào, Y0, …Yk các thông tin đầu ra

X0

XN X1.

. .

1 2

M . . .

1

K

yo

yk

. . .

u1 v1

g1

Lớp nhập Lớp ẩn Lớp xuất

[W] [V]

Trong mỗi noron đều có các hàm số giới hạn dùng để điều chỉnh sai số sao cho dữ liệu đầu ra phù hợp theo yêu cầu. Các hàm giới hạn thường dùng:

Với mỗi mô hình tính toán, ta phải xác định các thuật toán học để tự động xác định các giá trị tham số tối ưu cho mô hình trên cơ sở bộ số liệu cho trước

ANN là một khái niệm tương đối mới trong quá trình xử lý số liệu, giải quyết các bài toán khó mà con người nhiều khi không giải được.

Các mô hình mạng noron chính:

- Mạng lan truyền thẳng một lớp – perceptron

- Mạng lan truyền thẳng đa lớp - multi layer perceptron-MLP neuron

neuron neuron

neuron

- Mạng lan truyền ngược – RBF -

Tùy thuộc vào đặc điểm của tập dữ liệu để lựa chọn mô hình mạng nơron cho phù hợp. Trong hóa phân tích, dữ liệu đầu vào là tín hiệu đo tại những điều kiện khác nhau, dữ liệu đầu ra là giá trị nồng độ các cấu tử, vì vậy chúng ta thường sử dụng mạng lan truyền thẳng đa lớp (MLP). Thí dụ: xác định đồng thời 2 cấu tử trong hỗn hợp bằng phương pháp trắc quang, khi đó ta xây dựng 55 dung dịch chuẩn dùng làm mẫu học với các nồng độ thay đổi bao gốm cả trong khoảng tuyến tính và ngoài khoảng tuyến tính.

Đồng thời xây dựng bộ số liệu kiểm tra với 20 mẫu khác nhau với nồng độ nằm trong khoảng đã dùng làm mẫu học.

Các số liệu và lựa chọn ban đầu:

* Bộ số liệu học:

- Lớp nhập xlearn[nxm]: là ma trận độ hấp thụ quang của mẫu chuẩn trên toàn dải phổ (từ λ = 400 -600nm) trong đó n=55 là số mẫu học, m =101 là số bước sóng tiến hành ghi phổ.

[W] [V]

X0

XN X1.

. .

1

2

M . . .

1

K

yo yk

. . .

u1 v1

g1

Lớp vào lớp ẩn lớp ra

- Lớp xuất dlearn[nxp]: là ma trận nồng độ dung dịch mẫu chuẩn biểu diển trên bảng 5, với p =2 là số cấu tử cần xác định đồng thời.

* Bộ số liệu kiểm tra:

- Lớp nhập xtest[qxm]: là ma trận độ hấp thụ quang của mẫu kiểm tra trên toàn dải phổ với q = 32 là số mẫu kiểm tra.

- Lớp xuất dtest[qxp]: là ma trận nồng độ dung dịch kiểm tra được biểu diễn: . Như vậy ta có mạng nơron với 101 đầu vào và 2 đầu ra.

* Hàm truyền của nơron lớp ẩn: là hàm chuẩn hoá ‘logsig’ ‘purelin’ ‘logsig’

* Hàm truyền của nơron đầu ra: là tuyến tính ‘ purelin’

Trong quá trình tính toán đồ thị và xem xét cụ thể các bước học ta nhận thấy:

- Giá trị của mỗi bước học là 100.000 thì sẽ cho sai số tương đối bình phương trung bình ( MSE) nhỏ. Giả sử đặt trước MSE là 10-3 %, tức là anpha định trước (α) = 10-5

Trong quá trình thực hiện bài toán ta sử dụng các hàm như sau:

- Tạo hàm, thiết lập một mạng nơron mới và luyện tập cho mạng có cấu trúc như sau:

net = newff(PR, [S1 S2 …Sn1], {TF1 TF2…TFn1}, BTF, BTF, PF) Trong đó:

PR = [min(x); max(x) ]

[S1 S2 …Sn1] là số nơron lớp ẩn và lớp xuất, ứng với bài toán này ta có:

[nhidden 2]

{TF1 TF2 …TFn1} là các hàm học của mỗi lớp mạng, chúng ta có thể tham khảo thêm trong toolbox của Matlab.

Sim(net, x, d, ntimes): hàm mô phỏng đầu ra theo các giá trị đầu vào.

Train(net, x, d, ntimes): hàm học của bài toán.

Các hàm này đều là hàm chuẩn, ta có thể dùng ngay và lấy dễ dàng từ toolbox của Matlab.

Thuật toán mạng nơron nhân tạo trong phần mềm MATLAB - Khởi động phần mềm MATLAB

- Nhập các ma trận dữ liệu trong cửa sổ WORKSPACE

+ Nhập ma trận nồng độ mẫu học dlearn(mxk) của m dung dịch chuẩn chứa k cấu tử (m hàng, k cột)

+ Nhập ma trận tín hiệu phân tích của mẫu học xlearn(mxn) (n là số tín hiệu đo) + Nhập ma trận nồng độ mẫu kiểm tra dtest(m’xk) của m’ dung dịch chuẩn chứa k cấu tử (m’ hàng, k cột)

+ Nhập ma trận tín hiệu phân tích của mẫu kiểm tra xtest(m’xn) - Lưu các dữ liệu vừa nhập vào thành 1 file trong Matlab :ANN.mat - Mở một M-file trong cửa sổ EDITOR và viết các câu lệnh tại đó:

% Phuong phap mang noron nhan tao - ANN

% Nhap so lieu dau vao tu file da co san load ANN.mat;

% Khai bao kich thuoc cua ma tran so lieu hoc [N,S]=size(xlearn);

[K,R]=size(dlearn);

% Tuy theo he cau tu va du lieu thu duoc de thiet lap mo hinh mang noron phu

% hop

% Lop nhap co 51 noron

% Lop an co 2 lop, moi lop 100 noron

% Lop xuat co 2 noron, tuong ung voi 2 cau tu can khao sat

% Lua chon cac ham truyen: logsig, purelin

% Ham hoc lua chon la TRAINCGF

net = newff(minmax(xlearn),[51 100 100 2],{'logsig' 'purelin' 'logsig' 'purelin'},'traincgf');

% Thiet lap cac thong so cho qua trinh hoc cua mang:

% Sai so qua trinh hoc

net.trainParam.goal=0.00001;

% So buoc hoc

net.trainParam.epochs = 30000;

net = train(net,xlearn,dlearn);

% Tinh toan nong do mau kiem tra dua vao mang noron da hinh thanh ytest = sim(net,xtest) ;

%Tinh sai so giua nong do mau kiem tra dtest voi nong do xac dinh duoc tu

% mang noron nhan tao ytest:

Saiso=(dtest - ytest)*100./dtest ;

- Lưu lại M-file vừa thực hiện được mang tên: ANN.m

- Gọi hàm M-file vừa viết được trong cửa sổ COMMAND WINDOW:

>> ANN

- Kích chuột vào giá trị Saiso, ytest trong WORKSPACE thu được các dữ liệu mong muốn.

Thí dụ: Tiến hành xác định đồng thời Fe(II) và Fe(III) trong dung dịch tại 110 bước sóng, với 55 mẫu học và 22 mẫu kiểm tra.

STT Fe2+ (ppm) Fe3+ (ppm) STT Fe2+ (ppm) Fe3+ (ppm)

1 31

2 32

3 33

4 34

5 35

6 36

7 37

8 38

9 39

10 40

11 41

12 42

13 43

14 44

15 45

16 46

17 47

18 48

19 49

20 50

21 51

22 52

23 53

24 54

25 55

26 27 28 29 30

Một phần của tài liệu Thuật toán hồi quy đa biến (Trang 23 - 29)

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

(30 trang)
w