Нейронная сеть дизайн в Matlab - PullRequest
0 голосов
/ 01 октября 2010

Я занимаюсь исследованием в области распознавания речи и пытаюсь разработать алгоритм распознавания речи с использованием нейронной сети в Matlab.Как я могу определить свою структуру для сети ??

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Matlab имеет Панель инструментов нейронной сети . Может быть, вы можете взглянуть на это?

0 голосов
/ 26 января 2014

Ваш вопрос очень общий .Вы должны дать нам более подробную информацию о том, что вы хотите сделать.Тем не менее, я даю вам несколько советов по использованию набора инструментов для нейронной сети Matlab, исходя из моего опыта с распознаванием номерных знаков при использовании этого набора инструментов.Надеюсь, поможет.1-Вам нужно будет знать, сколько скрытых слоев вы будете использовать, а также количество ваших выходов.В моем случае я указал 20 скрытых слоев и 9 выходов.2-Сначала вам нужно иметь набор данных.Вы будете использовать этот набор данных для обучения вашей нейронной сети.В случае LPR я использовал матрицу 90x50 в качестве набора данных.каждая строка представляла собой цифру, содержащую 50 чисел, извлеченных из изображения цифры.3. Вам понадобится матрица целей, чтобы сопоставить ваш набор данных с известными результатами (отсюда и называется тренинг).Следующий синтаксис определяет упомянутую сеть:

net = newff(minmax(datasetNormalized'),[20 9],{'logsig' 'logsig'},'traingdx');

Для обучения сети мы пишем:

[net,tr]=train(net,datasetNormalized',T);

Мы даем новый вход в сеть, используя следующий код:

[dummy,b]=max(sim(net,m_normalized'));

b - это ответ, который мы ищем здесь (вывод с наибольшей вероятностью), поэтому мы показываем его пользователю:

msgbox(['digit is: ' num2str(b)],'Digit recognized','help');

Это полный исходный код, еслиВы хотите точно знать, что делает мой код:

clc
clear
close all

numOfPhotos=90;
imgRows=100;
imgCols=50;

X=zeros(numOfPhotos,(imgRows*imgCols)/100);




%%Resize Images
%  myresize(imgRows,imgCols);


%read train images
datasetIndex=0;    

for i=1:numOfPhotos/10
    for j=1:numOfPhotos/9           
        datasetIndex=datasetIndex+1;
    im=imread(['resized_train_numbers\' num2str(i) ' (' num2str(j) ').jpg']);
    im=im2bw(im,graythresh(im));    

    c=1;
    for g=1:imgRows/10
        for e=1:imgCols/10
            s=sum(sum(im((g*10-9:g*10),(e*10-9:e*10))));
            X(datasetIndex,c)=s;
            c=c+1;            
        end    
    end

    end
end
datasetNormalized=zeros(numOfPhotos,imgRows*imgCols/100);
%%Normalize dataset contents
minDataset=min(min(X));
maxDataset=max(max(X));
for i = 1:numOfPhotos
    for j=1:imgRows*imgCols/100
        datasetNormalized(i, j) = (X(i,j)-minDataset)/(maxDataset-minDataset);
    end
end




% 
%%Neural network part


% T=zeros(1,90);
% for  i=1:90
%     T(i)=ceil(i/10);
% end

T=zeros(9,90);
for j=1:90
    i=ceil(j/10);
    T(i,j)=1;
end

% net=newff(datasetNormalized',T,20);
net = newff(minmax(datasetNormalized'),[20 9],{'logsig' 'logsig'},'traingdx');

net.performFcn='sse';
net.trainParam.goal=0.01;
net.trainParam.show=20;
net.trainParam.epochs=100;
net.trainParam.mc=0.95;
% net.trainFcn='trainlm';
net.trainParam.min_grad=1e-12;
[net,tr]=train(net,datasetNormalized',T);




%Read input image for recognition
[name file]=uigetfile('*.jpg','Choose Plate Digit Image');
newImg=imread([file name]);
newImg=imresize(newImg,[imgRows imgCols]);
newImg=im2bw(newImg,graythresh(newImg));
figure,imshow(newImg);

m=zeros(1,imgRows*imgCols/100);
c=1;
for g=1:imgRows/10
        for e=1:imgCols/10
            s=sum(sum(newImg((g*10-9:g*10),(e*10-9:e*10))));
            m(c)=s;
            c=c+1;            
        end
end
%Normalize m contents

m_normalized=zeros(1,imgRows*imgCols/100);
for i=1:imgRows*imgCols/100    
        m_normalized(i)=(m(i)-min(m))/(max(m)-min(m));
end


[dummy,b]=max(sim(net,m_normalized'));
% b=round(sim(net,m_normalized'));
msgbox(['digit is: ' num2str(b)],'Digit recognized','help');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...