TIỂU LUẬN MÔN HỌC MẠNG NEURAL - Pdf 23

Tiếu luận mạng Neural
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
oOo
TIỂU LUẬN MÔN HỌC:
MẠNG NEURAL

Giảng viên hướng dẫn :TS. Phan Văn Hiền
Học viên thực hiện :Võ Anh Tuấn
Lớp :CH Tự Động Hóa
Khoá :K24

Đà Nẵng, tháng 05/2013
MỞ ĐẦU
Võ Anh Tuấn TĐH K24 - Trang 1

Tiếu luận mạng Neural
Trong thiết kế điều khiển, khi biết được mô hình toán học của đối tượng điều
khiển (gọi tắt là đối tượng) thì ta dễ dàng có thể thiết kế được một bộ điều khiển
để thu được đáp ứng của hệ thống theo mong muốn, đồng thời cũng đảm bảo
được tính ổn định, bền vững của hệ thống. Tuy nhiên, không phải lúc nào ta
cũng biết được mô hình toán học của đối tượng.
Với những quá trình vật lý phức tạp, ta hoàn toàn không thể thu được mô
hình toán học phản ánh quá trình vật lý đó. Do đó ta rất khó có thể thiết kế được
một bộ điều khiển đảm bảo các tính năng và chỉ tiêu chất lượng như mong muốn
cho toàn hệ thống. Trong trường hợp này, để thiết kế một bộ điều khiển, ít nhất
ta phải biết một mô hình xấp xỉ của đối tượng. Mô hình xấp xỉ đó được gọi là
mô hình đồng dạng của đối tượng. Việc ước lượng mô hình xấp xỉ đó được gọi
là nhận dạng đối tượng điều khiển.
Với khả năng học, mạng nơ-ron tỏ ra rất thích hợp trong việc nhận dạng đối
tượng điều khiển. Mạng nơ-ron được chia ra làm hai loại là mạng nơ-ron truyền

a) Mô hình thuận
b) Mô hình ngược
a) b)
Tiếu luận mạng Neural
Ta sử dụng mô hình thuận (hình 1.a) để nhận dạng đối tượng. Tín hiệu vào x
được đưa vào đồng thời cho cả đối tượng P và mạng nơ-ron. Tín hiệu ra của
mạng nơ-ron y
1
được so sánh với tín hiệu ra y của đối tượng P. Ta có sai lệch
Trong đó:
+ d=y là tín hiệu ra của đối tượng ứng với tín hiệu vào x , đây cũng chính là
tín hiệu ra mong muốn đạt được của mạng nơ-ron.
+ y
1
là tín hiệu ra thực của mạng nơ-ron.
Chuẩn của vec-tơ sai lệch ׀׀
1
y - d ׀׀ sẽ được sử dụng để đào tạo mạng nơ-ron.
Nó sẽ được lan truyền ngược trên toàn cấu trúc mạng để thay đổi khối lượng liên
kết giữa các nơ-ron để giảm thiểu độ sai lệch này. Kết quả ta sẽ có một mạng
nơ-ron sau khi đào tạo sẽ thực hiện một ánh xạ x → y
1
~ y với bất kỳ một cấp
chính xác bất kỳ nào mà ta mong muốn. Mạng nơ-ron sau khi đào tạo chính là
mô hình đồng dạng của đối tượng điều khiển.
Tương tự như vậy, ta sử dụng cấu trúc nhận dạng mô hình ngược của đối
tượng P như hình 1-b. Tín hiệu ra y của đối tượng P được sử dụng làm tín hiệu
vào của mạng nơ-ron. Tín hiệu ra của mạng nơ-ron x
1
được so sánh với tín hiệu

rằng sơ đồ này chỉ có thể thực hiện được khi mô hình ngược của đối tượng tồn
tại duy nhất. Mặt khác, sơ đồ này không kinh tế vì phải sử dụng đến hai mạng
nơ-ron. Sơ đồ điều khiển hình 3-b có chức năng giống như sơ đồ điều khiển trên
hình 5-a, nhưng nó chỉ cần duy nhất một mạng nơ-ron. Tín hiệu vào mạng
Võ Anh Tuấn TĐH K24 - Trang 4
0
y
a
y
b
y
x
a
x
b
x
a)
0
y
a
y
b
y
x
a
x
b
x
b)
y

x
+
+
-
a)
Bộ điều khiển
nơ-ron B
d
Mạng nơ-ron Đối tượng P
y
y
1
d-y
x
+
+
-
b)
Tiếu luận mạng Neural
Trong phần này, ta sẽ thực hiện minh hoạ một ví dụ đơn giản thông qua mô
phỏng trên MATLAB. Như đã trình bày, mục đích của nhận dạng đối tượng là
để tìm ra một mô hình phù hợp của đối tượng phi tuyến bằng cách quan sát các
tín hiệu vào/ra của đối tượng đó. Đối với một quá trình phi tuyến cho trước, ta
cần phải tính được mối quan hệ về mặt hàm số giữa tín hiệu vào và tín hiệu ra.
Bản thân của đối tượng là một hộp đen có cấu trúc chưa biết. Tất cả những gì
mà ta có thể quan sát được là những gì đi vào và đi ra khỏi hộp đen. Đối với quá
trình nhận dạng như thế, áp dụng mạng nơ-ron để nhận dạng sẽ cho kết quả tốt
nhất.
Ta xét một ví dụ sau:
Một hệ thống phi tuyến được mô tả bởi phương trình:

Biểu diễn trong MATLAB, ta có:
yp(1)=0; %yp(1)=y(k-1)
Võ Anh Tuấn TĐH K24 - Trang 6
Tiếu luận mạng Neural
yp(2)=0; %yp(2)=y(k)
u=rands(1,301)*2; %-2<=u(k)<=2
for k=2:301
yp(k+1)=yp(k)*(yp(k-1)+2)*(yp(k)+2.5)/(8.5+yp(k)^2+yp(k-1)^2)+u(k);
out(k-1)=(yp(k+1)-u(k))/20; %output traing data
in(k-1)=yp(k)/20; %input training data
end;
Chú ý rằng dữ liệu đào tạo vào và ra đều được chia cho hệ số tỉ lệ và trong ví
dụ này, hệ số tỉ lệ là 20. Việc chia cho hệ số tỉ lệ là cần thiết khi sử dụng các
hàm kích thích dạng sigmoid để nén dữ liệu. Người thiết kế phải có kinh nghiệm
trong việc chọn hệ số ti lệ một cách phù hợp để mạng nơ-ron hội tụ nhanh hơn.
Hệ số tỉ lệ lớn quá hoặc nhỏ quá cũng đều ảnh hưởng đáng kể đến các đặc tính
hội tụ của mạng.
2. Thiết lập các vec-tơ dữ liệu vào/ra để đào tạo mạng nơ-ron:
Ở đây, dữ liệu vào plantin được thiết lập thành một cặp dưới dạng:




















+ )300(
)299(
, ,
)4(
)3(
,
)3(
)2(
,
)2(
)1(
)1(
)(
in
in
in
in
in
in
in
in
ky

net.trainParam.epochs=500;
net.trainParam.goal=0.0005;
4. Đào tạo mạng nơ-ron:
Biểu diễn trong MATLAB, ta có:
net=train(net, plantin, plantout);
5. Tìm đáp ứng của mạng nơ-ron :
Với các tín hiệu vào ngẫu nhiên đã sử dụng để đào tạo, đồng thời so sánh đáp
ứng của mạng nơ-ron với đáp ứng thực của đối tượng.
Biểu diễn trong MATLAB, ta có:
Võ Anh Tuấn TĐH K24 - Trang 8
Tiếu luận mạng Neural
trainedout=sim(net,plantin);
plot(plantout,'k');
hold on;
plot(trainedout,'r');
legend ('Dap ung thuc cua doi tuong','Dap ung cua mang noron')
axis([0,300,-0.1,0.35]);
xlabel('timestep');
ylabel('Plant(solid) NN Output(dotted)');
Kết hợp các phần đã phân tích trên đây, ta có đoạn chương trình hoàn chỉnh
viết trong MATLAB có tên file Dap_ung_ngau_nhien.m như sau:
%Thiet lap cap du lieu vao/ra de dao tao mang noron
yp(1)=0;
yp(2)=0;
u=rands(1,301)*2;
for k=2:301
yp(k+1)=yp(k)*(yp(k-1)+2)*(yp(k)+2.5)/(8.5+yp(k)^2+yp(k-1)^2)+u(k);
out(k-1)=(yp(k+1)-u(k))/20;
in(k-1)=yp(k)/20;
end;

Bây giờ, ta muốn rằng mạng nơ-ron vừa được đào tạo ở trên có thể đưa ra
các đáp ứng trùng với đáp ứng thực của đối tượng ứng với cùng một tín hiệu vào
khác với các tín hiệu vào đã được sử dụng để đào tạo mạng. Nếu hai đáp ứng
trùng nhau thì mạng nơ-ron đó có thể sử dụng để nhận dạng đối tượng rất tốt.
Còn nếu hai đáp ứng chưa trùng nhau thì ta cần phải quay lại bước 1 để thu thêm
dữ liệu đào tạo và đào tạo thêm cho mạng.
Trong ví dụ này, ta tìm đáp ứng của mạng nơ-ron và đáp ứng thực của đối
tượng ứng với tín hiệu vào theo hàm sin và cos:
)1,0sin(5,2)( kku
π
=
với k є [0,200]
Võ Anh Tuấn TĐH K24 - Trang 11
Hình 4: Đáp ứng của mạng nơ-ron và đáp ứng thực của đối tượng ứng với đầu
vào là tín hiệu ngầu nhiên
Tiếu luận mạng Neural
)2,0cos(5,1)( kku
π
=
với k є [200,600]
Biểu diễn trong MATLAB lấy tên file Dap_ung_ham_sin_cos.m như sau:
%Thiet lap cap du lieu vao/ra de dao tao mang noron
yp(1)=0;
yp(2)=0;
out1(1)=0;
out1(2)=0;
for k=2:600
if(k<=200) u(k)=2.5*sin(0.1*pi*k);
else
u(k)=1.5*sin(0.2*pi*k);

% Tao khung do thi ve tu file 'Name'dap ung ham sin cos
figNumber=figure('Name','DAP_UNG_HAM_SIN_COS','NumberTitle','on','Vis
ible','on');
colordef(figNumber,'black')
axes('Units','normalized','Position',[0.10 0.25 0.60 0.65]);
set(gcf,'DefaultUicontrolUnit','Normalized')
frame02 = uicontrol(gcf,'Style','frame', 'Position',[0.775 0.05 0.2 0.8]);
set(frame02,'BackgroundColor', [0.5 0.5 0.5]);
edit_k= uicontrol(gcf,'Style', 'Edit', 'String','4','Position',[0.8 0.1 0.1 0.05],
'HorizontalAlignment','Right','callback','DAP_UNG_HAM_SIN_COS');

slider_yp(k+1) = uicontrol(gcf, 'Style', 'Slider', 'Min', 0 ,'Max', 10, 'Value',4,
'Position',[0.8 0.17 0.15 0.05],'Callback','DAP_UNG_HAM_SIN_COS');
slider_out1(k-1) = uicontrol(gcf, 'Style', 'Slider', 'Min', 0,'Max',10, 'Value',1,
'Position',[0.8 0.32 0.15 0.05],'Callback','DAP_UNG_HAM_SIN_COS');
popup_out1(k)= uicontrol(gcf,'Style', 'Popupmenu', 'String','HAM SIN|HAM
COS','Value', 1,
'Position',[0.8 0.75 0.15 0.05],'Callback','DAP_UNG_HAM_SIN_COS');

radio_E = uicontrol(gcf,'Style', 'Radiobutton', 'String', 'Yes/No','Value', 1,
'Position',[0.8 0.45 0.15 0.05], 'callback','DAP_UNG_HAM_SIN_COS');
biendo = uicontrol(gcf, 'Style', 'Text', 'String', '[constan]', 'Position',[0.9 0.1 0.05
0.04],
'HorizontalAlignment','Right');
dienap = uicontrol(gcf, 'Style', 'Text', 'String', '[u(k)]', 'Position',[0.9 0.25 0.06
0.04],
'HorizontalAlignment','Right');
set(biendo,'BackgroundColor', [0.5 0.5 0.5]);
set(dienap,'BackgroundColor', [0.5 0.5 0.5]);
Võ Anh Tuấn TĐH K24 - Trang 14

Võ Anh Tuấn TĐH K24 - Trang 15
Tiếu luận mạng Neural
set(nhan5,'BackgroundColor', [0.9 0.3 0.07]);
pause(0.5);
set(nhan5,'BackgroundColor', [0.9 0.9 0.0]);
Sau khi mô phỏng, ta được kết quả như ở hình 6:
KẾT LUẬN
Nhờ khả năng học, mạng có thể thích nghi với sự thay đổi tham số của đối
tượng điều khiển trong quá trình hoạt động. Vì thế, nhận dạng đối tượng điều
khiển sử dụng mạng nơ-ron là rất hiệu quả. Kết quả mô phỏng trên MATLAB
cũng cho thấy đáp ứng của mạng nơ-ron bám theo đáp ứng thực của đối tượng
điều khiển là rất tốt.

Võ Anh Tuấn TĐH K24 - Trang 16
Hình 6: Đáp ứng của mạng nơ-ron và đáp ứng thực của đối tượng
ứng với một đầu vào khác
Hình 6: Đáp ứng của mạng nơ-ron và đáp ứng thực của đối tượng
ứng với một đầu vào khác


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status