Перейти к содержанию
    

вопрос по моделированию нейронных сетей в Matlab

Нужно заменить нелинейный ОУ нейронной сетью....вроде все ясно и понятно... но капнув глубже...куча недопонимания.... Основной вопрос связан непосредственно с работой в Simulink-е...как можно заставить сеть самообучаться на промоделированном нелинейном объекте. Если кто знает - подскажите...) :05:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно заменить нелинейный ОУ нейронной сетью....вроде все ясно и понятно... но капнув глубже...куча недопонимания.... Основной вопрос связан непосредственно с работой в Simulink-е...как можно заставить сеть самообучаться на промоделированном нелинейном объекте. Если кто знает - подскажите...) :05:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это если самому обучать сеть....... Возможно я неправильно поставил вопрос...) Если в Simulinke промоделировать нелинейный объект...его входы и выходы параллельно подсоединить на спроектированную сеть...то как сделать чтобы она в том же Simulinke сеть сразу могла сама обучиться, и в дальнейшим отсоединив ее от объекта она смогла бы воспроизводить работу этого объекта? [короче как провести самообучение сети на реальном объекте]

Изменено пользователем Mike86

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как написал Вам Dr_Crazy, можно входное множество сформировать на основе генератора шума. Подав эту входную последовательность (in_set) на вход ОУ, на выходе ОУ получите соответствующую выходную последовательность (target_out_set). Имея эти две последовательности теперь можно обучить, например, многослойный персептрон методом обратного распространения ошибки. То есть in_set - это входные образы, а target_out_set - это целевая реакция нейросети. Нейросеть формирует выход MLP_out_set. В самом начале MLP_out_set не будет иметь ничего общего с target_out_set. Алгоритм обучения минимизирует ошибку, а именно минимизирует различие MLP_out_set относительно target_out_set. Если допустить, что Вам удастся обучить нейросеть со 100% точностью на вх.множестве in_set, то это значит, что target_out_set и MLP_out_set полностью совпадают на всем множестве in_set. Для пользования обученной нейросетью Вы будете подавать на ее вход реальные данные real_in_set. При этом нейросеть будет обобщать данные и даже, если на входе нейросети появится образ, который не предъявлялся ей во время обучения, она все равно даст на выходе близкий к правде результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как написал Вам Dr_Crazy, можно входное множество сформировать на основе генератора шума. Подав ......

 

Проблема в том...что теория понятна, а вот непосредственно реализация в Mathlab не удается....)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в том...что теория понятна, а вот непосредственно реализация в Mathlab не удается....)))

 

А Вам принципиально необходимо нарисовать проект в Simulink и выполнить обучение и моделирование обученной сети тоже в Simulink? Или описание всего этого на языке Matlab тоже устроит?

Изменено пользователем AVL

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Вам принципиально необходимо нарисовать проект в Simulink и выполнить обучение и моделирование обученной сети тоже в Simulink? Или описание всего этого на языке Matlab тоже устроит?

В принципе... я так и делаю что пишу на матлабе..а проверяю в Simulink, но есть одно но... работать работает но несовсем как должно... К примеру заменил обычный ОУ 1ого порядка нейронной сетью, обучиаю на одной амплитуде (поскольку перех. проц. не зависит от амплитуды вх. сигнала в линейной СУ). Вектор обучения состоит из входного вектора и вектора обратной связи с задержкой сигнала на 1 шаг.... На той амплитуде, на которой обучал все идеально... а чуть изменив амплитуду сигнала на входе... реакция не адекватна....А именно по амплитуде переходный процесс нормальный, а вот по начальному значению и установившемуся...-получается бред: амплитуда входного 0.5 : результат: начальное значение переходного прочесса в точке 0.5 , а установившееся в 1. (Хотя должно быть начало в 0 а установившееся в 0.5) - как это понять? и с чем это может быть связано? )) :07:

 

А Вам принципиально необходимо нарисовать проект в Simulink и выполнить обучение и моделирование обученной сети тоже в Simulink? Или описание всего этого на языке Matlab тоже устроит?

Хотя желательно было бы все проделять в Simulink....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

и если да, то не могли бы вы что-то посоветовать, при похожей задаче.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...