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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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