Jump to content

    

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

Нужно заменить нелинейный ОУ нейронной сетью....вроде все ясно и понятно... но капнув глубже...куча недопонимания.... Основной вопрос связан непосредственно с работой в 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this