2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Нейронные сети. Решение систем нелинейных уравнений
Сообщение12.10.2009, 17:03 
Аватара пользователя


07/03/09
50
Доброго времени суток, уважаемые товарищи!
Меня ОЧЕНЬ СИЛЬНО интересует тема решения систем НЕлинейных уравнений с помощью нейронных сетей. Бродя по просторам интернета можно заметить ссылки на статью в 7-ом выпуске журнала «нейрокомпьютеры: разработка, применение» за 2005г. «Использование нейронных сетей для решения систем нелинейных уравнений». Авторы: Горбаченко В.И., Убиенных Г.Ф., Москвитин С.А.
К примеру, ссылка на журнал: http://www.radiotec.ru/catalog.php?cat=jr7&itm=2005-7
Ссылка на статью в журнале: http://www.radiotec.ru/catalog.php?cat=jr7&art=3896
К сожалению, я не нашел возможности скачать выпуск журнала. Более того, в нашей публичной городской библиотеке этого журнала также не оказалось.
Если кто знаком с этой темой или знает, где можно скачать выпуск журнала, пожалуйста, дайте знать. Ссылки на сайты с подробным рассмотрением темы также приветствуются!

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение13.10.2009, 22:02 
Заблокирован


04/09/09

87
Что касается систем нелинейных алгебраических уравнений с числом уравнений равным числу переменных, то с ними полностью и успешно справляется пакет Математика при разумных, конечно, ограничениях. Если речь идёт о решении систем нелинейных уравнений, то надо подходить индивидуально к каждой задаче вида F(X)=0. А связь такого набора слов как ”нейронные сети” с решением СНУ примерно такая же, как связь потепления климата с техновыбросами в атмосферу, то есть, о ней можно всё время говорить. Нет повести забавнее на свете, чем повесть о решениях, попавших в нейронные сети… Как-то так...

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение13.10.2009, 22:11 
Аватара пользователя


07/03/09
50
Хорошо. Спасибо хоть за какой-то отклик, а то я уж совсем отчаялся.
У меня есть 3 уравнения 2-го порядка (3 уравнения окружности).
Мне нужно натренировать НС решать такую систему уравнений, но я не знаю как подступиться к этой задаче.
Вот если бы я смог раздобыть вышеуказанною статью, то возможно она открыла бы мне глаза...

П.С. Какая топология вообще должна быть у такой НС? Многослойные нейросети подойдут? Многослойный персептрон справится?

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение14.10.2009, 00:59 
Заслуженный участник


09/08/09
3438
С.Петербург
motoden в сообщении #251456 писал(а):
У меня есть 3 уравнения 2-го порядка (3 уравнения окружности).
Мне нужно натренировать НС решать такую систему уравнений, но я не знаю как подступиться к этой задаче.

Вот здесь те же авторы на ту же тему пишут:
Новые информационные технологии и системы. Труды VI научно-технической конференции. Часть 1. Статья "Нейросетевая аппроксимация функций многих переменных при решении системы нелинейных уравнений."

И Google при поиске neural networks "nonlinear equations" довольно много ссылок выдает, например
Modified Hopfield Neural Network Approach for Solving Nonlinear Algebraic Equations
Solving Nonlinear Equations Using Recurrent Neural Networks

Ну а кроме этого, можно и самому что-нибудь придумать на основе обычного многослойного пересептрона. Например, построить сеть, принимающую на входе значения коэффициентов Вашей системы и выдающую на выходе решение соответствующей системы нелинейных уравнений.
Обучающий набор данных при этом должен содержать известные решения. Строить его лучше программно, представив Вашу систему как недоопределенную систему из 3 линейных уравнений с 9 неизвестыми относительно коэффициентов исходных уравнений.
Сам такую штуку делать не пробовал, но не вижу причин, почему бы ей не работать :)

Только Вы твердо уверены, что у Вас именно 3 окружности? 3 окружности довольно редко в одной точке пересекаются :)

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение14.10.2009, 02:33 
Аватара пользователя


07/03/09
50
Maslov в сообщении #251505 писал(а):
Вот здесь те же авторы на ту же тему пишут:
Новые информационные технологии и системы. Труды VI научно-технической конференции. Часть 1. Статья "Нейросетевая аппроксимация функций многих переменных при решении системы нелинейных уравнений."

Спасибо большое, это как раз то, что мне нужно!
Как вы нашли эту ссылку? Я довольно долго и нудно гуглил...
Maslov в сообщении #251505 писал(а):
Только Вы твердо уверены, что у Вас именно 3 окружности? 3 окружности довольно редко в одной точке пересекаются

Да, в 3 окружностях я уверен.

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение14.10.2009, 02:49 
Заслуженный участник


09/08/09
3438
С.Петербург
motoden в сообщении #251514 писал(а):
Как вы нашли эту ссылку? Я довольно долго и нудно гуглил...
Не помню точно. Что-то типа "Горбаченко Убиенных нейронная сеть" :)

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение14.10.2009, 09:35 
Заблокирован


04/09/09

87
motoden в сообщении #251514 писал(а):
Да, в 3 окружностях я уверен.

Можно уточнить, Вас интересует именно проблема решения СНАУ, или некие сети сами по себе? Если СНАУ, то чем не устраивает пакет Математика, если просто сети, то в связи с чем? Если имеется мысль, что сети каким-то образом помогают в решении СНУ, то это почти неверно, если они помогают в решении СНАУ, то эта проблема давно решена. Просто не очень понятно, тем более, когда число переменных превосходит число уравнений, потому что в этом случае решением является бесконечное множество…
Что касается трёх алгебраических уравнений второго порядка, то они могут быть минимум с тремя переменными, значит, никаких трёх окружностей не может быть, но это просто к слову…

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение11.11.2009, 22:51 
Аватара пользователя


07/03/09
50
Передо мной стоит задача решения СНУ именно нейронными сетями. Научный руководитель так поставил задачу. Вот мои 3 уравнения:
$
\left\{ \begin{array}{l}
c*t-\sqrt {(x_1-x)^2+(y_1-y)^2} =0,\\
c*(t+t_1_2)-\sqrt {(x_2-x)^2+(y_2-y)^2} =0,\\
c*(t+t_1_3)-\sqrt {(x_3-x)^2+(y_3-y)^2} =0
\end{array} \right.
$

$x_1, x_2, x_3, y_1, y_2, y_3, c, t_1_2, t_1_3 = const$
Уравнения относительно переменных t, x, y.
Сейчас, вопреки тому, что предлагают в статье, пытаюсь обучить решать такую СНУ многослойный персептрон. Во всех обучающих и тестовых примерах задача имеет решение. На обучающих последовательностях (до 100 последовательностей) он обучается, но при тестовых выборках сеть даёт больше неправильных ответов, чем правильных. Возможно я её как-то неправильно обучаю, не знаю.
Обучаю я её следующим образом: на вход сети подаю выличины $t_1_2, t_1_3$, а с выхода пытаюсь получить величины x и y. Получается, что я использую лишь 2 уравнения? Честно говоря, я запутался...
Кто-нибудь может помочь разобраться?

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение11.11.2009, 23:06 
Заслуженный участник


09/08/09
3438
С.Петербург
Объясните, пожалуйста, почему Вы только 2 коэффициента из 9 на вход подаёте? У Вас что, все остальные коэффициенты фиксированы?

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение11.11.2009, 23:58 
Аватара пользователя


07/03/09
50
Maslov в сообщении #261038 писал(а):
Объясните, пожалуйста, почему Вы только 2 коэффициента из 9 на вход подаёте? У Вас что, все остальные коэффициенты фиксированы?

Неизвестных у меня 3, а не 9. Это $t, x, y$.
Величины $x_1, x_2, x_3, y_1, y_2, y_3, c$ фиксированы. Одна СНУ решая которую, я беру данные для обучения НС отличается от другой лишь значениями $t_1_2, t_1_3$. Данные для обучения сети я получаю следующим образом:
- рандомно определяю значения $x, y$ (в пределах от 1 до 100 для каждого);
- нахожу $t$, выражая его из 1-го уравнения системы (таким образом t оказывается зависимой величиной?);
- определяю $t_1_2, t_1_3$ из 2-го и 3-го уравнений;
- Вставляю величины $t_1_2, t_1_3$ в обучающий вектор, а величины $x, y$ в целевой вектор.
Вроде как неизвестное $t$ оказывается зависимой величиной от $x, y$. Его нужно использовать? Если да, то как?

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение12.11.2009, 01:01 
Заслуженный участник


09/08/09
3438
С.Петербург
motoden в сообщении #261058 писал(а):
Неизвестных у меня 3, а не 9. Это $t, x, y$.
Я не про неизвестные говорю, а про коэффициенты (параметры) модели. Общая схема примерно такая: на вход подаём значения параметров модели, с выходов снимаем решения. Но раз у Вас 7 параметров из 9 фиксированы, то так, как Вы делаете, тоже можно.

А вот со способом построения обучающей последовательности могут быть проблемы: ИНС обычно хорошо работают только в том диапазоне входных параметров, на котором проводилось обучение, поэтому надо внимательно следить за тем, чтобы обучающие пары $(t_{12}, t_{13})$ более-менее равномерно покрывали рабочий диапазон.

Но Вы бы начали с чего-нибудь простенького, типа
$ \left\{ \begin{array}{l} x^2+y^2=a,\\x^2+y^2 =b \end{array} \right. $
(просто чтобы задачу и инструмент почувствовать).

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение12.11.2009, 01:43 
Аватара пользователя


07/03/09
50
хорошо. Спасибо, потренируюсь.
А вот другой немаловажный вопрос: сколько нейронов в первом слое следует брать для решения моей задачи, если я пытаюсь решить задачу с помощью 2-слойного персептрона? Во втором (выходном) слое у меня 2 нейрона: один для вывода неизвестного x, другой - для y.
Число нейронов 1-го слоя должно зависеть от числа обучающих последовательностей, на которых я предполагаю обучать сеть?

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение12.11.2009, 01:52 
Заслуженный участник


09/08/09
3438
С.Петербург
motoden в сообщении #261091 писал(а):
Число нейронов 1-го слоя должно зависеть от числа обучающих последовательностей, на которых я предполагаю обучать сеть?
Напрямую не должно. Основное условие - это то, что общее количество настраиваемых весов должно быть существенно меньше длины обучающей последовательности.
А вообще, количество нейронов в скрытом слое - это основной параметр настройки сети. Обычно начинают с небольшого количества, потом постепенно увеличивают.

И по терминологии: обучающая последовательность - это последовательность "точек" каждая из которых состоит из нескольких входных значений и нескольких выходных. Другими словами, обучающая последовательность - это последовательность обучающих векторов.

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение12.11.2009, 02:04 
Аватара пользователя


07/03/09
50
Maslov в сообщении #261094 писал(а):
Другими словами, обучающая последовательность - это последовательность обучающих векторов.

Именно в таком смысле я и старался применять это выражение. 1 обучающая последовательность = 1 входной вектор. Или где-то я неправильно выразился?
Возможно здесь была тавталогия:
motoden в сообщении #261091 писал(а):
Число нейронов 1-го слоя должно зависеть от числа обучающих последовательностей, на которых я предполагаю обучать сеть?

Может правильно будет так:
motoden в сообщении #261091 писал(а):
Число нейронов 1-го слоя должно зависеть от числа обучающих последовательностей?

?

 Профиль  
                  
 
 Re: Нейронные сети. Решение систем нелинейных уравнений
Сообщение12.11.2009, 04:10 
Заслуженный участник


09/08/09
3438
С.Петербург
motoden в сообщении #261096 писал(а):
1 обучающая последовательность = 1 входной вектор.
В соответствии с общепринаятой терминологией, обучающая последовательность - это последовательность всех Ваших обучающих векторов.

По поводу количества нейронов:
входной слой - нейронов столько, сколько входных параметров;
выходной слой - нейронов столько, сколько выходных параметров;
скрытый слой - минимальное количество нейронов, обеспечивающее требуемое качество аппроксимации.

Другими словами, количество нейронов в скрытом слое определяется сложностью модели, и уже исходя из общего количества настраиваемых весов рассчитывается минимальная длина обучающей последовательности. Иногда обучающих точек мало (например, когда каждая точка получается в результате сложного эксперимента), и приходится искусственно упрощать модель, уменьшая скрытый слой, но в общем случае это нежелательно, т.к. ведет к снижению качества аппроксимации.

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

Модераторы: Модераторы Математики, Супермодераторы



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

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


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

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