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

30 1.5K 4
Thuật toán hồi quy đa biến

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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

Mục lục I Giới thiệu phần mềm MATLAB Các khả MATLAB bản: .2 Các cửa sổ phần mềm MATLAB 3 Một số đặc trưng MATLAB: 4 Khởi động sử dụng MATLAB hóa phân tích II Phương pháp hồi quy đa biến Hồi quy đa biến tuyến tính 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 phần (partial least square-PLS ) 15 1.4 Phương pháp hồi qui cẩu tử ( principal component regression -PCR) 17 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ử 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 bắt nguồn từ thuật ngữ “Matrix Laboratory” – phần mềm tiếng công ty MathWorks Đây ngôn ngữ hiệu cao hỗ trợ đắc lực cho tính toán với ma trận hiển thị Matlab điều khiển tập lệnh, tác động qua bàn phím cửa sổ điều khiển Các câu lệnh đơn giản, viết sát với mô tả kĩ thuật nên lập trình ngôn ngữ thực nhanh, dễ dàng so với nhiều ngôn ngữ thông dụng khác Pascal, Fortran,… Những hàm có sẵn Matlab có cấu trúc thiết lập gần giống ngôn ngữ C, người dùng không nhiều thời gian học hỏi nắm vấn đề số ngôn ngữ lập trình thông dụng Bên cạnh đó, Matlab không cho phép đặt vấn đề tính toán mà xử lí liệu, biểu diễn đồ họa cách mềm dẻo, đơn giản, xác không gian 2D 3D hàm sẵn có hàm ứng dụng người sử dụng tạo lập Đặc biệt nữa, giao diện Matlab cho phép đọc, xử lý đưa tín hiệu đầu file Excel - tiện lợi cho 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, liên kết với thư viện trợ giúp Toolbox, Simulink, Fuzzy, DSP (digital signal processing) hay tích hợp với ngôn ngữ quen thuộc C, C++, Fortran,…, Matlab thực trở thành công cụ phổ biến đắc lực môi trường khác Các khả MATLAB bản: - Thực tính toán toán học bao gồm: ma trận đại số tuyến tính, đa thức nội suy, phân tích số liệu thống kê, tìm cực trị hàm biến nhiều biến, tìm nghiệm phương trình, tính gần tích phân, giải phương trình vi phân - Phân tích, khảo sát hiển thị số liệu: số liệu nhập vào xuất dạng ma trận, giúp người sử dụng dễ dàng quan sát, phân tích, đánh giá liệu Đồng thời MATLAB có Toolbox Statistic với hướng dẫn cụ thể, hỗ trợ cho việc phân tích, khảo sát dựa liệu với hàm có sẵn - Đồ họa chiều chiều: MATLAB cung cấp nhiều hàm đồ họa, nhờ ta nhanh chóng vẽ đồ thị hàm biến biến, vẽ kiểu mặt… Ngoài MATLAB vẽ tốt đối tượng chiều phức tạp hình trụ, hình cầu, hình xuyến, cung cấp khả xử lý ảnh hoạt hình - Mô hình, mô hệ thống kĩ thuật, vật lý sở sơ đồ cấu trúc dạng khối, sau thiết lập thông số cần thiết phù hợp với yêu cầu, người sử dụng việc khởi động chương trình MATLAB xử lý liệu qua mô hình thiết lập - Phát triển thuật toán: câu lệnh viết sẵn thư viện trợ giúp Toolbox, phần mềm thiết kế để hỗ trợ người sử dụng lập trình chương trình riêng giống phần mềm khác: Pascal, Visual basic… - Xây dựng giao diện người dùng: với MATLAB người dùng dễ dàng xây dựng giao diện gồm 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ã phiên trước Các cửa sổ phần mềm MATLAB Phần mềm MATLAB chia thành nhiều cửa sổ, cửa sổ có chức khác giúp người sử dụng dễ dàng làm việc Các cửa sổ bao gồm: - Command Window: cửa sổ làm việc MATLAB Tại ta thực toàn việc nhập liệu xuất kết 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 viết hay xử lý, sửa đổi scripts (file chương trình) hàm - Commad history: cửa sổ khứ, lưu lại câu lệnh thực trước Có thể lặp lại lệnh cũ cách kích đúp chuột vào lệnh Cũng cắt, xóa nhóm lệnh lệnh riêng rẽ - Current Directory: cửa sổ thư mục Nhờ cửa sổ này, người sử dụng nhanh chóng nhận biết, chuyển đổi thư mục môi trường công tác, mở file, tạo thư mục - Workspace: cửa sổ môi trường công tác, chứa ma trận số liệu cần thực - Array Editor: bảng ma trận số liệu cụ thể, giống booksheet Excel Một số đặc trưng MATLAB:  MATLAB ngôn ngữ thông dịch Vì làm việc hai chế độ: tương tác lập trình Trong chế độ tương tác MATLAB thực lệnh gõ cửa sổ lệnh sau dấu nhắc lệnh kết tính toán cửa sổ này, đồ thị cửa sổ khác Lệnh tương tác đơn giản, thí dụ tính sin(1.5) vẽ fplot('sin(1 / x)', [0.01 0.1]), cấu trúc điều kiện, thí dụ if x> PLS Ngay MATLAB tự động thực câu lệnh mà bạn yêu cầu 4.4 Khai thác liệu: Vào cửa sổ WORKSPACE, kích đúp vào ma trận cần biết thu 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 liệu vừa thu 4.6 Gọi lại file thực trước đó: Khi bạn muốn thực lại lấy lại liệu thực trước đó, bạn cần vào cửa sổ CURRENT DIRECTORY kích đúp vào file cần thiết làm lại bước II Phương pháp hồi quy đa biến 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ử (X 1, X2…Xk), tín hiệu phân tích hỗn hợp y phương trình hồi qui đa biến mô tả quan hệ y 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 độ k cấu tử cần có k phương trình hồi qui Vì thực tế cần tiến hành m thí nghiệm (m ≥ k) với m dung dịch chuẩn hỗn hợp lập m phương trình hồi qui đa biến Dạng tổng quát hệ phương trình sau : y= a+Xb Trong b vecto chứa hệ số phương trình hồi qui y vecto cột chứa m giá trị y 1…ym X ma trận có m hàng (ứng với m quan sát) k cột (ứng với k biến)  y1  y   2 y  y= 3        y m   x11 x12 x x X =  21 22    xm1 xm x1k  x2 k    xmk  Nếu tín hiệu đo ứng với thí nghiệm có nhiều giá trị (ví dụ đo độ hấp thụ quang dung dịch chuẩn hỗn hợp p bước sóng thay bước sóng) số liệu Y ma trận có m hàng p cột ( ymxp) sau:  y11 y 21 y=    y m1 y12 y 22 ym2 y1 p  y p    y mp  Các phương trình hồi qui tuyến tính thu cho biết: - Những biến (cấu tử) có ảnh hưởng lớn (nếu giá trị tuyệt đối hệ số hồi qui lớn) đến kết thí nghiệm (tín hiệu đo) - Biết chiều hướng ảnh hưởng (hệ số hồi qui mang dấu dương có ảnh hưởng chiều đến kết thí nghiệm ngược lại) - Tìm nồng độ cấu tử dung dịch cần định phân 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 gọi ma trận K (K-matrix)) - Từ dạng tổng quát y = XK +e (1) K vecto hệ số phương trình hồi qui K ma trận (kx1) y véc tơ cột biểu diễn tín hiệu đo dung dịch chuẩn với y vecto (mx1), X ma trận (mxk), e vecto số dư (mx1) K ma trận (kxp) y số liệu dạng ma trận (mxp) biểu diễn tín hiệu dung dịch chuẩn đo nhiều thời điểm (ví dụ đo độ hấp thụ quang p bước sóng) - Nếu có giá trị nhập vào biến độc lập X biến phụ thuộc y tính giá trị hệ số b Theo phương pháp bình phương tối thiểu, ma trận hệ số K tính sau: K= (XTX)-1 XTy (2) với XT ma trận chuyển vị 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 từ giá trị y0 ta có: X0 = y0 KT (KKT)-1 (3) Phương trình (1) cho thấy xem CLS phân tích nhân tố ma trận tín hiệu y tích hai ma trận nhỏ X K Ưu điểm : Tín hiệu phân tích y ma trận phổ toàn phần, phương pháp CLS đạt độ xác cao so với phương pháp sử dụng số bước sóng cho phép tính toán với tất phổ hỗn hợp Nhược điểm: Phương pháp CLS đòi hỏi cấu tử hỗn hợp phải cho tín hiệu có tính chất cộng tính Vì cần phải biết tất phổ chất gây ảnh hưởng đến vùng phổ đo chúng đóng góp vào đường chuẩn Điều loại trừ đáng kể cách phân tích dải phổ thời điểm sau gộp kết 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 phổ có chứa tín hiệu ion cản Các bước tính toán CLS phần mềm Matlab: Khởi động phần mềm MATLAB Nhập ma trận liệu cửa sổ WORKSPACE + Nhập ma trận nồng độ X (mxk) 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 số tín hiệu đo) - + Nhập tín hiệu phân tích Y mẫu cần định phân - Lưu liệu vừa nhập vào thành file Matlab : CLS.mat - Mở M-file cửa sổ EDITOR viết câu lệnh đó: %Phuong phap CLS: %Goi cac bien su dung 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 cua mau kiem tra: Yktra %Nhap ma tran nong cua mau ktra: X0ktra %Tinh nong mau kiem tra: Xktra=Yktra*K'*inv(K*K'); %Tinh sai so giua nong chuan voi nong 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 cua mau: Y X=Y*K'*inv(K*K'); - Lưu lại M-file vừa thực đặt tên file: CLS - Gọi hàm M-file vừa viết cửa sổ COMMAND WINDOW >> CLS - Chương trình tự động thực lệnh theo yêu cầu hiển thị kết - Kích chuột vào giá trị Saiso, X WORKSPACE thu liệu mong muốn Thí dụ: Hỗn hợp cần phân tích có cấu tử, tiến hành đo 10 dung dịch chuẩn 10 bước sóng Có ma trận nồng độ X(10x2) 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 cột tương ứng với cấu tử cần phân tích 0.6 0.6 10 0.6 14 0.6 18 0.6 1.2 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 10 cột tương ứng với 10 bước sóng lựa chọn : 0.24 0.495 0.739 0.238 0.495 0.739 0.236 0.494 0.739 0.234 0.493 0.739 0.985 1.233 0.337 0.583 0.835 1.093 1.354 0.986 1.235 0.333 0.581 0.833 1.091 1.353 0.987 1.236 0.329 0.578 0.831 1.09 1.352 1.237 0.326 0.575 0.829 1.089 1.351 0.233 0.492 0.738 87 0.988 1.239 0.322 0.572 0.827 1.087 1.35 0.231 0.491 0.738 0.229 0.49 0.737 0.227 0.488 0.736 0.225 0.487 0.736 0.224 0.486 0.734 0.988 1.24 0.319 0.569 0.824 1.085 1.349 0.988 1.24 0.315 0.566 0.822 1.083 1.348 0.988 1.24 0.311 0.563 0.819 1.081 1.346 0.988 1.241 0.308 0.559 0.816 1.079 1.344 0.987 1.241 0.304 0.556 0.813 1.076 1.342 0.178 0.523 0.178 0.521 0.177 0.519 Nhập ma trận nồng độ mẫu kiểm tra C0ktra(2x2) : 0.3 0.9 Nhập ma trận độ hấp thụ quang mẫu kiểm tra Yktra(2x10) : 0.183 0.536 0.182 0.534 0.182 0.532 0.181 0.531 0.18 0.529 0.18 0.527 0.179 0.525 Các giá trị thu : 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 ma trận K để giá trị hệ số biến cấu tử cần phân tích 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) : 10 + Nhập tín hiệu phân tích Y mẫu cần định phân - Lưu liệu vừa nhập vào thành file Matlab : PLS.mat - Mở M-file viết câu lệnh đó: %Phuong phap PLS: %Goi cac bien can dung phuong phap load PLS.mat; %Tinh vecto so: w=(Y0'*X0)*inv(X0'*X0); %Tinh tri so va 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: % kich thuoc cua ma tran a Yktra*b la khac nhau, thuc hien buoc dong % nhat cua ma tran Neu so cau tu la thi a(1) duoc tao bang cach % tao cot 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 hap thu quang cua mau kiem tra:Yktra % Tinh nong mau kiem tra theo PLS: Xktra=a1+Yktra*b; % Tinh sai so giua nong chuan voi nong 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 hap thu quang cua mau thuc: Y X=a2+Y*b; - Lưu lại M-file vừa thực PLS.m - Gọi hàm M-file vừa viết cửa sổ COMMAND WINDOW >> PLS - Kích chuột vào giá trị Saiso, X WORKSPACE thu liệu mong muốn Thí dụ: Hỗn hợp cần phân tích có cấu tử, tiến hành đo 10 dung dịch chuẩn bước sóng Có ma trận nồng độ X(10x2) ma trận độ hấp thụ quang A(10x10) - Nhập ma trận nồng độ X0(10x2)-10 hàng cột 0.6 16 0.6 10 0.6 14 0.6 18 0.6 1.2 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 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 mẫu kiểm tra Yktra(2x7) : Các giá trị thu : 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ử ( principal component regression -PCR) PCR - phương pháp hồi quy cấu tử chính, gồm trình: Phân tích cấu tử chuyển sang tập liệu mới, chứa số 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 liệu 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ó chiều theo PCA mà không làm thông tin quan trọng tiến hành phân tích hồi qui đa biến không gian Nó giả thiết thành phần tập số liệu gán giá trị định lượng cần tạo mô hình PCA cho tập số liệu sử dụng giá trị riêng biến ảo (score) để xây dựng phương trình hồi qui đa biến 17 tuyến tính giá trị y giá trị hàm mục tiêu PCA scores Ma trận tín hiệu đo (mx n) PCA loading PCA scores + Sai số dư (lan truyền) Nồng độ cấu tử Hồi quy đa biến tuyến tính -MLR Các bước PCR bao gồm: - Xử lý ban đầu (không bắt buộc) - Chuẩn hóa tập số liệu : nội dung thuật toán - Các xử lý cần thiết: Với tập số liệu chuẩn hóa chưa chuẩn hóa, trước sử dụng cần bước bình phương toàn tập liệu - yêu cầu bắt buộc hầu hết hàm tính vectơ riêng D = AT A Trong A ma trận số liệu biểu diễn độ hấp thụ quang theo thời điểm đo dung dịch chuẩn AT ma trận chuyển vị ma trận A Xác định vectơ riêng: Có thể tính toán vectơ riêng tập số liệu nhiều hàm toán học khác Có hàm chính, thường sử dụng 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 giá trị riêng) hàm Princomp (hàm tính cấu tử chính) Cần lưu ý rằng, tất hàm tính toán đưa tất nhân tố thường không sử dụng tất mà sử dụng N nhân tố đầu đủ để xác định không gian Các hàm toán học đưa ma trận cột chứa vectơ riêng - V c - ma trận cột vectơ hay nhân tố - PC - ma trận liệu số 18 hàng ma trận số thời điểm đo Mỗi nhân tố hay vectơ lại tổ hợp bậc điểm phổ ban đầu, phần đóng góp điểm vào vectơ khác tùy thuộc vào giá trị hàm phụ thuộc điểm Những điểm có giá trị đóng góp lớn vào PC chứa phương sai lớn điểm đo có ảnh hưởng định tới kết tính ma trận hệ số hồi qui kết hồi qui sau Ma trận kết thứ hai quan trọng ma trận phương sai PC: dạng ma trận chéo hàm SVD, vectơ cột hàm NIPALS hàm Princomp - Lựa chọn vectơ có nghĩa Đây bước có ảnh hưởng đặc biệt quan trọng đến bước xử lý Nếu giữ lại nhiều vectơ số cần dùng vectơ chứa tín hiệu nhiễu vậy, kết hồi qui mắc phải sai số Nếu giữ lại không đủ số vectơ cần thiết làm thông tin có ích từ tập liệu, điều gây nên sai lệch mô hình hồi qui thu mô hình thực Vì vậy, việc đánh giá lựa chọn vectơ có nghĩa quan trọng Dưới số phương pháp phổ biến để xác định số PC có nghĩa: Dùng hàm thị: Có nhiều hàm thị khác 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ừ liệu Các phương pháp có ưu điểm riêng sử dụng kết đánh giá tương đối thống với Phương pháp sử dụng rộng rãi để lựa chọn PC có nghĩa PC tính hàm SVD hay Princomp phương pháp tính đánh giá qua phần trăm phương sai tích lũy PC Cách tính đơn giản hàm tính PC cho sẵn liệu để đánh giá nhanh - Tính toán lại Sau loại bỏ vectơ riêng nghĩa, loại tín hiệu nhiễu liệu gốc cần tính lại liệu sau loại bỏ sai số Như vậy, tính toán hệ tọa độ ta loại bỏ tín hiệu nhiễu tập 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 tập số liệu sử dụng 19 Các bước tiến hành bao gồm: - Xác định phép chiếu hệ tọa độ mới: Aj = A V c Trong đó: Aj: ma trận số liệu hệ tọa độ A: ma trận gốc Vc: ma trận vectơ riêng có nghĩa - Thay A Aj phương trình hồi quy C = Aj F , F tính theo công thức: F = (AjT Aj)-1 AjT C - Nồng độ chất phân tích mẫu chưa biết 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 phương trình ILS Ưu điểm phương pháp PCR: Hội tụ đầy đủ ưu điểm phương pháp ILS đồng thời khắc phục nhược điểm phương pháp ILS tiến hành tính toán toàn phổ Phương pháp cho phép loại bỏ sai số nhiễu phổ sai số ngẫu nhiên trình đo lựa chọn số PC phù hợp Đối với trường hợp sử dụng phổ toàn phần, dùng phương pháp khác CLS, kết tính cuối kết tính trung bình toàn phổ nên xác trường hợp dùng phổ chọn lọc Khi sử dụng mô hình PCR, kết tính tất điểm đóng góp điểm đo khác tùy theo lượng đóng góp điểm vào PC chọn mà lượng đóng góp lại phân tích dựa tín hiệu đo điểm mẫu chuẩn Do có phân biệt chọn lọc đánh giá điểm đo nên kết thu xác phương pháp tính trung bình toàn phổ phương pháp phổ toàn phần khác Các bước tính toán PCR phần mềm Matlab: - Khởi động phần mềm MATLAB 20 - Nhập ma trận liệu cửa sổ WORKSPACE + Nhập ma trận nồng độ X (mxk) 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 số tín hiệu đo) + Nhập tín hiệu phân tích Y mẫu cần định phân - Lưu liệu vừa nhập vào thành file 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 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 mau % theo cong thuc:X=Y*Fj % NEU MUON KIEM TRA DO CHINH XAC CUA PHUONG PHAP % Nhap ma tran hap thu quang cua mau kiem tra:Yktra %Tinh nong mau kiem tra theo PCR: Xktra=Yktra*Fj; %Tinh sai so giua nong chuan voi nong xac dinh duoc tu PLS: Saiso=(X0ktra-Xktra)*100./X0ktra ; % TINH NONG DO CUA CHAT TRONG MAU BAT KI %Nhap ma tran hap thu quang cua mau thuc: Y X=Y*Fj; - Lưu lại M-file vừa thực được: PCR.m - Gọi hàm M-file vừa viết cửa sổ COMMAND WINDOW : >> PCR - Kích chuột vào giá trị Saiso, X WORKSPACE thu liệu mong muốn 21 Thí dụ: Hỗn hợp cần phân tích có cấu tử, tiến hành đo 10 dung dịch chuẩn bước sóng Có ma trận nồng độ X(10x2) ma trận độ hấp thụ quang A(10x10) - Chọn số cấu tử tương ứng với bước sóng:n=5 - Nhập ma trận nồng độ X0(10x2)-10 hàng cột 0.6 0.6 10 0.6 14 0.6 18 0.6 1.2 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 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) : 22 0.3 0.9 Nhập ma trận độ hấp thụ quang 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 : Tín hiệu đầu vào chuyển sang không gian Yj(10x5), 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.86217 -0.017519 0.00043465 -8.6769e-006 0.00031891 -1.521 -0.012517 -0.000608 -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.00014178 0.00033177 0.00012166 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 Hồi quy đa biến phi tuyến tính 2.1 Phương pháp mạng noron nhân tạo 23 Mạng nơron nhân tạo (ANN) hệ mô xử lý thông tin, nghiên cứu từ hệ thống thần kinh sinh vật, mô hình toán học tạo giống não để xử lý thông tin ANN công cụ phân tích số liệu dựa mô hình tính toán để giải vấn đề phức tạp ANN gồm đơn vị xử lý số liệu dầy đặc liên quan mật thiết với Mỗi đơn vị nối với đơn vị bên cạnh lực (weight) Việc xem xét kết hợp cách chuẩn hoá lực để tạo mạng có kết thích hợp Trong nơron truyền tải liệu cách tính hay dự đoán đầu (output) dự liệu đầu vào (input), trọng lượng (weight) độ lệch (bias) Phương pháp thích hợp để mô hình hoá hệ phi tuyến tính Mô hình nơron nhân tạo - Giả sử có N liệu đầu vào (inputs), - Nơron có N trọng số (weights) tương ứng với N đường truyền inputs Nơron lấy input thứ nhất, nhân với trọng số đường input thứ nhất, lấy input thứ hai nhân với trọng số đường input thứ hai v.v , lấy tổng tất kết thu - Đầu hàm tổng tất kết thu Mạng nơron bao gồm vôu1số v1nơron liên kết, truyền thông với X0 g1 yo mạng X1 M XN Lớp nhập K [V] [W] Lớp ẩn Lớp xuất X0, X1,…Xn: thông tin đầu vào, Y0, …Yk thông tin đầu 24 yk Trong noron có hàm số giới hạn dùng để điều chỉnh sai số cho liệu đầu phù hợp theo yêu cầu Các hàm giới hạn thường dùng: Với mô hình tính toán, ta phải xác định thuật toán học để tự động xác định giá trị tham số tối ưu cho mô hình sở số liệu cho trước ANN khái niệm tương đối trình xử lý số liệu, giải toán khó mà người nhiều không giải Các mô hình mạng noron chính: - Mạng lan truyền thẳng lớp – perceptron neuron neuron neuron neuron - Mạng lan truyền thẳng đa lớp - multi layer perceptron-MLP 25 u1 X0 v1 g1 X1 XN M [W] Líp vµo - líp Èn yo K yk [V] líp Mạng lan truyền ngược – RBF - Tùy thuộc vào đặc điểm tập liệu để lựa chọn mô hình mạng nơron cho phù hợp Trong hóa phân tích, liệu đầu vào tín hiệu đo điều kiện khác nhau, liệu đầu giá trị nồng độ cấu tử, thường sử dụng mạng lan truyền thẳng đa lớp (MLP) Thí dụ: xác định đồng thời cấu tử hỗn hợp phương pháp trắc quang, ta xây dựng 55 dung dịch chuẩn dùng làm mẫu học với nồng độ thay đổi bao gốm khoảng tuyến tính khoảng tuyến tính Đồng thời xây dựng số liệu kiểm tra với 20 mẫu khác với nồng độ nằm khoảng dùng làm mẫu học Các số liệu lựa chọn ban đầu: * Bộ số liệu học: - Lớp nhập xlearn[nxm]: ma trận độ hấp thụ quang mẫu chuẩn toàn dải phổ (từ λ = 400 -600nm) n=55 số mẫu học, m =101 số bước sóng tiến hành ghi phổ 26 - Lớp xuất dlearn[nxp]: ma trận nồng độ dung dịch mẫu chuẩn biểu diển bảng 5, với p =2 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]: ma trận độ hấp thụ quang mẫu kiểm tra toàn dải phổ với q = 32 số mẫu kiểm tra - Lớp xuất dtest[qxp]: ma trận nồng độ dung dịch kiểm tra biểu diễn: Như ta có mạng nơron với 101 đầu vào đầu * Hàm truyền nơron lớp ẩn: hàm chuẩn hoá ‘logsig’ ‘purelin’ ‘logsig’ * Hàm truyền nơron đầu ra: tuyến tính ‘ purelin’ Trong trình tính toán đồ thị xem xét cụ thể bước học ta nhận thấy: - Giá trị bước học 100.000 cho sai số tương đối bình phương trung bình ( MSE) nhỏ Giả sử đặt trước MSE 10-3 %, tức anpha định trước (α) = 10-5 Trong trình thực toán ta sử dụng hàm sau: - Tạo hàm, thiết lập mạng nơron luyện tập cho mạng có cấu trúc sau: net = newff(PR, [S1 S2 …Sn1], {TF1 TF2…TFn1}, BTF, BTF, PF) Trong đó: PR = [min(x); max(x) ] [S1 S2 …Sn1] số nơron lớp ẩn lớp xuất, ứng với toán ta có: [nhidden 2] {TF1 TF2 …TFn1} hàm học lớp mạng, tham khảo thêm toolbox Matlab Sim(net, x, d, ntimes): hàm mô đầu theo giá trị đầu vào Train(net, x, d, ntimes): hàm học toán Các hàm hàm chuẩn, ta dùng lấy dễ dàng từ toolbox Matlab Thuật toán mạng nơron nhân tạo phần mềm MATLAB - Khởi động phần mềm MATLAB 27 - Nhập ma trận liệu cửa sổ WORKSPACE + Nhập ma trận nồng độ mẫu học dlearn(mxk) 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 mẫu học xlearn(mxn) (n số tín hiệu đo) + Nhập ma trận nồng độ mẫu kiểm tra dtest(m’xk) 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 mẫu kiểm tra xtest(m’xn) - Lưu liệu vừa nhập vào thành file Matlab :ANN.mat - Mở M-file cửa sổ EDITOR viết câu lệnh đó: % 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 lop, moi lop 100 noron % Lop xuat co noron, tuong ung voi 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 mau kiem tra dua vao mang noron da hinh ytest = sim(net,xtest) ; %Tinh sai so giua nong mau kiem tra dtest voi nong xac dinh duoc tu % mang noron nhan tao ytest: Saiso=(dtest - ytest)*100./dtest ; - Lưu lại M-file vừa thực mang tên: ANN.m - Gọi hàm M-file vừa viết cửa sổ COMMAND WINDOW: >> ANN 28 Kích chuột vào giá trị Saiso, ytest WORKSPACE thu liệu mong muốn Thí dụ: Tiến hành xác định đồng thời Fe(II) Fe(III) dung dịch 110 bước sóng, với 55 mẫu học 22 mẫu kiểm tra - STT 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Fe2+ (ppm) Fe3+ (ppm) STT 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 Fe2+ (ppm) Fe3+ (ppm) 2.2 Phương pháp hồi quy cấu tử kết hợp với mạng noron nhân tạo(PC-ANN) Giống phương pháp hồi quy cấu tử PCR, trước sử dụng ANN, số liệu biến phụ thuộc phân tích đường chuẩn thực theo phương pháp PCA để tìm giá trị riêng score tải trọng loading Trong mô hình 29 giá trị riêng (score) thực PCA với tập số liệu đường chuẩn dùng làm lớp nhập Phương pháp PC-ANN xây dựng dựa việc sử dụng giá trị khác PC Lớp ẩn chứa nơron với hàm sigmoid lớp xuất với hàm tuyến tính linear Thuật toán lan truyền ngược áp dụng cho mạng PC-ANN đa lớp feed-forward Các biến PC-ANN tối ưu cho đạt sai số nhỏ 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 độ gây tính xen phủ (overfitting) mô hình 30 [...]... 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 17 tuyến tính trong đó giá trị y là giá trị hàm mục tiêu PCA scores... 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 23 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... trị hàm mục tiêu PCA scores Ma trận tín hiệu đo (mx n) PCA loading và PCA scores + Sai số dư (lan truyền) 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... 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 : 14 -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... 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... độ 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... Fe3+ (ppm) STT 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 Fe2+ (ppm) Fe3+ (ppm) 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... 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... 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... 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: ... Phương pháp hồi quy đa biến 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ử (X 1, X2…Xk), tín hiệu phân tích hỗn hợp y phương trình hồi qui đa biến mô tả quan hệ y biến Xi (i=1,2,…... phổ biến đắc lực môi trường khác Các khả MATLAB bản: - Thực tính toán toán học bao gồm: ma trận đại số tuyến tính, đa thức nội suy, phân tích số liệu thống kê, tìm cực trị hàm biến nhiều biến, ... trình hồi qui đa biến 17 tuyến tính giá trị y giá trị hàm mục tiêu PCA scores Ma trận tín hiệu đo (mx n) PCA loading PCA scores + Sai số dư (lan truyền) Nồng độ cấu tử Hồi quy đa biến tuyến tính

Ngày đăng: 06/11/2015, 10:02

Tài liệu cùng người dùng

Tài liệu liên quan