k=rand;
if (k>0.7)
if Pz[i,kk*6+j]==1;
Pz(i,kk*6+j)=0;
else
Pz(i,kk*6+j)=1;
end
end
end
end
end
% Накладывание шумов на матрицу Pp.
for kk=1:20
for i=1:30
for j=1:6
k=rand;
if (k>0.7)
if Pp[i,kk*6+j]==1;
Pp(i,kk*6+j)=0;
else
Pp(i,kk*6+j)=1;
end
end
end
end
end
% Обучение.
% 1 – q, 2 – w, 3 – e, 4 – r, 5 – t, 6 – y
T=[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6];
% "Клонирование" матрицы T
Tz=[T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T];
% Задание нижнего и верхнего пределов значения выхода сети.
ma=cat(2, zeros(75,1), ones(75,1));
% Задание нейронной сети: три слоя 15, 10 и 1 выходной нейронов
% соответственно.
net=newff(ma, [15 10 1],{'tansig' 'tansig' 'purelin'});
% Число циклов обучения.
net.trainParam.epochs=100;
net.performFcn='msereg';
net.performParam.ratio=0.01;
% Шаг, с которым выводится результат обучения.
net.trainParam.show=5;
net.trainParam.goal=0.02;
net = train(net,Pz,Tz);
% Распознавание символов.
%Подсчет удачных распознаваний
k=0;
for i=1:20
for j=1:12
% процесс распознавания
anss(i,j)=round(sim(net, double(Pp(1:100,j+12*i))));
end
if anss(i,1)==1
k=k+1;
end
if anss(i,2)==1
k=k+1;
end
if anss(i,3)==2
k=k+1;
end
if anss(i,4)==2
k=k+1;
end
if anss(i,5)==3
k=k+1;
end
if anss(i,6)==3
k=k+1;
end
if anss(i,7)==4
k=k+1;
end
if anss(i,8)==4
k=k+1;
end
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.