Jump to content

    
Sign in to follow this  
freem@n

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

Recommended Posts

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

Share this post


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

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

Share this post


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

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

Edited by Mike86

Share this post


Link to post
Share on other sites

Как написал Вам 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. При этом нейросеть будет обобщать данные и даже, если на входе нейросети появится образ, который не предъявлялся ей во время обучения, она все равно даст на выходе близкий к правде результат.

Share this post


Link to post
Share on other sites
Как написал Вам Dr_Crazy, можно входное множество сформировать на основе генератора шума. Подав ......

 

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

Share this post


Link to post
Share on other sites
Проблема в том...что теория понятна, а вот непосредственно реализация в Mathlab не удается....)))

 

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

Edited by AVL

Share this post


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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this