You are on page 1of 29

Mục lục

I. Giới thiệu phần mềm MATLAB..............................................................................................2


1. Các khả năng chính của MATLAB cơ bản:.........................................................................2
2. Các cửa sổ chính trong phần mềm MATLAB.....................................................................3
3. Một số đặc trưng chính của MATLAB: ..............................................................................4
4. Khởi động và sử dụng MATLAB trong hóa phân tích........................................................5
II. Phương pháp hồi quy đa biến..................................................................................................6
1. Hồi quy đa biến tuyến tính...................................................................................................6
1.1. Phương pháp bình phương tối thiểu thông thường (classical least square-CLS).........7
1.2. Phương pháp bình phương tối thiểu nghịch đảo (inverse least square- ILS)..............11
1.3. Phương pháp bình phương tối thiểu từng phần (partial least square-PLS )................14
1.4. Phương pháp hồi qui cẩu tử chính ( principal component regression -PCR).............17
2. Hồi quy đa biến phi tuyến tính...........................................................................................23
2.1. Phương pháp mạng noron nhân tạo............................................................................23
2.2. Phương pháp hồi quy cấu tử chính kết hợp với mạng noron nhân tạo(PC-ANN)......29
I. Giới thiệu phần mềm MATLAB
MATLAB được bắt nguồn từ thuật ngữ “Matrix Laboratory” – là phần mềm nổi
tiếng của công ty MathWorks. Đây là một ngôn ngữ hiệu năng cao hỗ trợ đắc lực cho
tính toán với ma trận và hiển thị. Matlab được điều khiển bằng tập các lệnh, tác động
qua bàn phím trên cửa sổ điều khiển. Các câu lệnh đơn giản, viết sát với các mô tả kĩ
thuật nên lập trình trên ngôn ngữ này thực hiện nhanh, dễ dàng hơn so với nhiều ngôn
ngữ thông dụng khác như Pascal, Fortran,… Những hàm có sẵn trong Matlab có cấu
trúc thiết lập gần giống ngôn ngữ C, do đó người dùng không mất nhiều thời gian học
hỏi khi đã nắm được những vấn đề cơ bản của một số ngôn ngữ lập trình thông dụng.
Bên cạnh đó, Matlab không chỉ cho phép đặt vấn đề tính toán mà còn có thể xử lí dữ
liệu, biểu diễn đồ họa một cách mềm dẻo, đơn giản, chính xác trong không gian 2D và
3D bằng cả những hàm sẵn có và các hàm ứng dụng do người sử dụng tạo lập. Đặc biệt
hơn nữa, giao diện của Matlab cho phép đọc, xử lý và đưa tín hiệu đầu ra ngay trên các
file Excel - rất tiện lợi cho quá trình xử lý tập số liệu phức tạp. Cuối cùng, với ưu điểm
cài đặt đơn giản, có thể liên kết với các thư viện trợ giúp như Toolbox, Simulink,
Fuzzy, DSP (digital signal processing) hay tích hợp với các ngôn ngữ quen thuộc như
C, C++, Fortran,…, Matlab đã thực sự trở thành công cụ phổ biến đắc lực trong các môi
trường khác nhau.
1. Các khả năng chính của MATLAB cơ bản:
- Thực hiện các tính toán toán học bao gồm: ma trận và đại số tuyến tính, đa
thức và nội suy, phân tích số liệu và thống kê, tìm cực trị của hàm một biến hoặc nhiều
biến, tìm nghiệm của phương trình, tính gần đúng tích phân, giải phương trình vi phân.
- Phân tích, khảo sát và hiển thị số liệu: các số liệu được nhập vào cũng như
xuất ra dưới dạng ma trận, giúp người sử dụng dễ dàng quan sát, phân tích, đánh giá
được dữ liệu của mình. Đồng thời MATLAB có Toolbox Statistic với những hướng
dẫn cụ thể, hỗ trợ cho việc phân tích, khảo sát dựa trên các dữ liệu với các hàm cơ bản
có sẵn.
- Đồ họa 2 chiều và 3 chiều: MATLAB cung cấp rất nhiều các hàm đồ họa, nhờ
đó ta có thể nhanh chóng vẽ được đồ thị của hàm bất kỳ 1 biến hoặc 2 biến, vẽ được
các kiểu mặt… Ngoài ra MATLAB còn vẽ rất tốt các đối tượng 3 chiều phức tạp như
hình trụ, hình cầu, hình xuyến,..và cung cấp khả năng xử lý ảnh và hoạt hình.
- Mô hình, mô phỏng các hệ thống kĩ thuật, vật lý trên cơ sở sơ đồ cấu trúc dạng
khối, sau khi đã thiết lập các thông số cần thiết phù hợp với yêu cầu, người sử dụng chỉ
việc khởi động chương trình MATLAB và xử lý dữ liệu qua mô hình đã thiết lập được.
- Phát triển thuật toán: ngoài các câu lệnh được viết sẵn trong thư viện trợ giúp
Toolbox, phần mềm được thiết kế để hỗ trợ người sử dụng có thể lập trình chương
trình riêng của mình giống như trong các phần mềm khác: Pascal, Visual basic…
- Xây dựng giao diện người dùng: với MATLAB 7 người dùng có thể dễ dàng
xây dựng giao diện gồm các thực đơn, nút lệnh, hộp thoại, hộp chọn,...mà không cần
phải viết mã như các phiên bản trước đây.
2. Các cửa sổ chính trong phần mềm MATLAB
Phần mềm MATLAB được chia thành rất nhiều cửa sổ, mỗi cửa sổ có chức
năng khác nhau giúp người sử dụng dễ dàng làm việc. Các cửa sổ chính bao gồm:

- Command Window: cửa sổ làm việc chính của MATLAB. Tại đây ta thực hiện
toàn bộ việc nhập dữ liệu và xuất kết quả tính toán. Dấu nhấp nháy >> báo hiệu
chương trình sẵn sàng hoạt động.
- Editor: cửa sổ soạn thảo. Nhờ cửa sổ này, ta có thể viết mới hay xử lý, sửa đổi
các scripts (file chương trình) và các hàm.
- Commad history: cửa sổ quá khứ, lưu lại các câu lệnh đã được thực hiện trước
đó. Có thể lặp lại các lệnh cũ bằng cách kích đúp chuột vào lệnh đó. Cũng có thể cắt,
sao hoặc xóa cả nhóm lệnh hoặc từng lệnh riêng rẽ.
- Current Directory: cửa sổ thư mục hiện tại. Nhờ cửa sổ này, người sử dụng có
thể nhanh chóng nhận biết, chuyển đổi thư mục hiện tại của môi trường công tác, mở
file, tạo thư mục mới.
- Workspace: cửa sổ môi trường công tác, chứa các ma trận số liệu cần thực hiện
- Array Editor: bảng ma trận số liệu cụ thể, giống như booksheet trong Excel.
3. Một số đặc trưng chính của MATLAB:

 MATLAB là ngôn ngữ thông dịch. Vì thế nó có thể làm việc ở hai chế độ: tương
tác và lập trình.
Trong chế độ tương tác MATLAB thực hiện từng lệnh được gõ trong cửa sổ
lệnh sau dấu nhắc lệnh và kết quả tính toán được hiện ngay trong cửa sổ này, còn đồ thị
được hiện trong một cửa sổ khác. Lệnh tương tác có thể là đơn giản, thí dụ tính sin(1.5)
hoặc vẽ fplot('sin(1 ./ x)', [0.01 0.1]), có thể là cấu trúc điều kiện, thí dụ if x<=0; y=0;
else; y=1; end hoặc các cấu trúc lặp xác định và không xác định.
Trong chế độ lập trình một tập lệnh được soạn thảo và ghi thành một têp đuôi .m
(m-file). Các hàm cũng được tổ chức thành các m-file. Một chương trình có thể gồm
nhiều m-file. Để chạy chương trình chỉ cần gõ tên m-file chính trong cửa sổ lệnh rồi
Enter.

 Các hàm trong MATLAB cơ bản (không kể các thư viện chuyên dụng được gọi
là các ToolBox) được chia làm 2 loại: hàm trong và hàm ngoài. Các hàm trong là các
hàm được cài đặt sẵn (built-ins) tức là tồn tại dưới dạng mã nhị phân nên ta không thể
xem được mã nguồn của chúng, thí dụ các hàm sin, sqrt, log, clear, clc,.... Đây là các
hàm hay được sử dụng hoặc các hàm đòi hỏi nhiều thời gian xử lý. Các hàm ngoài là
các hàm tồn tại dưới dạng mã nguồn mà người dùng có thể tham khảo hoặc chỉnh sửa,
bổ sung khi cần thiết, thí dụ log10, ode23, fzero,...

 Phần tử dữ liệu chính của MATLAB là các ma trận (mảng) mà kích thước của
chúng không cần khai báo trước như trong các ngôn ngữ lập trình khác. Tuy nhiên, để
tăng tốc độ xử lý cần báo trước cho MATLAB biết kích thước tối đa của mảng để phân
bổ bộ nhớ bằng một lệnh gán, chẳng hạn A(20,30)=0.
4. Khởi động và sử dụng MATLAB trong hóa phân tích
4.1. Nhập ma trận số liệu:
- Kích chuột phải trong cửa sổ WORKSPACE để tạo một ma trận mới.

- Đặt tên ma trận mong muốn.


- Kích đúp vào ma trận vừa đặt, cửa sổ ARRAY EDITOR sẽ hiện ra ở bên
phải cửa sổ MATLAB.

- Nhập số liệu giống như trong Excel


- Khi nhập xong các ma trận dữ liệu, nhấp chuột vào biểu tượng SAVE để lưu
và đặt tên file.
4.2. Viết câu lệnh:

- Vào FILE, NEW, chọn M-file để mở một file mới.


-Bạn hãy viết các câu lệnh tại đó, nếu muốn chú thích nội dung câu lệnh thì
bạn hãy đặt kí hiệu % ở phía trước. Các câu lệnh sẽ có chữ màu đen, các chú thích có
chữ màu xanh. Chú ý phải có câu lệnh gọi tên file ma trận dữ liệu.
-Sau khi viết xong hệ thống câu lệnh hoàn chỉnh, lưu lại các câu lệnh dưới
dạng M-file (scrip file) và dặt tên để khi cần có thể lấy ra dùng hoặc có thể sửa đổi tùy
thích.
4.3. Thực hiện các thuật toán :

- Chuyển các lệnh vừa soạn thảo được sang cửa sổ COMMAND WINDOW
bằng cách copy hoặc gọi tên file vừa soạn thảo.
Thí dụ : Nếu thuật toán PLS của bạn có dạng file PLS.m, bạn chỉ cần : >> PLS . Ngay
lập tức MATLAB sẽ tự động thực hiện các câu lệnh mà bạn yêu cầu.
4.4. Khai thác dữ liệu: Vào cửa sổ WORKSPACE, kích đúp vào ma trận cần biết
sẽ thu được các giá trị mong muốn.
4.5. Lưu file: Kích chuột vào biểu tượng SAVE để lưu lại các dữ liệu vừa thu
được.
4.6. Gọi lại các file đã thực hiện trước đó: Khi bạn muốn thực hiện lại hoặc lấy
lại các dữ liệu đã thực hiện trước đó, bạn chỉ cần vào cửa sổ CURRENT DIRECTORY
và kích đúp vào các file cần thiết và làm lại các bước như trên.

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


1. Hồi quy đa biến tuyến tính.
Giả sử hỗn hợp cần phân tích có k cấu tử (X1, X2…Xk), tín hiệu phân tích của hỗn
hợp là y thì phương trình hồi qui đa biến mô tả quan hệ giữa y và các biến Xi (i=1,2,…
k) có dạng :
y= a+ b1X1 + b2X2 +…+ bkXk
Về mặt lý thuyết để tìm nồng độ của k cấu tử cần có ít nhất k phương trình hồi
qui. Vì vậy thực tế sẽ cần tiến hành m thí nghiệm (m ≥ k) với m dung dịch chuẩn hỗn
hợp thì sẽ lập được m phương trình hồi qui đa biến. Dạng tổng quát của hệ phương
trình này như sau :
y= a+Xb
Trong đó b là vecto chứa các hệ số của phương trình hồi qui.
y là vecto cột chứa m giá trị y1…ym còn X là ma trận có m hàng (ứng với m quan
sát) và k cột (ứng với k biến)

 y1 
y   x1 1 x1 2 ... x1k 
 2 x x2 2 ... x2 k 
y 
y= 3 X =  21
.   ... ... .. ... 
.   
 
 y m 
 xm1 xm 2 ... xm k 

Nếu tín hiệu đo ứng với mỗi thí nghiệm có nhiều hơn một giá trị (ví dụ đo độ hấp
thụ quang một dung dịch chuẩn hỗn hợp tại p bước sóng thay vì một bước sóng) thì số
liệu của Y sẽ là ma trận có m hàng và p cột ( ymxp) như sau:

 y11 y12 ... y1 p 


y y 22 ... y 2 p 
y=
21

 ... ... ... ... 


 
 y m1 ym2 ... y mp 

Các phương trình hồi qui tuyến tính thu được sẽ cho biết:
- Những biến (cấu tử) nào có ảnh hưởng lớn (nếu giá trị tuyệt đối của hệ số hồi
qui lớn) đến kết quả thí nghiệm (tín hiệu đo).
- Biết được chiều hướng các ảnh hưởng (hệ số hồi qui mang dấu dương sẽ có ảnh
hưởng cùng chiều đến kết quả thí nghiệm và ngược lại).
- Tìm được nồng độ các cấu tử trong dung dịch cần định phân khi có tín hiệu phân
tích y.
1.1. Phương pháp bình phương tối thiểu thông thường (classical least square-CLS)
(Phương pháp này còn gọi là ma trận K (K-matrix))
- Từ dạng tổng quát y = XK +e (1)
K là vecto hệ số của phương trình hồi qui. K là ma trận (kx1) nếu y là véc tơ cột
biểu diễn tín hiệu đo của một dung dịch chuẩn với y là vecto (mx1), X là ma trận
(mxk), và e là vecto số dư (mx1). K là ma trận (kxp) nếu y là số liệu dạng ma trận
(mxp) biểu diễn tín hiệu của dung dịch chuẩn được đo tại nhiều thời điểm (ví dụ đo độ
hấp thụ quang tại p bước sóng).
- Nếu có giá trị nhập vào là biến độc lập X và biến phụ thuộc y sẽ tính được giá trị
hệ số b. Theo phương pháp bình phương tối thiểu, ma trận hệ số K sẽ được tính như
sau:

K= (XTX)-1 XTy (2)

với XT là ma trận chuyển vị của X (transpose to matrix).


- Khi đã có giá trị hệ số phương trình hồi quy, với mẫu chưa biết cần tìm giá trị X 0
từ giá trị y0 ta sẽ có:

X0 = y0 KT (KKT)-1 (3)
Phương trình (1) cho thấy có thể xem CLS như là phân tích nhân tố vì ma trận tín
hiệu y là tích của hai ma trận nhỏ X và K.
Ưu điểm : Tín hiệu phân tích y là một ma trận phổ toàn phần, do vậy phương
pháp CLS đạt được độ chính xác cao so với các phương pháp chỉ sử dụng một số bước
sóng và cho phép tính toán đúng với tất cả các phổ trong hỗn hợp.
Nhược điểm: Phương pháp CLS đòi hỏi những cấu tử trong hỗn hợp phải cho tín
hiệu có tính chất cộng tính. Vì vậy cần phải biết tất cả các phổ của những chất gây ảnh
hưởng đến vùng phổ được đo vì chúng đều đóng góp vào đường chuẩn. Điều này có
thể được loại trừ đáng kể bằng cách phân tích dải phổ tại một thời điểm sau khi gộp kết
quả vào phép phân tích thống kê. Nó cho phép loại bỏ dải phổ không tuân theo định
luật Lambe-Bia hoặc những phổ có chứa tín hiệu của ion cản.
Các bước tính toán CLS 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 độ X0 (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 Y0(mxn) (n là số tín hiệu đo)
+ Nhập tín hiệu phân tích Y của mẫu cần định phân
- Lưu các dữ liệu vừa nhập vào thành 1 file trong Matlab : CLS.mat
- Mở một M-file trong cửa sổ EDITOR và viết các câu lệnh tại đó:
%Phuong phap CLS:
%Goi cac bien su dung trong phuong phap
load CLS.mat;
%Tinh ma tran he so hoi quy K:
K=inv(X0'*X0)*X0'*Y0 ;
%KIỂM TRA ĐỘ CHÍNH XÁC CỦA PHƯƠNG PHÁP:
%Nhap ma tran tin hieu do cua mau kiem tra: Yktra
%Nhap ma tran nong do cua mau ktra: X0ktra
%Tinh nong do mau kiem tra:
Xktra=Yktra*K'*inv(K*K');
%Tinh sai so giua nong do chuan voi nong do xac dinh duoc tu phuong phap
CLS:
Saiso=(X0ktra-Xktra)*100./X0ktra;
%TÌM NỒNG ĐỘ CỦA CHẤT TRONG MẪU BẤT KÌ
%Nhap ma tran tin hieu do cua mau: Y
X=Y*K'*inv(K*K');

- Lưu lại M-file vừa thực hiện được và đặt tên file: CLS
- Gọi hàm M-file vừa viết được trong cửa sổ COMMAND WINDOW
>> CLS
- Chương trình sẽ tự động thực hiện các lệnh theo yêu cầu và hiển thị kết quả.
- Kích chuột vào giá trị Saiso, X trong WORKSPACE thu được các dữ liệu mong
muốn.

Thí dụ: Hỗn hợp cần phân tích có 2 cấu tử, tiến hành đo 10 dung dịch chuẩn tại 10 bước
sóng. Có ma trận nồng độ X(10x2) và ma trận độ hấp thụ quang A(10x10)
- Nhập ma trận nồng độ X0(10x2)-10 hàng tương ứng với 10 dung dịch chuẩn và 2 cột
tương ứng với 2 cấu tử cần phân tích
2 0.6
6 0.6
10 0.6
14 0.6
18 0.6
2 1.2
6 1.2
10 1.2
14 1.2
18 1.2
- Nhập ma trận độ hấp thụ quang Y0(10x10)-10 hàng và 10 cột tương ứng với 10 bước sóng
lựa chọn :
0.24 0.238 0.236 0.234 0.233 0.231 0.229 0.227 0.225 0.224
0.495 0.495 0.494 0.493 0.492 0.491 0.49 0.488 0.487 0.486
0.739 0.739 0.739 0.739 0.738 0.738 0.737 0.736 0.736 0.734
0.985 0.986 0.987 0.987 0.988 0.988 0.988 0.988 0.988 0.987
1.233 1.235 1.236 1.237 1.239 1.24 1.24 1.24 1.241 1.241
0.337 0.333 0.329 0.326 0.322 0.319 0.315 0.311 0.308 0.304
0.583 0.581 0.578 0.575 0.572 0.569 0.566 0.563 0.559 0.556
0.835 0.833 0.831 0.829 0.827 0.824 0.822 0.819 0.816 0.813
1.093 1.091 1.09 1.089 1.087 1.085 1.083 1.081 1.079 1.076
1.354 1.353 1.352 1.351 1.35 1.349 1.348 1.346 1.344 1.342
Nhập ma trận nồng độ mẫu kiểm tra C0ktra(2x2) :
2 0.3
6 0.9
Nhập ma trận độ hấp thụ quang của mẫu kiểm tra Yktra(2x10) :
0.183 0.182 0.182 0.181 0.18 0.18 0.179 0.178 0.178 0.177
0.536 0.534 0.532 0.531 0.529 0.527 0.525 0.523 0.521 0.519
Các giá trị thu được :
Ma trận K(2x10):
0.062962 0.063167 0.063362 0.063514 0.063714 0.063867 0.064
0.17678 0.17333 0.16985 0.16686 0.16326 0.16 0.1568
(2 hàng trong ma trận K để chỉ 2 giá trị hệ số của 2 biến là 2 cấu tử cần phân tích trong
hỗn hợp).
Ma trận nồng độ mẫu kiểm tra tính từ phương trình hồi quy Cktra(2x2) :
1.9721 0.3285
6.0849 0.90571
Saiso :
4.334 3.2997
2.6402 0.18868
Nếu kết quả trong mẫu phân tích là một giá trị bằng số thì Matlab sẽ không tính được giá
trị của nồng độ trong mẫu. Vì vậy CLS thường chỉ thích hợp cho những phép phân tích tại
nhiều bước sóng. Khi sử dụng phương pháp này trong thực tế, cần sử dụng số dung dịch
chuẩn và số tín hiệu đo nhiều hơn nữa.

1.2. Phương pháp bình phương tối thiểu nghịch đảo (inverse least square- ILS)
(Phương pháp ma trận P ( P- matrix))
Ngược lại với phương pháp CLS. Phương pháp này giả thiết rằng nồng độ chất
phân tích là hàm của tín hiệu phân tích theo phương trình:
X=y.P+e
Trong phương pháp này, hệ số P trong phương trình hồi qui là thành phần của ma
trận (mxk) được tính theo phương pháp bình phương tối thiểu suy rộng (generalized):
P= (yTy)-1 yTX
Việc phân tích nồng độ chất chưa biết (X0) được thực hiện bằng cách nhân trực
tiếp giá trị tín hiệu đo y0 của dung dịch cần phân tích với P.
X0= y0.P
Mỗi hàng trong y là tín hiệu của một mẫu, mỗi cột là tín hiệu của các mẫu ở một
thời điểm nhất định. Vì vậy, trong phương pháp ILS số mẫu không được ít hơn số thời
điểm đo. Do yêu cầu về số mẫu tối thiểu như trên nên để tiến hành sử dụng phương
pháp này, ta cần lựa chọn số thời điểm đo tối thiểu đặc trưng nhất trên toàn dải tín hiệu
đo. Các điểm đo đặc trưng này thường là những điểm thỏa mãn các yêu cầu sau:

∗ Giá trị tín hiệu đo tại các thời điểm này lớn so với các điểm đo khác để tăng
độ nhạy.

∗ Tín hiệu của các cấu tử khác nhau tại mỗi điểm đo được lựa chọn phải biến
đổi khác nhau tức là có sự khác biệt lớn về tín hiệu đo tại mỗi điểm của các cấu tử.

∗ Tại các điểm này, tín hiệu của các ion cản trở phép đo là nhỏ nhất.
Ưu điểm của phương pháp ILS:
- Thích hợp với tập số liệu nhỏ, ít thông tin.
- Loại trừ được sai số nhiễu phổ và giảm thiểu được ảnh hưởng của các cấu tử lạ
do đã lựa chọn các thời điểm đo đặc trưng.
- Khi tín hiệu đo là các giá trị nhỏ hơn giá trị qui ước của nồng độ thì giá trị các
hệ số trong ma trận P sẽ lớn hơn hệ số hồi qui của phương pháp CLS, điều này sẽ làm
giảm sai số trong quá trình tính toán.
Nhược điểm của phương pháp ILS:
- Cần lựa chọn tối thiểu các thời điểm đo đặc trưng cho các cấu tử. Lựa chọn sai
lệch sẽ dẫn đến sai số lớn trong quá trình tính toán.
- Phải đảm bảo có tính cộng tính cao của các cấu tử ở các thời điểm đo được lựa
chọn.
Các bước tính toán ILS 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 độ X0 (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 Y0(mxn) (n là số tín hiệu đo)
+ Nhập tín hiệu phân tích Y của mẫu cần định phân
- Lưu các dữ liệu vừa nhập vào thành 1 file trong Matlab : ILS.mat
- Mở một M-file và viết các câu lệnh tại đó:
%Phuong phap ILS:
%Goi cac bien su dung trong phuong phap
load ILS.mat;
%Tinh ma tran he so hoi quy:
P=inv(Y0'*Y0)*Y0'*X0;
%KIỂM TRA ĐỘ CHÍNH XÁC CỦA PHƯƠNG PHÁP:
%Tinh nong do chat trong mau kiem tra:
Xktra=Yktra*P;
%Tinh sai so giua nong do chuan voi nong do xac dinh duoc tu ILS:
Saiso= (X0ktra-Xktra)*100./X0ktra
% TÍNH NỒNG ĐỘ CỦA CHẤT TRONG MẪU BẤT KÌ
%Tinh nong do cua mau:
X=Y*P
- Lưu lại M-file vừa thực hiện được: ILS.m
- Gọi M-file vừa viết được trong cửa sổ COMMAND WINDOW
>> ILS
- Chương trình sẽ tự động thực hiện các yêu cầu mong muốn và trả lại kết quả
dưới dạng ma trận. Kích chuột vào giá trị Saiso, X trong WORKSPACE để hiển
thị các ma trận số liệu đó.

Thí dụ: Hỗn hợp cần phân tích có 2 cấu tử, tiến hành đo 10 dung dịch chuẩn. Chọn 7
bước sóng đặc trưng nhất và có tính chất cộng tính nhất của hệ. Có ma trận nồng độ
X(10x2) 10 hàng tương ứng với 10 dung dịch chuẩn, 2 cột tương ứng với 2 cấu tử và
ma trận độ hấp thụ quang A(10x7) 7 cột tương ứng với 7 bước sóng chọn lọc.
- Nhập ma trận nồng độ X0(10x2)-10 hàng và 2 cột
2 0.6
6 0.6
10 0.6
14 0.6
18 0.6
2 1.2
6 1.2
10 1.2
14 1.2
18 1.2
Chọn 7 bước sóng đặc trưng cho mẫu phân tích
- Nhập ma trận độ hấp thụ quang Y0(10x7)-10 hàng và 7 cột :
0.24 0.238 0.236 0.234 0.233 0.231 0.229
0.495 0.495 0.494 0.493 0.492 0.491 0.49
0.739 0.739 0.739 0.739 0.738 0.738 0.737
0.985 0.986 0.987 0.987 0.988 0.988 0.988
1.233 1.235 1.236 1.237 1.239 1.24 1.24
0.337 0.333 0.329 0.326 0.322 0.319 0.315
0.583 0.581 0.578 0.575 0.572 0.569 0.566
0.835 0.833 0.831 0.829 0.827 0.824 0.822
1.093 1.091 1.090 1.089 1.087 1.085 1.083
1.354 1.353 1.352 1.351 1.350 1.349 1.348
Nhập ma trận nồng độ mẫu kiểm tra C0ktra(2x2) :
2 0.3
6 0.9
Nhập ma trận độ hấp thụ quang của mẫu kiểm tra Yktra(2x7) :
0.183 0.182 0.182 0.181 0.18 0.18 0.179
0.536 0.534 0.532 0.531 0.529 0.527 0.525
Các giá trị thu được :
Ma trận P
-23.379 -7.3415
-138.88 68.855
-17.969 -45.528
5.9699 42.323
89.502 30.385
59.861 -40.551
38.725 -47.446
Ma trận nồng độ mẫu kiểm tra tính từ phương trình hồi quy Cktra(2x2) :
2.0724 0.23984
6.1401 0.88049
Saiso :
-3.6179 20.053
-2.335 2.1675

1.3. Phương pháp bình phương tối thiểu từng phần (partial least square-PLS )
PLS là phương pháp đa biến dùng để mô hình hoá mối quan hệ giữa biến độc lập
X và biến phụ thuộc Y, từ đó có thể đoán được thông tin trong Y khi đã biết các thông
tin của X và ngược lại. PLS sẽ tối ưu hoá giá trị đồng phương sai (covariance) giữa ma
trận X và Y. Hai ma trận X và Y được phân tích thành một ma trận số (score matrices)
T chung và ma trận nạp (loading matrices) P và Q.

k cột A k k

X T Pt E
= Scores . loading + sai số
n A n
n hàng

A m m
k
T Qt F
Y = scores . loading + sai số
n n A n

Hay X= T x P + E
Y= T x Q + F

Tính chất quan trọng của PLS là chúng ta có thể nhận được một ma trận T chung
cho cả 2 phương trình
Số thí nghiệm ít hơn số biến?
Các bước tính toán PLS 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 độ X0 (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 Y0(mxn) (n là số tín hiệu đo)
+ Nhập tín hiệu phân tích Y của mẫu cần định phân
- Lưu các dữ liệu vừa nhập vào thành 1 file trong Matlab : PLS.mat
- Mở một M-file và viết các câu lệnh tại đó:
%Phuong phap PLS:
%Goi cac bien can dung trong phuong phap
load PLS.mat;
%Tinh vecto trong so:
w=(Y0'*X0)*inv(X0'*X0);
%Tinh tri so va trong so:
t=Y0*w;
P=(Y0'*t)*inv(t'*t);
Q=(X0'*t)*inv(t'*t);
b=w*inv(P'*w)*Q;
a=mean(X0)-mean(Y0)*b;
% NẾU MUỐN KIỂM TRA ĐỘ CHÍNH XÁC CỦA PHƯƠNG PHÁP:
% do kich thuoc cua ma tran a và Yktra*b la khac nhau, thuc hien buoc dong
% nhat cua 2 ma tran. Neu so cau tu la 2 thi a(1) duoc tao thanh bang cach
% tao thanh 2 cot trong ma tran. Neu so cau tu la n thi tuong tu ta them n
% cot
a1=[ones(m,1)*a(1) ones(m,1)*a(2)]; % m la so dung dich kiem tra
% Nhap ma tran do hap thu quang cua mau kiem tra:Yktra
% Tinh nong do mau kiem tra theo PLS:
Xktra=a1+Yktra*b;
% Tinh sai so giua nong do chuan voi nong do xac dinh duoc tu PLS:
Saiso=(X0ktra-Xktra)*100./X0ktra ;
% TÍNH NỒNG ĐỘ CỦA CHẤT TRONG MẪU BẤT KÌ
a2=[ones(m1,1)*a(1) ones(m1,1)*a(2)]; % m1 la so dung dich phan tich
% Nhap ma tran do hap thu quang cua mau thuc: Y
X=a2+Y*b;
- Lưu lại M-file vừa thực hiện được PLS.m
- Gọi hàm M-file vừa viết được trong cửa sổ COMMAND WINDOW
>> PLS
- Kích chuột vào giá trị Saiso, X trong WORKSPACE thu được các dữ liệu mong
muốn
Thí dụ: Hỗn hợp cần phân tích có 2 cấu tử, tiến hành đo 10 dung dịch chuẩn tại 7
bước sóng. Có ma trận nồng độ X(10x2) và ma trận độ hấp thụ quang A(10x10)
- Nhập ma trận nồng độ X0(10x2)-10 hàng và 2 cột
2 0.6
6 0.6
10 0.6
14 0.6
18 0.6
2 1.2
6 1.2
10 1.2
14 1.2
18 1.2
- Nhập ma trận độ hấp thụ quang Y0(10x7)-10 hàng và 7 cột :
Nhập ma trận nồng độ mẫu kiểm tra C0ktra(2x2) :
Nhập ma trận độ hấp thụ quang của mẫu kiểm tra Yktra(2x7) :
Các giá trị thu được :
Ma trận K(2x10):
Ma trận nồng độ mẫu kiểm tra tính từ phương trình hồi quy Cktra(2x2) :
Saiso :

1.4. Phương pháp hồi qui cẩu tử chính ( principal component regression -PCR)
PCR - phương pháp hồi quy cấu tử chính, gồm 2 quá trình: Phân tích cấu tử
chính chuyển sang tập dữ liệu mới, chứa một số ít các yếu tố quan trọng, cần thiết. Sau
đó sử dụng phương pháp bình phương tối thiểu nghịch đảo để phân tích tập dữ liệu mới
này.
Trước tiên, chiếu tập số liệu tín hiệu phân tích đó lên không gian có ít chiều hơn
theo PCA mà không làm mất đi các thông tin quan trọng và tiến hành phân tích hồi qui
đa biến trên không gian mới này. Nó giả thiết rằng mỗi thành phần trong tập số liệu có
thể được gán một giá trị định lượng đầu tiên cần tạo mô hình PCA cho tập số liệu và sử
dụng giá trị riêng của các biến ảo (score) để xây dựng phương trình hồi qui đa biến
tuyến tính trong đó giá trị y là giá trị hàm mục tiêu .

PCA
Ma trận tín hiệu đo
(mx n) scores
+ Sai số dư
(lan truyền)

PCA PCA
loading và scores
Nồng độ các cấu tử
Hồi quy đa biến tuyến tính -MLR

Các bước chính của PCR bao gồm:


- Xử lý ban đầu (không bắt buộc)
- Chuẩn hóa tập số liệu : đây là nội dung chính của thuật toán.
- Các xử lý cần thiết:
Với một tập số liệu đã chuẩn hóa hoặc chưa chuẩn hóa, trước khi sử dụng đều cần bước
bình phương toàn tập dữ liệu - đây là yêu cầu bắt buộc đối với hầu hết các hàm tính
vectơ riêng.
D = AT . A
Trong đó A là ma trận số liệu biểu diễn độ hấp thụ quang theo các thời điểm đo của các
dung dịch chuẩn và AT là ma trận chuyển vị của ma trận A.
Xác định các vectơ riêng:
Có thể tính toán các vectơ riêng của tập số liệu bằng nhiều hàm toán học khác
nhau. Có 3 hàm chính, thường sử dụng là hàm NIPALS (hàm phi tuyến lặp sử dụng kỹ
thuật bình phương tối thiểu riêng phần), hàm SVD (hàm phân tách các giá trị riêng) và
hàm Princomp (hàm tính các cấu tử chính). Cần lưu ý rằng, tất cả các hàm này đều tính
toán và đưa ra tất cả các nhân tố nhưng thường không sử dụng tất cả mà chỉ sử dụng N
nhân tố đầu đủ để xác định không gian mới.
Các hàm toán học trên đều đưa ra một ma trận cột chứa các vectơ riêng - Vc - là
ma trận trong đó mỗi cột là một vectơ hay nhân tố mới - PC - của ma trận dữ liệu và số
hàng ma trận là số thời điểm đo. Mỗi nhân tố hay vectơ này lại là tổ hợp bậc nhất của
các điểm phổ ban đầu, phần đóng góp của các điểm này vào mỗi vectơ là khác nhau
tùy thuộc vào giá trị hàm phụ thuộc tại điểm đó. Những điểm có giá trị đóng góp lớn
vào các PC chứa phương sai lớn sẽ là những điểm đo có ảnh hưởng quyết định tới kết
quả tính ma trận hệ số hồi qui và kết quả hồi qui sau đó. Ma trận kết quả thứ hai cũng
rất quan trọng là ma trận phương sai của các PC: đó là dạng ma trận chéo đối với hàm
SVD, là một vectơ cột đối với hàm NIPALS và hàm Princomp.
- Lựa chọn các vectơ có nghĩa
Đây là bước có ảnh hưởng đặc biệt quan trọng đến bước xử lý tiếp theo. Nếu giữ
lại nhiều vectơ hơn số cần dùng thì những vectơ đó sẽ chứa cả tín hiệu nhiễu và như
vậy, kết quả hồi qui sẽ mắc phải sai số. Nếu giữ lại không đủ số vectơ cần thiết sẽ làm
mất đi thông tin có ích từ tập dữ liệu, điều này cũng sẽ gây nên sai lệch giữa mô hình
hồi qui thu được và mô hình thực. Vì vậy, việc đánh giá và lựa chọn các vectơ có nghĩa
là rất quan trọng. Dưới đây là một số phương pháp phổ biến để xác định số PC có
nghĩa:
Dùng các hàm chỉ thị: Có rất nhiều hàm chỉ thị khác nhau như CPV (tính phần
trăm phương sai tích lũy), hàm IEF, ...
Tính toán PRESS (tổng bình phương sai số dự đoán) để đánh giá thông tin từ dữ
liệu.
Các phương pháp này đều có những ưu điểm riêng khi sử dụng và kết quả đánh
giá tương đối thống nhất với nhau. Phương pháp được sử dụng rộng rãi để lựa chọn các
PC có nghĩa khi các PC này được tính bằng hàm SVD hay Princomp là phương pháp
tính và đánh giá qua phần trăm phương sai tích lũy của các PC đó. Cách tính này đơn
giản hơn và các hàm tính PC trên đã cho sẵn dữ liệu để có thể đánh giá nhanh.
- Tính toán lại
Sau khi loại bỏ các vectơ riêng không có nghĩa, chúng ta cũng loại được tín hiệu
nhiễu của dữ liệu gốc và cần tính lại dữ liệu sau khi loại bỏ sai số. Như vậy, khi tính
toán ở hệ tọa độ mới ta đã loại bỏ được tín hiệu nhiễu trong tập dữ liệu ban đầu.
- Xây dựng đường chuẩn
Khi xây dựng đường chuẩn PCR theo phương pháp ILS, điểm khác biệt duy
nhất là tập số liệu sử dụng.
Các bước tiến hành bao gồm:
- Xác định phép chiếu trong hệ tọa độ mới:
Aj = A . Vc
Trong đó:
Aj: ma trận số liệu ở hệ tọa độ mới
A: ma trận gốc
Vc: ma trận các vectơ riêng có nghĩa
- Thay thế A bằng Aj trong phương trình hồi quy
C = Aj . F , trong đó F được tính theo công thức:
F = (AjT . Aj)-1 . AjT . C
- Nồng độ chất phân tích trong mẫu chưa biết được tính theo công thức:
C x = Ax . V c . F
= Ax . Fcal
với Fcal = Vc . F đóng vai trò tương tự ma trận P trong phương trình của ILS
Ưu điểm của phương pháp PCR:
- Hội tụ đầy đủ các ưu điểm của phương pháp ILS đồng thời khắc phục được
các nhược điểm của phương pháp ILS do tiến hành tính toán trên toàn phổ.
- Phương pháp này cho phép loại bỏ sai số nhiễu phổ và sai số ngẫu nhiên
trong quá trình đo khi lựa chọn được số PC phù hợp.
- Đối với trường hợp sử dụng phổ toàn phần, khi dùng các phương pháp
khác như CLS, kết quả tính cuối cùng là kết quả tính trung bình trên toàn phổ nên kém
chính xác hơn trường hợp dùng phổ chọn lọc. Khi sử dụng mô hình PCR, tuy kết quả
vẫn tính trên tất cả các điểm nhưng đóng góp của các điểm đo sẽ khác nhau tùy theo
lượng đóng góp của từng điểm này vào các PC được chọn mà lượng đóng góp này lại
được phân tích dựa trên tín hiệu đo tại từng điểm của các mẫu chuẩn. Do có sự phân
biệt và chọn lọc trong đánh giá mỗi điểm đo nên kết quả thu được sẽ chính xác hơn
phương pháp tính trung bình trên toàn phổ ở các phương pháp phổ toàn phần khác.
Các bước tính toán PCR 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 độ X0 (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 Y0(mxn) (n là số tín hiệu đo)
+ Nhập tín hiệu phân tích Y của mẫu cần định phân
- Lưu các dữ liệu vừa nhập vào thành 1 file trong Matlab : PCR.mat
%Phuong phap PCR:
load PCR.mat;
%Binh phuong tap so lieu chua bien phu thuoc Y0
D = Y0'*Y0;
% Su dung mot trong 3 ham tinh PC de xac dinh cac PC theo cau lenh sau, su
% dung ham SVD
[V S] = svd(D);
% Tinh ma tran phan tram phuong sai cua cac PC
d = diag(S)/sum(diag(S))*100;
% Tu gia tri phan tram phuong sai cua cac PC, can cu vao yeu cau cu the cua
% bai toan de quyet dinh so PC lam co so cho khong gian moi cua tap so lieu
% (n):
f = V(:,1:n);
% Chuyen doi tap so lieu ban dau va tinh ma tran he so hoi qui:
Yj = Y0*f;
F = inv(Yj'*Yj)*Yj'*X0;
Fj=f*F
% Nhap ma tran bien phu thuoc cua k mau can dinh phan va tinh nong do mau
% theo cong thuc:X=Y*Fj
% NEU MUON KIEM TRA DO CHINH XAC CUA PHUONG PHAP
% Nhap ma tran do hap thu quang cua mau kiem tra:Yktra
%Tinh nong do mau kiem tra theo PCR:
Xktra=Yktra*Fj;
%Tinh sai so giua nong do chuan voi nong do xac dinh duoc tu PLS:
Saiso=(X0ktra-Xktra)*100./X0ktra ;
% TINH NONG DO CUA CHAT TRONG MAU BAT KI.
%Nhap ma tran do hap thu quang cua mau thuc: Y
X=Y*Fj;
- Lưu lại M-file vừa thực hiện được: PCR.m
- Gọi hàm M-file vừa viết được trong cửa sổ COMMAND WINDOW :
>> PCR
- Kích chuột vào giá trị Saiso, X trong WORKSPACE thu được các dữ liệu mong
muốn
Thí dụ: Hỗn hợp cần phân tích có 2 cấu tử, tiến hành đo 10 dung dịch chuẩn tại 7
bước sóng. Có ma trận nồng độ X(10x2) và ma trận độ hấp thụ quang A(10x10)
- Chọn số cấu tử chính tương ứng với 5 bước sóng:n=5
- Nhập ma trận nồng độ X0(10x2)-10 hàng và 2 cột
2 0.6
6 0.6
10 0.6
14 0.6
18 0.6
2 1.2
6 1.2
10 1.2
14 1.2
18 1.2
- Nhập ma trận độ hấp thụ quang Y0(10x7)-10 hàng và 7 cột :
0.24 0.238 0.236 0.234 0.233 0.231 0.229
0.495 0.495 0.494 0.493 0.492 0.491 0.49
0.739 0.739 0.739 0.739 0.738 0.738 0.737
0.985 0.986 0.987 0.987 0.988 0.988 0.988
1.233 1.235 1.236 1.237 1.239 1.24 1.24
0.337 0.333 0.329 0.326 0.322 0.319 0.315
0.583 0.581 0.578 0.575 0.572 0.569 0.566
0.835 0.833 0.831 0.829 0.827 0.824 0.822
1.093 1.091 1.09 1.089 1.087 1.085 1.083
1.354 1.353 1.352 1.351 1.35 1.349 1.348
Nhập ma trận nồng độ mẫu kiểm tra C0ktra(2x2) :
2 0.3
6 0.9
Nhập ma trận độ hấp thụ quang của mẫu kiểm tra Yktra(2x7) :
0.183 0.182 0.182 0.181 0.18 0.18 0.179
0.536 0.534 0.532 0.531 0.529 0.527 0.525
Các giá trị thu được :
Tín hiệu đầu vào được chuyển sang một không gian mới Yj(10x5), chỉ gồm 5PC
-0.62026 -0.0083112 0.00038958 0.00050616 -0.00026107
-1.304 -0.0023328 -0.0005136 0.00021144 0.00016906
-1.9537 0.0018731 -0.00028062 -0.00040274 0.00037744
-2.6113 0.0074336 -0.00023488 0.00014322 -0.00019212
-3.2732 0.012422 0.00016797 0.0004811 0.00014178
-0.86217 -0.017519 0.00043465 -8.6769e-006 0.00031891
-1.521 -0.012517 -0.000608 0.00033177 0.00012166
-2.1926 -0.0075151 -0.00021534 -4.6651e-005 -0.00044805
-2.8793 -0.0032415 2.4096e-005 -0.00066219 -0.00023808
-3.5744 0.0012363 0.00055748 -6.7066e-005 0.00012579
Ma trận nồng độ mẫu kiểm tra tính từ phương trình hồi quy Cktra(2x2) :
2.0518 0.29404
6.1337 0.84443
Saiso :
-2.5897 1.986
-2.2285 6.1747

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ôu1số các
1
v1nơron được liên kết, truyền thông với nhau
X0 g1
trong mạng. 1 yo
2
.
X1 . .
. . K yk
. .
M
.
XN
.
[W] [V]

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

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


Y0, …Yk các thông tin đầu ra
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

neuron

neuron

neuron

neuron

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

1
u1 v1
X0 g1
1 yo
2
.
X1 . .
. . K yk
. .
M
.
.
XN
Líp vµo [W] [V]
líp ra
líp Èn
- 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ổ.
- 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

2.2. Phương pháp hồi quy cấu tử chính kết hợp với mạng noron nhân tạo(PC-ANN)
Giống như phương pháp hồi quy cấu tử chính PCR, trước khi sử dụng ANN, các
số liệu về biến phụ thuộc trong phân tích đường chuẩn được thực hiện theo phương
pháp PCA để tìm các giá trị riêng score và tải trọng loading. Trong mô hình này các giá
trị riêng (score) khi thực hiện PCA với tập số liệu đường chuẩn được dùng làm lớp
nhập. Phương pháp PC-ANN được xây dựng dựa trên việc sử dụng giá trị khác của các
PC. Lớp ẩn chứa các nơron với hàm sigmoid và lớp xuất với hàm tuyến tính linear.
Thuật toán lan truyền ngược được áp dụng cho mạng PC-ANN đa lớp feed-forward.
Các biến của PC-ANN được tối ưu sao cho đạt được sai số nhỏ nhất khi so sánh với
nồng độ biết trước. Các dung dịch dùng đẻ xây dựng mô hình theo phương pháp đường
chuẩn cần tránh có tương quan nồng độ vì sẽ gây ra tính xen phủ (overfitting) trong mô
hình.

You might also like