Список форумов neuroproject.ru neuroproject.ru
Форум сайта компании НейроПроект
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

решение задачи управления с помощью нейронной сети

 
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети
Предыдущая тема :: Следующая тема  
Автор Сообщение
evg
Новый посетитель
Новый посетитель


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Вт Апр 20, 2010 11:32 pm    Заголовок сообщения: решение задачи управления с помощью нейронной сети Ответить с цитатой

Нейронные сети являются мощным средством аппроксимации зависимостей, в том числе и нелинейных. После обучения сети, подав на входы некоторые значения, можно получить выходные значения.

Многослойные нейронные сети позволяют решать обратную задачу -- получение входных значений по заданным выходным. Такую задачу называют задачей управления.

Не подскажете, может быть, кто-то знает, как она решается?

Возможно ли ее решить, используя результаты обучения сети на прямой задаче?

Решение в лоб этой задачи -- поменять входы с выходами. Насколько это правильно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 248
Откуда: Красноярск

СообщениеДобавлено: Ср Апр 21, 2010 12:37 am    Заголовок сообщения: Ответить с цитатой

>Возможно ли ее решить, используя результаты обучения сети на прямой задаче?

Возможно

>Не подскажете, может быть, кто-то знает, как она решается?

Конечно, знаю. Как знают, например, и те, кто в статьях на моем сайте нашел и прочитал статью как раз об этом
www.neuropro.ru/mypapers/neurcompmag03_2.pdf
Ссылок на буржуинов там тоже было достаточно для полного указания истории развития вопроса к началу 2000х.

>Решение в лоб этой задачи -- поменять входы с выходами. Насколько это правильно.

Оба варианта возможны, но вариант с двумя сетями в 2 раза (грубо) более затратен по времени разработки. Также для второй сети (решающей обратную задачу в лоб) может быть противоречивая обучающая выборка - т.к. на входе этой сети будет малое число значений (в пределе одно значение, т.к. Вы говорили о прогнозированиия), а на выходе - много значений, соответствующих исходным аргументам, то при одном и том же значении на входе могут быть разные вектора на выходе и нейросеть просто научится прогнозировать "среднее" по больнице. Когда же обратная задача будет решаться на сети, обученной решению прямой, то можно стартовать с текущих значений её входов и корректировать (обучать аналогично обучению весов сети) эти значения до минимизации расхождения ответа сети с предписанным значением.
_________________
neuropro.ru - нейронные сети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
evg
Новый посетитель
Новый посетитель


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Пн Май 31, 2010 12:22 am    Заголовок сообщения: Ответить с цитатой

Спасибо большое Вам за помощь.

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

Обучили сеть прогнозированию, что значит "стартовать с текущих значений её входов"?

Меняться будут веса в процессе обучения?

Что будет на входе сети и выходе?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 248
Откуда: Красноярск

СообщениеДобавлено: Пн Май 31, 2010 4:23 pm    Заголовок сообщения: Ответить с цитатой

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

Ну и для понимания - с другой стороны еще зайду. У сети существует континуум наборов входных значений, приводящих к некоторому единственному выходному (особенно это очевидно в задаче классификации - там мы при обучении сети с каждым из классов уже сопоставляли некоторое неединичное число примеров). Поэтому начинать "обратное" обучение со случайно выбранных входов, конечно, можно, но зачем? Получим в итоге какие-то откорректированные входы (пусть и дающие при этом нужный ответ сети) - но ради чего? Проще обучать входы под какую-то конкретную ситуацию. И задач, где можно и нужно решение обратных задач привязывать именно к конкретике (возникающей уже при работе сети в боевом режиме, т.е. после внедрения обученной сети в профессиональную деятельность человека как советующей экспертной системы) - много, в http://www.neuropro.ru/sol2.shtml я описал ситуации для медицинской диагностики и пром.производства, и таких примеров и возможностей будет ещё масса.
_________________
neuropro.ru - нейронные сети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
evg
Новый посетитель
Новый посетитель


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Пн Май 31, 2010 9:29 pm    Заголовок сообщения: Ответить с цитатой

Спасибо, кажется я понял.

Такое решение обратной задачи как бы напрашивается.

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


В случае прямой задачи (по-другому задача прогнозирования или задача моделирования, т.е. получим ответ на вопрос, какие будут выходные характеристики исследуемого объекта, например исследуем зависимость прочности стали, чугуна от содержания углерода) подаем входные значения из примеров (строк массива данных) и подстраиваем веса таким образом, чтобы значения на выходе сети как можно меньше отличались от фактических значений, взятых из массива данных.

Т.е. известны входы, подстраиваем веса, чтобы на выходе получить опять же известные значения (выходные значения).

Обучив сеть таким образом, можно подать на ее входы некоторые значения, и сеть спрогнозирует нам, какие выходные значения должны быть (скорее всего будут) у реального объекта исследования.

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

Нам известны веса -- они были установлены при решении обратной задачи, таким образом задана зависимость выходов от входов (не в виде формул, а в виде нейронной сети с установленными весами).

Теперь нужно подобрать значения входов для получения определенных выходов, веса заданы.

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

Для проверки можно взять строку данных, выбрать из нее выходные параметры. Далее нужно минимизировать функцию ошибки выхода сети, изменяя входные значения.

1. Непонятно, с каких стартовых значений входов нужно начинать? Например, нужно получить твердость металла 10 единиц (условно). Какие могут быть стартовые значения?

2. Помимо описанного подхода есть другие варианты решения обратной задачи?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Rambler's Top100 Rambler's Top100