2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Нейронные сети в Matlab
Сообщение22.05.2008, 18:33 


22/05/08
3
Здравствуйте.
Пробую прогнать один пример, но командная стркоа упрямо выдает кучу ошибок, помогите азобраться новичку

код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
%Создание тренировочного множества. 10 точек на период, всего 21 точка. Множество состоит из двух массивов (arrays) , для входных воз-действий и откликов соответственно.
P=[0:2*pi/10:4*pi];
T=sin(P);
%Создание   валидационного множества, элементы которого не совпа-дают с элементами тренировочного множества.
PV=[0:2*pi/9:4*pi];
TV=sin(PV);
V.P=PV;
V.T=TV ;
%Создание нейронной сети, имеющей 1 скрытый слой, 5 нелинейных нейронов в скрытом слое, 1 линейный нейрон – в выходном. Обучение по алгоритму Ньютона с использованием среднеквадратической функ-ции ошибки.
net=newff(minmax(P), [5 1], … ‘tansig’, ‘purelin’, ‘trainbfg’, ‘’, ‘mse’);
%Максимальное количество периодов обучения – 2000;
net.trainParam.epochs=2000;
%Обучение сети на тренировочном множестве с использованием вали-дационных данных.
net=train(net,P,T,[ ],[ ],V);
%Тестовое множество из 101 элемента
 PT=[0:2*pi/50:4*pi];
TT=sin(PT);
%Моделирование нейронной сети. PT_net – отклик сети, perf – ошибка на тестовом множестве.
[PT_net,Pf,Af,E,perf]=sim(net,PT, [ ], [ ], TT)
 



Результат следующий:



Цитата:
??? Error using ==> newff>new_5p1 at 150
Layer sizes is not a row vector of positive integers.

Error in ==> newff at 108
net = new_5p1(varargin{:});

Error in ==> Untitled5 at 10
net=newff(minmax(P), [5 1], 'tansig', 'purelin',
'trainbfg', '', 'mse');

??? Error: File: Untitled5.m Line: 11 Column: 51
Expression or statement is incorrect--possibly unbalanced
(, {, or [.


 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение27.05.2009, 09:51 


27/05/09
1
Вам нужно заменить строку

Цитата:
net=newff(minmax(P), [5 1], … ‘tansig’, ‘purelin’, ‘trainbfg’, ‘’, ‘mse’);


на следующую

Используется синтаксис Matlab M
net=newff(minmax(P), [5 1], {'tansig','purelin', 'trainbfg, '', 'mse'});


И все должно заработать. Попробуйте. :)

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение21.12.2009, 19:12 


21/12/09
2
А у меня вот такой вопрос, может кто сможет помочь. У меня вот такое задание "Сделать нейронную сеть для одного периода синусоиды". Пожалуйста помогите, советом, делом, кто чем сможет. Просто никогда с этим не сталкивался. С MatLab вообще никогда не работал (( Заранее благодарен

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение22.12.2009, 00:02 


22/09/09
275
SmertN1k в сообщении #273841 писал(а):
А у меня вот такой вопрос, может кто сможет помочь. У меня вот такое задание "Сделать нейронную сеть для одного периода синусоиды". Пожалуйста помогите, советом, делом, кто чем сможет. Просто никогда с этим не сталкивался. С MatLab вообще никогда не работал (( Заранее благодарен

Делаете маленькую програмку на любом языке или в каком-нибудь пакете (или просто берете таблицу из справочника). По ней насчитываете таблицу значений синуса для для аргумента от 0 до Пи с каким либо шагом (напр. 0.01). Далее берете нейросеть любого вида (лучше RBF с одним скрытым слоем) и обучаете ее на множестве, которое Вы насчитали.
После обучения нейросеть будет вычислять синус на периоде с какой-то точностью.

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение22.12.2009, 21:32 


21/12/09
2
А можно чуть подробнее начиная с фразы "обучаете нейросеть"? Вот посчитал я синусы и интервалом аргумента 0.01. молучил множество значений. теперь куда их вбить? как обучить? просто прочитал уже н-ное количество литературы... ну не могу я сообразить (( мне бы подробнее...

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение23.12.2009, 14:14 


22/09/09
275
SmertN1k в сообщении #274199 писал(а):
А можно чуть подробнее начиная с фразы "обучаете нейросеть"? Вот посчитал я синусы и интервалом аргумента 0.01. молучил множество значений. теперь куда их вбить? как обучить? просто прочитал уже н-ное количество литературы... ну не могу я сообразить (( мне бы подробнее...

Для обучения НС необходим специальный софт. Он есть напр. в Матлабе. Есть и другие проги для НС. Если Матлаб не подходит, то могу дать ссылки.

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение21.07.2010, 11:59 


22/08/09
48
Помогите пожалуйста разобраться с нейросетями в Matlab.
Создаю я сеть персептрон при помощи NNTool, тренировочное значение на входе у меня выглядит так:
Код:
{[1;5;0;0;0] [1;3;0;0;0] [1;0;1;0;0] [1;0;4;0;0] [1;0;2;0;0] [1;0;2;3;0] [1;0;2;6;2] [1;0;2;6;7] [1;0;2;6;4]}

На выходе:
Код:
{0 0 0 0 0 0 0 0 1}

Потом делаю экспорт в Matlab
Ввожу несколько команд:
Код:
>> p = [1;0;2;6;4]

p =

     1
     0
     2
     6
     4

>> a = sim(network1, p)

a =

     1

>> p = [1;7;0;0;0]

p =

     1
     7
     0
     0
     0

>> a = sim(network1, p)

a =

     0

Вроде бы все нормально, но нужно чтобы еще работало например так:
Код:
p =

     1
     7

>> a = sim(network1, p)
??? Error using ==> network.sim at 178
Inputs are incorrectly sized for network.
Matrix must have 5 rows.

а выдается ошибка.
То есть нужно сделать если $p= 10264$ выдавала 1, а в остальных случаях 0, и не важно какого размера входящая матрица p
Каким образом нужно изменить последовательности на вход, чтобы получить такой результат?

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение30.07.2010, 10:44 


23/11/09
130
Цитата:
а выдается ошибка.
То есть нужно сделать если $p= 10264$ выдавала 1, а в остальных случаях 0, и не важно какого размера входящая матрица p

Насколько я понял задача нерешаема, потому что вы хотите чтобы в персептроне варьировалось количество входов!
Мне кажется надо подойти иначе!
Нужно создать входов столько, сколько может принять P максимальную размерность!
И данные подавать на вход надо через подготовительный алгоритм, который бы в случае если P меньшей размерности чем кол-во входов добавил бы скажем нулей и увеличил бы таким образом выборку до необходимой размерности.
Таким образом если в выборки присутствует 10264 он распознает и выдаст 1, в остальных случаях 0.
Если я конечно правильно понял задачу. :-)

Вопрос а нужно ли предварительно нормализовывать выборки? или матлаб делает это сам?

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение03.08.2010, 16:03 


22/08/09
48
С этим разобрался, теперь другой вопрос интересует, сделал сеть из 6 персептронов, надо по отдельности каждый персептрон обучить индивудуально, что у него должно быть на входе и выходе, целиком сеть никак не обучаема.
Не знаю как это сделать, все учебники и справочники перерыл, не нашел, везде только обучение целиком.

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение05.08.2010, 10:22 


23/11/09
130
Меня кстати тоже этот вопрос интересует, сейчас разбираюсь с матлабом. Если разберешься будь другом скажи как сделал, если я разберусь скажу. :-)

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение05.08.2010, 11:04 


22/08/09
48
Уже разобрался, там можно натворить чего нужно по отдельности каждый слой, при помощи мастера, натренировать это все, потом скинуть в симулинк и там можно уже хоть что из этого делать, соединять как вздумается.

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение15.08.2011, 15:52 


15/08/11
1
Добрый день! У меня вопрос. Начинаю изучать нейронные сети в Матлабе. Необходимо построить прогноз некоторого временного ряда. Значений всего 36, спрогнозировать необходимо хотя бы на одно значение вперед. Я генерирую матрицу из входов (P) размерностью 30Х20 и целевые значения (T) 1X20. В nntool задаю Input Data - P и Target - T. Создаю сеть типа Cascade-Forward-backprop. задаю 4 скрытых слоя и прочие параметры. Далее тренирую эту сеть. она неплохо обучается, разброс целевых значений (T) с полученными (network1_output) практически нулевой. но вот дальше как построить прогноз? я так понимаю необходимо для этого использовать Simulate, но при задании входного значения для прогона размерностью 20X1, матлаб выдает ошибку "too many output arguments". И чтобы я не делала это предупреждение всегда появляется. Я работаю в версии 7.11. А если пробую проделывать такие же операции в версии 6.5, то полученные значения (network1_output) он выдает как ошибку (все значения приближены к 0), а error, наоборот, выдает как полученные значения. Подскажите как быть, пожалуйста, и извините если вопрос глупый, не будьте строги ко мне, но не могу найти решения.

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение26.06.2013, 08:18 


26/06/13
1
Мне нужно обучить нейронную сеть, по нескольким параметрам, выбирать из нескольких результатов - 1. Подскажите что или как лучше использовать и вообще с чего начать? Матлаб 6.1

 Профиль  
                  
 
 Re: Нейронные сети в Matlab
Сообщение16.05.2016, 20:08 


16/05/16
1
Добрый день!
Подскажите, как решить задачу "Исключающего ИЛИ" в Матлаб?
Спасибо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: MoonWatcher


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group