Vò Quúnh Thu Cao häc K18



tải về 1.12 Mb.
trang4/6
Chuyển đổi dữ liệu07.07.2016
Kích1.12 Mb.
1   2   3   4   5   6

load ANN.mat;

%Chuyen vi cac ma tran so lieu dau vao

[N,S]=size(Clearn); % o day ta co N= 5; S=151

[K,R]=size(Alearn); % o day ta co K=77; S= 151

% Xac dinh mang MLP bang phuong phap Fletcher-Reeves conjugate gradient



Ehoc= rand(120,1);

Ekt= rand(120,1);

for nhidden = 1:2:120

% cho so noron lop an thay doi tu 1 den 120 de tim cau truc mang toi uu



for nTimes = 1:1:10

% thuc hien tinh 10 lan cho moi lop an de tim gia tri co diem xuat phat tot nhat



Elearn = 0;

Etest=0;

Ehoc_try = rand(1,10);

Ekt_try = rand(1,10);

net = newff(minmax(Alearn),[nhidden 100 100 5],{'logsig' 'purelin' ‘logsig’ ‘purelin’},'traincgf');

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



net.trainParam.goal=0.001;

net.trainParam.epochs = 100000;

net = train(net,Alearn,Clearn);

ylearn = sim(net,Alearn);

% gia tri dau ra cua lop mang ung voi E_learn



ytest = sim(net,Atest) ;

% Gia tri dau ra cua lop mang ung voi E_test



e_hoc = Clearn-ylearn;

%sai so cua qua trinh hoc



e_test = Ctest-ytest;

%sai so cua qua trinh kiem tra

% Tinh toan sai so

Elearn = sum(sum(e_hoc.*e_hoc));

Etest = sum(sum(e_test.*e_test));

% Tinh sai so Elearn cho mang duoc cat vao mot matran co 5 hang



Ehoc_try(nTimes) = Elearn;

%luu giu gia tri nay lai

% Tinh sai so Etest cho mang duoc cat vao ma tran co 5 hang

Ekt_try(nTimes) = Etest;

%luu giu gia tri nay lai



end

if Elearn > net.trainParam.goal

% Neu sai so Elearn > goal thi tiep tuc



continue

% con nguoc lai thi dung qua trinh hoc lai



end

break

Ehoc(nhidden,1)= min(Ehoc_try);

Ekt(nhidden,1) = min(Ekt_try);

end

% khoi hien thi su phu thuoc cua sai so va so lop an



for i=1:1:800;

plot(i,Ehoc(i,1),'*b-',i,Ekt(i,1),'+r:');

title('Sai so hoc va kiem tra cua mang MLP theo so luong Noron lop an');

xlabel('So Noron lop an');

ylabel('Sai so');

legend({'Sai so hoc Elearn','Sai so kiem tra Etest'});

grid on;

hold on;

end

% ket thuc chuong trinh

Sau khi thực hiện chạy chương trình ta thu được kết quả như sau:



Hình 13: Mô hình mạng nơron nhân tạo mạng truyền thẳng MLP với 4 lớp ẩn

Từ mô hình mạng nơron truyền thẳng ở trên, ta thấy thời gian luyện mạng rất lớn (55 phút) đó là do kích thước của tập số liệu là rất lớn (80x151) và (80x5), số nút đầu vào lên tới 151 nút, cần phải có nhiều thời gian để lan truyền sai số giữa các giá trị của nút ẩn sao cho sai số thu được ở đầu ra là nhỏ nhất. Nếu giảm kích thước của tập số liệu đầu vào từ 151 xuống giá trị nhỏ hơn 10 thì thời gian phân tích sẽ giảm hơn rất nhiều. Vì vậy chúng tôi tiếp tục Vì vậy cần xử lý số liệu bằng cách giảm kích thước tập số liệu trước khi nhập số liệu vào mạng nơron nhân tạo.





Hình 14: Đồ thị biểu diễn sự phụ thuộc của sai số MSE theo số bước học



Hình 15: Đồ thị biểu diễn sự phụ thuộc của sai số học và sai số kiểm tra vào số nơron lớp ẩn.

Mô hình ANN tối ưu dựa trên nguyên tắc lựa chọn số nút trong lớp ẩn đầu tiên sao cho giá trị sai số của mẫu học và mẫu kiểm tra là thấp nhất. Đồ thị trên hình 15 cho thấy, nếu số nơron lớp ẩn là 100 thì giá trị sai số học và sai số kiểm tra sẽ nhỏ gần bằng nhau. Do đó, chúng tôi chọn số nơron lớp ẩn là 100 để tiến hành luyện mạng và kiểm tra mạng theo chương trình dưới đây:

net = newff(minmax(Alearn),[100 100 100 100 5],{'logsig' 'logsig' 'purelin' 'logsig' 'purelin'},'traincgf');

net.trainParam.goal=0.0001;

net.trainParam.epochs = 10000;

net = train(net,Alearn,Clearn);

ylearn = sim(net,Alearn);

ytest = sim(net,Atest);

saiso1 = 100*(ytest-Ctest)./Ctest;

3.2.2. Xây dựng thuật toán loại trừ giá trị đo bất thường (outlier)

Khi xây dựng ma trận nồng độ mẫu phân tích và mẫu kiểm tra xác định 5 cấu tử trong cùng 1 dung dịch, do trật tự thí nghiệm được bố trí một cách ngẫu nhiên và số thí nghiệm rất lớn nên kết quả thí nghiệm chắc chắn sẽ có sai số thô hay còn gọi là giá trị bất thường. Nếu không loại bỏ các thí nghiệm này sẽ dẫn tới quá trình phân tích dựa trân ma trận dung dịch chuẩn thu được thiếu chính xác.

Do đó chúng tôi đã tiến hành xây dựng thuật toán loại sai số thô trước khi tiến hành thực hiện quá trình phân tích thành phần chính. Quá trình loại sai số dựa trên việc đánh giá giá trị trung bình độ sai chuẩn tương đối của ma trận kiểm tra.

Đây là mô hình loại bỏ 1 số mẫu mà nghi ngờ mắc sai số tương đối lớn. Dựa vào mô hình hồi quy này, 20 dung dịch kiểm tra được sử dụng để đánh giá độ chính xác và phù hợp của mô hình thông qua giá trị độ sai chuẩn tương đối (relative standard error)

Trong đó Cij là nồng độ chuẩn của cấu tử thứ i trong mẫu j. nồng độ của cấu tử i trong mẫu j tính được từ mô hình.

Mẫu bị mắc sai số hệ thống là mẫu khi loại bỏ nó khỏi ma trận mẫu học thì bộ số liệu học còn lại sẽ cho sai số tương nhỏ. Vì vậy, mẫu nào mà khi loaịo bỏ nỏ làm cho giá trị RSE thấp thì mẫu đó càng kém chính xác, có ảnh hưởng nhiều tới mô hình ANN và nên loại bỏ để được RSE nhỏ.

Các bước tiến hành phương pháp trên như sau:

- Nhập ma trận 80 mẫu chuẩn và 20 mẫu để kiểm tra.

- Loại bỏ mẫu số 1 trong ma trận mẫu chuẩn thì chỉ còn 79 mẫu học, khi đó ma trận xlearn chỉ còn (79x151) và ma trận dlearn chỉ còn (79x5)

- Xây dựng mô hình ANN thông thường dựa trên 79 dung dịch chuẩn để tìm nồng độ của các mẫu kiểm tra khi có ma trận độ hấp thụ quang của mẫu kiểm tra.

- Tính toán giá trị trung bình độ sai chuẩn tương đối của tất cả các mẫu kiểm tra dựa trên công thức bằng excel. Mẫu nào làm giá trị RSE nhỏ hơn 1% tức là mẫu đó bị mắc sai số hệ thống.

- Tiến hành loại bỏ tương tự mẫu số 2, mẫu số 3…mẫu 80 với thuật toán trong Matlab như sau:

load mau1.mat; % mau 1 la mau trong do ma tran mau kiem tra bi loai bo gia

% mau so 1, chi con lai 79 mau. Nhu vay, neu mau 1 khong mac sai so tho

% thi gia tri do sai chuan cua mau kiem tra se lon do mau 1 co anh huong

% mo hinh ANN

net = newff(minmax(Alearn),[100 100 100 100 5],{'logsig' 'logsig' 'purelin' 'logsig' 'purelin'},'traincgf');

net.trainParam.goal=0.0000001;

net.trainParam.epochs = 300000;

net = train(net,Alearn,Clearn);

ylearn = sim(net,Alearn);

ytest = sim(net,Atest);

saiso1 = 100*(ytest-Ctest)./Ctest;


load mau2.mat;

net = newff(minmax(Alearn),[100 100 100 100 5],{'logsig' 'logsig' 'purelin' 'logsig' 'purelin'},'traincgf');

net.trainParam.goal=0.0000001;

net.trainParam.epochs = 300000;

net = train(net,Alearn,Clearn);

ylearn = sim(net,Alearn);

ytest = sim(net,Atest);

saiso2 = 100*(ytest-Ctest)./Ctest;


load mau3.mat;

net = newff(minmax(Alearn),[100 100 100 100 5],{'logsig' 'logsig' 'purelin' 'logsig' 'purelin'},'traincgf');

net.trainParam.goal=0.0000001;

net.trainParam.epochs = 300000;

net = train(net,Alearn,Clearn);

ylearn = sim(net,Alearn);

ytest = sim(net,Atest);

saiso3 = 100*(ytest-Ctest)./Ctest;



……

Sau khi thu được các giá trị sai số tương đối, nhập dữ liệu trên vào phần mềm excel để tính toán giá trị độ sai chuẩn tương đối. Giá trị độ sai chuẩn tương đối thu được ở bảng 7:



Bảng 7: Khảo sát sơ bộ độ sai chuẩn tương đối trung bình RSE của các mẫu kiểm tra

STT mẫu

RSE (%)

STT mẫu

RSE (%)

STT mẫu

RSE(%)

1

1,1027

28

2,1432

55

0,9345

2

6,5147

29

2,4562

56

7,2459

3

3,5476

30

3,4566

57

2,1234

4

1,2874

31

5,2355

58

3,0596

5

1,8863

32

4,2342

59

4,1949

6

1,3534

33

2,1432

60

3,1946

7

5,3936

34

4,6867

61

2,1948

8

2,5653

35

3,2512

62

6,1395

9

3,8875

36

5,5678

63

7,1252

10

2,3546

37

1,2738

64

2,2495

11

4,0415

38

2,3957

65

3,0184

12

5,9181

39

3,1480

66

2,3594

13

3,8006

40

4,3579

67

11,4567

14

11,1977

41

3,2658

68

8,4359

15

3,9807

42

2,1479

69

1,153294

16

5,1383

43

5,2568

70

3,8271

17

5,4388

44

6,2567

71

3,8271

18

4,8931

45

3,9376

72

4,5764

19

0,3647

46

0,2859

73

7,5594

20

4,7868

47

2,9859

74

4,4158

21

2,3464

48

9,2578

75

5,8491

22

7,1353

49

4,1035

76

5,6077

23

4,6877

50

3,1056

77

20,4685

24

1,3454

51

2,1349

78

3,0289

25

5,3254

52

2,5082

79

6,6760

26

8,2355

53

6,2068

80

3,93347

27

0,1243

54

7,9375







Dựa vào bảng 7 chúng tôi nhận thấy nếu bỏ mẫu 19, 27, 46 thì kết quả mẫu học sẽ cho sai số thấp nhất, do đó chúng tôi loại bỏ 3 mẫu trên, và tiến hành tính toán lại dựa trên mô hình ANN, khi đó ma trận mẫu học chỉ còn lại là 77x5.

3.3. Phương pháp mạng noron nhân tạo kết hợp với hồi quy thành phần chính (PCR-ANN) xác định đồng thời 5 cấu tử trong dung dịch.



Mục tiêu của luận văn là nghiên cứu xây dựng thuật toán PCR-ANN và áp dụng phần mềm MATLAB để giải quyết bài toán phân tích đồng thời nhiều cấu tử trong cùng hỗn hợp trên cơ sở giảm kích thước của tập số liệu nên chúng tôi chỉ tiến hành nghiên cứu phương pháp xác định với các dung dịch mẫu tự tạo đã biết sẵn nồng độ của 5 ion kim loại và không có ion lạ ngoài các ion cần phân tích. Ảnh hưởng của các chất cản trở được xem như ảnh hưởng nền mẫu.

Đối với phương pháp hồi quy đa biến phi tuyến tính, các thuật toán có phức tạp hơn, bộ số liệu sử dụng vẫn như trên, tuy nhiên các ma trận số liệu đó có kích thước rất lớn, thời gian luyện mạng kéo dài. Để giảm kích thước của tập số liệu, chúng tôi tiến hành sử dụng phương pháp phân tích cấu tử chính. Ma trận độ hấp thụ quang được chuyển sang 1 hệ tọa độ khác, tại đó, chỉ có 1 số cấu tử ảnh hưởng trực tiếp đến nồng độ của các ion kim loại khảo sát (cấu tử chính). Do đó, thiết lập được 1 ma trận đầu vào của mạng noron nhân tạo có kích thước nhở hơn, làm đơn giản hóa mô hình tính toán và kết quả thu được có độ chính xác cao hơn.

3.3.1. Khảo sát xây dựng mô hình PCA tối ưu.

- Tiến hành nhập ma trận nồng độ và ma trận độ hấp thụ quang của 80 mẫu chuẩn vào chương trình PCA đã dựng sẵn để xây dựng mô hình hồi quy đa biến trên cơ sở phân tích cấu tử chính nhằm giảm kích thước tập số liệu.

- Sau khi dùng phương pháp ANN đánh giá sơ bộ, loại trừ các mẫu mắc sai số thô, ảnh hưởng tới kết quả quá trình phân tích. Bộ số liệu học gồm ma trận nồng độ của các dung dịch chuẩn chỉ còn kích thước 77x5 và ma trận độ hấp thụ quang có kích thước 77x151.


  • Nhập ma trận độ hấp thụ quang của mẫu học và mẫu kiểm tra Ao (mxn) trong đó m hàng là số mẫu chuẩn bị ( m= 77+20= 97, n cột là số bước sóng (n=151).

  • Chuẩn hóa tập số liệu đầu vào: stdr = std(Ao) ;

  • Chuyển tập số liệu sang 1 tọa độ mới: sr = Ao./repmat(stdr,100,1);

  • Tính toán các giá trị tải trọng (loading) và trị số (score), phương sai (var)

[PCALoadings, PCAScores, PCAVar] = princomp(sr);

  • Tính tổng giá trị phương sai tích lũy trên các cấu tử: cumsum(PCAVar./sum(PCAVar) * 100);

Sau khi tính toán vecto cột chứa giá trị phần trăm phương sai tích lũy gồm 151 hàng (tương ứng với 151 bước sóng) thu được như bảng 8 sau:

Bảng 8: Giá trị phương sai tích lũy ứng với 151 cấu tử

Cấu tử

Giá trị phương sai tích lũy

1

61,0620135980013

2

94,6386206361863

3

99,4701457087665

4

99,9047763641201

5

99,9675941164431

6

99,9846263560543

7

99,9961983769519

8

99,9968829228295

9

99,9974242980017

10

99,9976864025098

11

99,9978870269475

12

99,9980840753909

13

99,9982529434438

14

99,9984155586119

15

99,9985570592987

…..

….

Bảng 8 thực tế có 151 cấu tử, tương ứng với 151 bước sóng. Sau khi dùng PCA từ ma trận độ hấp thụ quang 97x151 về nguyên tắc sẽ thu được 151 cấu tử (PC) nhưng kết quả cho thấy cấu tử 1 (PC1) đã chiếm 61,06% lượng thông tin của tập dữ liệu, nếu thêm cấu tử thứ hai (PC2) thì phương sai tích lũy đã đạt 94,64%. Khi thêm một cấu tử nữa (PC3) thì 3 cấu tử đầu này đã chiếm 99,47% lượng thông tin tập dữ liệu. Từ cấu tử thứ 4 trở đi lượng thông tin thu được tăng không đáng kể.

Từ kết quả trên cho thấy, 3 cấu tử ban đầu có ảnh hưởng chính tới các thông tin chứa trong tập số liệu. Bảng 16 là độ sai chuẩn tương đối RSE(%) tùy thuộc vào số cấu tử chính đã chọn.

Bảng 9 : Sự phụ thuộc của RSE vào số cấu tử chính khi phân tích mẫu kiểm tra

Số cấu tử (PC)

1

2

3

4

5

RSE(%)

26,86

3,14

4,00

4,20

5,07

Kết quả ở bảng 8 cho thấy nếu mô hình ANN chỉ chọn 1 cấu tử làm số nút lớp nhập thì sai số rất lớn là do cấu tử 1 chỉ chiếm khoảng 64% lượng thông tin của tập dữ liệu ban đầu. Với lượng thông tin đó, rất khó để thiết lập mô hình ANN phù hợp để xác định đồng thời cả 5 cấu tử.

Tuy nhiên, nếu tăng số cấu tử lên 3, 4 hoặc 5 thì sai số RSE tăng là do lượng thông tin chứa trong các cấu tử thứ 3, thứ 4 và thứ 5 không ảnh hưởng nhiều tới tập dữ liệu ban đầu trong khi kích thước tập số liệu lại tăng, vì vậy chúng tôi đã lựa chọn chỉ 2 cấu tử chính cho các bước nghiên cứu tiếp theo. Như vậy, tập dữ liệu ban đầu từ kích thước 97x151 cấu tử (ma trận độ hấp thụ quang) được chuyển về kích thước nhỏ hơn, chỉ còn 97x2 ( ma trận trị số (score) của 97 dung dịch chuẩn và kiểm tra và 2 PC).

3.3.2. Xây dựng mô hình PCR- ANN

* Xây dựng mô hình tìm số cấu tử chính (PCA) :

- Nhập toàn bộ giá trị ma trận độ hấp thụ quang của dung dịch chuẩn và dung dịch kiểm tra thành ma trận Ao (97x151) (97 là số mẫu của dung dịch chuẩn và dung dịch kiểm tra, 151 là số bước sóng khảo sát) để phân tích cấu tử chính (PCA).

- Chuẩn hóa tập số liệu đầu vào:

stdr = std(Ao) ;


  • Chuyển tập số liệu sang 1 tọa độ mới:

sr = Ao./repmat(stdr,100,1);

  • Tính toán các giá trị tải trọng (loading) và trị số (score), phương sai tích lũy (var)

[PCALoadings, PCAScores, PCAVar] = princomp(sr);

- Do số cấu tử chính tối ưu là 2, tách 2 cột đầu tiên trong ma trận trị số PCAScores làm dữ liệu đầu vào trong mô hình ANN, thu được ma trận mới A’o( 2x97) (97 là số mẫu dung dịch chuẩn và dung dịch kiểm tra, 2 là số cấu tử chính tối ưu)

* Xây dựng mô hình ANN dựa vào tập số liệu PCA vừa phân tích được.

+ Nhập ma trận đầu vào mẫu học Clearn(5x77) của 77 dung dịch chuẩn chứa 5 ion kim loại cần phân tích (5 hàng, 77 cột).

+ Nhập ma trận đầu ra mẫu học Alearn(2x77) (2 là số cấu tử chính thu được khi phân tích PCA). Ma trận này lấy từ 77 cột đầu tiên của ma trận A’o.

+ Nhập ma trận nồng độ mẫu kiểm tra Ctest(5x20) của 20 dung dịch chuẩn chứa 5 cấu tử (5 hàng, 20 cột).

+ Nhập ma trận đầu ra mẫu kiểm tra Atest(2x20). Ma trận này lấy từ 20 cột cuối cùng của ma trận A’o.

+ Tính toán số liệu theo mô hình ANN tối ưu đã khảo sát

net = newff(minmax(Alearn),[100 100 100 100 5],{'logsig' 'logsig' 'purelin' 'logsig' 'purelin'},'traincgf');

net.trainParam.goal=0.0000001;

net.trainParam.epochs = 300000;

net = train(net,Alearn,Clearn);

ylearn = sim(net,Alearn);

ytest = sim(net,Atest);

saiso = 100*(ytest-Ctest)./Ctest;

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



  • Sau khi tính toán, kết quả thu được từ mô hình sẽ là giá trị

+ ylearn : nồng độ của các mẫu học sau quá trình luyện mạng (learning).

+ ytest : nồng độ các mẫu kiểm tra sau quá trình học của mạng (trainning)

+ sai số tương đối của các mẫu kiểm tra sau quá trình học mạng

Thời gian luyện mạng được biểu diễn ở hình 16. Nồng độ và sai số tương đối của các mẫu kiểm tra sau quá trình học mạng được biểu diễn ở bảng 10




Hình 16 : Mô hình luyện mạng nơron nhân tạo sau khi đã phân tích thành phần chính.

Như vậy, nếu giảm kích thước tập số liệu thì thời gian tính toán của mô hình đã được giảm từ 55 phút xuống còn 5phút46 giây.



Bảng 10: Bảng so sánh nồng độ của các ion kim loại thu được từ mô hìnhANN và mô hình PCR-ANN

Mẫu

Nồng độ dung dịch kiểm tra (mg/l)

Nồng độ dung dịch thu được từ mô hình ANN (mg/l)

Nồng độ dung dịch thu được từ mô hình PCR-ANN (mg/l)




Cu

Ni

Co

Pb

Cd

Cu

Ni

Co

Pb

Cd

Cu

Ni

Co

Pb

Cd

1

0,4

0

0,4

3

0,4

0,342

0,010

0,422

2,972

0,382

0,386

0,001

0,415

3,006

0,389

2

0,4

0,6

0

1

0,4

0,415

0,614

0,032

1,002

0,362

0,408

0,604

0,002

1,010

0,393

3

0,6

0,2

0,2

0

0,4

0,489

0,189

0,330

-0,024

0,377

0,606

0,190

0,200

0,001

0,395

4

0,4

0,2

0,4

3

0

0,381

0,211

0,360

3,028

-0,003

0,400

0,216

0,401

3,000

0,007

5

0

0,4

0

0

1,2

0,009

0,370

-0,010

0,011

1,190

0,007

0,400

0,009

0,007

1,189

6

0

0,2

1

0

0

0,036

0,201

0,964

0,001

0,009

0,002

0,190

0,995

0,005

0,006

7

0,2

0

1

0

0

0,203

-0,008

1,037

0,001

-0,039

0,190

0,008

0,999

0,004

0,002

8

0

0

0

0

1,6

0,004

0,014

-0,035

0,024

1,613

0,003

0,000

0,004

0,001

1,593

9

1,2

0,1

0,1

0,5

0,1

1,189

0,130

0,088

0,492

0,109

1,202

0,103

0,108

0,502

0,098

10

1

0,2

0,1

0,5

0,1

0,972

0,184

0,000

0,518

0,058

1,001

0,192

0,100

0,503

0,108

11

0,6

0,6

0

0

0

0,588

0,586

0,084

-0,042

-0,020

0,589

0,609

0,007

0,004

0,003

12

0,3

0,2

0,2

1,5

0,4

0,289

0,246

0,220

1,517

0,404

0,301

0,232

0,205

1,504

0,397

13

0,2

0,2

0,3

1,5

0,4

0,279

0,194

0,258

1,535

0,424

0,187

0,184

0,312

1,495

0,389

14

0,4

0,4

0

0

1

0,372

0,416

0,039

-0,004

1,021

0,402

0,403

0,008

0,003

1,004

15

0,6

0,4

0

2

0

0,586

0,409

0,037

2,009

-0,026

0,620

0,403

0,006

2,028

0,001

16

0

0,8

0

0

0,8

0,011

0,778

0,008

0,004

0,847

0,003

0,807

0,000

0,001

0,794

17

0,2

0,2

0,2

1

0,2

0,262

0,187

0,157

0,983

0,213

0,189

0,192

0,194

0,991

0,188

18

0,3

0,1

0,2

1

0,4

0,205

0,120

0,267

0,976

0,411

0,283

0,147

0,212

0,990

0,392

19

0,2

0,3

0,1

1

0,4

0,184

0,315

0,100

0,958

0,416

0,200

0,319

0,094

1,002

0,394

20

0,2

0,2

0,3

0,5

0,4

0,178

0,162

0,359

0,499

0,398

0,167

0,171

0,306

0,519

0,416

Bảng 11: Nồng độ của các ion kim loại thu được từ mô hình PCR-ANN và sai số tương đối thu được.

Mẫu

Nồng độ dung dịch kiểm tra (mg/l)

Nồng độ dung dịch thu được từ mô hình (mg/l)

Sai số tương đối (%)




Cu

Ni

Co

Pb

Cd

Cu

Ni

Co

Pb

Cd

Cu

Ni

Co

Pb

Cd

1

0,4

0

0,4

3

0,4

0,386

0,001

0,415

3,006

0,389

3,48

0

3,790

0,228

2,567

2

0,4

0,6

0

1

0,4

0,408

0,604

0,002

1,010

0,393

2,14

0,809

0

1,034

1,736

3

0,6

0,2

0,2

0

0,4

0,606

0,190

0,200

0,001

0,395

1,06

4,547

0,442

0

1,606

4

0,4

0,2

0,4

3

0

0,400

0,216

0,401

3,000

0,007

0,11

8,089

0,345

0,009

0

5

0

0,4

0

0

1,2

0,007

0,400

0,009

0,007

1,189

0

0,177

0

0

0,874

6

0

0,2

1

0

0

0,002

0,190

0,995

0,005

0,006

0

4,907

0,484

0

0

7

0,2

0

1

0

0

0,190

0,008

0,999

0,004

0,002

4,590

0

0,010

0

0

8

0

0

0

0

1,6

0,003

0,000

0,004

0,001

1,593

0

0

0

0

0,387

9

1,2

0,1

0,1

0,5

0,1

1,202

0,103

0,108

0,502

0,098

0,233

3,347

8,263

0,593

1,910

10

1

0,2

0,1

0,5

0,1

1,001

0,192

0,100

0,503

0,108

0,163

3,989

0,058

0,753

8,232

11

0,6

0,6

0

0

0

0,589

0,609

0,007

0,004

0,003

1,748

1,631

0

0

0

12

0,3

0,2

0,2

1,5

0,4

0,301

0,232

0,205

1,504

0,397

0,445

16,19

2,850

0,305

0,640

13

0,2

0,2

0,3

1,5

0,4

0,187

0,184

0,312

1,495

0,389

6,061

7,594

4,036

0,313

2,699

14

0,4

0,4

0

0

1

0,402

0,403

0,008

0,003

1,004

0,572

0,755

0

0

0,406

15

0,6

0,4

0

2

0

0,620

0,403

0,006

2,028

0,001

3,482

0,883

0

1,432

0

16

0

0,8

0

0

0,8

0,003

0,807

0,000

0,001

0,794

0

0,882

0

0

0,689

17

0,2

0,2

0,2

1

0,2

0,189

0,192

0,194

0,991

0,188

5,462

3,504

2,675

0,876

5,921

18

0,3

0,1

0,2

1

0,4

0,283

0,147

0,212

0,990

0,392

5,391

47,99

6,045

0,924

1,960

19

0,2

0,3

0,1

1

0,4

0,200

0,319

0,094

1,002

0,394

0,449

6,368

5,420

0,240

1,353

20

0,2

0,2

0,3

0,5

0,4

0,167

0,171

0,306

0,519

0,416

16,01

14,08

2,127

3,857

4,133

So sánh các giá trị nồng độ thu được từ bảng 10 cho thấy, phương pháp PCR-ANN cho phép tính toán nồng độ các cấu tử gần với giá trị thực của các dung dịch chuẩn hơn. Đồng thời bảng 11 cho thấy, nồng độ các cấu tử thu được từ mô hình PCR-ANN cho thấy, sai số tương đối đều rất nhỏ, phù hợp để xác định đồng thời nhiều cấu tử trong cùng 1 dung dịch và phương pháp PCR-ANN cho giá trị RSE(%) là rất thấp (0%). Có một số mẫu mà nồng độ của 1 trong 5 cấu tử bằng 0, thì kết quả nồng độ đó thu được từ mô hình cũng là rất nhỏ (khoảng 0,001ppm). Mẫu 18 có sai số rất lớn, điều này chỉ có thể giải thích là do bản thân mẫu đã mắc sai số hệ thống do pha chế.

Các phương pháp xác định đồng thời các cấu tử trong cùng dung dịch khác thường gặp phải khó khăn: đối tượng phân tích phải nằm trong khoảng tuyến tính, các mẫu phân tích không mắc sai số hệ thống, hoá chất tinh khiết… Nhưng khi phân tích đồng thời Cu2+, Co2+, Ni2+, Pb2+, Cd2+, chúng tôi đã tiến hành thí nghiệm với các mẫu chuẩn nằm ngoài khoảng tuyến tính, các kết quả phân tích mắc phải sai số hệ thống khi khảo sát sự phụ thuộc của độ hấp thụ quang vào nồng độ, đồng thời mẫu trắng có độ hấp thụ quang khá cao (cao nhất là 0,217) nhưng những nhược điểm đó đã được mạng nơron nhân tạo khắc phục. Do đó hàm lượng các kim loại thu được chính xác hơn. Sai số tương đối nhỏ nhất là 0% và lớn nhất là 47%. Tuy nhiên, các giá trị sai số của mẫu 18 đều rất lớn, chứng tỏ là mẫu kiểm tra số 18 đã mắc sai số thô trong quá trình pha mẫu.

Từ các kết quả trên cho thấy mạng nơron nhân tạo là một phương pháp tối ưu để giải quyết các bài toán xác định đồng thời các cấu tử trong cùng hỗn hợp ngay cả khi hỗn hợp các cấu tử có tín hiệu đo tuyến tính hay phi tuyến tính với nồng độ chất phân tích. Tuy nhiên, nếu chỉ sử dụng phương pháp mạng nơron nhân tạo, thì do kích thước tập số liệu khá lớn, khiến cho thời gian luyện mạng mất nhiều thời gian, có khi lên tới 60 phút. Vì vậy, chúng tôi sử dụng phương pháp phân tích thành phần chính để giảm kích thước tập số liệu, rút ngắn thời gian phân tích mà không làm mất lượng thông tin có trong tập dữ liệu ban đầu.

Vì thời gian có hạn nên chúng tôi chưa thử được mô hình mạng PCR-ANN để xác định hàm lượng Cu2+, Co2+, Ni2+, Pb2+, Cd2+ trong mẫu thực tế và so sánh với các phương pháp khác cũng như thử trên các đối tượng khác. Những nghiên cứu này sẽ được tiến hành trong thời gian tới.

3.3.3. Đánh giá tính hiệu quả của phương pháp PCR-ANN

Phương pháp PCR-ANN là phương pháp hồi quy đa biến cho phép phân tích đồng thời nhiều cấu tử, độ chính xác cao. Để đánh giá tính hiệu quả của mô hình, chúng tôi tiếp tục xây dựng mô hình PCR-ANN để xác định đồng thời 3 ion kim loại Ce2+, Cu2+ và Ca2+ dựa trên kết quả phân tích của đề tài “ xác định đồng thời các kim loại Ce, Cu và Ca trong lớp phủ bảo vệ kim loại đen bằng phương pháp hấp thụ phân tử sử dụng mạng ANN” – luận văn thạc sĩ khoa học (2006) của tác giả [11]



Kích thước tập số liệu gồm 2 ma trận:

+ Ma trận độ hấp thụ quang A (342x 76) 342 mẫu của hỗn hợp 3 ion kim loại Ce2+, Cu2+ và Ca2+ tại 76 bước sóng (từ 580 nm đến 730 nm).

+ Ma trận nồng độ C (342 x 3) (342 mẫu và 3 ion kim loại)

Phân tích thành phần chính:

+ Chuẩn hóa tập số liệu đầu vào: stdr = std(Ao) ;

+ Chuyển tập số liệu sang 1 tọa độ mới: sr = Ao./repmat(stdr,342,1); 342 là số mẫu tiến hành đo độ hấp thụ quang.

+ Tính toán các giá trị tải trọng (loading) và trị số (score), phương sai (var)





1   2   3   4   5   6


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2019
được sử dụng cho việc quản lý

    Quê hương