thuật toán hồi quy đa biến

40
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........4 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 )...................................15 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

Upload: tt8880

Post on 27-Jun-2015

1.759 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Thuật toán hồi quy đa biến

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..................................................4

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 )..........15

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

Page 2: Thuật toán hồi quy đa biến

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ỉ

Page 3: Thuật toán hồi quy đa biến

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.

Page 4: Thuật toán hồi quy đa biến

- 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

Page 5: Thuật toán hồi quy đa biến

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

Page 6: Thuật toán hồi quy đa biến

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 X i (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

Page 7: Thuật toán hồi quy đa biế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)

my

y

y

y

y

.

.3

2

1

mkmm

k

k

xxx

xxx

xxx

X

...

...........

...

...

21

22221

11211

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:

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

Page 8: Thuật toán hồi quy đa biế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ị X0

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 đó:

Page 9: Thuật toán hồi quy đa biến

%Phuong phap CLS: %Goi cac bien su dung trong phuong phapload 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: YX=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

Page 10: Thuật toán hồi quy đa biến

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.2240.495 0.495 0.494 0.493 0.492 0.491 0.49 0.488 0.487 0.4860.739 0.739 0.739 0.739 0.738 0.738 0.737 0.736 0.736 0.7340.985 0.986 0.987 0.987 0.988 0.988 0.988 0.988 0.988 0.9871.233 1.235 1.236 1.237 1.239 1.24 1.24 1.24 1.241 1.2410.337 0.333 0.329 0.326 0.322 0.319 0.315 0.311 0.308 0.3040.583 0.581 0.578 0.575 0.572 0.569 0.566 0.563 0.559 0.5560.835 0.833 0.831 0.829 0.827 0.824 0.822 0.819 0.816 0.8131.093 1.091 1.09 1.089 1.087 1.085 1.083 1.081 1.079 1.0761.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.1770.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 :

Page 11: Thuật toán hồi quy đa biến

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.

Page 12: Thuật toán hồi quy đa biến

- 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 phapload 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

Page 13: Thuật toán hồi quy đa biến

>> 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

Page 14: Thuật toán hồi quy đa biến

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 )

Page 15: Thuật toán hồi quy đa biến

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.

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 đó:

Fsai số

Qt

loadingT

scoresY

Esai số

Pt

loadingT

Scores X = . +

nn A

k

.

A m

n hàng

= +

k cột k kA

n n nA

m

Page 16: Thuật toán hồi quy đa biến

%Phuong phap PLS:%Goi cac bien can dung trong phuong phapload 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

Page 17: Thuật toán hồi quy đa biến

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

Page 18: Thuật toán hồi quy đa biến

tuyến tính trong đó giá trị y là giá trị hàm mục tiêu .

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 - V c - 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

Ma trận tín hiệu đo(mx n)

PCAscores

Sai số dư(lan truyền)

PCAscores

PCA loading và

Hồi quy đa biến tuyến tính -MLR

+

Nồng độ các cấu tử

Page 19: Thuật toán hồi quy đa biến

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:

Page 20: Thuật toán hồi quy đa biến

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 . Aj

T . C

- Nồng độ chất phân tích trong mẫu chưa biết được tính theo công thức:

Cx = Ax . Vc . 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

Page 21: Thuật toán hồi quy đa biến

+ 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 Y0D = 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 PCd = 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: YX=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

Page 22: Thuật toán hồi quy đa biến

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

Page 23: Thuật toán hồi quy đa biến

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

Page 24: Thuật toán hồi quy đa biến

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

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:

X0

XN

X1...

1

2

M

.

.

.

1

K

yo

yk

.

.

.

u1 v1

g1

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

[W] [V]

Page 25: Thuật toán hồi quy đa biến

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

[W] [V]

X0

XN

X1...

1

2

M

.

.

.

1

K

yo

yk

.

.

.

u1 v1

g1

Líp vµo líp ralíp Èn

Page 26: Thuật toán hồi quy đa biế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’

Page 27: Thuật toán hồi quy đa biến

* 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

Page 28: Thuật toán hồi quy đa biến

- 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 sanload 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 TRAINCGFnet = 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 hocnet.trainParam.goal=0.00001;% So buoc hocnet.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

Page 29: Thuật toán hồi quy đa biến

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.

Page 30: Thuật toán hồi quy đa biến

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.