TIỂU LUẬN MÔN HỌC MÔ HÌNH HÓA HỆ THỐNG ĐO LƯỜNG VÀ ĐIỀU KHIỂN Tự chọn loại mạng neuron với chức năng nhận dạng một hàm phi tuyến bất kỳ và tiến hành mô phỏng trên matlab

23 921 1
TIỂU LUẬN MÔN HỌC MÔ HÌNH HÓA HỆ THỐNG ĐO LƯỜNG VÀ ĐIỀU KHIỂN Tự chọn loại mạng neuron với chức năng nhận dạng một hàm phi tuyến bất kỳ và tiến hành mô phỏng trên matlab

Đ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

TIỂU LUẬN MÔN HỌC MÔ HÌNH HÓA HỆ THỐNG ĐO LƯỜNG VÀ ĐIỀU KHIỂN Đề bài: Tự chọn loại mạng neuron với chức năng nhận dạng một hàm phi tuyến bất kỳ và tiến hành mô phỏng trên matlab 1. Cấu trúc của mạng nơ ron 1.1. Mô hình một neuron nhân tạo Nghiên cứu mạng neuron nhân tạo được xuất phát ý tưởng từ các neuron sinh học của bộ não người. Mạng neuron nhân tạo là dùng kỹ thuật tái tạo lại một vài chức năng tương tự như bộ não con người. Mạng neuron nhân tạo không thể phức tạp như bộ não con người. Tuy vậy vẫn có 2 điểm tương tự giữa mạng neuron nhân tạo và mạng neuron sinh học. Thứ nhất các khối của hai mạng đều là các thiết bị tính toán được liên kết cao với các khối khác. Thứ hai là các liên kết giữa các neuron xác định chức năng của một mạng. Mạng neuron nhân tạo có những nhiều lợi điểm tiềm năng như sau cho điều khiển thông minh: chúng học tập từ kinh nghiệm hơn là lập trình, có khả năng tạo ra dữ liệu không nhìn thấy từ dữ liệu rèn luyện đã cho, nhanh và có thể được thực hiện trong thời gian thực. Việc nghiên cứu ứng dụng mạng neuron mở ra một hướng mới trong việc giải quyết các bài toán kỹ thuật và kinh tế. Trong bài toán kỹ thuật, mạng neuron có thể dùng để nhận dạng, điều khiển, nhận mẫu, giải quyết các bài toán tối ưu... rất có hiệu quả. Mô hình một neuron có một đầu vào được mô tả như sau:

Tiểu luận mơn học: MẠNG NEURON TIỂU LUẬN MƠN HỌC MƠ HÌNH HĨA HỆ THỐNG ĐO LƯỜNG VÀ ĐIỀU KHIỂN Đề bài: Tự chọn loại mạng neuron với chức nhận dạng một hàm phi tuyến tiến hành mô phỏng matlab Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận môn học: MẠNG NEURON Cấu trúc mạng nơ ron 1.1 Mơ hình neuron nhân tạo Nghiên cứu mạng neuron nhân tạo được xuất phát ý tưởng từ neuron sinh học não người Mạng neuron nhân tạo dùng kỹ thuật tái tạo lại vài chức tương tự não người Mạng neuron nhân tạo phức tạp não người Tuy có điểm tương tự mạng neuron nhân tạo mạng neuron sinh học Thứ khối hai mạng thiết bị tính tốn liên kết cao với khối khác Thứ hai liên kết neuron xác định chức mạng Mạng neuron nhân tạo có nhiều lợi điểm tiềm sau cho điều khiển thông minh: chúng học tập từ kinh nghiệm lập trình, có khả tạo liệu khơng nhìn thấy từ liệu rèn luyện cho, nhanh thực thời gian thực Việc nghiên cứu ứng dụng mạng neuron mở hướng việc giải toán kỹ thuật kinh tế Trong tốn kỹ thuật, mạng neuron dùng để nhận dạng, điều khiển, nhận mẫu, giải tốn tối ưu có hiệu - Mơ hình neuron có đầu vào mơ tả sau: Inputs p General neuron w Σ n f a b Mạng neuron đầu vào Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận mơn học: MẠNG NEURON - Đầu vào vô hướng p nhân trị số với đại lượng vô hướng w (trọng số) để tạo tích wp đại lượng vơ hướng Lượng wp chuyển cho tổng Đầu vào khác nhân với độ dốc b chuyển cho tổng Đầu tổng n gọi đầu vào mạng đối số hàm truyền f Đầu vô hướng neuron là: a = f(wp + b) - Mơ hình neuron có vectơ đầu vào: Một neuron có nhiều đầu vào tạo nên vector đầu vào Một neuron với R đầu vào có đầu mô tả sau: Inputs General Neuron p1 w 1,1 p2 pR n Σ w1,R a f b Mạng neuron nhiều đầu vào - Quan hệ đầu đầu vào neuron: a = f(Wp+b) - Trong đó: p: vectơ biến đầu vào f: hàm chuyển đổi a: biến đầu neuron - Hàm tổng hợp: Một số dạng hàm tổng hợp f(p) dùng phổ biến: - Hàm tổng hợp tuyến tính (purelin): a a = f ( n) = n n -1 Hàm truyền tuyến tính Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận môn học: MẠNG NEURON - Hàm ngưỡng (hardlim): 1 a = hard lim(n) =  0 neu n ≥ neu n < n -1 Hàm truyền ngưỡng - Hàm truyền dạng log-sigmoid: logsig(n) = 1+ e − n a n -1 Hàm truyền log-sigmoid 1.2 Mơ hình mạng neuron nhân tạo - Mơ hình mạng nơ ron hình thành từ việc liên kết neuron với theo nguyên tắc Có nhiều loại mạng việc phân loại mạng có nhiều cách: - Theo số lớp: mạng neuron lớp, mạng nơ ron nhiều lớp - Theo cấu trúc liên kết đầu vào đầu ra: mạng neuron truyền thẳng, mạng neuron hồi qui - Theo tính chất làm việc: mạng tĩnh mạng động - Phần tử gây trễ: Là phần tử có tín hiệu bị trễ khoảng thời gian so với tín hiệu vào, có hai tham số trễ thời gian trễ bậc trễ Phần tử Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận mơn học: MẠNG NEURON sử dụng để lấy tín hiệu khứ yếu tố để tạo đơn vị neuron động lực học mạng động lực học hệ thống rời rạc Quan hệ vào-ra sau: q(t ) = w p (t − iτ ) với w trọng số TDL , i bậc trễ, i=1,2,…,n τ thời gian trễ bậc - Mạng nhiều lớp truyền thẳng : Gồm nhiều lớp (N lớp) ghép liên tiếp nhau, đầu lớp nối với đầu vào lớp sau Lớp lớp vào (input layer), có R đầu vào S1 đầu Lớp cuối lớp (output layer) có SN-1 đầu vào SN (gọi tắt S) đầu Giữa chúng có số lớp nối liên tiếp gọi lớp ẩn, chúng đóng vai trị trung gian mạng, không tiếp xúc trực tiếp với bên ngồi Mỗi lớp ẩn có Sk-1 đầu vào, Sk đầu Các neuron lớp nối theo cấu trúc ghép nối hoàn toàn, nghĩa neuron nối với tất tín hiệu vào lớp neuron lớp có cấu trúc liên kết hoàn toàn giống - Mạng nơ ron hồi quy (mạng phản hồi): loại mạng mà tín hiệu neuron phản hồi ngược làm tín hiệu vào cho neuron lớp trước lớp tạo thành vịng kín Tín hiệu phản hồi có phần tử gây trễ (TDL) 1.3 Các luật học Việc học mạng neuron để tìm xác ma trận trọng số liên kết W neuron xác định cấu trúc cụ thể mạng để giải tốn cụ thể Có hai kiểu học học cấu trúc học thông số: Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận môn học: MẠNG NEURON - Học cấu trúc: xác định cấu trúc mạng bao gồm số lượng nút (neuron) lớp giá trị ma trận trọng số W mạng - Học thông số: tìm được xác giá trị ma trận trọng số W ứng với cấu trúc (cố định) mạng neuron cho - Có ba phương pháp học: + Học có giám sát: tín hiệu giám sát thông tin mong muốn cung cấp từ bên mà đầu y mạng nơ ron cần phải đạt x Mạng noron W e d Khối phát tín hiệu nhận xét + Học củng cố: Thơng tin cung cấp từ bên ngồi d (tín hiệu củng cố) mang tính chất định hướng cho q trình học (cho biết tín hiệu mạng /sai) x Mạng nơron W e y Khối phát tín hiệu nhận xét d + Học khơng giám sát: Q trình học khơng có tín hiệu từ bên ngồi để giám sát,đó q trình tự cấu trúc mạng Mạng phải tự xác định cặp liệu mẫu (dữ liệu vào ra), tính chất, mối quan hệ để tạo ma trận trọng số W mong muốn Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận mơn học: MẠNG NEURON Mạng nơron W - Dạng chung luật học thông số xác định giá trị cần điều chỉnh ΔWi cho vector trọng số Wi - Với mạng rời rạc: ∆Wi (t ) = η r.x(t ) Trong : η số dương xác định tốc độ học r tín hiệu học r=fr(Wi,x,di) Lúc giá trị vector trọng số thời điểm (t+1) là: Wi (t + 1) = Wi (t ) + η f r (Wi , x(t ), d i ).x(t ) Với mạng liên tục: dWi (t ) = η r.x(t ) dt Có nhiều thuật tốn để xác định ΔWi(t) đưa Một thuật toán có giám sát cho mạng nơ ron Widrow-hoff đề nghị thuật toán "giảm Gradient" (gradient descent), sử dụng tiểu sai lệch trung bình bình phương việc thêm vào trọng số liên kết mạng giá trị theo hướng ngược với hướng tức thời Gradient Thuật tốn sử dụng phương pháp sai lệch trung bình bình phương nhỏ (LMS: Least Mean Squares) gọi phương pháp delta Hàm chi phí chuẩn sử dụng mạng nơ ron, sai lệch trung bình bình phương, thuật toán định nghĩa hàm đạt cực tiểu E sau: N1 L E = ∑ ( d n (k ) − y n (k )) → n=1 Ở đây: d n (k ) đầu mong muốn thứ n thời điểm t L số lớp Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận mơn học: MẠNG NEURON Ngồi cịn sử dụng số thuật tốn thuật tốn LevenbergMarquardt: biến đổi phương pháp Newton thiết kế để cực tiểu hoá hàm tổng bình phương hàm phi tuyến khác Nhận dạng hàm phi tuyến mạng neuron: 2.1 Nhận dạng mạng neuron truyền thẳng nhiều lớp (multive-layer feedforward neural networks) Inputs w11,1 p w12,1 Log-Sigmoid Layer Σ a11 b1 Σ n11 n12 a12 Linear Layer w21,1 w21,2 b12 Σ n2 a2 b2 Một ví dụ mạng lớp Trong nội dung tiểu luận ta dùng mạng neuron có hai lớp, lớp (lớp ẩn) có lớn neuron, lớp (lớp ra) có neuron Để thuận tiện q trình khảo sát cấu hình kết nhận dạng mạng neron (2 lớp) tiêu biểu, ta xây dựng chương trình viết GUI Matlab (Graphical User Interface) để nhận dạng hàm f(x) bất kỳ, điều chỉnh thông số mạng cách linh hoạt Ta chọn hàm phi tuyến để nhận dạng là: f ( x ) = x + 3x + cos( x ) Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận môn học: MẠNG NEURON Chọn hàm truyền lớp log-sigmoid (logsig), hàm truyền lớp tuyến tính purelin để nhận dạng khoảng [-2.5 ÷ 2.5] với bước (step) biến x 0.05, tương ứng với 100 điểm lấy mẫu Thuật toán huấn luyện LevenbergMarquardt Nhận dạng hàm với số neuron lớp 3, lớp Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 Tiểu luận môn học: MẠNG NEURON Nhận dạng hàm với số neuron lớp 7, lớp 2.2 Nhận dạng mạng neuron hồi quy nhiều lớp (multive-layer recurrent neural networks) TDL LW1,1 IW1,1 IW1,R x1 IWS1,1 x2 y1 y2 TDL TDL xR IWS1,R líp vào LWS2,S1 lớp ẩn lớp yS Cấu trúc mạng nơ ron Xột mng cú R tớn hiu vo, S tín hiệu có nhiều lớp ẩn Lớp vào có R tín hiệu vào vectơ x Và có n lớp ẩn, lớp ẩn thứ i (i = 1, … n-1) có Si neuron hồi quy có lấy tín hiệu khứ qua khối trễ TDL Lớp có S n neuron truyền thẳng tín hiệu cho S đầu Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 10 Tiểu luận mơn học: MẠNG NEURON Hàm chuyển đổi cho lớp giống khác nhau, nhiên hai lớp liền kề có hàm chuyển đổi tuyến tính khơng cần thiết thay lớp tuyến tính để giảm bớt độ phức tạp mạng thiết kế Tương tự ta dùng mạng neuron có hai lớp, hàm truyền lớp tansig, hàm truyền lớp tuyến tính purelin để nhận dạng hàm phi tuyến: f ( x ) = x + 3x + cos( x ) khoảng [-2.5 ÷ 2.5] với bước (step) biến x 0.05, tương ứng với 100 điểm lấy mẫu Thuật toán huấn luyện LevenbergMarquardt Nhận dạng hàm với số neuron lớp 3, lớp Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 11 Tiểu luận mơn học: MẠNG NEURON Nhận dạng hàm với số neuron lớp 7, lớp 2.3 Kết luận Như để nhận dạng hàm phi tuyến ta dùng mạng truyền thẳng hay mạng hồi quy Khả nhận dạng hàm phụ thuộc vào số lớp, số neuron lớp, số điểm lấy mẫu, số bước lặp bình phương sai số Số lớp số neuron lớn khả nhận dạng tốt khối lượng tính tốn tăng lên nên với đối tượng phức tạp phải tối ưu tham số nhân tố quan trọng So với mạng truyền thẳng mạng nơ ron hồi quy cục làm đơn giản thuật toán dạy, số lớp neuron Mặt khác, khả mơ hình hóa đầy đủ neuron cho phép kích thước toàn mạng nhỏ Như vậy, mạng hồi quy có ưu rộng hơn, đủ sức nhận dạng hệ thống điều khiển hệ thống phi tuyến Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 12 Tiểu luận mơn học: MẠNG NEURON Chương trình nhận dạng hàm phi tuyến ( viết GUI, m-file) function varargout = hung(varargin) % M-file for hung.fig % Begin initialization code gui_Singleton = 0; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @hung_OpeningFcn, 'gui_OutputFcn', @hung_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code % - Executes just before is made visible function hung_OpeningFcn(hObject, eventdata, handles, varargin) % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to (see VARARGIN) % Choose default command line output for handles.output = hObject; % Update handles structure guidata(hObject, handles); % - Outputs from this function are returned to the command line function varargout = hung_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % - Executes on button press in Nhan_dang function Nhan_dang_Callback(hObject, eventdata, handles) % hObject handle to Nhan_dang (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) t1 = get(handles.FF_net,'Value'); t2 = get(handles.RC_net,'Value'); if t1==1 % Chon thuat toan cho lop an get_alg_1 = findobj(gcbf,'Tag','Lop_an'); alg_1 = get(get_alg_1,'Value'); if alg_1 ==1 str_alg_1 ='logsig'; elseif alg_1 ==2 Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 13 Tiểu luận mơn học: MẠNG NEURON str_alg_1 ='purelin'; else str_alg_1 ='tansig'; end; % Chon thuat toan cho lop get_alg_2 = findobj(gcbf,'Tag','Lop_ra'); alg_2 = get(get_alg_2,'Value'); if alg_2 ==1 str_alg_2 ='logsig'; elseif alg_2 ==2 str_alg_2 ='purelin'; else str_alg_2 ='tansig'; end; % Chon so neuron lop an get_nnum1 = findobj(gcbf,'Tag','Neuron_num_Slider'); nnum1 = get(get_nnum1,'Value'); % Chon nguong duoi cua bien get_varLim1 = findobj(gcbf,'Tag','Ng_duoi_Slider'); varLim1 = get(get_varLim1,'Value'); % Chon nguong tren cua bien get_varLim2 = findobj(gcbf,'Tag','Ng_tren_Slider'); varLim2 = get(get_varLim2,'Value'); % Dai cua bien x = varLim1:0.05:varLim2; % Lay Ham so tu GUI get_ham = findobj(gcbf,'Tag','Ham_so'); ham = get(get_ham,'String'); t = eval(ham); % Xay dung mang net = newff([varLim1 varLim2],[nnum1,1],{str_alg_1,str_alg_2}, 'trainlm'); % Cac thong so huan luyen mang net % Dat chi so Goal int_G = '1E-'; get_Goal = findobj(gcbf,'Tag','Goal_Edit'); Str_G = get(get_Goal,'String'); Goal_str = [int_G, Str_G]; Goal_num = eval(Goal_str); net.trainParam.goal = Goal_num; % Dat chi so Epochs get_Epochs = findobj(gcbf,'Tag','Epochs_Slider'); Epochs_num = get(get_Epochs,'Value'); net.trainParam.epochs = Epochs_num; [net,tr] = train(net,x,t); % Qua trinh hoc axes(handles.Trainning1_axes) len = length(tr.perf); x1 = 1:1:len; y1 =tr.perf; scalex = round(len/8); % (8 la so khoang chia tren truc x) j = 1; y1(:,1); Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 14 Tiểu luận môn học: MẠNG NEURON scaley_set(:,1) = Goal_num/10; while scaley_set(:,j)< y1(:,1) scaley_set(:,j+1) = scaley_set(:,j)*10; j=j+1; end y1 = log10(y1); y1_Lim = scaley_set(:,j); set(gca,'xtick',0:scalex:scalex*8); set(gca,'xticklabel',0:scalex:scalex*8); plot(x1,y1,'-k','LineWidth',1.0); plot(x1,y1,x1,log10(Goal_num),'+r','LineWidth',1.0); hold off set(handles.Trainning1_axes,'XMinorTick','on') grid on % Phan trang tri per = num2str(tr.perf(:,len)); Gnum =num2str(Goal_num); titl = ['Levenberg-Marrquardt-Performance:' per '; Goal: ' Gnum]; title(titl,'FontSize',13); ylabel('\bf{Performance - x10^y}'); E_num = num2str(length(tr.epoch)-1); Xlab = [E_num ' Epochs' ]; xlabel(Xlab); grid on % Dap ung cua mang sau huan luyen doi voi dau vao x y = sim(net,x); % Tao cua so nen de ve thi % Ve cac thi toa theo dau vao axes(handles.Result_axes) % Select the proper axes plot(x,t,x,y,'*r','LineWidth',1) set(handles.Result_axes,'XMinorTick','on') grid on xlabel('\bf{Truc x}','FontSize',12); ylabel('\bf{Truc y}','FontSize',12); ham = ['Nhan dang ham so: ' ham]; title(ham,'FontSize',13); legend('\bf{ Duong cong chuan}','\bf{ Duong cong nhan dang bang neuron}',2); hold off %========================= elseif t2==1 % Chon thuat toan cho lop an get_alg_1 = findobj(gcbf,'Tag','Lop_an'); alg_1 = get(get_alg_1,'Value'); if alg_1 ==1 str_alg_1 ='logsig'; elseif alg_1 ==2 str_alg_1 ='purelin'; else str_alg_1 ='tansig'; end; % Chon thuat toan cho lop get_alg_2 = findobj(gcbf,'Tag','Lop_ra'); alg_2 = get(get_alg_2,'Value'); if alg_2 ==1 str_alg_2 ='logsig'; elseif alg_2 ==2 Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 15 Tiểu luận môn học: MẠNG NEURON str_alg_2 ='purelin'; else str_alg_2 ='tansig'; end; % Chon so neuron lop an get_nnum1 = findobj(gcbf,'Tag','Neuron_num_Slider'); nnum1 = get(get_nnum1,'Value'); % Chon nguong duoi cua bien get_varLim1 = findobj(gcbf,'Tag','Ng_duoi_Slider'); varLim1 = get(get_varLim1,'Value'); % Chon nguong tren cua bien get_varLim2 = findobj(gcbf,'Tag','Ng_tren_Slider'); varLim2 = get(get_varLim2,'Value'); % Dai cua bien x = varLim1:0.05:varLim2; % Lay Ham so tu GUI get_ham = findobj(gcbf,'Tag','Ham_so'); ham = get(get_ham,'String'); t = eval(ham); % Xay dung mang net = newlrn([varLim1 varLim2],[nnum1,1],{str_alg_1,str_alg_2}, 'trainlm'); % Cac thong so huan luyen mang net % Dat chi so Goal int_G = '1E-'; get_Goal = findobj(gcbf,'Tag','Goal_Edit'); Str_G = get(get_Goal,'String'); Goal_str = [int_G, Str_G]; Goal_num = eval(Goal_str); net.trainParam.goal = Goal_num; % Dat chi so Epochs get_Epochs = findobj(gcbf,'Tag','Epochs_Slider'); Epochs_num = get(get_Epochs,'Value'); net.trainParam.epochs = Epochs_num; [net,tr] = train(net,x,t); % Qua trinh hoc axes(handles.Trainning1_axes) len = length(tr.perf); x1 = 1:1:len; y1 =tr.perf; scalex = round(len/8); % (8 la so khoang chia tren truc x) j = 1; y1(:,1); scaley_set(:,1) = Goal_num/10; while scaley_set(:,j)< y1(:,1) scaley_set(:,j+1) = scaley_set(:,j)*10; j=j+1; end y1 = log10(y1); y1_Lim = scaley_set(:,j); set(gca,'xtick',0:scalex:scalex*8); set(gca,'xticklabel',0:scalex:scalex*8); plot(x1,y1,'-k','LineWidth',1.0); Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 16 Tiểu luận mơn học: MẠNG NEURON %hold on %plot(x1,log10(Goal_num),'-b','LineWidth',1.0); %hold on plot(x1,y1,x1,log10(Goal_num),'+r','LineWidth',1.0); hold off set(handles.Trainning1_axes,'XMinorTick','on') grid on % Phan trang tri per = num2str(tr.perf(:,len)); Gnum =num2str(Goal_num); titl = ['Levenberg-Marrquardt-Performance:' per '; Goal: ' Gnum]; title(titl,'FontSize',13); ylabel('\bf{Performance - x10^y}'); E_num = num2str(length(tr.epoch)-1); Xlab = [E_num ' Epochs' ]; xlabel(Xlab); grid on % Dap ung cua mang sau huan luyen doi voi dau vao x y = sim(net,x); % Tao cua so nen de ve thi % Ve cac thi toa theo dau vao axes(handles.Result_axes) % Select the proper axes plot(x,t,x,y,'*r','LineWidth',1) set(handles.Result_axes,'XMinorTick','on') grid on xlabel('\bf{Truc x}','FontSize',12); ylabel('\bf{Truc y}','FontSize',12); ham = ['Nhan dang ham so: ' ham]; title(ham,'FontSize',13); legend('\bf{ Duong cong chuan}','\bf{ Duong cong nhan dang bang neuron}',2); hold off else set(handles.alert,'String','Chu y: Phai chon mang !'); end % ==================================================== % - Executes on key press with focus on Nhan_dang and no controls selected function Nhan_dang_KeyPressFcn(hObject, eventdata, handles) % - Executes when figure1 is resized function figure1_ResizeFcn(hObject, eventdata, handles) % - Executes % function mutual_exclude(off) % set(off,'Value',0); % - Executes on button press in FF_net function FF_net_Callback(hObject, eventdata, handles) % hObject handle to FF_net (see GCBO) t1 = get(handles.FF_net,'Value'); if t1==1 set(handles.Lop_an,'Value',1); set(handles.RC_net,'Value',0); % Thay cho function mutual_exclude(off) else set(handles.RC_net,'Value',1); % Thay cho function mutual_exclude(off) Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 17 Tiểu luận môn học: MẠNG NEURON set(handles.Lop_an,'Value',3); % Thay cho function mutual_exclude(off) end %off = [handles.RC_net]; %mutual_exclude(off); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - Executes on button press in RC_net function RC_net_Callback(hObject, eventdata, handles) % hObject handle to RC_net (see GCBO) t2 = get(handles.RC_net,'Value'); if t2==1 set(handles.Lop_an,'Value',3); set(handles.FF_net,'Value',0); % Thay cho function mutual_exclude(off) else set(handles.FF_net,'Value',1); % Thay cho function mutual_exclude(off) set(handles.Lop_an,'Value',1); % Thay cho function mutual_exclude(off) end %off = [handles.FF_net]; %mutual_exclude(off); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function alert_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function alert_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % - Executes on slider movement function Ng_tren_Slider_Callback(hObject, eventdata, handles) Ng_tren_set = (round(get(handles.Ng_tren_Slider,'Value')/0.05))*0.05; % 0.05 la step cua bien !!! set(handles.Ng_tren_Slider,'Value',Ng_tren_set); set(handles.Ng_tren_Edit,'String', num2str(get(handles.Ng_tren_Slider,'Value'))); alert1 = get(handles.Ng_tren_Slider,'Value'); alert2 = get(handles.Ng_duoi_Slider,'Value'); if alert1 = get(handles.Ng_tren_Slider,'Min') && val1 = alert1 set(handles.alert,'String','Chu y: Phai < nguong tren !'); else set(handles.alert,'String',' '); end % - Executes during object creation, after setting all properties function Ng_duoi_Slider_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 9]); end % - Executes function Ng_duoi_Edit_Callback(hObject, eventdata, handles) val2 = str2double(get(handles.Ng_duoi_Edit,'String')); % Determine whether val is a number between and if isnumeric(val2) & length(val2)==1 & val2 >= get(handles.Ng_duoi_Slider,'Min') & val2 = get(handles.Ng_tren_Slider,'Value') set(handles.alert,'String','Chu y: Phai < nguong tren !'); else set(handles.alert,'String',' '); end set_val2 = (round(val2*100))/100; else Học viên: Phan Việt Hùng – Lớp Cao học Tự động hóa K24 19 Tiểu luận môn học: MẠNG NEURON set(handles.alert,'String','!!!: So vuot nguong - fixed.'); pause(2); set(handles.alert,'String',' '); set_val2 = get(handles.Ng_duoi_Slider,'Value'); %set_val2 = get(handles.Ng_duoi_Slider,'Min'); end set(handles.Ng_duoi_Slider,'Value',set_val2); set(handles.Ng_duoi_Edit,'String',' '); set(handles.Ng_duoi_Edit,'String', num2str(get(handles.Ng_duoi_Slider,'Value'))); % - Executes during object creation, after setting all properties function Ng_duoi_Edit_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % - Executes on selection change in Lop_an function Lop_an_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function Lop_an_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % - Executes on selection change in Lop_ra function Lop_ra_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function Lop_ra_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % - Executes during object creation, after setting all properties function Ham_so_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function Ham_so_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % - Executes during object creation, after setting all properties function Neuron_num_Edit_Callback(hObject, eventdata, handles) val3 = str2double(get(handles.Neuron_num_Edit,'String')); if isnumeric(val3) & length(val3)= (get(handles.Neuron_num_Slider,'Min')+1) & val3

Ngày đăng: 05/11/2014, 15:51

Từ khóa liên quan

Mục lục

  • 1. Cấu trúc của mạng nơ ron

    • 1.1. Mô hình một neuron nhân tạo

    • 1.2. Mô hình mạng neuron nhân tạo

    • 1.3. Các luật học

    • 2. Nhận dạng hàm phi tuyến bằng mạng neuron:

      • 2.1. Nhận dạng bằng mạng neuron truyền thẳng nhiều lớp (multive-layer feedforward neural networks)

      • 2.2. Nhận dạng bằng mạng neuron hồi quy nhiều lớp (multive-layer recurrent neural networks)

      • 2.3. Kết luận

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

Tài liệu liên quan