2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Простая задача: обучить нейронную сеть в Матлабе функции XOR
Сообщение05.08.2010, 10:51 


23/11/09
130
Здравствуйте!
Обучаюсь использовать нейронные сети в Матлабе. Поставил себе простую задачу, обучить сеть функции XOR. Вот примеры кода:
Код:
function ProgramNet1()

p = [0 0 1 1; 0 1 0 1];  % binary input sets
t = [0 1 1 0];           % desired output for each binary pair
% network with 2 hidden nodes.
net=newff([0, 1; 0, 1],[2,1],{'logsig','logsig'},'trainlm');
net.trainParam.epochs = 1000;
net.trainParam.goal = 10e-6;
[net,tr]=train(net,p,t);

ShowSurfaceOtklik( net, 20, 20 );

или вот:
Код:
function ProgramNet2()

p = [0 0 1 1; 0 1 0 1];  % binary input sets
t = [0 1 1 0];           % desired output for each binary pair
% network with 2 hidden nodes.
net=newpr(p,t,[2,1],{'logsig','logsig'},'trainlm');
net.trainParam.epochs = 1000;
net.trainParam.min_grad = 1e-6;
net.trainParam.max_fail = 50;
net = init(net);
[net,tr]=train(net,p,t);

ShowSurfaceOtklik( net, 20, 20 );


ShowSurfaceOtklik( net, 20, 20 ); - просто выводит график отклика сети

Сеть обучается правильно примерно в 5% случаев, в остальных же 95% неправильных случаев обучение прерывается или по градиенту или по валидатион чек или еще по чему. Эти все настройки я конечно менял, и пробовал разные функции обучения, но картина не меняется, график отклика часто весь кривой, не такой какой должен быть у XOR! :-(
Люди! Как повысить вероятность правильного обучения?
Причем моя самопальная программа на C# с обучением по "обратному распространению ошибки" почти всегда идеально обучает! (правда она проходит 500 000 - 1200 000 эпох, ну и что. Алгоритм просто без всяких доп наворотов ускоряющих обучение, зато результат!) В чем прикол?!

 Профиль  
                  
 
 Re: Простая задача: обучить нейронную сеть в Матлабе функции XOR
Сообщение05.08.2010, 18:25 


23/11/09
130
Кто-нибудь делал вообще распознавание образов или просто сопоставлял один вектор данных с другим?
Как вы тренируете сети? Приведите свои примеры, поставленная задача, какую сеть вы при этом использовали, каким алгоритмом тренировали, с какими настройками.
Заранее благодарен :-)

 Профиль  
                  
 
 Re: Простая задача: обучить нейронную сеть в Матлабе функции XOR
Сообщение09.08.2010, 09:27 


22/08/09
48
Я реализовывал это при помощи трех персептронов, в основе лежала форула:
$(a) xor (b) = a*\overline{b}+\overline{a}*b$
Можно попробовать сделать так:
Код:
net=newpr(p,t,[2,1],{'tansig','purelin'},'trainlm');

Работать будет, но тоже только приближенно.

 Профиль  
                  
 
 Re: Простая задача: обучить нейронную сеть в Матлабе функции XOR
Сообщение09.08.2010, 11:56 


22/08/09
48
Вот:
http://ifolder.ru/18829512
К сожалению не помню как делал синтез, нашел только файл от симулинка, пример реализации логической функции xor нейронной сетью.

 Профиль  
                  
 
 Re: Простая задача: обучить нейронную сеть в Матлабе функции XOR
Сообщение02.09.2010, 10:48 


29/03/10
20
Была похожая задача, использовал Fuzzy Logic Toolbox.
Решалась проблема верификации объекта по входо выходным характеристикам.

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

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



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

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


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

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